diff --git a/package-lock.json b/package-lock.json
index 2b7040b..68dfdea 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,10 +12,9 @@
"apexcharts": "^3.27.1",
"axios": "^0.24.0",
"dotenv": "^8.6.0",
- "prismjs": "^1.23.0",
"qrcode.vue": "^3.2.2",
"quasar": "^2.3.2",
- "vue-prism-editor": "^2.0.0-alpha.2",
+ "vue3-ace-editor": "^2.2.1",
"vue3-apexcharts": "^1.4.0",
"vuex": "^4.0.2"
},
@@ -2655,6 +2654,11 @@
"node": ">= 0.6"
}
},
+ "node_modules/ace-builds": {
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.13.tgz",
+ "integrity": "sha512-SOLzdaQkY6ecPKYRDDg+MY1WoGgXA34cIvYJNNoBMGGUswHmlauU2Hy0UL96vW0Fs/LgFbMUjD+6vqzWTldIYQ=="
+ },
"node_modules/acorn": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
@@ -9754,11 +9758,6 @@
"node": ">=0.8"
}
},
- "node_modules/prismjs": {
- "version": "1.25.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz",
- "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg=="
- },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -10190,6 +10189,11 @@
"integrity": "sha512-wg60ebcPOtxcptIUfrr7Jt3h4BR86cCW3R7y4qt65lnNb4yz4QgrXcbSioVsIOYguyz42+XTHIyJ5TEruzkFgQ==",
"dev": true
},
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"node_modules/resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@@ -11949,17 +11953,6 @@
"node": ">=8.9.0"
}
},
- "node_modules/vue-prism-editor": {
- "version": "2.0.0-alpha.2",
- "resolved": "https://registry.npmjs.org/vue-prism-editor/-/vue-prism-editor-2.0.0-alpha.2.tgz",
- "integrity": "sha512-Gu42ba9nosrE+gJpnAEuEkDMqG9zSUysIR8SdXUw8MQKDjBnnNR9lHC18uOr/ICz7yrA/5c7jHJr9lpElODC7w==",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "vue": "^3.0.0"
- }
- },
"node_modules/vue-router": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.12.tgz",
@@ -11988,6 +11981,16 @@
"integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
"dev": true
},
+ "node_modules/vue3-ace-editor": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/vue3-ace-editor/-/vue3-ace-editor-2.2.1.tgz",
+ "integrity": "sha512-rtTjXZ0jn4AnpRbMnX3+VF0pS4Fo1w0LqexG+F4KAM5Z8QMckkOIEXUbu0pbLgyg0upwu9F+aF6wE3mH6SL1+A==",
+ "dependencies": {
+ "ace-builds": "^1.4.12",
+ "resize-observer-polyfill": "^1.5.1",
+ "vue": "^3.0.0"
+ }
+ },
"node_modules/vue3-apexcharts": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.4.1.tgz",
@@ -14613,6 +14616,11 @@
"negotiator": "0.6.2"
}
},
+ "ace-builds": {
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.13.tgz",
+ "integrity": "sha512-SOLzdaQkY6ecPKYRDDg+MY1WoGgXA34cIvYJNNoBMGGUswHmlauU2Hy0UL96vW0Fs/LgFbMUjD+6vqzWTldIYQ=="
+ },
"acorn": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
@@ -20004,11 +20012,6 @@
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
"dev": true
},
- "prismjs": {
- "version": "1.25.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz",
- "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg=="
- },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -20348,6 +20351,11 @@
"integrity": "sha512-wg60ebcPOtxcptIUfrr7Jt3h4BR86cCW3R7y4qt65lnNb4yz4QgrXcbSioVsIOYguyz42+XTHIyJ5TEruzkFgQ==",
"dev": true
},
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@@ -21694,12 +21702,6 @@
}
}
},
- "vue-prism-editor": {
- "version": "2.0.0-alpha.2",
- "resolved": "https://registry.npmjs.org/vue-prism-editor/-/vue-prism-editor-2.0.0-alpha.2.tgz",
- "integrity": "sha512-Gu42ba9nosrE+gJpnAEuEkDMqG9zSUysIR8SdXUw8MQKDjBnnNR9lHC18uOr/ICz7yrA/5c7jHJr9lpElODC7w==",
- "requires": {}
- },
"vue-router": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.12.tgz",
@@ -21727,6 +21729,16 @@
}
}
},
+ "vue3-ace-editor": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/vue3-ace-editor/-/vue3-ace-editor-2.2.1.tgz",
+ "integrity": "sha512-rtTjXZ0jn4AnpRbMnX3+VF0pS4Fo1w0LqexG+F4KAM5Z8QMckkOIEXUbu0pbLgyg0upwu9F+aF6wE3mH6SL1+A==",
+ "requires": {
+ "ace-builds": "^1.4.12",
+ "resize-observer-polyfill": "^1.5.1",
+ "vue": "^3.0.0"
+ }
+ },
"vue3-apexcharts": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.4.1.tgz",
diff --git a/package.json b/package.json
index 88b437b..51d985b 100644
--- a/package.json
+++ b/package.json
@@ -14,10 +14,9 @@
"apexcharts": "^3.27.1",
"axios": "^0.24.0",
"dotenv": "^8.6.0",
- "prismjs": "^1.23.0",
"qrcode.vue": "^3.2.2",
"quasar": "^2.3.2",
- "vue-prism-editor": "^2.0.0-alpha.2",
+ "vue3-ace-editor": "^2.2.1",
"vue3-apexcharts": "^1.4.0",
"vuex": "^4.0.2"
},
@@ -31,4 +30,4 @@
"last 2 Edge versions",
"last 1 Safari versions"
]
-}
\ No newline at end of file
+}
diff --git a/src/components/scripts/ScriptFormModal.vue b/src/components/scripts/ScriptFormModal.vue
index 9d6e4e3..f4319fe 100644
--- a/src/components/scripts/ScriptFormModal.vue
+++ b/src/components/scripts/ScriptFormModal.vue
@@ -81,12 +81,12 @@
:readonly="readonly"
/>
-
-
-
@@ -59,8 +61,13 @@ import { useDialogPluginComponent } from "quasar";
import { saveScriptSnippet, editScriptSnippet } from "@/api/scripts";
import { notifySuccess } from "@/utils/notify";
-// ui imports
-import CodeEditor from "@/components/ui/CodeEditor";
+// ace editor imports
+import { VAceEditor } from "vue3-ace-editor";
+
+import "ace-builds/src-noconflict/mode-powershell";
+import "ace-builds/src-noconflict/mode-python";
+import "ace-builds/src-noconflict/mode-batchfile";
+import "ace-builds/src-noconflict/theme-tomorrow_night";
// static data
import { shellOptions } from "@/composables/scripts";
@@ -69,7 +76,7 @@ export default {
name: "ScriptFormModal",
emits: [...useDialogPluginComponent.emits],
components: {
- CodeEditor,
+ VAceEditor,
},
props: {
snippet: Object,
diff --git a/src/components/ui/CodeEditor.vue b/src/components/ui/CodeEditor.vue
deleted file mode 100644
index dd03fde..0000000
--- a/src/components/ui/CodeEditor.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file