WIP: TypeScript bugs

This commit is contained in:
Cindy Chang
2024-07-09 13:46:15 +08:00
parent af5ab081de
commit 5c46fd6ce7
9 changed files with 139 additions and 137 deletions

1
.env Normal file
View File

@@ -0,0 +1 @@
VUE_APP_API_URL = "https://REDACTED-HOST/api/"

129
package-lock.json generated
View File

@@ -9,12 +9,12 @@
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"autoprefixer": "^10.4.13", "autoprefixer": "^10.4.13",
"axios": "^1.2.2", "axios": "^1.7.2",
"chart.js": "^4.3.0", "chart.js": "^4.3.0",
"chartjs-adapter-date-fns": "^3.0.0", "chartjs-adapter-date-fns": "^3.0.0",
"chartjs-plugin-datalabels": "^2.2.0", "chartjs-plugin-datalabels": "^2.2.0",
"chartjs-plugin-dragdata": "^1.1.3", "chartjs-plugin-dragdata": "^1.1.3",
"cytoscape": "^3.23.0", "cytoscape": "^3.30.0",
"cytoscape-dagre": "^2.5.0", "cytoscape-dagre": "^2.5.0",
"cytoscape-popper": "^2.0.0", "cytoscape-popper": "^2.0.0",
"date-fns": "^2.30.0", "date-fns": "^2.30.0",
@@ -28,14 +28,14 @@
"pinia": "^2.0.28", "pinia": "^2.0.28",
"postcss": "^8.4.20", "postcss": "^8.4.20",
"primeicons": "^6.0.1", "primeicons": "^6.0.1",
"primevue": "^3.48.1", "primevue": "^3.53.0",
"tailwindcss": "^3.2.4", "tailwindcss": "^3.2.4",
"tippy.js": "^6.3.7", "tippy.js": "^6.3.7",
"vue": "^3.2.45", "vue": "^3.2.45",
"vue-axios": "^3.5.2", "vue-axios": "^3.5.2",
"vue-chartjs": "^5.2.0", "vue-chartjs": "^5.2.0",
"vue-sweetalert2": "^5.0.5", "vue-sweetalert2": "^5.0.11",
"vue-toast-notification": "^3.0.4", "vue-toast-notification": "^3.1.2",
"vuedraggable": "^4.1.0" "vuedraggable": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
@@ -1573,11 +1573,11 @@
"dev": true "dev": true
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.6.7", "version": "1.7.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
"integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.4", "follow-redirects": "^1.15.6",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }
@@ -2323,13 +2323,9 @@
"dev": true "dev": true
}, },
"node_modules/cytoscape": { "node_modules/cytoscape": {
"version": "3.23.0", "version": "3.30.0",
"resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.23.0.tgz", "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.0.tgz",
"integrity": "sha512-gRZqJj/1kiAVPkrVFvz/GccxsXhF3Qwpptl32gKKypO4IlqnKBjTOu+HbXtEggSGzC5KCaHp3/F7GgENrtsFkA==", "integrity": "sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ==",
"dependencies": {
"heap": "^0.2.6",
"lodash": "^4.17.21"
},
"engines": { "engines": {
"node": ">=0.10" "node": ">=0.10"
} }
@@ -3397,9 +3393,9 @@
"dev": true "dev": true
}, },
"node_modules/follow-redirects": { "node_modules/follow-redirects": {
"version": "1.15.5", "version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"funding": [ "funding": [
{ {
"type": "individual", "type": "individual",
@@ -3741,11 +3737,6 @@
"he": "bin/he" "he": "bin/he"
} }
}, },
"node_modules/heap": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
"integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg=="
},
"node_modules/html-encoding-sniffer": { "node_modules/html-encoding-sniffer": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -4306,7 +4297,8 @@
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true "dev": true,
"peer": true
}, },
"node_modules/json-schema": { "node_modules/json-schema": {
"version": "0.4.0", "version": "0.4.0",
@@ -12509,9 +12501,9 @@
"integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==" "integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA=="
}, },
"node_modules/primevue": { "node_modules/primevue": {
"version": "3.48.1", "version": "3.53.0",
"resolved": "https://registry.npmjs.org/primevue/-/primevue-3.48.1.tgz", "resolved": "https://registry.npmjs.org/primevue/-/primevue-3.53.0.tgz",
"integrity": "sha512-lyJ+E0ZCv2pR9jIpdPLBysU8zB2hOKrN7q78orloWelPx05zSYoMVKAWaqKTHNpunD52xffjaqovt1y6B/9XoQ==", "integrity": "sha512-mRqTPGGZX+3AQokaCCjxLVSNEjGEA7LaPdBT4qSpGEdMstK6vhUBCxgLH7IPjHudbaSi4Xo3CIO62pXQxbz8dQ==",
"peerDependencies": { "peerDependencies": {
"vue": "^3.0.0" "vue": "^3.0.0"
} }
@@ -13240,12 +13232,11 @@
} }
}, },
"node_modules/sweetalert2": { "node_modules/sweetalert2": {
"version": "11.7.3", "version": "11.4.4",
"resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.3.tgz", "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.4.tgz",
"integrity": "sha512-fUN/fyVSBZNtY4Rr/Qtxn7tNNnlRAbUhQxTQ9uOo0xVMIHBmqq4/9pau5N9dB2pvkB353XL/ywRAycscLoYU3w==", "integrity": "sha512-9yYWQuRT1v9JNI/paPTSYV+68MHwe9C+HQ/I2jtfaFzoJgYRftWXOs4JqmDSjT7m2m4r8ebMMn8LcxD1Wq9B/w==",
"funding": { "funding": {
"type": "individual", "url": "https://sweetalert2.github.io/#donations"
"url": "https://github.com/sponsors/limonte"
} }
}, },
"node_modules/symbol-tree": { "node_modules/symbol-tree": {
@@ -13882,20 +13873,20 @@
} }
}, },
"node_modules/vue-sweetalert2": { "node_modules/vue-sweetalert2": {
"version": "5.0.5", "version": "5.0.11",
"resolved": "https://registry.npmjs.org/vue-sweetalert2/-/vue-sweetalert2-5.0.5.tgz", "resolved": "https://registry.npmjs.org/vue-sweetalert2/-/vue-sweetalert2-5.0.11.tgz",
"integrity": "sha512-Q7+TjQxNwGruT2jfPaSKMz18HHWs81r4umEwlrrtOf/QL5Iwl1T+tUaNkcvKB7Rf9rYftubt7NnOMjfDMnDH3A==", "integrity": "sha512-agujdlcNeLb4Fj0/V3qgR7bEVBN8IzWFoDBP/vrSgbEGl9pjMmxnv32V3lxB0SZtQh6tL6R/UZ+C3q8tzsJbNg==",
"dependencies": { "dependencies": {
"sweetalert2": "11.x" "sweetalert2": "11.4.4"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "*" "vue": "*"
} }
}, },
"node_modules/vue-toast-notification": { "node_modules/vue-toast-notification": {
"version": "3.0.4", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/vue-toast-notification/-/vue-toast-notification-3.0.4.tgz", "resolved": "https://registry.npmjs.org/vue-toast-notification/-/vue-toast-notification-3.1.2.tgz",
"integrity": "sha512-rEhLtcKg8SVdBpdN7PrNst5nmY8dw0j3NkNImqurhlGurqR/QDKoou0t2PuCReEOCTKqHvfLCle2I3kwQWDWDQ==", "integrity": "sha512-oNRL/W9aaHoeScp+iTIW7k09vM16/+8aptp2maa+7qTB43JuxmAgKdXKFYtf+uvSNOYYq2BIWgLCeJ61pwom/A==",
"engines": { "engines": {
"node": ">=12.15.0" "node": ">=12.15.0"
}, },
@@ -15348,11 +15339,11 @@
"dev": true "dev": true
}, },
"axios": { "axios": {
"version": "1.6.7", "version": "1.7.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
"integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
"requires": { "requires": {
"follow-redirects": "^1.15.4", "follow-redirects": "^1.15.6",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
}, },
@@ -15918,13 +15909,9 @@
"dev": true "dev": true
}, },
"cytoscape": { "cytoscape": {
"version": "3.23.0", "version": "3.30.0",
"resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.23.0.tgz", "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.0.tgz",
"integrity": "sha512-gRZqJj/1kiAVPkrVFvz/GccxsXhF3Qwpptl32gKKypO4IlqnKBjTOu+HbXtEggSGzC5KCaHp3/F7GgENrtsFkA==", "integrity": "sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ=="
"requires": {
"heap": "^0.2.6",
"lodash": "^4.17.21"
}
}, },
"cytoscape-dagre": { "cytoscape-dagre": {
"version": "2.5.0", "version": "2.5.0",
@@ -16734,9 +16721,9 @@
"dev": true "dev": true
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.15.5", "version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
}, },
"forever-agent": { "forever-agent": {
"version": "0.6.1", "version": "0.6.1",
@@ -16972,11 +16959,6 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true "dev": true
}, },
"heap": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
"integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg=="
},
"html-encoding-sniffer": { "html-encoding-sniffer": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -17381,7 +17363,8 @@
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true "dev": true,
"peer": true
}, },
"json-schema": { "json-schema": {
"version": "0.4.0", "version": "0.4.0",
@@ -23323,9 +23306,9 @@
"integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==" "integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA=="
}, },
"primevue": { "primevue": {
"version": "3.48.1", "version": "3.53.0",
"resolved": "https://registry.npmjs.org/primevue/-/primevue-3.48.1.tgz", "resolved": "https://registry.npmjs.org/primevue/-/primevue-3.53.0.tgz",
"integrity": "sha512-lyJ+E0ZCv2pR9jIpdPLBysU8zB2hOKrN7q78orloWelPx05zSYoMVKAWaqKTHNpunD52xffjaqovt1y6B/9XoQ==", "integrity": "sha512-mRqTPGGZX+3AQokaCCjxLVSNEjGEA7LaPdBT4qSpGEdMstK6vhUBCxgLH7IPjHudbaSi4Xo3CIO62pXQxbz8dQ==",
"requires": {} "requires": {}
}, },
"process": { "process": {
@@ -23836,9 +23819,9 @@
"dev": true "dev": true
}, },
"sweetalert2": { "sweetalert2": {
"version": "11.7.3", "version": "11.4.4",
"resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.3.tgz", "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.4.tgz",
"integrity": "sha512-fUN/fyVSBZNtY4Rr/Qtxn7tNNnlRAbUhQxTQ9uOo0xVMIHBmqq4/9pau5N9dB2pvkB353XL/ywRAycscLoYU3w==" "integrity": "sha512-9yYWQuRT1v9JNI/paPTSYV+68MHwe9C+HQ/I2jtfaFzoJgYRftWXOs4JqmDSjT7m2m4r8ebMMn8LcxD1Wq9B/w=="
}, },
"symbol-tree": { "symbol-tree": {
"version": "3.2.4", "version": "3.2.4",
@@ -24250,17 +24233,17 @@
} }
}, },
"vue-sweetalert2": { "vue-sweetalert2": {
"version": "5.0.5", "version": "5.0.11",
"resolved": "https://registry.npmjs.org/vue-sweetalert2/-/vue-sweetalert2-5.0.5.tgz", "resolved": "https://registry.npmjs.org/vue-sweetalert2/-/vue-sweetalert2-5.0.11.tgz",
"integrity": "sha512-Q7+TjQxNwGruT2jfPaSKMz18HHWs81r4umEwlrrtOf/QL5Iwl1T+tUaNkcvKB7Rf9rYftubt7NnOMjfDMnDH3A==", "integrity": "sha512-agujdlcNeLb4Fj0/V3qgR7bEVBN8IzWFoDBP/vrSgbEGl9pjMmxnv32V3lxB0SZtQh6tL6R/UZ+C3q8tzsJbNg==",
"requires": { "requires": {
"sweetalert2": "11.x" "sweetalert2": "11.4.4"
} }
}, },
"vue-toast-notification": { "vue-toast-notification": {
"version": "3.0.4", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/vue-toast-notification/-/vue-toast-notification-3.0.4.tgz", "resolved": "https://registry.npmjs.org/vue-toast-notification/-/vue-toast-notification-3.1.2.tgz",
"integrity": "sha512-rEhLtcKg8SVdBpdN7PrNst5nmY8dw0j3NkNImqurhlGurqR/QDKoou0t2PuCReEOCTKqHvfLCle2I3kwQWDWDQ==", "integrity": "sha512-oNRL/W9aaHoeScp+iTIW7k09vM16/+8aptp2maa+7qTB43JuxmAgKdXKFYtf+uvSNOYYq2BIWgLCeJ61pwom/A==",
"requires": {} "requires": {}
}, },
"vuedraggable": { "vuedraggable": {

View File

@@ -16,12 +16,12 @@
}, },
"dependencies": { "dependencies": {
"autoprefixer": "^10.4.13", "autoprefixer": "^10.4.13",
"axios": "^1.2.2", "axios": "^1.7.2",
"chart.js": "^4.3.0", "chart.js": "^4.3.0",
"chartjs-adapter-date-fns": "^3.0.0", "chartjs-adapter-date-fns": "^3.0.0",
"chartjs-plugin-datalabels": "^2.2.0", "chartjs-plugin-datalabels": "^2.2.0",
"chartjs-plugin-dragdata": "^1.1.3", "chartjs-plugin-dragdata": "^1.1.3",
"cytoscape": "^3.23.0", "cytoscape": "^3.30.0",
"cytoscape-dagre": "^2.5.0", "cytoscape-dagre": "^2.5.0",
"cytoscape-popper": "^2.0.0", "cytoscape-popper": "^2.0.0",
"date-fns": "^2.30.0", "date-fns": "^2.30.0",
@@ -35,14 +35,14 @@
"pinia": "^2.0.28", "pinia": "^2.0.28",
"postcss": "^8.4.20", "postcss": "^8.4.20",
"primeicons": "^6.0.1", "primeicons": "^6.0.1",
"primevue": "^3.48.1", "primevue": "^3.53.0",
"tailwindcss": "^3.2.4", "tailwindcss": "^3.2.4",
"tippy.js": "^6.3.7", "tippy.js": "^6.3.7",
"vue": "^3.2.45", "vue": "^3.2.45",
"vue-axios": "^3.5.2", "vue-axios": "^3.5.2",
"vue-chartjs": "^5.2.0", "vue-chartjs": "^5.2.0",
"vue-sweetalert2": "^5.0.5", "vue-sweetalert2": "^5.0.11",
"vue-toast-notification": "^3.0.4", "vue-toast-notification": "^3.1.2",
"vuedraggable": "^4.1.0" "vuedraggable": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -1,7 +1,6 @@
import { createApp, } from "vue"; import { createApp } from 'vue';
import App from './App.vue';
import App from "./App.vue"; import router from './router';
import router from "@router";
import pinia from '@/stores/main'; import pinia from '@/stores/main';
import myPiniaPlugin from './plugins/myPiniaPlugin'; import myPiniaPlugin from './plugins/myPiniaPlugin';
import axios from 'axios'; import axios from 'axios';
@@ -15,16 +14,15 @@ import popper from 'cytoscape-popper';
import draggable from 'vuedraggable'; import draggable from 'vuedraggable';
import VueSweetalert2 from 'vue-sweetalert2'; import VueSweetalert2 from 'vue-sweetalert2';
// import CSS // Import CSS
import "./assets/main.css"; import './assets/main.css';
import 'vue-toast-notification/dist/theme-sugar.css'; import 'vue-toast-notification/dist/theme-sugar.css';
import 'sweetalert2/dist/sweetalert2.min.css'; import 'sweetalert2/dist/sweetalert2.min.css';
// import PrimeVue // Import PrimeVue
import PrimeVue from 'primevue/config'; import PrimeVue from 'primevue/config';
import 'primevue/resources/themes/saga-blue/theme.css'; //theme import 'primevue/resources/themes/saga-blue/theme.css';
// import 'primevue/resources/primevue.min.css'; //core css 官網更新 3.40 後移除基礎樣式 import 'primeicons/primeicons.css';
import 'primeicons/primeicons.css'; //icons
import Sidebar from 'primevue/sidebar'; import Sidebar from 'primevue/sidebar';
import Button from 'primevue/button'; import Button from 'primevue/button';
import Dropdown from 'primevue/dropdown'; import Dropdown from 'primevue/dropdown';
@@ -34,8 +32,8 @@ import TabView from 'primevue/tabview';
import TabPanel from 'primevue/tabpanel'; import TabPanel from 'primevue/tabpanel';
import DataTable from 'primevue/datatable'; import DataTable from 'primevue/datatable';
import Column from 'primevue/column'; import Column from 'primevue/column';
import ColumnGroup from 'primevue/columngroup'; // optional import ColumnGroup from 'primevue/columngroup';
import Row from 'primevue/row'; // optional import Row from 'primevue/row';
import RadioButton from 'primevue/radiobutton'; import RadioButton from 'primevue/radiobutton';
import PickList from 'primevue/picklist'; import PickList from 'primevue/picklist';
import Timeline from 'primevue/timeline'; import Timeline from 'primevue/timeline';
@@ -49,34 +47,41 @@ import Tooltip from 'primevue/tooltip';
import Checkbox from 'primevue/checkbox'; import Checkbox from 'primevue/checkbox';
import Dialog from 'primevue/dialog'; import Dialog from 'primevue/dialog';
import ContextMenu from 'primevue/contextmenu'; import ContextMenu from 'primevue/contextmenu';
console.log('TODO: hello wolrld')
const emitter = mitt(); const emitter = mitt();
const app = createApp(App); const app = createApp(App);
// axios setting // Axios setting
app.config.globalProperties.$axios = axios; app.config.globalProperties.$axios = axios;
// Pinia Set // Pinia Set
pinia.use(myPiniaPlugin); pinia.use(myPiniaPlugin);
// Pinia Set
pinia.use(({ store }) => {
store.$axios = axios;
});
// can use `this.$moment` in Vue.js // Global properties
app.config.globalProperties.$axios = axios;
app.config.globalProperties.$moment = moment; app.config.globalProperties.$moment = moment;
app.config.globalProperties.$emitter = emitter; app.config.globalProperties.$emitter = emitter;
app.config.globalProperties.$cytoscape = cytoscape; app.config.globalProperties.$cytoscape = cytoscape;
// Cytoscape.js's style // Cytoscape.js's style
cytoscape.use( dagre ); cytoscape.use(dagre);
cytoscape.use( popper ); cytoscape.use(popper);
app.use(pinia); app.use(pinia);
app.use(router); app.use(router);
app.use(VueAxios, axios); app.use(VueAxios, axios);
app.use(VueSweetalert2); app.use(VueSweetalert2);
app.use(ToastPlugin, { // use `this.$toast` in Vue.js app.use(ToastPlugin, {
position: 'bottom', position: 'bottom',
duration: 5000, duration: 5000,
}); });
app.use(PrimeVue); app.use(PrimeVue);
// Register PrimeVue components
app.component('Sidebar', Sidebar); app.component('Sidebar', Sidebar);
app.component('Button', Button); app.component('Button', Button);
app.component('Dropdown', Dropdown); app.component('Dropdown', Dropdown);
@@ -100,7 +105,9 @@ app.component('Calendar', Calendar);
app.component('Checkbox', Checkbox); app.component('Checkbox', Checkbox);
app.component('Dialog', Dialog); app.component('Dialog', Dialog);
app.component('ContextMenu', ContextMenu); app.component('ContextMenu', ContextMenu);
app.component('Draggable', draggable); // 拖曳 app.component('Draggable', draggable);
app.directive('tooltip', Tooltip); app.directive('tooltip', Tooltip);
app.mount("#app"); console.log('hello from main.ts');
app.mount('#app');

9
src/types/env.d.ts vendored Normal file
View File

@@ -0,0 +1,9 @@
interface ImportMetaEnv {
readonly VITE_APP_TITLE: string;
readonly BASE_URL: string;
// 更多環境變量...
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

7
src/types/store.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
import { AxiosInstance } from 'axios';
declare module 'pinia' {
export interface PiniaCustomProperties {
$axios: AxiosInstance;
}
}

View File

@@ -21,5 +21,5 @@
"lib": ["esnext", "dom"], "lib": ["esnext", "dom"],
"types": ["node", "webpack-env", "vue"] "types": ["node", "webpack-env", "vue"]
}, },
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "src/**/*.json"] "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "src/**/*.json", "src/types/**/*.d.ts"]
} }

View File

@@ -9,6 +9,9 @@ export default defineConfig(({ mode }) => {
return{ return{
plugins: [vue()], plugins: [vue()],
transpileDependencies: true, transpileDependencies: true,
// 環境變數
envDir: './env',
base: '/', // 這裡設置了 BASE_URL
// 設定路徑別名 // 設定路徑別名
resolve: { resolve: {
alias: { alias: {

View File

@@ -1077,12 +1077,12 @@ aws4@^1.8.0:
resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz"
integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
axios@*, axios@^1.2.2, axios@^1.6.1: axios@*, axios@^1.6.1, axios@^1.7.2:
version "1.6.7" version "1.7.2"
resolved "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz" resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz"
integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
dependencies: dependencies:
follow-redirects "^1.15.4" follow-redirects "^1.15.6"
form-data "^4.0.0" form-data "^4.0.0"
proxy-from-env "^1.1.0" proxy-from-env "^1.1.0"
@@ -1819,13 +1819,10 @@ cytoscape-popper@^2.0.0:
dependencies: dependencies:
"@popperjs/core" "^2.0.0" "@popperjs/core" "^2.0.0"
cytoscape@^3.2.0, cytoscape@^3.2.22, cytoscape@^3.23.0: cytoscape@^3.2.0, cytoscape@^3.2.22, cytoscape@^3.30.0:
version "3.23.0" version "3.30.0"
resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.23.0.tgz" resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.0.tgz"
integrity sha512-gRZqJj/1kiAVPkrVFvz/GccxsXhF3Qwpptl32gKKypO4IlqnKBjTOu+HbXtEggSGzC5KCaHp3/F7GgENrtsFkA== integrity sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ==
dependencies:
heap "^0.2.6"
lodash "^4.17.21"
d3-dispatch@1: d3-dispatch@1:
version "1.0.6" version "1.0.6"
@@ -2638,10 +2635,10 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1" inherits "^2.0.1"
readable-stream "^2.0.4" readable-stream "^2.0.4"
follow-redirects@^1.15.4: follow-redirects@^1.15.6:
version "1.15.5" version "1.15.6"
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz"
integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
foreground-child@^3.1.0: foreground-child@^3.1.0:
version "3.1.1" version "3.1.1"
@@ -3033,11 +3030,6 @@ he@^1.2.0:
resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
heap@^0.2.6:
version "0.2.7"
resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz"
integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
hoek@2.x.x: hoek@2.x.x:
version "2.16.3" version "2.16.3"
@@ -5076,10 +5068,10 @@ primeicons@^6.0.1:
resolved "https://registry.npmjs.org/primeicons/-/primeicons-6.0.1.tgz" resolved "https://registry.npmjs.org/primeicons/-/primeicons-6.0.1.tgz"
integrity sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA== integrity sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==
primevue@^3.48.1: primevue@^3.53.0:
version "3.48.1" version "3.53.0"
resolved "https://registry.npmjs.org/primevue/-/primevue-3.48.1.tgz" resolved "https://registry.npmjs.org/primevue/-/primevue-3.53.0.tgz"
integrity sha512-lyJ+E0ZCv2pR9jIpdPLBysU8zB2hOKrN7q78orloWelPx05zSYoMVKAWaqKTHNpunD52xffjaqovt1y6B/9XoQ== integrity sha512-mRqTPGGZX+3AQokaCCjxLVSNEjGEA7LaPdBT4qSpGEdMstK6vhUBCxgLH7IPjHudbaSi4Xo3CIO62pXQxbz8dQ==
proc-log@^3.0.0: proc-log@^3.0.0:
version "3.0.0" version "3.0.0"
@@ -5987,10 +5979,10 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
sweetalert2@11.x: sweetalert2@11.4.4:
version "11.7.3" version "11.4.4"
resolved "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.3.tgz" resolved "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.4.tgz"
integrity sha512-fUN/fyVSBZNtY4Rr/Qtxn7tNNnlRAbUhQxTQ9uOo0xVMIHBmqq4/9pau5N9dB2pvkB353XL/ywRAycscLoYU3w== integrity sha512-9yYWQuRT1v9JNI/paPTSYV+68MHwe9C+HQ/I2jtfaFzoJgYRftWXOs4JqmDSjT7m2m4r8ebMMn8LcxD1Wq9B/w==
symbol-tree@^3.2.4: symbol-tree@^3.2.4:
version "3.2.4" version "3.2.4"
@@ -6509,17 +6501,17 @@ vue-router@*, vue-router@^4.4.0:
dependencies: dependencies:
"@vue/devtools-api" "^6.5.1" "@vue/devtools-api" "^6.5.1"
vue-sweetalert2@^5.0.5: vue-sweetalert2@^5.0.11:
version "5.0.5" version "5.0.11"
resolved "https://registry.npmjs.org/vue-sweetalert2/-/vue-sweetalert2-5.0.5.tgz" resolved "https://registry.npmjs.org/vue-sweetalert2/-/vue-sweetalert2-5.0.11.tgz"
integrity sha512-Q7+TjQxNwGruT2jfPaSKMz18HHWs81r4umEwlrrtOf/QL5Iwl1T+tUaNkcvKB7Rf9rYftubt7NnOMjfDMnDH3A== integrity sha512-agujdlcNeLb4Fj0/V3qgR7bEVBN8IzWFoDBP/vrSgbEGl9pjMmxnv32V3lxB0SZtQh6tL6R/UZ+C3q8tzsJbNg==
dependencies: dependencies:
sweetalert2 "11.x" sweetalert2 "11.4.4"
vue-toast-notification@^3.0.4: vue-toast-notification@^3.1.2:
version "3.0.4" version "3.1.2"
resolved "https://registry.npmjs.org/vue-toast-notification/-/vue-toast-notification-3.0.4.tgz" resolved "https://registry.npmjs.org/vue-toast-notification/-/vue-toast-notification-3.1.2.tgz"
integrity sha512-rEhLtcKg8SVdBpdN7PrNst5nmY8dw0j3NkNImqurhlGurqR/QDKoou0t2PuCReEOCTKqHvfLCle2I3kwQWDWDQ== integrity sha512-oNRL/W9aaHoeScp+iTIW7k09vM16/+8aptp2maa+7qTB43JuxmAgKdXKFYtf+uvSNOYYq2BIWgLCeJ61pwom/A==
vue@*, "vue@^2.6.14 || ^3.2.0", vue@^3.0, vue@^3.0.0, "vue@^3.0.0 || ^2.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.0-0 || ^2.7.0", vue@^3.0.1, vue@^3.2.0, vue@^3.2.25, vue@^3.2.45, vue@3.2.47: vue@*, "vue@^2.6.14 || ^3.2.0", vue@^3.0, vue@^3.0.0, "vue@^3.0.0 || ^2.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.0-0 || ^2.7.0", vue@^3.0.1, vue@^3.2.0, vue@^3.2.25, vue@^3.2.45, vue@3.2.47:
version "3.2.47" version "3.2.47"