From 355fe215a3b973bc67d6b2f316e7f336dada3a3e Mon Sep 17 00:00:00 2001 From: Fine0830 Date: Mon, 28 Mar 2022 23:07:49 +0800 Subject: [PATCH] build: optimize configs for building (#44) --- package-lock.json | 509 +++++++++++++----- package.json | 3 +- src/locales/lang/en.ts | 4 +- src/router/alarm.ts | 3 +- src/router/browser.ts | 3 +- src/router/dashboard.ts | 35 +- src/router/database.ts | 3 +- src/router/event.ts | 3 +- src/router/functions.ts | 3 +- src/router/general.ts | 3 +- src/router/infrastructure.ts | 3 +- src/router/k8s.ts | 6 +- src/router/selfObservability.ts | 6 +- src/router/serviceMesh.ts | 6 +- src/router/setting.ts | 3 +- src/store/modules/dashboard.ts | 12 +- src/views/infrastructure/Infrastructure.vue | 29 - .../infrastructure/InfrastructureMap.vue | 338 ------------ src/views/infrastructure/data.ts | 23 - .../infrastructure/geometry/hexagon-layout.ts | 144 ----- .../infrastructure/geometry/hexagon-pillar.ts | 281 ---------- vue.config.js | 16 +- 22 files changed, 450 insertions(+), 986 deletions(-) delete mode 100644 src/views/infrastructure/Infrastructure.vue delete mode 100644 src/views/infrastructure/InfrastructureMap.vue delete mode 100644 src/views/infrastructure/data.ts delete mode 100644 src/views/infrastructure/geometry/hexagon-layout.ts delete mode 100644 src/views/infrastructure/geometry/hexagon-pillar.ts diff --git a/package-lock.json b/package-lock.json index 6af0536c..0386b1ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,6 @@ "element-plus": "^2.0.2", "lodash": "^4.17.21", "pinia": "^2.0.5", - "three": "^0.131.3", - "three-orbit-controls": "^82.1.0", "vue": "^3.0.0", "vue-grid-layout": "^3.0.0-beta1", "vue-i18n": "^9.1.9", @@ -63,6 +61,7 @@ "stylelint-order": "^5.0.0", "svg-sprite-loader": "^6.0.11", "typescript": "~4.4.4", + "vue-cli-plugin-webpack-bundle-analyzer": "~4.0.0", "vue-jest": "^5.0.0-0" } }, @@ -2791,6 +2790,12 @@ "node": ">= 8" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, "node_modules/@popperjs/core": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", @@ -3329,16 +3334,8 @@ "node_modules/@types/lodash": { "version": "4.14.179", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz", - "integrity": "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==" - }, - "node_modules/@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", - "peer": true, - "dependencies": { - "@types/lodash": "*" - } + "integrity": "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==", + "dev": true }, "node_modules/@types/mime": { "version": "1.3.2", @@ -4632,13 +4629,6 @@ "@vue/cli-service": "^3.0.0 || ^4.0.0-0" } }, - "node_modules/@vue/cli-plugin-unit-jest/node_modules/vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", - "dev": true, - "peer": true - }, "node_modules/@vue/cli-plugin-unit-jest/node_modules/vue-jest": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz", @@ -9547,13 +9537,6 @@ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true, - "peer": true - }, "node_modules/deasync": { "version": "0.1.24", "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.24.tgz", @@ -18204,6 +18187,15 @@ "run-queue": "^1.0.3" } }, + "node_modules/mrmime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", + "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -23475,6 +23467,20 @@ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -25734,16 +25740,6 @@ "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" } }, - "node_modules/three": { - "version": "0.131.3", - "resolved": "https://registry.npmjs.org/three/-/three-0.131.3.tgz", - "integrity": "sha512-VkZAv8ZTJqiE/fyEmoWLxcNHImpVcjqW7RO0GzMu3tRpwO0KUvK9pjTmJzJcAbc51BOeB2G38zh80yjHTbP8gQ==" - }, - "node_modules/three-orbit-controls": { - "version": "82.1.0", - "resolved": "https://registry.npmjs.org/three-orbit-controls/-/three-orbit-controls-82.1.0.tgz", - "integrity": "sha1-EafzPQog7OyY8Jizd4D2U3N0+rQ=" - }, "node_modules/throat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", @@ -25941,6 +25937,15 @@ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", "dev": true }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -26264,7 +26269,7 @@ "version": "4.4.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "devOptional": true, + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26731,6 +26736,174 @@ "@vue/shared": "3.2.26" } }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vue-cli-plugin-webpack-bundle-analyzer/-/vue-cli-plugin-webpack-bundle-analyzer-4.0.0.tgz", + "integrity": "sha512-gEQt8RMh0j9aD591PXjuMJMoKG6Aaylsi2rZHDiDRE9zGEk7wlUMrIVGwL9bYnMAHSHkojQL4oQinM3WBxCDew==", + "dev": true, + "dependencies": { + "webpack-bundle-analyzer": "^4.2.0" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/webpack-bundle-analyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", + "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/vue-cli-plugin-webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/vue-eslint-parser": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", @@ -27010,17 +27183,6 @@ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true }, - "node_modules/vue-template-compiler": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", - "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", - "dev": true, - "peer": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, "node_modules/vue-template-es2015-compiler": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", @@ -30007,8 +30169,7 @@ "@element-plus/icons-vue": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-0.2.7.tgz", - "integrity": "sha512-S8kDbfVaWkQvbUYQE1ui448tzaHfUvyESCep9J6uPRlViyQPXjdIfwLBhV6AmQSOfFS8rL+xehJGhvzPXLrSBg==", - "requires": {} + "integrity": "sha512-S8kDbfVaWkQvbUYQE1ui448tzaHfUvyESCep9J6uPRlViyQPXjdIfwLBhV6AmQSOfFS8rL+xehJGhvzPXLrSBg==" }, "@hapi/address": { "version": "2.1.4", @@ -30076,8 +30237,7 @@ "@interactjs/core": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/@interactjs/core/-/core-1.10.11.tgz", - "integrity": "sha512-aJ50ccVeszpJt7wPH7Yfqm7f1aG1SA94qd90P0NaESh5/QUXn4CESO6igobo4DFHQ5z+1Rfdl8aphP4JxlH4gw==", - "requires": {} + "integrity": "sha512-aJ50ccVeszpJt7wPH7Yfqm7f1aG1SA94qd90P0NaESh5/QUXn4CESO6igobo4DFHQ5z+1Rfdl8aphP4JxlH4gw==" }, "@interactjs/dev-tools": { "version": "1.10.11", @@ -30795,6 +30955,12 @@ "fastq": "^1.6.0" } }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, "@popperjs/core": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", @@ -31309,16 +31475,8 @@ "@types/lodash": { "version": "4.14.179", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz", - "integrity": "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==" - }, - "@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", - "peer": true, - "requires": { - "@types/lodash": "*" - } + "integrity": "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==", + "dev": true }, "@types/mime": { "version": "1.3.2", @@ -32346,13 +32504,6 @@ "vue-jest": "^3.0.5" }, "dependencies": { - "vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", - "dev": true, - "peer": true - }, "vue-jest": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz", @@ -32378,8 +32529,7 @@ "version": "4.5.15", "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz", "integrity": "sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg==", - "dev": true, - "requires": {} + "dev": true }, "@vue/cli-service": { "version": "4.5.15", @@ -32817,8 +32967,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", - "dev": true, - "requires": {} + "dev": true }, "@vue/reactivity": { "version": "3.2.26", @@ -32877,8 +33026,7 @@ "version": "2.0.0-rc.18", "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.18.tgz", "integrity": "sha512-aifolXjVdsogjaLmDoZ0FU8vN+R67aWmg9OuVeED4w5Ij5GFQLrlhM19uhWe/r5xXUL4fXMk3pX5wW6FJP1NcQ==", - "dev": true, - "requires": {} + "dev": true }, "@vue/web-component-wrapper": { "version": "1.3.0", @@ -32906,8 +33054,7 @@ "vue-demi": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.1.tgz", - "integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==", - "requires": {} + "integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==" } } }, @@ -33154,8 +33301,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "7.2.0", @@ -33203,15 +33349,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "requires": {} + "dev": true }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "alphanum-sort": { "version": "1.0.2", @@ -33603,8 +33747,7 @@ "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true, - "requires": {} + "dev": true }, "babel-jest": { "version": "24.9.0", @@ -36290,13 +36433,6 @@ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true, - "peer": true - }, "deasync": { "version": "0.1.24", "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.24.tgz", @@ -40684,8 +40820,7 @@ "version": "7.5.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -41077,8 +41212,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "24.9.0", @@ -42500,8 +42634,7 @@ "lodash-unified": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.1.tgz", - "integrity": "sha512-Py+twfpWn+2dFQWCuGcp21WiQRwZwnm1cyE3piSt/VtBVKVyxlR58WgOVRzXtmdmDRGJKH8F8GPaA29WK/yK8g==", - "requires": {} + "integrity": "sha512-Py+twfpWn+2dFQWCuGcp21WiQRwZwnm1cyE3piSt/VtBVKVyxlR58WgOVRzXtmdmDRGJKH8F8GPaA29WK/yK8g==" }, "lodash.debounce": { "version": "4.0.8", @@ -43075,6 +43208,12 @@ "run-queue": "^1.0.3" } }, + "mrmime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", + "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -44250,8 +44389,7 @@ "vue-demi": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.1.tgz", - "integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==", - "requires": {} + "integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==" } } }, @@ -45325,8 +45463,7 @@ "version": "1.14.0", "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.14.0.tgz", "integrity": "sha512-8d5fiBQZWMtGWH/7ewEeo6RnBNyT2kLD5wTIfV2oHYqH4hjiofg/rP5X3SUwnqOINzE4mM/K/UOAiNrIaKzd4w==", - "dev": true, - "requires": {} + "dev": true }, "postcss-reduce-initial": { "version": "4.0.3", @@ -45404,15 +45541,13 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-scss": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.3.tgz", "integrity": "sha512-j4KxzWovfdHsyxwl1BxkUal/O4uirvHgdzMKS1aWJBAV0qh2qj5qAZqpeBfVUYGWv+4iK9Az7SPyZ4fyNju1uA==", - "dev": true, - "requires": {} + "dev": true }, "postcss-selector-parser": { "version": "6.0.8", @@ -45428,8 +45563,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-svgo": { "version": "4.0.3", @@ -47192,6 +47326,17 @@ } } }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -48226,22 +48371,19 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.0.0.tgz", "integrity": "sha512-rKQUUWDpaYC7ybsS6tLxddjn6DxhjSIXybElSmcTyVQj3ExhmU3q+l41ktrlwHRyY0M5SkTkZiwngvYPYmsgSQ==", - "dev": true, - "requires": {} + "dev": true }, "stylelint-config-prettier": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", - "dev": true, - "requires": {} + "dev": true }, "stylelint-config-recommended": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", - "dev": true, - "requires": {} + "dev": true }, "stylelint-config-standard": { "version": "24.0.0", @@ -48999,16 +49141,6 @@ "neo-async": "^2.6.0" } }, - "three": { - "version": "0.131.3", - "resolved": "https://registry.npmjs.org/three/-/three-0.131.3.tgz", - "integrity": "sha512-VkZAv8ZTJqiE/fyEmoWLxcNHImpVcjqW7RO0GzMu3tRpwO0KUvK9pjTmJzJcAbc51BOeB2G38zh80yjHTbP8gQ==" - }, - "three-orbit-controls": { - "version": "82.1.0", - "resolved": "https://registry.npmjs.org/three-orbit-controls/-/three-orbit-controls-82.1.0.tgz", - "integrity": "sha1-EafzPQog7OyY8Jizd4D2U3N0+rQ=" - }, "throat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", @@ -49174,6 +49306,12 @@ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", "dev": true }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -49431,7 +49569,7 @@ "version": "4.4.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "devOptional": true + "dev": true }, "uglify-js": { "version": "3.4.10", @@ -49812,6 +49950,116 @@ "@vue/shared": "3.2.26" } }, + "vue-cli-plugin-webpack-bundle-analyzer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vue-cli-plugin-webpack-bundle-analyzer/-/vue-cli-plugin-webpack-bundle-analyzer-4.0.0.tgz", + "integrity": "sha512-gEQt8RMh0j9aD591PXjuMJMoKG6Aaylsi2rZHDiDRE9zGEk7wlUMrIVGwL9bYnMAHSHkojQL4oQinM3WBxCDew==", + "dev": true, + "requires": { + "webpack-bundle-analyzer": "^4.2.0" + }, + "dependencies": { + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "webpack-bundle-analyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", + "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + } + }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true + } + } + }, "vue-eslint-parser": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", @@ -50023,17 +50271,6 @@ } } }, - "vue-template-compiler": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", - "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", - "dev": true, - "peer": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, "vue-template-es2015-compiler": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", diff --git a/package.json b/package.json index 918708f1..90005bc7 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,6 @@ "element-plus": "^2.0.2", "lodash": "^4.17.21", "pinia": "^2.0.5", - "three": "^0.131.3", - "three-orbit-controls": "^82.1.0", "vue": "^3.0.0", "vue-grid-layout": "^3.0.0-beta1", "vue-i18n": "^9.1.9", @@ -65,6 +63,7 @@ "stylelint-order": "^5.0.0", "svg-sprite-loader": "^6.0.11", "typescript": "~4.4.4", + "vue-cli-plugin-webpack-bundle-analyzer": "~4.0.0", "vue-jest": "^5.0.0-0" }, "eslintConfig": { diff --git a/src/locales/lang/en.ts b/src/locales/lang/en.ts index 4bc27589..609c05ea 100644 --- a/src/locales/lang/en.ts +++ b/src/locales/lang/en.ts @@ -29,7 +29,7 @@ const msg = { events: "Events", alerts: "Alerts", settings: "Settings", - dashboards: "Dashboard", + dashboards: "Dashboards", profiles: "Profiles", database: "Database", serviceName: "Service Name", @@ -149,7 +149,7 @@ const msg = { dashboard: "Dashboard", topology: "Topology", trace: "Trace", - alarm: "Alarm", + alarm: "Alarms", event: "Event", auto: "Auto", reload: "Reload", diff --git a/src/router/alarm.ts b/src/router/alarm.ts index 42adc95a..6880e099 100644 --- a/src/router/alarm.ts +++ b/src/router/alarm.ts @@ -35,7 +35,8 @@ export const routesAlarm: Array = [ meta: { exact: false, }, - component: () => import("@/views/Alarm.vue"), + component: () => + import(/* webpackChunkName: "alarms" */ "@/views/Alarm.vue"), }, ], }, diff --git a/src/router/browser.ts b/src/router/browser.ts index 1906813c..e0633bb6 100644 --- a/src/router/browser.ts +++ b/src/router/browser.ts @@ -36,7 +36,8 @@ export const routesBrowser: Array = [ headPath: "/browser", exact: true, }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, ], }, diff --git a/src/router/dashboard.ts b/src/router/dashboard.ts index bfb91d25..93fc53ac 100644 --- a/src/router/dashboard.ts +++ b/src/router/dashboard.ts @@ -31,7 +31,10 @@ export const routesDashboard: Array = [ children: [ { path: "/dashboard/list", - component: () => import("@/views/dashboard/List.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/List.vue" + ), name: "List", meta: { title: "dashboardList", @@ -40,7 +43,10 @@ export const routesDashboard: Array = [ }, { path: "/dashboard/new", - component: () => import("@/views/dashboard/New.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/New.vue" + ), name: "New", meta: { title: "dashboardNew", @@ -49,7 +55,10 @@ export const routesDashboard: Array = [ }, { path: "/dashboard/:layerId/:entity/:name", - component: () => import("@/views/dashboard/Edit.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/Edit.vue" + ), name: "Create", meta: { title: "dashboardEdit", @@ -59,7 +68,10 @@ export const routesDashboard: Array = [ }, { path: "/dashboard/:layerId/:entity/:serviceId/:name", - component: () => import("@/views/dashboard/Edit.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/Edit.vue" + ), name: "View", meta: { title: "dashboardEdit", @@ -69,7 +81,10 @@ export const routesDashboard: Array = [ }, { path: "/dashboard/related/:layerId/:entity/:serviceId/:destServiceId/:name", - component: () => import("@/views/dashboard/Edit.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/Edit.vue" + ), name: "ViewServiceRelation", meta: { title: "dashboardEdit", @@ -79,7 +94,10 @@ export const routesDashboard: Array = [ }, { path: "/dashboard/:layerId/:entity/:serviceId/:podId/:name", - component: () => import("@/views/dashboard/Edit.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/Edit.vue" + ), name: "ViewPod", meta: { title: "dashboardEdit", @@ -89,7 +107,10 @@ export const routesDashboard: Array = [ }, { path: "/dashboard/:layerId/:entity/:serviceId/:podId/:destServiceId/:destPodId/:name", - component: () => import("@/views/dashboard/Edit.vue"), + component: () => + import( + /* webpackChunkName: "dashboards" */ "@/views/dashboard/Edit.vue" + ), name: "ViewPodRelation", meta: { title: "dashboardEdit", diff --git a/src/router/database.ts b/src/router/database.ts index 4d285f43..a3e5bdf6 100644 --- a/src/router/database.ts +++ b/src/router/database.ts @@ -37,7 +37,8 @@ export const routesDatabase: Array = [ headPath: "/database", exact: true, }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, ], }, diff --git a/src/router/event.ts b/src/router/event.ts index 0b587dc1..6dd2424f 100644 --- a/src/router/event.ts +++ b/src/router/event.ts @@ -35,7 +35,8 @@ export const routesEvent: Array = [ meta: { exact: false, }, - component: () => import("@/views/Event.vue"), + component: () => + import(/* webpackChunkName: "events" */ "@/views/Event.vue"), }, ], }, diff --git a/src/router/functions.ts b/src/router/functions.ts index 7ae9bed1..be1fa338 100644 --- a/src/router/functions.ts +++ b/src/router/functions.ts @@ -36,7 +36,8 @@ export const routesFunctions: Array = [ headPath: "/functions", exact: true, }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, ], }, diff --git a/src/router/general.ts b/src/router/general.ts index af2daa00..393b94f3 100644 --- a/src/router/general.ts +++ b/src/router/general.ts @@ -37,7 +37,8 @@ export const routesGen: Array = [ headPath: "/general/service", exact: true, }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layers" */ "@/views/Layer.vue"), }, ], }, diff --git a/src/router/infrastructure.ts b/src/router/infrastructure.ts index c3c11dfe..86bb55ee 100644 --- a/src/router/infrastructure.ts +++ b/src/router/infrastructure.ts @@ -36,7 +36,8 @@ export const routesInfra: Array = [ meta: { title: "linux", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, // { // path: "/infrastructure/vm", diff --git a/src/router/k8s.ts b/src/router/k8s.ts index 1e7bf0b8..38adf3f7 100644 --- a/src/router/k8s.ts +++ b/src/router/k8s.ts @@ -35,7 +35,8 @@ export const routesK8s: Array = [ meta: { title: "kubernetesCluster", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, { path: "/kubernetes/service", @@ -43,7 +44,8 @@ export const routesK8s: Array = [ meta: { title: "kubernetesService", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, ], }, diff --git a/src/router/selfObservability.ts b/src/router/selfObservability.ts index 1cf39360..4174e1bb 100644 --- a/src/router/selfObservability.ts +++ b/src/router/selfObservability.ts @@ -36,7 +36,8 @@ export const routesSelf: Array = [ title: "skyWalkingServer", headPath: "/mesh/services", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, { path: "/self/satellite", @@ -45,7 +46,8 @@ export const routesSelf: Array = [ title: "satellite", headPath: "/mesh/controlPanel", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, ], }, diff --git a/src/router/serviceMesh.ts b/src/router/serviceMesh.ts index 946f1d1c..719fae43 100644 --- a/src/router/serviceMesh.ts +++ b/src/router/serviceMesh.ts @@ -36,7 +36,8 @@ export const routesMesh: Array = [ title: "services", headPath: "/mesh/services", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, { path: "/mesh/controlPanel", @@ -45,7 +46,8 @@ export const routesMesh: Array = [ title: "controlPanel", headPath: "/mesh/controlPanel", }, - component: () => import("@/views/Layer.vue"), + component: () => + import(/* webpackChunkName: "layer" */ "@/views/Layer.vue"), }, { path: "/mesh/dataPanel", diff --git a/src/router/setting.ts b/src/router/setting.ts index e2874e5b..9045c08e 100644 --- a/src/router/setting.ts +++ b/src/router/setting.ts @@ -38,7 +38,8 @@ export const routesSetting: Array = [ hasGroup: false, exact: false, }, - component: () => import("@/views/Settings.vue"), + component: () => + import(/* webpackChunkName: "settings" */ "@/views/Settings.vue"), }, ], }, diff --git a/src/store/modules/dashboard.ts b/src/store/modules/dashboard.ts index a0f0147c..c498adaf 100644 --- a/src/store/modules/dashboard.ts +++ b/src/store/modules/dashboard.ts @@ -77,9 +77,13 @@ export const dashboardStore = defineStore({ }, addControl(type: string) { const arr = this.layout.map((d: any) => Number(d.i)); + let index = String(Math.max(...arr) + 1); + if (!this.layout.length) { + index = "0"; + } const newItem: LayoutConfig = { ...NewControl, - i: String(Math.max(...arr) + 1), + i: index, type, metricTypes: [""], metrics: [""], @@ -148,9 +152,13 @@ export const dashboardStore = defineStore({ const tabIndex = this.layout[idx].activedTabIndex || 0; const { children } = this.layout[idx].children[tabIndex]; const arr = children.map((d: any) => Number(d.i)); + let index = String(Math.max(...arr) + 1); + if (!children.length) { + index = "0"; + } const newItem: LayoutConfig = { ...NewControl, - i: String(Math.max(...arr) + 1), + i: index, type, metricTypes: [""], metrics: [""], diff --git a/src/views/infrastructure/Infrastructure.vue b/src/views/infrastructure/Infrastructure.vue deleted file mode 100644 index 8312940f..00000000 --- a/src/views/infrastructure/Infrastructure.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/src/views/infrastructure/InfrastructureMap.vue b/src/views/infrastructure/InfrastructureMap.vue deleted file mode 100644 index ea7f50c9..00000000 --- a/src/views/infrastructure/InfrastructureMap.vue +++ /dev/null @@ -1,338 +0,0 @@ - - - - - diff --git a/src/views/infrastructure/data.ts b/src/views/infrastructure/data.ts deleted file mode 100644 index 19d61bb6..00000000 --- a/src/views/infrastructure/data.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export const NodeTypes = [ - "Layer", - "Group", - "Service", - "Service Instance", - "endpoint", -]; diff --git a/src/views/infrastructure/geometry/hexagon-layout.ts b/src/views/infrastructure/geometry/hexagon-layout.ts deleted file mode 100644 index 6a5a5414..00000000 --- a/src/views/infrastructure/geometry/hexagon-layout.ts +++ /dev/null @@ -1,144 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -class Orientation { - public f0 = 0; - public f1 = 0; - public f2 = 0; - public f3 = 0; - public b0? = 0; - public b1? = 0; - public b2? = 0; - public b3? = 0; - public start_angle? = 0; - constructor( - f0: number, - f1: number, - f2: number, - f3: number, - b0: number, - b1: number, - b2: number, - b3: number, - start_angle: number - ) { - this.f0 = f0; - this.f1 = f1; - this.f2 = f2; - this.f3 = f3; - this.b0 = b0; - this.b1 = b1; - this.b2 = b2; - this.b3 = b3; - this.start_angle = start_angle; - } -} - -const SQRT3 = Math.sqrt(3.0); -class Layout { - static Pointy = new Orientation( - SQRT3, - SQRT3 / 2.0, - 0.0, - 3.0 / 2.0, - SQRT3 / 3.0, - -1.0 / 3.0, - 0.0, - 2.0 / 3.0, - 0.5 - ); - static Flat = new Orientation( - 3.0 / 2.0, - 0.0, - SQRT3 / 2.0, - SQRT3, - 2.0 / 3.0, - 0.0, - -1.0 / 3.0, - SQRT3 / 3.0, - 0.0 - ); - - static spacing(radius: number, isPointy = false): number[] { - return isPointy - ? [SQRT3 * radius, 2 * radius * (3 / 4)] - : [2 * radius * (3 / 4), SQRT3 * radius]; - } - - private radius = 1; - private orientation: Orientation = { f0: 0, f1: 0, f2: 0, f3: 0 }; - private origin = [0, 0]; - - constructor(radius: number, origin = [0, 0], orientation?: Orientation) { - this.radius = radius; //Layout.spacing( radius, ( orientation === Layout.Pointy ) ); - this.orientation = orientation || Layout.Flat; - this.origin = origin; - } - - // Same as HexToPixel, Except it takes raw coords instead of hex object. - axialToPixel(ax: number, ay: number): number[] { - const M = this.orientation; - const x = (M.f0 * ax + M.f1 * ay) * this.radius; - const y = (M.f2 * ax + M.f3 * ay) * this.radius; - - return [x + this.origin[0], y + this.origin[1]]; - } - - hexToPixel(h: { x: number; y: number }): number[] { - const M = this.orientation; - const x = (M.f0 * h.x + M.f1 * h.y) * this.radius; - const y = (M.f2 * h.x + M.f3 * h.y) * this.radius; - - return [x + this.origin[0], y + this.origin[1]]; - } -} - -class Hex extends Int16Array { - constructor(x: number, y: number, z = null) { - super(3); - this.xyz(x, y, z); - } - - xyz(x: number, y: number, z: number | null = null): Hex { - if (z == null) z = -x - y; - if (x + y + z != 0) { - console.log("Bad Axial Coordinate : : q %d r %d s %d", x, y, z); - } - - this[0] = x; - this[1] = y; - this[2] = z; - return this; - } - - get x(): number { - return this[0]; - } - get y(): number { - return this[1]; - } - get z(): number { - return this[2]; - } - - get len(): number { - return Math.floor( - (Math.abs(this[0]) + Math.abs(this[1]) + Math.abs(this[2])) / 2 - ); - } -} - -export { Hex, Orientation, Layout }; diff --git a/src/views/infrastructure/geometry/hexagon-pillar.ts b/src/views/infrastructure/geometry/hexagon-pillar.ts deleted file mode 100644 index 1e714f8a..00000000 --- a/src/views/infrastructure/geometry/hexagon-pillar.ts +++ /dev/null @@ -1,281 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Vec3 from "@/utils/vec3"; -import Vec2 from "@/utils/vec2"; - -class HexagonPillar { - static get( - pointyUp = true, - radius = 0.5, - cornerScale = 0.2, - cornerDiv = 3, - capSize = 0.2, - offsetHeight = 0.5 - ): { - vertices: number[]; - indices: number[]; - texcoord: number[]; - normals: number[]; - } { - const rtn: { - vertices: number[]; - indices: number[]; - texcoord: number[]; - normals: number[]; - } = { - vertices: [], - indices: [], - texcoord: [], - normals: [], - }; - - let poly = createPolygon(radius, 6, pointyUp ? (30 * Math.PI) / 180 : 0); // Create Base Shape - poly = polyBevel(poly, cornerScale, cornerDiv); // Round the Shape Corners - // Base Layer - toVec3(rtn, poly); - const vertCnt = rtn.vertices.length / 3; - // Starting layer for Cap. - toVec3(rtn, poly, [0, offsetHeight, 0]); - - // Extra Layers for Bevel - polyCapBevel(rtn, poly, cornerDiv, capSize, [0, offsetHeight, 0]); - const idxTip = rtn.vertices.length; - - // Cap Center Point - rtn.vertices.push(0, capSize + offsetHeight, 0); - rtn.normals.push(0, 1, 0); - - // Indices - const idx = idxTip / 3; - gridIndicesCol(rtn.indices, vertCnt, 2 + cornerDiv, 0, true, true); - fanIndices(rtn.indices, idx, idx - vertCnt, idx - 1, true); - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - return rtn; - } - static getVertices(pointyUp = true, radius = 0.5): { vertices: Vec3[] } { - const rtn = { - vertices: [], - normals: [], - }; - - const poly = createPolygon(radius, 6, pointyUp ? (30 * Math.PI) / 180 : 0); // Create Base Shape - toVec3(rtn, poly); - const vertices: any[] = []; - for (let i = 0; i < rtn.vertices.length / 3; i++) { - vertices.push( - new Vec3( - rtn.vertices[i * 3], - rtn.vertices[i * 3 + 1], - rtn.vertices[i * 3 + 2] - ) - ); - } - vertices.push(new Vec3(rtn.vertices[0], rtn.vertices[1], rtn.vertices[2])); - return { vertices }; - } -} -// Create the basic 2d polygon shape -function createPolygon(radius: number, sides = 6, offset = 0) { - const poly: number[] = []; - let i, rad; - for (i = 0; i < sides; i++) { - rad = Math.PI * 2 * (i / sides); - poly.push(Math.cos(rad + offset) * radius, Math.sin(rad + offset) * radius); - } - return poly; -} -// Bevel the corners of polygon -function polyBevel(poly: number[], cornerScale = 0.2, cornerDiv = 3) { - const polyOut: number[] = []; - const len = poly.length / 2; - const a = new Vec2(); // 3 Points that forms a Polygon Corner - const b = new Vec2(); - const c = new Vec2(); - - const va = new Vec2(); // Min/Max Points of the corner to bevel - const vb = new Vec2(); - - const norma = new Vec2(); // Inward Normals of the Corner Edges - const normb = new Vec2(); - const pivot = new Vec2(); // Pivot point to create curved points - // eslint-disable-next-line - const v = new Vec2() as any; - let ii, i, j, k, radius; - for (j = 0; j < len; j++) { - i = mod(j - 1, len); // Previous Point - k = mod(j + 1, len); // Next Point - - a.fromBuf(poly, i * 2); // Get the Point Positions out of flat buffer - b.fromBuf(poly, j * 2); - c.fromBuf(poly, k * 2); - - va.fromLerp(a, b, 1.0 - cornerScale); // Get the two points to start and end curved corner - vb.fromLerp(b, c, cornerScale); - norma.fromSub(b, a).perpCCW().norm(); // Compute Inward normal of the two edges - normb.fromSub(c, b).perpCCW().norm(); - - raysIntersection(va, norma, vb, normb, pivot); // Point where the 2 normals converge. - - radius = Vec2.len(va, pivot); // Get the Radius for the curved corner - va.pushTo(polyOut); - - for (ii = 1; ii < cornerDiv; ii++) { - // Fill in the remaining points - v.fromLerp(va, vb, ii / cornerDiv) // Lerp between Start + end Points - .sub(pivot) // Localize it - .norm() // Normalize it - .scale(radius) // Scale it to the radius - .add(pivot) // Move it back to world space - .pushTo(polyOut); - } - vb.pushTo(polyOut); - } - return polyOut; -} - -function mod(a: number, b: number): number { - const v = a % b; - return v < 0 ? b + v : v; -} -// Turn 2D Polygon Points into 3D Vertices -function toVec3( - geo: { normals: number[]; vertices: number[] }, - poly: number[], - offset?: Vec3 | number[] -) { - const v = new Vec3(); - // eslint-disable-next-line - let i: any; - offset = offset || [0, 0, 0]; - for (i of Vec2.bufIter(poly)) { - v.fromVec2(i, true) - .add(offset) - .pushTo(geo.vertices) - .sub(offset) - .norm() - .pushTo(geo.normals); - } -} -// Create a Beveled cap for the extruded walls -function polyCapBevel( - geo: { normals: number[]; vertices: number[] }, - poly: number[], - cornerDiv: number, - capSize: number, - offset?: Vec3 | number[] -) { - // eslint-disable-next-line - const v: any = new Vec2(); - const lerp: any[] = []; - let pivot, top, pnt, i, vlen, tlen; - - offset = offset || [0, 0, 0]; - for (i = 0; i < poly.length; i += 2) { - v.fromBuf(poly, i); - - vlen = v.len(); - tlen = vlen - capSize; - pnt = new Vec3().fromVec2(v, true); - pivot = Vec3.scale(pnt, tlen / vlen); - top = Vec3.add(pivot, [0, capSize, 0]); - - lerp.push({ pivot, top, pnt }); - } - let t, itm; - pnt = new Vec3(); - for (i = 1; i <= cornerDiv; i++) { - t = i / cornerDiv; - for (itm of lerp) { - pnt - .fromLerp(itm.pnt, itm.top, t) - .sub(itm.pivot) - .norm() - .pushTo(geo.normals) - .scale(capSize) - .add(itm.pivot) - .add(offset) - .pushTo(geo.vertices); - } - } -} - -//https://stackoverflow.com/questions/2931573/determining-if-two-rays-intersect -function raysIntersection(as: Vec2, ad: Vec2, bs: Vec2, bd: Vec2, out: Vec2) { - const dx = bs[0] - as[0]; - const dy = bs[1] - as[1]; - const det = bd[0] * ad[1] - bd[1] * ad[0]; - - if (det != 0) { - // near parallel line will yield noisy results - const u = (dy * bd[0] - dx * bd[1]) / det; - const v = (dy * ad[0] - dx * ad[1]) / det; - - if (u >= 0 && v >= 0) { - out[0] = as[0] + ad[0] * u; - out[1] = as[1] + ad[1] * u; - return true; - } - } - return false; -} -/** Generate Indices of both a Looped or Unlooped Grid, Backslash Pattern, Loops on Columns */ -function gridIndicesCol( - out: number[], - row_size: number, - row_cnt: number, - start_idx = 0, - do_loop = false, - rev_quad = false -) { - const row_stop = row_cnt - 1, - col_stop = do_loop ? row_size : row_size - 1; - let row_a, row_b, r, rr, rrr, a, b, c, d; - for (r = 0; r < row_stop; r++) { - // Figure out the starting Index for the Two Rows - // 2nd row might loop back to starting row when Looping. - row_a = start_idx + row_size * r; - row_b = start_idx + row_size * (r + 1); - for (rr = 0; rr < col_stop; rr++) { - // Defined the Vertex Index of a Quad - rrr = (rr + 1) % row_size; - a = row_a + rr; - b = row_a + rrr; - d = row_b + rr; - c = row_b + rrr; - if (!rev_quad) out.push(a, b, c, c, d, a); - // Counter ClockWise - else out.push(a, d, c, c, b, a); - } - } -} -function fanIndices( - out: number[], - midIdx: number, - edgeStart: number, - edgeEnd: number, - rev_quad = false -) { - const len = edgeEnd - edgeStart + 1; - let i, ii; - for (i = 0; i < len; i++) { - ii = (i + 1) % len; // Next Point on the edge - if (!rev_quad) out.push(midIdx, edgeStart + i, edgeStart + ii); - // Counter ClockWise - else out.push(midIdx, edgeStart + ii, edgeStart + i); - } -} -export default HexagonPillar; diff --git a/vue.config.js b/vue.config.js index 4d3e7fa4..23116e2c 100644 --- a/vue.config.js +++ b/vue.config.js @@ -39,24 +39,24 @@ module.exports = { config.resolve.alias.set("vue-i18n", "vue-i18n/dist/vue-i18n.cjs.js"); }, configureWebpack: (config) => { + config.performance = { + hints: false, + }; config.optimization = { splitChunks: { chunks: "all", + minSize: 20000, + maxSize: 2000000, cacheGroups: { echarts: { name: "echarts", test: /[\\/]node_modules[\\/]echarts[\\/]/, - priority: 1, + priority: 20, }, elementPlus: { - name: "element-plus", + name: "elementPlus", test: /[\\/]node_modules[\\/]element-plus[\\/]/, - priority: 2, - }, - three: { - name: "three", - test: /[\\/]node_modules[\\/]three[\\/]/, - priority: 3, + priority: 19, }, }, },