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