New file |
| | |
| | | # Logs |
| | | logs |
| | | *.log |
| | | npm-debug.log* |
| | | yarn-debug.log* |
| | | yarn-error.log* |
| | | pnpm-debug.log* |
| | | lerna-debug.log* |
| | | |
| | | node_modules |
| | | .DS_Store |
| | | dist |
| | | dist-ssr |
| | | coverage |
| | | *.local |
| | | |
| | | /cypress/videos/ |
| | | /cypress/screenshots/ |
| | | |
| | | # Editor directories and files |
| | | .vscode/* |
| | | !.vscode/extensions.json |
| | | .idea |
| | | *.suo |
| | | *.ntvs* |
| | | *.njsproj |
| | | *.sln |
| | | *.sw? |
| | | |
| | | *.tsbuildinfo |
New file |
| | |
| | | { |
| | | "recommendations": ["Vue.volar"] |
| | | } |
New file |
| | |
| | | # zy-asrs-admin |
| | | |
| | | This template should help get you started developing with Vue 3 in Vite. |
| | | |
| | | ## Recommended IDE Setup |
| | | |
| | | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). |
| | | |
| | | ## Customize configuration |
| | | |
| | | See [Vite Configuration Reference](https://vitejs.dev/config/). |
| | | |
| | | ## Project Setup |
| | | |
| | | ```sh |
| | | npm install |
| | | ``` |
| | | |
| | | ### Compile and Hot-Reload for Development |
| | | |
| | | ```sh |
| | | npm run dev |
| | | ``` |
| | | |
| | | ### Compile and Minify for Production |
| | | |
| | | ```sh |
| | | npm run build |
| | | ``` |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <link rel="icon" href="/favicon.ico"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | | <title>Vite App</title> |
| | | </head> |
| | | <body> |
| | | <div id="app"></div> |
| | | <script type="module" src="/src/main.js"></script> |
| | | </body> |
| | | </html> |
New file |
| | |
| | | { |
| | | "compilerOptions": { |
| | | "paths": { |
| | | "@/*": ["./src/*"] |
| | | } |
| | | }, |
| | | "exclude": ["node_modules", "dist"] |
| | | } |
New file |
| | |
| | | { |
| | | "name": "zy-asrs-admin", |
| | | "version": "0.0.0", |
| | | "lockfileVersion": 2, |
| | | "requires": true, |
| | | "packages": { |
| | | "": { |
| | | "name": "zy-asrs-admin", |
| | | "version": "0.0.0", |
| | | "dependencies": { |
| | | "@ant-design/icons-vue": "^7.0.1", |
| | | "@vitejs/plugin-vue-jsx": "^4.0.0", |
| | | "ant-design-vue": "^4.2.3", |
| | | "axios": "^1.7.2", |
| | | "pinia": "^2.1.7", |
| | | "vue": "^3.4.29", |
| | | "vue-router": "^4.3.3" |
| | | }, |
| | | "devDependencies": { |
| | | "@vitejs/plugin-vue": "^5.0.5", |
| | | "vite": "^5.3.1" |
| | | } |
| | | }, |
| | | "node_modules/@ampproject/remapping": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", |
| | | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", |
| | | "dependencies": { |
| | | "@jridgewell/gen-mapping": "^0.3.5", |
| | | "@jridgewell/trace-mapping": "^0.3.24" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@ant-design/colors": { |
| | | "version": "6.0.0", |
| | | "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", |
| | | "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", |
| | | "dependencies": { |
| | | "@ctrl/tinycolor": "^3.4.0" |
| | | } |
| | | }, |
| | | "node_modules/@ant-design/icons-svg": { |
| | | "version": "4.4.2", |
| | | "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", |
| | | "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" |
| | | }, |
| | | "node_modules/@ant-design/icons-vue": { |
| | | "version": "7.0.1", |
| | | "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz", |
| | | "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==", |
| | | "dependencies": { |
| | | "@ant-design/colors": "^6.0.0", |
| | | "@ant-design/icons-svg": "^4.2.1" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": ">=3.0.3" |
| | | } |
| | | }, |
| | | "node_modules/@babel/code-frame": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", |
| | | "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", |
| | | "dependencies": { |
| | | "@babel/highlight": "^7.24.7", |
| | | "picocolors": "^1.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/compat-data": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", |
| | | "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/core": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", |
| | | "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", |
| | | "dependencies": { |
| | | "@ampproject/remapping": "^2.2.0", |
| | | "@babel/code-frame": "^7.24.7", |
| | | "@babel/generator": "^7.24.7", |
| | | "@babel/helper-compilation-targets": "^7.24.7", |
| | | "@babel/helper-module-transforms": "^7.24.7", |
| | | "@babel/helpers": "^7.24.7", |
| | | "@babel/parser": "^7.24.7", |
| | | "@babel/template": "^7.24.7", |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7", |
| | | "convert-source-map": "^2.0.0", |
| | | "debug": "^4.1.0", |
| | | "gensync": "^1.0.0-beta.2", |
| | | "json5": "^2.2.3", |
| | | "semver": "^6.3.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "funding": { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/babel" |
| | | } |
| | | }, |
| | | "node_modules/@babel/generator": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", |
| | | "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.24.7", |
| | | "@jridgewell/gen-mapping": "^0.3.5", |
| | | "@jridgewell/trace-mapping": "^0.3.25", |
| | | "jsesc": "^2.5.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-annotate-as-pure": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", |
| | | "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-compilation-targets": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", |
| | | "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", |
| | | "dependencies": { |
| | | "@babel/compat-data": "^7.24.7", |
| | | "@babel/helper-validator-option": "^7.24.7", |
| | | "browserslist": "^4.22.2", |
| | | "lru-cache": "^5.1.1", |
| | | "semver": "^6.3.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-create-class-features-plugin": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", |
| | | "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", |
| | | "dependencies": { |
| | | "@babel/helper-annotate-as-pure": "^7.24.7", |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-function-name": "^7.24.7", |
| | | "@babel/helper-member-expression-to-functions": "^7.24.7", |
| | | "@babel/helper-optimise-call-expression": "^7.24.7", |
| | | "@babel/helper-replace-supers": "^7.24.7", |
| | | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", |
| | | "@babel/helper-split-export-declaration": "^7.24.7", |
| | | "semver": "^6.3.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-environment-visitor": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", |
| | | "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-function-name": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", |
| | | "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", |
| | | "dependencies": { |
| | | "@babel/template": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-hoist-variables": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", |
| | | "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-member-expression-to-functions": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", |
| | | "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", |
| | | "dependencies": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-module-imports": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", |
| | | "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", |
| | | "dependencies": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-module-transforms": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", |
| | | "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", |
| | | "dependencies": { |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-module-imports": "^7.24.7", |
| | | "@babel/helper-simple-access": "^7.24.7", |
| | | "@babel/helper-split-export-declaration": "^7.24.7", |
| | | "@babel/helper-validator-identifier": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-optimise-call-expression": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", |
| | | "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-plugin-utils": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", |
| | | "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-replace-supers": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", |
| | | "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", |
| | | "dependencies": { |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-member-expression-to-functions": "^7.24.7", |
| | | "@babel/helper-optimise-call-expression": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-simple-access": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", |
| | | "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", |
| | | "dependencies": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-skip-transparent-expression-wrappers": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", |
| | | "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", |
| | | "dependencies": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-split-export-declaration": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", |
| | | "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-string-parser": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", |
| | | "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-validator-identifier": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", |
| | | "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helper-validator-option": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", |
| | | "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/helpers": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", |
| | | "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", |
| | | "dependencies": { |
| | | "@babel/template": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/highlight": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", |
| | | "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", |
| | | "dependencies": { |
| | | "@babel/helper-validator-identifier": "^7.24.7", |
| | | "chalk": "^2.4.2", |
| | | "js-tokens": "^4.0.0", |
| | | "picocolors": "^1.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/parser": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", |
| | | "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", |
| | | "bin": { |
| | | "parser": "bin/babel-parser.js" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/plugin-syntax-jsx": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", |
| | | "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", |
| | | "dependencies": { |
| | | "@babel/helper-plugin-utils": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0-0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/plugin-syntax-typescript": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", |
| | | "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", |
| | | "dependencies": { |
| | | "@babel/helper-plugin-utils": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0-0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/plugin-transform-typescript": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", |
| | | "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", |
| | | "dependencies": { |
| | | "@babel/helper-annotate-as-pure": "^7.24.7", |
| | | "@babel/helper-create-class-features-plugin": "^7.24.7", |
| | | "@babel/helper-plugin-utils": "^7.24.7", |
| | | "@babel/plugin-syntax-typescript": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0-0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/runtime": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", |
| | | "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", |
| | | "dependencies": { |
| | | "regenerator-runtime": "^0.14.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/template": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", |
| | | "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", |
| | | "dependencies": { |
| | | "@babel/code-frame": "^7.24.7", |
| | | "@babel/parser": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/traverse": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", |
| | | "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", |
| | | "dependencies": { |
| | | "@babel/code-frame": "^7.24.7", |
| | | "@babel/generator": "^7.24.7", |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-function-name": "^7.24.7", |
| | | "@babel/helper-hoist-variables": "^7.24.7", |
| | | "@babel/helper-split-export-declaration": "^7.24.7", |
| | | "@babel/parser": "^7.24.7", |
| | | "@babel/types": "^7.24.7", |
| | | "debug": "^4.3.1", |
| | | "globals": "^11.1.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@babel/types": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", |
| | | "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", |
| | | "dependencies": { |
| | | "@babel/helper-string-parser": "^7.24.7", |
| | | "@babel/helper-validator-identifier": "^7.24.7", |
| | | "to-fast-properties": "^2.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@ctrl/tinycolor": { |
| | | "version": "3.6.1", |
| | | "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", |
| | | "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", |
| | | "engines": { |
| | | "node": ">=10" |
| | | } |
| | | }, |
| | | "node_modules/@emotion/hash": { |
| | | "version": "0.9.1", |
| | | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", |
| | | "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" |
| | | }, |
| | | "node_modules/@emotion/unitless": { |
| | | "version": "0.8.1", |
| | | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", |
| | | "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" |
| | | }, |
| | | "node_modules/@esbuild/aix-ppc64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", |
| | | "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", |
| | | "cpu": [ |
| | | "ppc64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "aix" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/android-arm": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", |
| | | "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", |
| | | "cpu": [ |
| | | "arm" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "android" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/android-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "android" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/android-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", |
| | | "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "android" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/darwin-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "darwin" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/darwin-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", |
| | | "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "darwin" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/freebsd-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "freebsd" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/freebsd-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", |
| | | "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "freebsd" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-arm": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", |
| | | "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", |
| | | "cpu": [ |
| | | "arm" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-ia32": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", |
| | | "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", |
| | | "cpu": [ |
| | | "ia32" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-loong64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", |
| | | "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", |
| | | "cpu": [ |
| | | "loong64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-mips64el": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", |
| | | "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", |
| | | "cpu": [ |
| | | "mips64el" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-ppc64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", |
| | | "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", |
| | | "cpu": [ |
| | | "ppc64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-riscv64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", |
| | | "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", |
| | | "cpu": [ |
| | | "riscv64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-s390x": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", |
| | | "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", |
| | | "cpu": [ |
| | | "s390x" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/linux-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", |
| | | "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/netbsd-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", |
| | | "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "netbsd" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/openbsd-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", |
| | | "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "openbsd" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/sunos-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", |
| | | "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "sunos" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/win32-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "win32" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/win32-ia32": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", |
| | | "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", |
| | | "cpu": [ |
| | | "ia32" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "win32" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@esbuild/win32-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", |
| | | "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "win32" |
| | | ], |
| | | "engines": { |
| | | "node": ">=12" |
| | | } |
| | | }, |
| | | "node_modules/@jridgewell/gen-mapping": { |
| | | "version": "0.3.5", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", |
| | | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", |
| | | "dependencies": { |
| | | "@jridgewell/set-array": "^1.2.1", |
| | | "@jridgewell/sourcemap-codec": "^1.4.10", |
| | | "@jridgewell/trace-mapping": "^0.3.24" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@jridgewell/resolve-uri": { |
| | | "version": "3.1.2", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", |
| | | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", |
| | | "engines": { |
| | | "node": ">=6.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@jridgewell/set-array": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", |
| | | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", |
| | | "engines": { |
| | | "node": ">=6.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@jridgewell/sourcemap-codec": { |
| | | "version": "1.4.15", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", |
| | | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" |
| | | }, |
| | | "node_modules/@jridgewell/trace-mapping": { |
| | | "version": "0.3.25", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", |
| | | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", |
| | | "dependencies": { |
| | | "@jridgewell/resolve-uri": "^3.1.0", |
| | | "@jridgewell/sourcemap-codec": "^1.4.14" |
| | | } |
| | | }, |
| | | "node_modules/@rollup/rollup-android-arm-eabi": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", |
| | | "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", |
| | | "cpu": [ |
| | | "arm" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "android" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-android-arm64": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", |
| | | "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "android" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-darwin-arm64": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", |
| | | "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "darwin" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-darwin-x64": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", |
| | | "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "darwin" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", |
| | | "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", |
| | | "cpu": [ |
| | | "arm" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-arm-musleabihf": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", |
| | | "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", |
| | | "cpu": [ |
| | | "arm" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-arm64-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-arm64-musl": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", |
| | | "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", |
| | | "cpu": [ |
| | | "ppc64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-riscv64-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", |
| | | "cpu": [ |
| | | "riscv64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-s390x-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", |
| | | "cpu": [ |
| | | "s390x" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-x64-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-linux-x64-musl": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", |
| | | "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "linux" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-win32-arm64-msvc": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", |
| | | "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", |
| | | "cpu": [ |
| | | "arm64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "win32" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-win32-ia32-msvc": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", |
| | | "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", |
| | | "cpu": [ |
| | | "ia32" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "win32" |
| | | ] |
| | | }, |
| | | "node_modules/@rollup/rollup-win32-x64-msvc": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", |
| | | "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", |
| | | "cpu": [ |
| | | "x64" |
| | | ], |
| | | "optional": true, |
| | | "os": [ |
| | | "win32" |
| | | ] |
| | | }, |
| | | "node_modules/@simonwep/pickr": { |
| | | "version": "1.8.2", |
| | | "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz", |
| | | "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", |
| | | "dependencies": { |
| | | "core-js": "^3.15.1", |
| | | "nanopop": "^2.1.0" |
| | | } |
| | | }, |
| | | "node_modules/@types/estree": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", |
| | | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" |
| | | }, |
| | | "node_modules/@vitejs/plugin-vue": { |
| | | "version": "5.0.5", |
| | | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", |
| | | "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", |
| | | "dev": true, |
| | | "engines": { |
| | | "node": "^18.0.0 || >=20.0.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "vite": "^5.0.0", |
| | | "vue": "^3.2.25" |
| | | } |
| | | }, |
| | | "node_modules/@vitejs/plugin-vue-jsx": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-4.0.0.tgz", |
| | | "integrity": "sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==", |
| | | "dependencies": { |
| | | "@babel/core": "^7.24.6", |
| | | "@babel/plugin-transform-typescript": "^7.24.6", |
| | | "@vue/babel-plugin-jsx": "^1.2.2" |
| | | }, |
| | | "engines": { |
| | | "node": "^18.0.0 || >=20.0.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "vite": "^5.0.0", |
| | | "vue": "^3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@vue/babel-helper-vue-transform-on": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", |
| | | "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==" |
| | | }, |
| | | "node_modules/@vue/babel-plugin-jsx": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", |
| | | "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", |
| | | "dependencies": { |
| | | "@babel/helper-module-imports": "~7.22.15", |
| | | "@babel/helper-plugin-utils": "^7.22.5", |
| | | "@babel/plugin-syntax-jsx": "^7.23.3", |
| | | "@babel/template": "^7.23.9", |
| | | "@babel/traverse": "^7.23.9", |
| | | "@babel/types": "^7.23.9", |
| | | "@vue/babel-helper-vue-transform-on": "1.2.2", |
| | | "@vue/babel-plugin-resolve-type": "1.2.2", |
| | | "camelcase": "^6.3.0", |
| | | "html-tags": "^3.3.1", |
| | | "svg-tags": "^1.0.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0-0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "@babel/core": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { |
| | | "version": "7.22.15", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", |
| | | "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.22.15" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@vue/babel-plugin-resolve-type": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", |
| | | "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", |
| | | "dependencies": { |
| | | "@babel/code-frame": "^7.23.5", |
| | | "@babel/helper-module-imports": "~7.22.15", |
| | | "@babel/helper-plugin-utils": "^7.22.5", |
| | | "@babel/parser": "^7.23.9", |
| | | "@vue/compiler-sfc": "^3.4.15" |
| | | }, |
| | | "peerDependencies": { |
| | | "@babel/core": "^7.0.0-0" |
| | | } |
| | | }, |
| | | "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { |
| | | "version": "7.22.15", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", |
| | | "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", |
| | | "dependencies": { |
| | | "@babel/types": "^7.22.15" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@vue/compiler-core": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.30.tgz", |
| | | "integrity": "sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==", |
| | | "dependencies": { |
| | | "@babel/parser": "^7.24.7", |
| | | "@vue/shared": "3.4.30", |
| | | "entities": "^4.5.0", |
| | | "estree-walker": "^2.0.2", |
| | | "source-map-js": "^1.2.0" |
| | | } |
| | | }, |
| | | "node_modules/@vue/compiler-dom": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.30.tgz", |
| | | "integrity": "sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==", |
| | | "dependencies": { |
| | | "@vue/compiler-core": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "node_modules/@vue/compiler-sfc": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.30.tgz", |
| | | "integrity": "sha512-8vElKklHn/UY8+FgUFlQrYAPbtiSB2zcgeRKW7HkpSRn/JjMRmZvuOtwDx036D1aqKNSTtXkWRfqx53Qb+HmMg==", |
| | | "dependencies": { |
| | | "@babel/parser": "^7.24.7", |
| | | "@vue/compiler-core": "3.4.30", |
| | | "@vue/compiler-dom": "3.4.30", |
| | | "@vue/compiler-ssr": "3.4.30", |
| | | "@vue/shared": "3.4.30", |
| | | "estree-walker": "^2.0.2", |
| | | "magic-string": "^0.30.10", |
| | | "postcss": "^8.4.38", |
| | | "source-map-js": "^1.2.0" |
| | | } |
| | | }, |
| | | "node_modules/@vue/compiler-ssr": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.30.tgz", |
| | | "integrity": "sha512-ZJ56YZGXJDd6jky4mmM0rNaNP6kIbQu9LTKZDhcpddGe/3QIalB1WHHmZ6iZfFNyj5mSypTa4+qDJa5VIuxMSg==", |
| | | "dependencies": { |
| | | "@vue/compiler-dom": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "node_modules/@vue/devtools-api": { |
| | | "version": "6.6.3", |
| | | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", |
| | | "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" |
| | | }, |
| | | "node_modules/@vue/reactivity": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.30.tgz", |
| | | "integrity": "sha512-bVJurnCe3LS0JII8PPoAA63Zd2MBzcKrEzwdQl92eHCcxtIbxD2fhNwJpa+KkM3Y/A4T5FUnmdhgKwOf6BfbcA==", |
| | | "dependencies": { |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "node_modules/@vue/runtime-core": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.30.tgz", |
| | | "integrity": "sha512-qaFEbnNpGz+tlnkaualomogzN8vBLkgzK55uuWjYXbYn039eOBZrWxyXWq/7qh9Bz2FPifZqGjVDl/FXiq9L2g==", |
| | | "dependencies": { |
| | | "@vue/reactivity": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "node_modules/@vue/runtime-dom": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.30.tgz", |
| | | "integrity": "sha512-tV6B4YiZRj5QsaJgw2THCy5C1H+2UeywO9tqgWEc21tn85qHEERndHN/CxlyXvSBFrpmlexCIdnqPuR9RM9thw==", |
| | | "dependencies": { |
| | | "@vue/reactivity": "3.4.30", |
| | | "@vue/runtime-core": "3.4.30", |
| | | "@vue/shared": "3.4.30", |
| | | "csstype": "^3.1.3" |
| | | } |
| | | }, |
| | | "node_modules/@vue/server-renderer": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.30.tgz", |
| | | "integrity": "sha512-TBD3eqR1DeDc0cMrXS/vEs/PWzq1uXxnvjoqQuDGFIEHFIwuDTX/KWAQKIBjyMWLFHEeTDGYVsYci85z2UbTDg==", |
| | | "dependencies": { |
| | | "@vue/compiler-ssr": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": "3.4.30" |
| | | } |
| | | }, |
| | | "node_modules/@vue/shared": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.30.tgz", |
| | | "integrity": "sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==" |
| | | }, |
| | | "node_modules/ansi-styles": { |
| | | "version": "3.2.1", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", |
| | | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", |
| | | "dependencies": { |
| | | "color-convert": "^1.9.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/ant-design-vue": { |
| | | "version": "4.2.3", |
| | | "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-4.2.3.tgz", |
| | | "integrity": "sha512-kqGyWvZtFlSInFP93Ow6wS8LzEsxxUgpI+ZY5jQQkuX8WAcqdwXCA7IcHMpECW6JB89DZMo2Bw85jUg2SjlgQA==", |
| | | "dependencies": { |
| | | "@ant-design/colors": "^6.0.0", |
| | | "@ant-design/icons-vue": "^7.0.0", |
| | | "@babel/runtime": "^7.10.5", |
| | | "@ctrl/tinycolor": "^3.5.0", |
| | | "@emotion/hash": "^0.9.0", |
| | | "@emotion/unitless": "^0.8.0", |
| | | "@simonwep/pickr": "~1.8.0", |
| | | "array-tree-filter": "^2.1.0", |
| | | "async-validator": "^4.0.0", |
| | | "csstype": "^3.1.1", |
| | | "dayjs": "^1.10.5", |
| | | "dom-align": "^1.12.1", |
| | | "dom-scroll-into-view": "^2.0.0", |
| | | "lodash": "^4.17.21", |
| | | "lodash-es": "^4.17.15", |
| | | "resize-observer-polyfill": "^1.5.1", |
| | | "scroll-into-view-if-needed": "^2.2.25", |
| | | "shallow-equal": "^1.0.0", |
| | | "stylis": "^4.1.3", |
| | | "throttle-debounce": "^5.0.0", |
| | | "vue-types": "^3.0.0", |
| | | "warning": "^4.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=12.22.0" |
| | | }, |
| | | "funding": { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/ant-design-vue" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": ">=3.2.0" |
| | | } |
| | | }, |
| | | "node_modules/array-tree-filter": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", |
| | | "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" |
| | | }, |
| | | "node_modules/async-validator": { |
| | | "version": "4.2.5", |
| | | "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", |
| | | "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" |
| | | }, |
| | | "node_modules/asynckit": { |
| | | "version": "0.4.0", |
| | | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |
| | | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" |
| | | }, |
| | | "node_modules/axios": { |
| | | "version": "1.7.2", |
| | | "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", |
| | | "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", |
| | | "dependencies": { |
| | | "follow-redirects": "^1.15.6", |
| | | "form-data": "^4.0.0", |
| | | "proxy-from-env": "^1.1.0" |
| | | } |
| | | }, |
| | | "node_modules/browserslist": { |
| | | "version": "4.23.1", |
| | | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", |
| | | "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", |
| | | "funding": [ |
| | | { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/browserslist" |
| | | }, |
| | | { |
| | | "type": "tidelift", |
| | | "url": "https://tidelift.com/funding/github/npm/browserslist" |
| | | }, |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/ai" |
| | | } |
| | | ], |
| | | "dependencies": { |
| | | "caniuse-lite": "^1.0.30001629", |
| | | "electron-to-chromium": "^1.4.796", |
| | | "node-releases": "^2.0.14", |
| | | "update-browserslist-db": "^1.0.16" |
| | | }, |
| | | "bin": { |
| | | "browserslist": "cli.js" |
| | | }, |
| | | "engines": { |
| | | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" |
| | | } |
| | | }, |
| | | "node_modules/camelcase": { |
| | | "version": "6.3.0", |
| | | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", |
| | | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", |
| | | "engines": { |
| | | "node": ">=10" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/caniuse-lite": { |
| | | "version": "1.0.30001638", |
| | | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001638.tgz", |
| | | "integrity": "sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==", |
| | | "funding": [ |
| | | { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/browserslist" |
| | | }, |
| | | { |
| | | "type": "tidelift", |
| | | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" |
| | | }, |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/ai" |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/chalk": { |
| | | "version": "2.4.2", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
| | | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", |
| | | "dependencies": { |
| | | "ansi-styles": "^3.2.1", |
| | | "escape-string-regexp": "^1.0.5", |
| | | "supports-color": "^5.3.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/color-convert": { |
| | | "version": "1.9.3", |
| | | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
| | | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", |
| | | "dependencies": { |
| | | "color-name": "1.1.3" |
| | | } |
| | | }, |
| | | "node_modules/color-name": { |
| | | "version": "1.1.3", |
| | | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", |
| | | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" |
| | | }, |
| | | "node_modules/combined-stream": { |
| | | "version": "1.0.8", |
| | | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", |
| | | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", |
| | | "dependencies": { |
| | | "delayed-stream": "~1.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 0.8" |
| | | } |
| | | }, |
| | | "node_modules/compute-scroll-into-view": { |
| | | "version": "1.0.20", |
| | | "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", |
| | | "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" |
| | | }, |
| | | "node_modules/convert-source-map": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", |
| | | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" |
| | | }, |
| | | "node_modules/core-js": { |
| | | "version": "3.37.1", |
| | | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", |
| | | "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", |
| | | "hasInstallScript": true, |
| | | "funding": { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/core-js" |
| | | } |
| | | }, |
| | | "node_modules/csstype": { |
| | | "version": "3.1.3", |
| | | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", |
| | | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" |
| | | }, |
| | | "node_modules/dayjs": { |
| | | "version": "1.11.11", |
| | | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", |
| | | "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" |
| | | }, |
| | | "node_modules/debug": { |
| | | "version": "4.3.5", |
| | | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", |
| | | "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", |
| | | "dependencies": { |
| | | "ms": "2.1.2" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "supports-color": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/delayed-stream": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
| | | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", |
| | | "engines": { |
| | | "node": ">=0.4.0" |
| | | } |
| | | }, |
| | | "node_modules/dom-align": { |
| | | "version": "1.12.4", |
| | | "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz", |
| | | "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==" |
| | | }, |
| | | "node_modules/dom-scroll-into-view": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", |
| | | "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" |
| | | }, |
| | | "node_modules/electron-to-chromium": { |
| | | "version": "1.4.812", |
| | | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz", |
| | | "integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==" |
| | | }, |
| | | "node_modules/entities": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", |
| | | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", |
| | | "engines": { |
| | | "node": ">=0.12" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/fb55/entities?sponsor=1" |
| | | } |
| | | }, |
| | | "node_modules/esbuild": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", |
| | | "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", |
| | | "hasInstallScript": true, |
| | | "bin": { |
| | | "esbuild": "bin/esbuild" |
| | | }, |
| | | "engines": { |
| | | "node": ">=12" |
| | | }, |
| | | "optionalDependencies": { |
| | | "@esbuild/aix-ppc64": "0.21.5", |
| | | "@esbuild/android-arm": "0.21.5", |
| | | "@esbuild/android-arm64": "0.21.5", |
| | | "@esbuild/android-x64": "0.21.5", |
| | | "@esbuild/darwin-arm64": "0.21.5", |
| | | "@esbuild/darwin-x64": "0.21.5", |
| | | "@esbuild/freebsd-arm64": "0.21.5", |
| | | "@esbuild/freebsd-x64": "0.21.5", |
| | | "@esbuild/linux-arm": "0.21.5", |
| | | "@esbuild/linux-arm64": "0.21.5", |
| | | "@esbuild/linux-ia32": "0.21.5", |
| | | "@esbuild/linux-loong64": "0.21.5", |
| | | "@esbuild/linux-mips64el": "0.21.5", |
| | | "@esbuild/linux-ppc64": "0.21.5", |
| | | "@esbuild/linux-riscv64": "0.21.5", |
| | | "@esbuild/linux-s390x": "0.21.5", |
| | | "@esbuild/linux-x64": "0.21.5", |
| | | "@esbuild/netbsd-x64": "0.21.5", |
| | | "@esbuild/openbsd-x64": "0.21.5", |
| | | "@esbuild/sunos-x64": "0.21.5", |
| | | "@esbuild/win32-arm64": "0.21.5", |
| | | "@esbuild/win32-ia32": "0.21.5", |
| | | "@esbuild/win32-x64": "0.21.5" |
| | | } |
| | | }, |
| | | "node_modules/escalade": { |
| | | "version": "3.1.2", |
| | | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", |
| | | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", |
| | | "engines": { |
| | | "node": ">=6" |
| | | } |
| | | }, |
| | | "node_modules/escape-string-regexp": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", |
| | | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", |
| | | "engines": { |
| | | "node": ">=0.8.0" |
| | | } |
| | | }, |
| | | "node_modules/estree-walker": { |
| | | "version": "2.0.2", |
| | | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", |
| | | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
| | | }, |
| | | "node_modules/follow-redirects": { |
| | | "version": "1.15.6", |
| | | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", |
| | | "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", |
| | | "funding": [ |
| | | { |
| | | "type": "individual", |
| | | "url": "https://github.com/sponsors/RubenVerborgh" |
| | | } |
| | | ], |
| | | "engines": { |
| | | "node": ">=4.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "debug": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/form-data": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", |
| | | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", |
| | | "dependencies": { |
| | | "asynckit": "^0.4.0", |
| | | "combined-stream": "^1.0.8", |
| | | "mime-types": "^2.1.12" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 6" |
| | | } |
| | | }, |
| | | "node_modules/fsevents": { |
| | | "version": "2.3.3", |
| | | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", |
| | | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", |
| | | "hasInstallScript": true, |
| | | "optional": true, |
| | | "os": [ |
| | | "darwin" |
| | | ], |
| | | "engines": { |
| | | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" |
| | | } |
| | | }, |
| | | "node_modules/gensync": { |
| | | "version": "1.0.0-beta.2", |
| | | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", |
| | | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/globals": { |
| | | "version": "11.12.0", |
| | | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", |
| | | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/has-flag": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
| | | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/html-tags": { |
| | | "version": "3.3.1", |
| | | "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", |
| | | "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", |
| | | "engines": { |
| | | "node": ">=8" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/is-plain-object": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", |
| | | "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", |
| | | "engines": { |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/js-tokens": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
| | | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" |
| | | }, |
| | | "node_modules/jsesc": { |
| | | "version": "2.5.2", |
| | | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", |
| | | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", |
| | | "bin": { |
| | | "jsesc": "bin/jsesc" |
| | | }, |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/json5": { |
| | | "version": "2.2.3", |
| | | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", |
| | | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", |
| | | "bin": { |
| | | "json5": "lib/cli.js" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6" |
| | | } |
| | | }, |
| | | "node_modules/lodash": { |
| | | "version": "4.17.21", |
| | | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", |
| | | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" |
| | | }, |
| | | "node_modules/lodash-es": { |
| | | "version": "4.17.21", |
| | | "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", |
| | | "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" |
| | | }, |
| | | "node_modules/loose-envify": { |
| | | "version": "1.4.0", |
| | | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", |
| | | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", |
| | | "dependencies": { |
| | | "js-tokens": "^3.0.0 || ^4.0.0" |
| | | }, |
| | | "bin": { |
| | | "loose-envify": "cli.js" |
| | | } |
| | | }, |
| | | "node_modules/lru-cache": { |
| | | "version": "5.1.1", |
| | | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", |
| | | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", |
| | | "dependencies": { |
| | | "yallist": "^3.0.2" |
| | | } |
| | | }, |
| | | "node_modules/magic-string": { |
| | | "version": "0.30.10", |
| | | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", |
| | | "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", |
| | | "dependencies": { |
| | | "@jridgewell/sourcemap-codec": "^1.4.15" |
| | | } |
| | | }, |
| | | "node_modules/mime-db": { |
| | | "version": "1.52.0", |
| | | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", |
| | | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", |
| | | "engines": { |
| | | "node": ">= 0.6" |
| | | } |
| | | }, |
| | | "node_modules/mime-types": { |
| | | "version": "2.1.35", |
| | | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", |
| | | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", |
| | | "dependencies": { |
| | | "mime-db": "1.52.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 0.6" |
| | | } |
| | | }, |
| | | "node_modules/ms": { |
| | | "version": "2.1.2", |
| | | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", |
| | | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" |
| | | }, |
| | | "node_modules/nanoid": { |
| | | "version": "3.3.7", |
| | | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", |
| | | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/ai" |
| | | } |
| | | ], |
| | | "bin": { |
| | | "nanoid": "bin/nanoid.cjs" |
| | | }, |
| | | "engines": { |
| | | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" |
| | | } |
| | | }, |
| | | "node_modules/nanopop": { |
| | | "version": "2.4.2", |
| | | "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.4.2.tgz", |
| | | "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==" |
| | | }, |
| | | "node_modules/node-releases": { |
| | | "version": "2.0.14", |
| | | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", |
| | | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" |
| | | }, |
| | | "node_modules/picocolors": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", |
| | | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" |
| | | }, |
| | | "node_modules/pinia": { |
| | | "version": "2.1.7", |
| | | "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", |
| | | "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", |
| | | "dependencies": { |
| | | "@vue/devtools-api": "^6.5.0", |
| | | "vue-demi": ">=0.14.5" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/posva" |
| | | }, |
| | | "peerDependencies": { |
| | | "@vue/composition-api": "^1.4.0", |
| | | "typescript": ">=4.4.4", |
| | | "vue": "^2.6.14 || ^3.3.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "@vue/composition-api": { |
| | | "optional": true |
| | | }, |
| | | "typescript": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/pinia/node_modules/vue-demi": { |
| | | "version": "0.14.8", |
| | | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", |
| | | "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", |
| | | "hasInstallScript": true, |
| | | "bin": { |
| | | "vue-demi-fix": "bin/vue-demi-fix.js", |
| | | "vue-demi-switch": "bin/vue-demi-switch.js" |
| | | }, |
| | | "engines": { |
| | | "node": ">=12" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/antfu" |
| | | }, |
| | | "peerDependencies": { |
| | | "@vue/composition-api": "^1.0.0-rc.1", |
| | | "vue": "^3.0.0-0 || ^2.6.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "@vue/composition-api": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/postcss": { |
| | | "version": "8.4.38", |
| | | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", |
| | | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", |
| | | "funding": [ |
| | | { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/postcss/" |
| | | }, |
| | | { |
| | | "type": "tidelift", |
| | | "url": "https://tidelift.com/funding/github/npm/postcss" |
| | | }, |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/ai" |
| | | } |
| | | ], |
| | | "dependencies": { |
| | | "nanoid": "^3.3.7", |
| | | "picocolors": "^1.0.0", |
| | | "source-map-js": "^1.2.0" |
| | | }, |
| | | "engines": { |
| | | "node": "^10 || ^12 || >=14" |
| | | } |
| | | }, |
| | | "node_modules/proxy-from-env": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", |
| | | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" |
| | | }, |
| | | "node_modules/regenerator-runtime": { |
| | | "version": "0.14.1", |
| | | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", |
| | | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" |
| | | }, |
| | | "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/rollup": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", |
| | | "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", |
| | | "dependencies": { |
| | | "@types/estree": "1.0.5" |
| | | }, |
| | | "bin": { |
| | | "rollup": "dist/bin/rollup" |
| | | }, |
| | | "engines": { |
| | | "node": ">=18.0.0", |
| | | "npm": ">=8.0.0" |
| | | }, |
| | | "optionalDependencies": { |
| | | "@rollup/rollup-android-arm-eabi": "4.18.0", |
| | | "@rollup/rollup-android-arm64": "4.18.0", |
| | | "@rollup/rollup-darwin-arm64": "4.18.0", |
| | | "@rollup/rollup-darwin-x64": "4.18.0", |
| | | "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", |
| | | "@rollup/rollup-linux-arm-musleabihf": "4.18.0", |
| | | "@rollup/rollup-linux-arm64-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-arm64-musl": "4.18.0", |
| | | "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-riscv64-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-s390x-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-x64-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-x64-musl": "4.18.0", |
| | | "@rollup/rollup-win32-arm64-msvc": "4.18.0", |
| | | "@rollup/rollup-win32-ia32-msvc": "4.18.0", |
| | | "@rollup/rollup-win32-x64-msvc": "4.18.0", |
| | | "fsevents": "~2.3.2" |
| | | } |
| | | }, |
| | | "node_modules/scroll-into-view-if-needed": { |
| | | "version": "2.2.31", |
| | | "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", |
| | | "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", |
| | | "dependencies": { |
| | | "compute-scroll-into-view": "^1.0.20" |
| | | } |
| | | }, |
| | | "node_modules/semver": { |
| | | "version": "6.3.1", |
| | | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", |
| | | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", |
| | | "bin": { |
| | | "semver": "bin/semver.js" |
| | | } |
| | | }, |
| | | "node_modules/shallow-equal": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", |
| | | "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" |
| | | }, |
| | | "node_modules/source-map-js": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", |
| | | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", |
| | | "engines": { |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/stylis": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", |
| | | "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" |
| | | }, |
| | | "node_modules/supports-color": { |
| | | "version": "5.5.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", |
| | | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", |
| | | "dependencies": { |
| | | "has-flag": "^3.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/svg-tags": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", |
| | | "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==" |
| | | }, |
| | | "node_modules/throttle-debounce": { |
| | | "version": "5.0.2", |
| | | "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", |
| | | "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", |
| | | "engines": { |
| | | "node": ">=12.22" |
| | | } |
| | | }, |
| | | "node_modules/to-fast-properties": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", |
| | | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", |
| | | "engines": { |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/update-browserslist-db": { |
| | | "version": "1.0.16", |
| | | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", |
| | | "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", |
| | | "funding": [ |
| | | { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/browserslist" |
| | | }, |
| | | { |
| | | "type": "tidelift", |
| | | "url": "https://tidelift.com/funding/github/npm/browserslist" |
| | | }, |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/ai" |
| | | } |
| | | ], |
| | | "dependencies": { |
| | | "escalade": "^3.1.2", |
| | | "picocolors": "^1.0.1" |
| | | }, |
| | | "bin": { |
| | | "update-browserslist-db": "cli.js" |
| | | }, |
| | | "peerDependencies": { |
| | | "browserslist": ">= 4.21.0" |
| | | } |
| | | }, |
| | | "node_modules/vite": { |
| | | "version": "5.3.1", |
| | | "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", |
| | | "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", |
| | | "dependencies": { |
| | | "esbuild": "^0.21.3", |
| | | "postcss": "^8.4.38", |
| | | "rollup": "^4.13.0" |
| | | }, |
| | | "bin": { |
| | | "vite": "bin/vite.js" |
| | | }, |
| | | "engines": { |
| | | "node": "^18.0.0 || >=20.0.0" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/vitejs/vite?sponsor=1" |
| | | }, |
| | | "optionalDependencies": { |
| | | "fsevents": "~2.3.3" |
| | | }, |
| | | "peerDependencies": { |
| | | "@types/node": "^18.0.0 || >=20.0.0", |
| | | "less": "*", |
| | | "lightningcss": "^1.21.0", |
| | | "sass": "*", |
| | | "stylus": "*", |
| | | "sugarss": "*", |
| | | "terser": "^5.4.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "@types/node": { |
| | | "optional": true |
| | | }, |
| | | "less": { |
| | | "optional": true |
| | | }, |
| | | "lightningcss": { |
| | | "optional": true |
| | | }, |
| | | "sass": { |
| | | "optional": true |
| | | }, |
| | | "stylus": { |
| | | "optional": true |
| | | }, |
| | | "sugarss": { |
| | | "optional": true |
| | | }, |
| | | "terser": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/vue": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.30.tgz", |
| | | "integrity": "sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==", |
| | | "dependencies": { |
| | | "@vue/compiler-dom": "3.4.30", |
| | | "@vue/compiler-sfc": "3.4.30", |
| | | "@vue/runtime-dom": "3.4.30", |
| | | "@vue/server-renderer": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | }, |
| | | "peerDependencies": { |
| | | "typescript": "*" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "typescript": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/vue-router": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.0.tgz", |
| | | "integrity": "sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==", |
| | | "dependencies": { |
| | | "@vue/devtools-api": "^6.5.1" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/posva" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": "^3.2.0" |
| | | } |
| | | }, |
| | | "node_modules/vue-types": { |
| | | "version": "3.0.2", |
| | | "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz", |
| | | "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", |
| | | "dependencies": { |
| | | "is-plain-object": "3.0.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=10.15.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": "^3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/warning": { |
| | | "version": "4.0.3", |
| | | "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", |
| | | "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", |
| | | "dependencies": { |
| | | "loose-envify": "^1.0.0" |
| | | } |
| | | }, |
| | | "node_modules/yallist": { |
| | | "version": "3.1.1", |
| | | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", |
| | | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" |
| | | } |
| | | }, |
| | | "dependencies": { |
| | | "@ampproject/remapping": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", |
| | | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", |
| | | "requires": { |
| | | "@jridgewell/gen-mapping": "^0.3.5", |
| | | "@jridgewell/trace-mapping": "^0.3.24" |
| | | } |
| | | }, |
| | | "@ant-design/colors": { |
| | | "version": "6.0.0", |
| | | "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", |
| | | "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", |
| | | "requires": { |
| | | "@ctrl/tinycolor": "^3.4.0" |
| | | } |
| | | }, |
| | | "@ant-design/icons-svg": { |
| | | "version": "4.4.2", |
| | | "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", |
| | | "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" |
| | | }, |
| | | "@ant-design/icons-vue": { |
| | | "version": "7.0.1", |
| | | "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz", |
| | | "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==", |
| | | "requires": { |
| | | "@ant-design/colors": "^6.0.0", |
| | | "@ant-design/icons-svg": "^4.2.1" |
| | | } |
| | | }, |
| | | "@babel/code-frame": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", |
| | | "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", |
| | | "requires": { |
| | | "@babel/highlight": "^7.24.7", |
| | | "picocolors": "^1.0.0" |
| | | } |
| | | }, |
| | | "@babel/compat-data": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", |
| | | "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==" |
| | | }, |
| | | "@babel/core": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", |
| | | "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", |
| | | "requires": { |
| | | "@ampproject/remapping": "^2.2.0", |
| | | "@babel/code-frame": "^7.24.7", |
| | | "@babel/generator": "^7.24.7", |
| | | "@babel/helper-compilation-targets": "^7.24.7", |
| | | "@babel/helper-module-transforms": "^7.24.7", |
| | | "@babel/helpers": "^7.24.7", |
| | | "@babel/parser": "^7.24.7", |
| | | "@babel/template": "^7.24.7", |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7", |
| | | "convert-source-map": "^2.0.0", |
| | | "debug": "^4.1.0", |
| | | "gensync": "^1.0.0-beta.2", |
| | | "json5": "^2.2.3", |
| | | "semver": "^6.3.1" |
| | | } |
| | | }, |
| | | "@babel/generator": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", |
| | | "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", |
| | | "requires": { |
| | | "@babel/types": "^7.24.7", |
| | | "@jridgewell/gen-mapping": "^0.3.5", |
| | | "@jridgewell/trace-mapping": "^0.3.25", |
| | | "jsesc": "^2.5.1" |
| | | } |
| | | }, |
| | | "@babel/helper-annotate-as-pure": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", |
| | | "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", |
| | | "requires": { |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-compilation-targets": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", |
| | | "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", |
| | | "requires": { |
| | | "@babel/compat-data": "^7.24.7", |
| | | "@babel/helper-validator-option": "^7.24.7", |
| | | "browserslist": "^4.22.2", |
| | | "lru-cache": "^5.1.1", |
| | | "semver": "^6.3.1" |
| | | } |
| | | }, |
| | | "@babel/helper-create-class-features-plugin": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", |
| | | "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", |
| | | "requires": { |
| | | "@babel/helper-annotate-as-pure": "^7.24.7", |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-function-name": "^7.24.7", |
| | | "@babel/helper-member-expression-to-functions": "^7.24.7", |
| | | "@babel/helper-optimise-call-expression": "^7.24.7", |
| | | "@babel/helper-replace-supers": "^7.24.7", |
| | | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", |
| | | "@babel/helper-split-export-declaration": "^7.24.7", |
| | | "semver": "^6.3.1" |
| | | } |
| | | }, |
| | | "@babel/helper-environment-visitor": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", |
| | | "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", |
| | | "requires": { |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-function-name": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", |
| | | "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", |
| | | "requires": { |
| | | "@babel/template": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-hoist-variables": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", |
| | | "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", |
| | | "requires": { |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-member-expression-to-functions": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", |
| | | "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", |
| | | "requires": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-module-imports": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", |
| | | "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", |
| | | "requires": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-module-transforms": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", |
| | | "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", |
| | | "requires": { |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-module-imports": "^7.24.7", |
| | | "@babel/helper-simple-access": "^7.24.7", |
| | | "@babel/helper-split-export-declaration": "^7.24.7", |
| | | "@babel/helper-validator-identifier": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-optimise-call-expression": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", |
| | | "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", |
| | | "requires": { |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-plugin-utils": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", |
| | | "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==" |
| | | }, |
| | | "@babel/helper-replace-supers": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", |
| | | "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", |
| | | "requires": { |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-member-expression-to-functions": "^7.24.7", |
| | | "@babel/helper-optimise-call-expression": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-simple-access": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", |
| | | "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", |
| | | "requires": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-skip-transparent-expression-wrappers": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", |
| | | "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", |
| | | "requires": { |
| | | "@babel/traverse": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-split-export-declaration": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", |
| | | "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", |
| | | "requires": { |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/helper-string-parser": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", |
| | | "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==" |
| | | }, |
| | | "@babel/helper-validator-identifier": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", |
| | | "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==" |
| | | }, |
| | | "@babel/helper-validator-option": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", |
| | | "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==" |
| | | }, |
| | | "@babel/helpers": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", |
| | | "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", |
| | | "requires": { |
| | | "@babel/template": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/highlight": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", |
| | | "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", |
| | | "requires": { |
| | | "@babel/helper-validator-identifier": "^7.24.7", |
| | | "chalk": "^2.4.2", |
| | | "js-tokens": "^4.0.0", |
| | | "picocolors": "^1.0.0" |
| | | } |
| | | }, |
| | | "@babel/parser": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", |
| | | "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==" |
| | | }, |
| | | "@babel/plugin-syntax-jsx": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", |
| | | "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", |
| | | "requires": { |
| | | "@babel/helper-plugin-utils": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/plugin-syntax-typescript": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", |
| | | "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", |
| | | "requires": { |
| | | "@babel/helper-plugin-utils": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/plugin-transform-typescript": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", |
| | | "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", |
| | | "requires": { |
| | | "@babel/helper-annotate-as-pure": "^7.24.7", |
| | | "@babel/helper-create-class-features-plugin": "^7.24.7", |
| | | "@babel/helper-plugin-utils": "^7.24.7", |
| | | "@babel/plugin-syntax-typescript": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/runtime": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", |
| | | "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", |
| | | "requires": { |
| | | "regenerator-runtime": "^0.14.0" |
| | | } |
| | | }, |
| | | "@babel/template": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", |
| | | "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", |
| | | "requires": { |
| | | "@babel/code-frame": "^7.24.7", |
| | | "@babel/parser": "^7.24.7", |
| | | "@babel/types": "^7.24.7" |
| | | } |
| | | }, |
| | | "@babel/traverse": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", |
| | | "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", |
| | | "requires": { |
| | | "@babel/code-frame": "^7.24.7", |
| | | "@babel/generator": "^7.24.7", |
| | | "@babel/helper-environment-visitor": "^7.24.7", |
| | | "@babel/helper-function-name": "^7.24.7", |
| | | "@babel/helper-hoist-variables": "^7.24.7", |
| | | "@babel/helper-split-export-declaration": "^7.24.7", |
| | | "@babel/parser": "^7.24.7", |
| | | "@babel/types": "^7.24.7", |
| | | "debug": "^4.3.1", |
| | | "globals": "^11.1.0" |
| | | } |
| | | }, |
| | | "@babel/types": { |
| | | "version": "7.24.7", |
| | | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", |
| | | "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", |
| | | "requires": { |
| | | "@babel/helper-string-parser": "^7.24.7", |
| | | "@babel/helper-validator-identifier": "^7.24.7", |
| | | "to-fast-properties": "^2.0.0" |
| | | } |
| | | }, |
| | | "@ctrl/tinycolor": { |
| | | "version": "3.6.1", |
| | | "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", |
| | | "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" |
| | | }, |
| | | "@emotion/hash": { |
| | | "version": "0.9.1", |
| | | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", |
| | | "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" |
| | | }, |
| | | "@emotion/unitless": { |
| | | "version": "0.8.1", |
| | | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", |
| | | "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" |
| | | }, |
| | | "@esbuild/aix-ppc64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", |
| | | "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/android-arm": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", |
| | | "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/android-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/android-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", |
| | | "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/darwin-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/darwin-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", |
| | | "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/freebsd-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/freebsd-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", |
| | | "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-arm": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", |
| | | "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-ia32": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", |
| | | "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-loong64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", |
| | | "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-mips64el": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", |
| | | "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-ppc64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", |
| | | "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-riscv64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", |
| | | "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-s390x": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", |
| | | "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/linux-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", |
| | | "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/netbsd-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", |
| | | "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/openbsd-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", |
| | | "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/sunos-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", |
| | | "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/win32-arm64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", |
| | | "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/win32-ia32": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", |
| | | "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", |
| | | "optional": true |
| | | }, |
| | | "@esbuild/win32-x64": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", |
| | | "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", |
| | | "optional": true |
| | | }, |
| | | "@jridgewell/gen-mapping": { |
| | | "version": "0.3.5", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", |
| | | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", |
| | | "requires": { |
| | | "@jridgewell/set-array": "^1.2.1", |
| | | "@jridgewell/sourcemap-codec": "^1.4.10", |
| | | "@jridgewell/trace-mapping": "^0.3.24" |
| | | } |
| | | }, |
| | | "@jridgewell/resolve-uri": { |
| | | "version": "3.1.2", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", |
| | | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" |
| | | }, |
| | | "@jridgewell/set-array": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", |
| | | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" |
| | | }, |
| | | "@jridgewell/sourcemap-codec": { |
| | | "version": "1.4.15", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", |
| | | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" |
| | | }, |
| | | "@jridgewell/trace-mapping": { |
| | | "version": "0.3.25", |
| | | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", |
| | | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", |
| | | "requires": { |
| | | "@jridgewell/resolve-uri": "^3.1.0", |
| | | "@jridgewell/sourcemap-codec": "^1.4.14" |
| | | } |
| | | }, |
| | | "@rollup/rollup-android-arm-eabi": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", |
| | | "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-android-arm64": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", |
| | | "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-darwin-arm64": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", |
| | | "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-darwin-x64": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", |
| | | "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-arm-gnueabihf": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", |
| | | "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-arm-musleabihf": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", |
| | | "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-arm64-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-arm64-musl": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", |
| | | "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-powerpc64le-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-riscv64-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-s390x-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-x64-gnu": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", |
| | | "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-linux-x64-musl": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", |
| | | "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-win32-arm64-msvc": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", |
| | | "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-win32-ia32-msvc": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", |
| | | "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", |
| | | "optional": true |
| | | }, |
| | | "@rollup/rollup-win32-x64-msvc": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", |
| | | "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", |
| | | "optional": true |
| | | }, |
| | | "@simonwep/pickr": { |
| | | "version": "1.8.2", |
| | | "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz", |
| | | "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", |
| | | "requires": { |
| | | "core-js": "^3.15.1", |
| | | "nanopop": "^2.1.0" |
| | | } |
| | | }, |
| | | "@types/estree": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", |
| | | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" |
| | | }, |
| | | "@vitejs/plugin-vue": { |
| | | "version": "5.0.5", |
| | | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", |
| | | "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", |
| | | "dev": true, |
| | | "requires": {} |
| | | }, |
| | | "@vitejs/plugin-vue-jsx": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-4.0.0.tgz", |
| | | "integrity": "sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==", |
| | | "requires": { |
| | | "@babel/core": "^7.24.6", |
| | | "@babel/plugin-transform-typescript": "^7.24.6", |
| | | "@vue/babel-plugin-jsx": "^1.2.2" |
| | | } |
| | | }, |
| | | "@vue/babel-helper-vue-transform-on": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", |
| | | "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==" |
| | | }, |
| | | "@vue/babel-plugin-jsx": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", |
| | | "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", |
| | | "requires": { |
| | | "@babel/helper-module-imports": "~7.22.15", |
| | | "@babel/helper-plugin-utils": "^7.22.5", |
| | | "@babel/plugin-syntax-jsx": "^7.23.3", |
| | | "@babel/template": "^7.23.9", |
| | | "@babel/traverse": "^7.23.9", |
| | | "@babel/types": "^7.23.9", |
| | | "@vue/babel-helper-vue-transform-on": "1.2.2", |
| | | "@vue/babel-plugin-resolve-type": "1.2.2", |
| | | "camelcase": "^6.3.0", |
| | | "html-tags": "^3.3.1", |
| | | "svg-tags": "^1.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "@babel/helper-module-imports": { |
| | | "version": "7.22.15", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", |
| | | "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", |
| | | "requires": { |
| | | "@babel/types": "^7.22.15" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "@vue/babel-plugin-resolve-type": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", |
| | | "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", |
| | | "requires": { |
| | | "@babel/code-frame": "^7.23.5", |
| | | "@babel/helper-module-imports": "~7.22.15", |
| | | "@babel/helper-plugin-utils": "^7.22.5", |
| | | "@babel/parser": "^7.23.9", |
| | | "@vue/compiler-sfc": "^3.4.15" |
| | | }, |
| | | "dependencies": { |
| | | "@babel/helper-module-imports": { |
| | | "version": "7.22.15", |
| | | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", |
| | | "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", |
| | | "requires": { |
| | | "@babel/types": "^7.22.15" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "@vue/compiler-core": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.30.tgz", |
| | | "integrity": "sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==", |
| | | "requires": { |
| | | "@babel/parser": "^7.24.7", |
| | | "@vue/shared": "3.4.30", |
| | | "entities": "^4.5.0", |
| | | "estree-walker": "^2.0.2", |
| | | "source-map-js": "^1.2.0" |
| | | } |
| | | }, |
| | | "@vue/compiler-dom": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.30.tgz", |
| | | "integrity": "sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==", |
| | | "requires": { |
| | | "@vue/compiler-core": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "@vue/compiler-sfc": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.30.tgz", |
| | | "integrity": "sha512-8vElKklHn/UY8+FgUFlQrYAPbtiSB2zcgeRKW7HkpSRn/JjMRmZvuOtwDx036D1aqKNSTtXkWRfqx53Qb+HmMg==", |
| | | "requires": { |
| | | "@babel/parser": "^7.24.7", |
| | | "@vue/compiler-core": "3.4.30", |
| | | "@vue/compiler-dom": "3.4.30", |
| | | "@vue/compiler-ssr": "3.4.30", |
| | | "@vue/shared": "3.4.30", |
| | | "estree-walker": "^2.0.2", |
| | | "magic-string": "^0.30.10", |
| | | "postcss": "^8.4.38", |
| | | "source-map-js": "^1.2.0" |
| | | } |
| | | }, |
| | | "@vue/compiler-ssr": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.30.tgz", |
| | | "integrity": "sha512-ZJ56YZGXJDd6jky4mmM0rNaNP6kIbQu9LTKZDhcpddGe/3QIalB1WHHmZ6iZfFNyj5mSypTa4+qDJa5VIuxMSg==", |
| | | "requires": { |
| | | "@vue/compiler-dom": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "@vue/devtools-api": { |
| | | "version": "6.6.3", |
| | | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", |
| | | "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" |
| | | }, |
| | | "@vue/reactivity": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.30.tgz", |
| | | "integrity": "sha512-bVJurnCe3LS0JII8PPoAA63Zd2MBzcKrEzwdQl92eHCcxtIbxD2fhNwJpa+KkM3Y/A4T5FUnmdhgKwOf6BfbcA==", |
| | | "requires": { |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "@vue/runtime-core": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.30.tgz", |
| | | "integrity": "sha512-qaFEbnNpGz+tlnkaualomogzN8vBLkgzK55uuWjYXbYn039eOBZrWxyXWq/7qh9Bz2FPifZqGjVDl/FXiq9L2g==", |
| | | "requires": { |
| | | "@vue/reactivity": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "@vue/runtime-dom": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.30.tgz", |
| | | "integrity": "sha512-tV6B4YiZRj5QsaJgw2THCy5C1H+2UeywO9tqgWEc21tn85qHEERndHN/CxlyXvSBFrpmlexCIdnqPuR9RM9thw==", |
| | | "requires": { |
| | | "@vue/reactivity": "3.4.30", |
| | | "@vue/runtime-core": "3.4.30", |
| | | "@vue/shared": "3.4.30", |
| | | "csstype": "^3.1.3" |
| | | } |
| | | }, |
| | | "@vue/server-renderer": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.30.tgz", |
| | | "integrity": "sha512-TBD3eqR1DeDc0cMrXS/vEs/PWzq1uXxnvjoqQuDGFIEHFIwuDTX/KWAQKIBjyMWLFHEeTDGYVsYci85z2UbTDg==", |
| | | "requires": { |
| | | "@vue/compiler-ssr": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "@vue/shared": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.30.tgz", |
| | | "integrity": "sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==" |
| | | }, |
| | | "ansi-styles": { |
| | | "version": "3.2.1", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", |
| | | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", |
| | | "requires": { |
| | | "color-convert": "^1.9.0" |
| | | } |
| | | }, |
| | | "ant-design-vue": { |
| | | "version": "4.2.3", |
| | | "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-4.2.3.tgz", |
| | | "integrity": "sha512-kqGyWvZtFlSInFP93Ow6wS8LzEsxxUgpI+ZY5jQQkuX8WAcqdwXCA7IcHMpECW6JB89DZMo2Bw85jUg2SjlgQA==", |
| | | "requires": { |
| | | "@ant-design/colors": "^6.0.0", |
| | | "@ant-design/icons-vue": "^7.0.0", |
| | | "@babel/runtime": "^7.10.5", |
| | | "@ctrl/tinycolor": "^3.5.0", |
| | | "@emotion/hash": "^0.9.0", |
| | | "@emotion/unitless": "^0.8.0", |
| | | "@simonwep/pickr": "~1.8.0", |
| | | "array-tree-filter": "^2.1.0", |
| | | "async-validator": "^4.0.0", |
| | | "csstype": "^3.1.1", |
| | | "dayjs": "^1.10.5", |
| | | "dom-align": "^1.12.1", |
| | | "dom-scroll-into-view": "^2.0.0", |
| | | "lodash": "^4.17.21", |
| | | "lodash-es": "^4.17.15", |
| | | "resize-observer-polyfill": "^1.5.1", |
| | | "scroll-into-view-if-needed": "^2.2.25", |
| | | "shallow-equal": "^1.0.0", |
| | | "stylis": "^4.1.3", |
| | | "throttle-debounce": "^5.0.0", |
| | | "vue-types": "^3.0.0", |
| | | "warning": "^4.0.0" |
| | | } |
| | | }, |
| | | "array-tree-filter": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", |
| | | "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" |
| | | }, |
| | | "async-validator": { |
| | | "version": "4.2.5", |
| | | "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", |
| | | "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" |
| | | }, |
| | | "asynckit": { |
| | | "version": "0.4.0", |
| | | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |
| | | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" |
| | | }, |
| | | "axios": { |
| | | "version": "1.7.2", |
| | | "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", |
| | | "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", |
| | | "requires": { |
| | | "follow-redirects": "^1.15.6", |
| | | "form-data": "^4.0.0", |
| | | "proxy-from-env": "^1.1.0" |
| | | } |
| | | }, |
| | | "browserslist": { |
| | | "version": "4.23.1", |
| | | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", |
| | | "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", |
| | | "requires": { |
| | | "caniuse-lite": "^1.0.30001629", |
| | | "electron-to-chromium": "^1.4.796", |
| | | "node-releases": "^2.0.14", |
| | | "update-browserslist-db": "^1.0.16" |
| | | } |
| | | }, |
| | | "camelcase": { |
| | | "version": "6.3.0", |
| | | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", |
| | | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" |
| | | }, |
| | | "caniuse-lite": { |
| | | "version": "1.0.30001638", |
| | | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001638.tgz", |
| | | "integrity": "sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==" |
| | | }, |
| | | "chalk": { |
| | | "version": "2.4.2", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
| | | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", |
| | | "requires": { |
| | | "ansi-styles": "^3.2.1", |
| | | "escape-string-regexp": "^1.0.5", |
| | | "supports-color": "^5.3.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "1.9.3", |
| | | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
| | | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", |
| | | "requires": { |
| | | "color-name": "1.1.3" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.3", |
| | | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", |
| | | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" |
| | | }, |
| | | "combined-stream": { |
| | | "version": "1.0.8", |
| | | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", |
| | | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", |
| | | "requires": { |
| | | "delayed-stream": "~1.0.0" |
| | | } |
| | | }, |
| | | "compute-scroll-into-view": { |
| | | "version": "1.0.20", |
| | | "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", |
| | | "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" |
| | | }, |
| | | "convert-source-map": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", |
| | | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" |
| | | }, |
| | | "core-js": { |
| | | "version": "3.37.1", |
| | | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", |
| | | "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==" |
| | | }, |
| | | "csstype": { |
| | | "version": "3.1.3", |
| | | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", |
| | | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" |
| | | }, |
| | | "dayjs": { |
| | | "version": "1.11.11", |
| | | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", |
| | | "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" |
| | | }, |
| | | "debug": { |
| | | "version": "4.3.5", |
| | | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", |
| | | "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", |
| | | "requires": { |
| | | "ms": "2.1.2" |
| | | } |
| | | }, |
| | | "delayed-stream": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
| | | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" |
| | | }, |
| | | "dom-align": { |
| | | "version": "1.12.4", |
| | | "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz", |
| | | "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==" |
| | | }, |
| | | "dom-scroll-into-view": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", |
| | | "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" |
| | | }, |
| | | "electron-to-chromium": { |
| | | "version": "1.4.812", |
| | | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz", |
| | | "integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==" |
| | | }, |
| | | "entities": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", |
| | | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" |
| | | }, |
| | | "esbuild": { |
| | | "version": "0.21.5", |
| | | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", |
| | | "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", |
| | | "requires": { |
| | | "@esbuild/aix-ppc64": "0.21.5", |
| | | "@esbuild/android-arm": "0.21.5", |
| | | "@esbuild/android-arm64": "0.21.5", |
| | | "@esbuild/android-x64": "0.21.5", |
| | | "@esbuild/darwin-arm64": "0.21.5", |
| | | "@esbuild/darwin-x64": "0.21.5", |
| | | "@esbuild/freebsd-arm64": "0.21.5", |
| | | "@esbuild/freebsd-x64": "0.21.5", |
| | | "@esbuild/linux-arm": "0.21.5", |
| | | "@esbuild/linux-arm64": "0.21.5", |
| | | "@esbuild/linux-ia32": "0.21.5", |
| | | "@esbuild/linux-loong64": "0.21.5", |
| | | "@esbuild/linux-mips64el": "0.21.5", |
| | | "@esbuild/linux-ppc64": "0.21.5", |
| | | "@esbuild/linux-riscv64": "0.21.5", |
| | | "@esbuild/linux-s390x": "0.21.5", |
| | | "@esbuild/linux-x64": "0.21.5", |
| | | "@esbuild/netbsd-x64": "0.21.5", |
| | | "@esbuild/openbsd-x64": "0.21.5", |
| | | "@esbuild/sunos-x64": "0.21.5", |
| | | "@esbuild/win32-arm64": "0.21.5", |
| | | "@esbuild/win32-ia32": "0.21.5", |
| | | "@esbuild/win32-x64": "0.21.5" |
| | | } |
| | | }, |
| | | "escalade": { |
| | | "version": "3.1.2", |
| | | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", |
| | | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==" |
| | | }, |
| | | "escape-string-regexp": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", |
| | | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" |
| | | }, |
| | | "estree-walker": { |
| | | "version": "2.0.2", |
| | | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", |
| | | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
| | | }, |
| | | "follow-redirects": { |
| | | "version": "1.15.6", |
| | | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", |
| | | "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" |
| | | }, |
| | | "form-data": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", |
| | | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", |
| | | "requires": { |
| | | "asynckit": "^0.4.0", |
| | | "combined-stream": "^1.0.8", |
| | | "mime-types": "^2.1.12" |
| | | } |
| | | }, |
| | | "fsevents": { |
| | | "version": "2.3.3", |
| | | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", |
| | | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", |
| | | "optional": true |
| | | }, |
| | | "gensync": { |
| | | "version": "1.0.0-beta.2", |
| | | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", |
| | | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" |
| | | }, |
| | | "globals": { |
| | | "version": "11.12.0", |
| | | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", |
| | | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" |
| | | }, |
| | | "has-flag": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
| | | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" |
| | | }, |
| | | "html-tags": { |
| | | "version": "3.3.1", |
| | | "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", |
| | | "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==" |
| | | }, |
| | | "is-plain-object": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", |
| | | "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" |
| | | }, |
| | | "js-tokens": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
| | | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" |
| | | }, |
| | | "jsesc": { |
| | | "version": "2.5.2", |
| | | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", |
| | | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" |
| | | }, |
| | | "json5": { |
| | | "version": "2.2.3", |
| | | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", |
| | | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" |
| | | }, |
| | | "lodash": { |
| | | "version": "4.17.21", |
| | | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", |
| | | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" |
| | | }, |
| | | "lodash-es": { |
| | | "version": "4.17.21", |
| | | "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", |
| | | "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" |
| | | }, |
| | | "loose-envify": { |
| | | "version": "1.4.0", |
| | | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", |
| | | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", |
| | | "requires": { |
| | | "js-tokens": "^3.0.0 || ^4.0.0" |
| | | } |
| | | }, |
| | | "lru-cache": { |
| | | "version": "5.1.1", |
| | | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", |
| | | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", |
| | | "requires": { |
| | | "yallist": "^3.0.2" |
| | | } |
| | | }, |
| | | "magic-string": { |
| | | "version": "0.30.10", |
| | | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", |
| | | "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", |
| | | "requires": { |
| | | "@jridgewell/sourcemap-codec": "^1.4.15" |
| | | } |
| | | }, |
| | | "mime-db": { |
| | | "version": "1.52.0", |
| | | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", |
| | | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" |
| | | }, |
| | | "mime-types": { |
| | | "version": "2.1.35", |
| | | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", |
| | | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", |
| | | "requires": { |
| | | "mime-db": "1.52.0" |
| | | } |
| | | }, |
| | | "ms": { |
| | | "version": "2.1.2", |
| | | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", |
| | | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" |
| | | }, |
| | | "nanoid": { |
| | | "version": "3.3.7", |
| | | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", |
| | | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" |
| | | }, |
| | | "nanopop": { |
| | | "version": "2.4.2", |
| | | "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.4.2.tgz", |
| | | "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==" |
| | | }, |
| | | "node-releases": { |
| | | "version": "2.0.14", |
| | | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", |
| | | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" |
| | | }, |
| | | "picocolors": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", |
| | | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" |
| | | }, |
| | | "pinia": { |
| | | "version": "2.1.7", |
| | | "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", |
| | | "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", |
| | | "requires": { |
| | | "@vue/devtools-api": "^6.5.0", |
| | | "vue-demi": ">=0.14.5" |
| | | }, |
| | | "dependencies": { |
| | | "vue-demi": { |
| | | "version": "0.14.8", |
| | | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", |
| | | "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", |
| | | "requires": {} |
| | | } |
| | | } |
| | | }, |
| | | "postcss": { |
| | | "version": "8.4.38", |
| | | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", |
| | | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", |
| | | "requires": { |
| | | "nanoid": "^3.3.7", |
| | | "picocolors": "^1.0.0", |
| | | "source-map-js": "^1.2.0" |
| | | } |
| | | }, |
| | | "proxy-from-env": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", |
| | | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" |
| | | }, |
| | | "regenerator-runtime": { |
| | | "version": "0.14.1", |
| | | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", |
| | | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" |
| | | }, |
| | | "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==" |
| | | }, |
| | | "rollup": { |
| | | "version": "4.18.0", |
| | | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", |
| | | "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", |
| | | "requires": { |
| | | "@rollup/rollup-android-arm-eabi": "4.18.0", |
| | | "@rollup/rollup-android-arm64": "4.18.0", |
| | | "@rollup/rollup-darwin-arm64": "4.18.0", |
| | | "@rollup/rollup-darwin-x64": "4.18.0", |
| | | "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", |
| | | "@rollup/rollup-linux-arm-musleabihf": "4.18.0", |
| | | "@rollup/rollup-linux-arm64-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-arm64-musl": "4.18.0", |
| | | "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-riscv64-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-s390x-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-x64-gnu": "4.18.0", |
| | | "@rollup/rollup-linux-x64-musl": "4.18.0", |
| | | "@rollup/rollup-win32-arm64-msvc": "4.18.0", |
| | | "@rollup/rollup-win32-ia32-msvc": "4.18.0", |
| | | "@rollup/rollup-win32-x64-msvc": "4.18.0", |
| | | "@types/estree": "1.0.5", |
| | | "fsevents": "~2.3.2" |
| | | } |
| | | }, |
| | | "scroll-into-view-if-needed": { |
| | | "version": "2.2.31", |
| | | "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", |
| | | "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", |
| | | "requires": { |
| | | "compute-scroll-into-view": "^1.0.20" |
| | | } |
| | | }, |
| | | "semver": { |
| | | "version": "6.3.1", |
| | | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", |
| | | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" |
| | | }, |
| | | "shallow-equal": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", |
| | | "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" |
| | | }, |
| | | "source-map-js": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", |
| | | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" |
| | | }, |
| | | "stylis": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", |
| | | "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" |
| | | }, |
| | | "supports-color": { |
| | | "version": "5.5.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", |
| | | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", |
| | | "requires": { |
| | | "has-flag": "^3.0.0" |
| | | } |
| | | }, |
| | | "svg-tags": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", |
| | | "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==" |
| | | }, |
| | | "throttle-debounce": { |
| | | "version": "5.0.2", |
| | | "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", |
| | | "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==" |
| | | }, |
| | | "to-fast-properties": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", |
| | | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" |
| | | }, |
| | | "update-browserslist-db": { |
| | | "version": "1.0.16", |
| | | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", |
| | | "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", |
| | | "requires": { |
| | | "escalade": "^3.1.2", |
| | | "picocolors": "^1.0.1" |
| | | } |
| | | }, |
| | | "vite": { |
| | | "version": "5.3.1", |
| | | "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", |
| | | "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", |
| | | "requires": { |
| | | "esbuild": "^0.21.3", |
| | | "fsevents": "~2.3.3", |
| | | "postcss": "^8.4.38", |
| | | "rollup": "^4.13.0" |
| | | } |
| | | }, |
| | | "vue": { |
| | | "version": "3.4.30", |
| | | "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.30.tgz", |
| | | "integrity": "sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==", |
| | | "requires": { |
| | | "@vue/compiler-dom": "3.4.30", |
| | | "@vue/compiler-sfc": "3.4.30", |
| | | "@vue/runtime-dom": "3.4.30", |
| | | "@vue/server-renderer": "3.4.30", |
| | | "@vue/shared": "3.4.30" |
| | | } |
| | | }, |
| | | "vue-router": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.0.tgz", |
| | | "integrity": "sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==", |
| | | "requires": { |
| | | "@vue/devtools-api": "^6.5.1" |
| | | } |
| | | }, |
| | | "vue-types": { |
| | | "version": "3.0.2", |
| | | "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz", |
| | | "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", |
| | | "requires": { |
| | | "is-plain-object": "3.0.1" |
| | | } |
| | | }, |
| | | "warning": { |
| | | "version": "4.0.3", |
| | | "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", |
| | | "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", |
| | | "requires": { |
| | | "loose-envify": "^1.0.0" |
| | | } |
| | | }, |
| | | "yallist": { |
| | | "version": "3.1.1", |
| | | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", |
| | | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "name": "zy-asrs-admin", |
| | | "version": "0.0.0", |
| | | "private": true, |
| | | "type": "module", |
| | | "scripts": { |
| | | "dev": "vite", |
| | | "build": "vite build", |
| | | "preview": "vite preview" |
| | | }, |
| | | "dependencies": { |
| | | "@ant-design/icons-vue": "^7.0.1", |
| | | "@vitejs/plugin-vue-jsx": "^4.0.0", |
| | | "ant-design-vue": "^4.2.3", |
| | | "axios": "^1.7.2", |
| | | "pinia": "^2.1.7", |
| | | "vue": "^3.4.29", |
| | | "vue-router": "^4.3.3" |
| | | }, |
| | | "devDependencies": { |
| | | "@vitejs/plugin-vue": "^5.0.5", |
| | | "vite": "^5.3.1" |
| | | } |
| | | } |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, provide } from "vue"; |
| | | import IndexView from './views/IndexView.vue' |
| | | import LoginView from './views/login/LoginView.vue' |
| | | import { globalState } from './config.js' |
| | | import zhCN from 'ant-design-vue/es/locale/zh_CN'; |
| | | import enUS from 'ant-design-vue/es/locale/en_US'; |
| | | import dayjs from 'dayjs'; |
| | | import 'dayjs/locale/zh-cn'; |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | dayjs.locale('zh-cn'); |
| | | provide('globalState', globalState); |
| | | |
| | | const localeType = { |
| | | zhCN, |
| | | enUS, |
| | | }; |
| | | |
| | | if (globalState.token == '' || globalState.token == null) { |
| | | let token = localStorage.getItem('token') |
| | | let user = JSON.parse(localStorage.getItem('user')) |
| | | globalState.token = token; |
| | | globalState.user = user; |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <a-config-provider :locale="localeType[globalState.locale]"> |
| | | <div v-if="globalState.token == '' || globalState.token == null"> |
| | | <LoginView /> |
| | | {{ context.$config }} |
| | | </div> |
| | | <div v-else> |
| | | <IndexView /> |
| | | {{ context.$config }} |
| | | </div> |
| | | </a-config-provider> |
| | | </template> |
| | | |
| | | <style scoped></style> |
New file |
| | |
| | | /* color palette from <https://github.com/vuejs/theme> */ |
| | | :root { |
| | | --vt-c-white: #ffffff; |
| | | --vt-c-white-soft: #f8f8f8; |
| | | --vt-c-white-mute: #f2f2f2; |
| | | |
| | | --vt-c-black: #181818; |
| | | --vt-c-black-soft: #222222; |
| | | --vt-c-black-mute: #282828; |
| | | |
| | | --vt-c-indigo: #2c3e50; |
| | | |
| | | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); |
| | | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); |
| | | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); |
| | | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); |
| | | |
| | | --vt-c-text-light-1: var(--vt-c-indigo); |
| | | --vt-c-text-light-2: rgba(60, 60, 60, 0.66); |
| | | --vt-c-text-dark-1: var(--vt-c-white); |
| | | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); |
| | | } |
| | | |
| | | /* semantic color variables for this project */ |
| | | :root { |
| | | --color-background: var(--vt-c-white); |
| | | --color-background-soft: var(--vt-c-white-soft); |
| | | --color-background-mute: var(--vt-c-white-mute); |
| | | |
| | | --color-border: var(--vt-c-divider-light-2); |
| | | --color-border-hover: var(--vt-c-divider-light-1); |
| | | |
| | | --color-heading: var(--vt-c-text-light-1); |
| | | --color-text: var(--vt-c-text-light-1); |
| | | |
| | | --section-gap: 160px; |
| | | } |
New file |
| | |
| | | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg> |
New file |
| | |
| | | @import './base.css'; |
| | | |
| | | .main { |
| | | height: 100vh; |
| | | overflow: scroll; |
| | | } |
| | | |
| | | .trigger { |
| | | font-size: 18px; |
| | | line-height: 64px; |
| | | padding: 0 24px; |
| | | cursor: pointer; |
| | | transition: color 0.3s; |
| | | color: #000000; |
| | | } |
| | | |
| | | .trigger:hover { |
| | | color: #1890ff; |
| | | } |
| | | |
| | | .active { |
| | | color: #1890ff !important; |
| | | } |
| | | |
| | | .active:hover { |
| | | color: #000000 !important; |
| | | } |
| | | |
| | | .logo { |
| | | height: 50px; |
| | | /* background: rgba(255, 255, 255, 0.3); */ |
| | | background: url('/public/img/logo.png') no-repeat; |
| | | background-size: 100%; |
| | | margin: 16px; |
| | | } |
| | | |
| | | .site-layout .site-layout-background { |
| | | background: #fff; |
| | | } |
| | | |
| | | .header-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .header-top-left { |
| | | flex: 1; |
| | | } |
| | | |
| | | .header-top-right { |
| | | margin-right: 20px; |
| | | color: #000000; |
| | | cursor: pointer; |
| | | user-select: none; |
| | | flex: 4; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .header-top-right>div { |
| | | margin-right: 15px; |
| | | } |
| | | |
| | | .header-user { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | color: #000000; |
| | | cursor: pointer; |
| | | user-select: none; |
| | | } |
| | | |
| | | .tabs-fixed { |
| | | position: relative; |
| | | top: -64px; |
| | | left: -24px; |
| | | display: flex; |
| | | } |
| | | |
| | | .tabs-item { |
| | | height: 30px; |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-evenly; |
| | | align-items: center; |
| | | padding: 20px 0px; |
| | | cursor: pointer; |
| | | margin-right: 5px; |
| | | user-select: none; |
| | | } |
| | | |
| | | .tabs-item>div:nth-child(1) { |
| | | margin-right: 10px; |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | .tabs-item>div:nth-child(1):hover { |
| | | color: #1890ff; |
| | | } |
| | | |
| | | .tabs-item>div:nth-child(2) { |
| | | margin-right: 10px; |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | .tabs-item>div:nth-child(3) { |
| | | margin-right: 10px; |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | .tabs-item>div:nth-child(3):hover { |
| | | color: #1890ff; |
| | | } |
| | | |
| | | .tabs-item-active>div:nth-child(2) { |
| | | color: rgb(24, 144, 255); |
| | | } |
| | | |
| | | .tabs-item-reload-none { |
| | | display: none; |
| | | } |
| | | |
| | | .table-header { |
| | | margin-bottom: 20px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .table-header-right>button { |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .content-view { |
| | | margin: 45px 16px; |
| | | padding: 24px; |
| | | background: #fff; |
| | | min-height: 280px; |
| | | } |
New file |
| | |
| | | import { reactive, inject } from 'vue'; |
| | | |
| | | export const globalState = reactive({ |
| | | url: 'http://127.0.0.1:8081/wms', |
| | | token: '', |
| | | user: null, |
| | | locale: 'zhCN' |
| | | }); |
| | | |
| | | export const logout = () => { |
| | | globalState.token = null; |
| | | globalState.user = null; |
| | | localStorage.removeItem('token') |
| | | localStorage.removeItem('user') |
| | | } |
New file |
| | |
| | | import map from './map.js'; |
| | | |
| | | export default { |
| | | ...map, |
| | | 'message.hello': 'Hello, World!', |
| | | 'message.language': 'Language', |
| | | 'commont.enter':'Please enter', |
| | | 'commont.select':'Please select', |
| | | 'common.submit':'Submit', |
| | | 'common.confirm':'Confirm', |
| | | 'common.cancel':'Cancel', |
| | | 'common.reset':'Reset', |
| | | 'common.username':'Username', |
| | | 'common.nickname':'Nickname', |
| | | 'common.sex':'Sex', |
| | | 'common.male':'Male', |
| | | 'common.female':'Female', |
| | | 'common.undefined':'Undefined', |
| | | 'common.phone':'Phone', |
| | | 'common.home':'Home', |
| | | 'common.email':'Email', |
| | | 'common.select.cancel':'Cancel Selection', |
| | | 'common.realname':'Real Name', |
| | | 'common.idcard':'ID Number', |
| | | 'common.introduction':'Introduction', |
| | | 'common.execute':'Execute', |
| | | 'common.success':'Success', |
| | | 'common.fail':'Fail', |
| | | 'common.account.logout': 'Logout', |
| | | 'common.search.placeholder': 'Please enter search content', |
| | | 'common.loading.api.message': 'Calling Server...', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | 'page.table.no': 'No', |
| | | 'page.add': 'Add New', |
| | | 'page.adding':'In process of adding', |
| | | 'page.add.success':'Add Successful', |
| | | 'page.add.fail':'Add failed, please try again!', |
| | | 'page.updating':'Updating now', |
| | | 'page.update.success':'Update Successful', |
| | | 'page.update.fail':'Update failed, please try again!', |
| | | 'page.deleting':'In process of deletion', |
| | | 'page.delete.success':'Deletion Successful', |
| | | 'page.delete.fail':'Deletion failed, please try again!', |
| | | 'page.exporting':'Exporting...', |
| | | 'page.export.success':'Exported successfully', |
| | | 'page.export.fail':'Export failed, please try again.', |
| | | 'page.edit':'Edit', |
| | | 'page.delete':'Delete', |
| | | 'page.delete.confirm':'Are you sure that you want to delete this item?', |
| | | 'page.export':'Export', |
| | | 'page.selected':' has been selected', |
| | | 'page.delete.batch':'Batch Delete', |
| | | 'page.assigning':'Assigning', |
| | | 'page.assign.success':'Assignment Successful', |
| | | 'page.assign.fail':'Assignment failed, please try again!', |
| | | 'page.assign.permission':'Assign', |
| | | 'page.permission.menu':'Menu', |
| | | 'page.role.assign.ec':'Expand/Collapse', |
| | | 'page.role.assign.sd':'Select All/Deselect All', |
| | | 'page.resetting':'Resetting', |
| | | 'page.reset.success':'Reset Successful', |
| | | 'page.reset.fail':'Reset failed, please try again!"', |
| | | 'page.reset.pwd':'Reset Pwd', |
| | | 'page.assign.role':'Assign Role', |
| | | 'page.input':'Please Input', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | 'personal.base.setting':'Basic Settings', |
| | | 'personal.security.setting':'Security Settings', |
| | | 'personal.base.button.name':'Update Basic Information', |
| | | 'personal.security.button.name':'Update Password', |
| | | 'personal.security.cur.pwd':'Current Password', |
| | | 'personal.security.new.pwd':'New Password', |
| | | 'personal.security.new.pwd.confirm':'Confirm Password', |
| | | 'personal.security.new.pwd.rule.length':'The new password must be 4 to 16 characters', |
| | | 'personal.security.new.pwd.rule.check':'The passwords entered twice do not matc', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | 'login.success':'Login successful!', |
| | | 'login.fail':'Login fail!', |
| | | 'login.logout':'Login out!', |
| | | 'login.failure':'Login failed, please try again!', |
| | | 'login.retoken':'Renewal Token!', |
| | | 'login.accountLogin.tab':'Account Login', |
| | | 'login.phoneLogin.tab':'Phone Login', |
| | | 'login.host':'Host:', |
| | | 'login.rule.host':'Please select host', |
| | | 'login.username':'Username:', |
| | | 'login.rule.username':'Please enter your username', |
| | | 'login.password':'Password:', |
| | | 'login.rule.password':'Please enter your password', |
| | | 'login.accountLogin.errorMessage':'Incorrect username/password', |
| | | 'login.rememberMe':'Remember me', |
| | | 'login.phoneNumber.placeholder':'Phone Number', |
| | | 'login.phoneNumber.required':'Please input your phone number!', |
| | | 'login.phoneNumber.invalid':'Phone number is invalid!', |
| | | 'login.captcha.placeholder':'Verification Code', |
| | | 'login.getCaptchaSecondText':'sec(s)', |
| | | 'login.phoneLogin.getVerificationCode':'Get Code', |
| | | 'login.captcha.required':'Please input verification code!', |
| | | 'login.phoneLogin.none':'Mobile phone login is not enabled', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | 'system.dept':'Department', |
| | | 'system.role':'Role', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | }; |
New file |
| | |
| | | export default { |
| | | 'map.edit': 'Edit Model', |
| | | 'map.edit.close': 'Exit Edit', |
| | | 'map.device.add': 'Add New Device', |
| | | 'map.device.oper': 'Device Settings', |
| | | 'map.model.observer': 'Observer Pattern', |
| | | 'map.model.editor': 'Editor Pattern', |
| | | 'map.save': 'Save Map', |
| | | 'map.load': 'Load Map', |
| | | 'map.clear': 'Clear Map', |
| | | 'map.x': 'x', |
| | | 'map.y': 'y', |
| | | 'map.load.success': 'Welcome To WCS.', |
| | | '': '', |
| | | '': '', |
| | | 'map.loc.no': 'Location Number', |
| | | 'map.task.no': 'Task Number', |
| | | 'map.device.status': 'Device Status', |
| | | 'map.origin.site': 'Origin Site', |
| | | 'map.origin.loc': 'Origin Location', |
| | | 'map.dest.site': 'Destination Site', |
| | | 'map.dest.loc': 'Destination Location', |
| | | 'map.error': 'Error', |
| | | 'map.pakmk': 'PakMk', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.pallet.barcode': 'Pallet Barcode', |
| | | 'map.is.enable': 'Enable or Not', |
| | | 'map.enable': 'Enable', |
| | | 'map.diable': 'Disable', |
| | | 'map.handle': 'Handle', |
| | | 'map.command': 'Command', |
| | | 'map.loc.sts': 'Location Status', |
| | | 'map.loc.operation': 'Location Operation', |
| | | 'map.loc.lock': 'Lock', |
| | | 'map.loc.unlock': 'Unlock', |
| | | 'map.loc.reset': 'Reset Location', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.lift.no': 'Lift Number', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.shuttle.no': 'Shuttle Number', |
| | | 'map.shuttle.current.code': 'Current Code', |
| | | 'map.shuttle.batter.power': 'Batter Power', |
| | | 'map.shuttle.batter.voltage': 'Batter Voltage', |
| | | 'map.shuttle.batter.temp': 'Batter Temperature', |
| | | 'map.shuttle.has.lift': 'Has Lift', |
| | | 'map.shuttle.has.pallet': 'Has Pallet', |
| | | 'map.shuttle.has.charge': 'Charging', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.conveyor.no': 'Conveyor Number', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.sensor.type.shuttle': 'Shuttle', |
| | | 'map.sensor.type.lift': 'Lift', |
| | | 'map.sensor.type.shelf': 'Shelf', |
| | | 'map.sensor.type.agv': 'Agv', |
| | | 'map.sensor.type.point': 'Point', |
| | | 'map.sensor.type.conveyor': 'Conveyor', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.drawer.json': 'JSON', |
| | | 'map.drawer.shelf.view.title': 'Shelf Information', |
| | | 'map.drawer.lift.view.title': 'Lift Information', |
| | | 'map.drawer.shuttle.view.title': 'Shuttle Information', |
| | | 'map.drawer.conveyor.view.title': 'Conveyor Information', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.more': 'More', |
| | | 'map.settings.delete': 'Delete', |
| | | 'map.settings.type': 'Type', |
| | | 'map.settings.uuid': 'Uuid', |
| | | 'map.settings.component': 'Component', |
| | | 'map.settings.name': 'Name', |
| | | 'map.settings.position': 'Position', |
| | | 'map.settings.scale': 'Scale', |
| | | 'map.settings.scale.x': 'ScaleX', |
| | | 'map.settings.scale.y': 'ScaleY', |
| | | 'map.settings.rotation': 'Rotation', |
| | | 'map.settings.copy': 'Copy', |
| | | 'map.settings.left': 'Left', |
| | | 'map.settings.right': 'Right', |
| | | 'map.settings.top': 'Top', |
| | | 'map.settings.bottom': 'Bottom', |
| | | 'map.settings.map.param': 'Map Parameters', |
| | | 'map.settings.config.param': 'Config Parameters', |
| | | 'map.settings.batch.select.shelf': 'Select Shelfs', |
| | | 'map.settings.batch.set.params': 'Set Parameters', |
| | | 'map.settings.batch.result': 'Result', |
| | | 'map.settings.batch.result.title': 'Batch settings successful!', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.no': 'No.', |
| | | 'map.settings.shelf.no': 'Shelf No', |
| | | 'map.settings.shelf.location': 'Location', |
| | | 'map.settings.shelf.row': 'Row', |
| | | 'map.settings.shelf.bay': 'Bay', |
| | | 'map.settings.shelf.type': 'Type', |
| | | 'map.settings.shelf.space': 'Space', |
| | | 'map.settings.shelf.top': 'Top', |
| | | 'map.settings.shelf.right': 'Right', |
| | | 'map.settings.shelf.bottom': 'Bottom', |
| | | 'map.settings.shelf.left': 'Left', |
| | | 'map.settings.shelf.value': 'Map Value', |
| | | 'map.settings.shelf.store': 'Store', |
| | | 'map.settings.shelf.track': 'Track', |
| | | 'map.settings.shelf.lift': 'Lift', |
| | | 'map.settings.shelf.charge': 'Charge', |
| | | 'map.settings.shelf.diable': 'Diable', |
| | | 'map.settings.shelf.reference': 'Reference', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.point.vertical': 'Vertical', |
| | | 'map.settings.point.horizontal': 'Horizontal', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.conveyor.plc.no': 'Plc No', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.lift.no': 'Lift No', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.sub.copy.reverse': 'Reverse', |
| | | 'map.settings.sub.copy.rule': 'Copy Rule', |
| | | 'map.settings.sub.copy.dire': 'Direction', |
| | | 'map.settings.sub.copy.count': 'Count', |
| | | 'map.settings.sub.copy.gap': 'Gap', |
| | | 'map.settings.sub.copy.id': 'ID', |
| | | 'map.settings.sub.copy.auto-increment': 'Auto Increment', |
| | | 'map.settings.sub.copy.increment-value': 'Increment Value', |
| | | 'map.settings.sub.copy.increment.mode': 'Increment Mode', |
| | | 'map.settings.sub.copy.ascend': 'Ascending', |
| | | 'map.settings.sub.copy.descend': 'Descending', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | 'map.settings.sub.copy.warn.config.shelf': 'Please set the shelf parameters first!', |
| | | 'map.settings.sub.copy.warn.config.point': 'Please set the point parameters first!', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | '': '', |
| | | } |
New file |
| | |
| | | export default { |
| | | 'message.hello': '你好', |
| | | 'message.language': '语言', |
| | | }; |
New file |
| | |
| | | import './assets/main.css' |
| | | import { createApp } from 'vue' |
| | | import { createPinia } from 'pinia' |
| | | import App from './App.vue' |
| | | import router from './router' |
| | | import Antd from 'ant-design-vue'; |
| | | import 'ant-design-vue/dist/reset.css'; |
| | | |
| | | const app = createApp(App) |
| | | |
| | | app.use(createPinia()) |
| | | app.use(router) |
| | | app.use(Antd) |
| | | |
| | | app.mount('#app') |
New file |
| | |
| | | import { createRouter, createWebHistory } from 'vue-router' |
| | | import HomeView from '../views/HomeView.vue' |
| | | import MenuView from '../views/system/menu/index.vue' |
| | | import LoginView from '../views/login/LoginView.vue' |
| | | import UserLoginView from '../views/system/userLogin/index.vue' |
| | | |
| | | const router = createRouter({ |
| | | history: createWebHistory(import.meta.env.BASE_URL), |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | name: '主页', |
| | | component: HomeView, |
| | | meta: { |
| | | keepAlive: true // 设置keepAlive,让此路由页面被缓存 |
| | | }, |
| | | }, |
| | | { |
| | | path: '/login', |
| | | name: '登录', |
| | | component: LoginView, |
| | | }, |
| | | { |
| | | path: '/system/menu', |
| | | name: '菜单管理', |
| | | component: MenuView, |
| | | meta: { |
| | | keepAlive: true // 设置keepAlive,让此路由页面被缓存 |
| | | }, |
| | | }, |
| | | { |
| | | path: '/system/userLogin', |
| | | name: '登录日志', |
| | | component: UserLoginView, |
| | | meta: { |
| | | keepAlive: true // 设置keepAlive,让此路由页面被缓存 |
| | | }, |
| | | }, |
| | | ] |
| | | }) |
| | | |
| | | export default router |
New file |
| | |
| | | import { ref, computed } from 'vue' |
| | | import { defineStore } from 'pinia' |
| | | |
| | | export const useCounterStore = defineStore('counter', () => { |
| | | const count = ref(0) |
| | | const doubleCount = computed(() => count.value * 2) |
| | | function increment() { |
| | | count.value++ |
| | | } |
| | | |
| | | return { count, doubleCount, increment } |
| | | }) |
New file |
| | |
| | | import { globalState } from '../config.js' |
| | | import enUS from '../locales/en_US.js'; |
| | | import zhCN from '../locales/zh_CN.js'; |
| | | |
| | | export const formatMessage = (id, defaultMessage) => { |
| | | const localesType = { |
| | | enUS, |
| | | zhCN, |
| | | } |
| | | |
| | | const message = localesType[globalState.locale] |
| | | if(message == null) { |
| | | return defaultMessage; |
| | | } |
| | | if(message[id] == null || message[id] == undefined) { |
| | | return defaultMessage; |
| | | } |
| | | return message[id]; |
| | | } |
New file |
| | |
| | | import axios from "axios"; |
| | | import { globalState } from '../config.js' |
| | | |
| | | const instance = axios.create({ |
| | | baseURL: globalState.url, |
| | | timeout: 30000, |
| | | }) |
| | | |
| | | export const get = (url, params) => { |
| | | return instance({ |
| | | url: url, |
| | | method: 'get', |
| | | params: params, |
| | | headers: { |
| | | Authorization: globalState.token |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const post = (url, data) => { |
| | | return instance({ |
| | | url: url, |
| | | method: 'post', |
| | | data: data, |
| | | headers: { |
| | | Authorization: globalState.token |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const postBlob = (url, data) => { |
| | | return instance({ |
| | | url: url, |
| | | method: 'post', |
| | | data: data, |
| | | headers: { |
| | | Authorization: globalState.token |
| | | }, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | export default instance; |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref } from 'vue'; |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '主页' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | Hello World |
| | | </template> |
New file |
| | |
| | | <script setup> |
| | | import { nextTick, ref, inject, computed } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post } from '@/utils/request.js' |
| | | import { logout } from '@/config.js'; |
| | | import * as Icons from "@ant-design/icons-vue"; |
| | | import { |
| | | MenuUnfoldOutlined, |
| | | MenuFoldOutlined, |
| | | HomeOutlined, |
| | | CloseOutlined, |
| | | RedoOutlined, |
| | | UserOutlined, |
| | | TranslationOutlined, |
| | | } from "@ant-design/icons-vue"; |
| | | import { formatMessage } from '@/utils/localeUtils.js'; |
| | | |
| | | const globalState = inject('globalState'); |
| | | const selectedKeys = ref([]); |
| | | const collapsed = ref(false); |
| | | const router = useRouter(); |
| | | let routerCache = ref([]); |
| | | let routerCacheMap = ref(new Map()); |
| | | let currentCache = ref(null); |
| | | let isRouterAlive = ref(true); |
| | | const menuCache = ref([]); |
| | | |
| | | const components = { |
| | | ...Icons, |
| | | }; |
| | | |
| | | getMenu() |
| | | |
| | | function getMenu() { |
| | | post('/api/menu/tree', {}).then((result) => { |
| | | console.log(result.data.data); |
| | | menuCache.value = result.data.data; |
| | | }) |
| | | } |
| | | |
| | | function menuSelect(item) { |
| | | router.push({ |
| | | path: item.key |
| | | }) |
| | | |
| | | let name = item.item.name; |
| | | currentCache.value = name; |
| | | console.log(routerCache.value); |
| | | |
| | | if (name != undefined && routerCache.value.indexOf(name) == -1) { |
| | | routerCache.value.push(item.item.name) |
| | | routerCacheMap.value.set(name, item.key) |
| | | } |
| | | } |
| | | |
| | | function closeTabs(name) { |
| | | let tmp = [] |
| | | routerCache.value.forEach((item) => { |
| | | if (item != name) { |
| | | tmp.push(item); |
| | | } |
| | | }) |
| | | |
| | | if (tmp == 0) { |
| | | router.push({ |
| | | path: '/' |
| | | }) |
| | | routerCache.value.push('home') |
| | | routerCacheMap.value.set('home', '/') |
| | | selectedKeys.value = ['/'] |
| | | } else { |
| | | switchTabs(tmp[0]); |
| | | } |
| | | routerCache.value = tmp; |
| | | } |
| | | |
| | | function reloadTabs() { |
| | | isRouterAlive.value = false; |
| | | nextTick(() => { |
| | | isRouterAlive.value = true; |
| | | }) |
| | | } |
| | | |
| | | function switchTabs(name) { |
| | | router.push({ |
| | | path: routerCacheMap.value.get(name) |
| | | }) |
| | | |
| | | currentCache.value = name; |
| | | selectedKeys.value = [routerCacheMap.value.get(name)] |
| | | |
| | | console.log(routerCacheMap, name, routerCacheMap.value.get(name)); |
| | | |
| | | } |
| | | |
| | | const switchLocale = (locale) => { |
| | | globalState.locale = locale; |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <a-layout class="main"> |
| | | <a-layout-sider v-model:collapsed="collapsed" :trigger="null" collapsible> |
| | | <div class="logo" /> |
| | | <a-menu v-for="(item, index) in menuCache" :key="index" v-model:selectedKeys="selectedKeys" @select="menuSelect" |
| | | theme="dark" mode="inline"> |
| | | <div> |
| | | <a-menu-item key="/" name="主页"> |
| | | <HomeOutlined /> {{ formatMessage('common.home','主页') }} |
| | | </a-menu-item> |
| | | </div> |
| | | |
| | | <a-sub-menu v-if="item.type == 0"> |
| | | <template #title> |
| | | <span> |
| | | <component :is="components[ref(item.icon).value]" /> |
| | | {{ item.name }} |
| | | </span> |
| | | </template> |
| | | <div v-for="(child, idx) in item.children"> |
| | | <a-menu-item v-if="child.status == 1" :key="child.route" :name="child.name"> |
| | | {{ child.name }} |
| | | </a-menu-item> |
| | | </div> |
| | | </a-sub-menu> |
| | | </a-menu> |
| | | |
| | | </a-layout-sider> |
| | | <a-layout> |
| | | <a-layout-header style="background: #fff; padding: 0"> |
| | | <div class="header-top"> |
| | | <div class="header-top-left"> |
| | | <MenuUnfoldOutlined v-if="collapsed" class="trigger" @click="() => (collapsed = !collapsed)" /> |
| | | <MenuFoldOutlined v-else class="trigger" @click="() => (collapsed = !collapsed)" /> |
| | | </div> |
| | | <div class="header-top-right"> |
| | | <div class="trigger"> |
| | | <a-dropdown> |
| | | <TranslationOutlined /> |
| | | <template #overlay> |
| | | <a-menu> |
| | | <a-menu-item @click="switchLocale('enUS')" |
| | | :class="globalState.locale == 'enUS' ? 'active' : ''">English</a-menu-item> |
| | | <a-menu-item @click="switchLocale('zhCN')" |
| | | :class="globalState.locale == 'zhCN' ? 'active' : ''">简体中文</a-menu-item> |
| | | </a-menu> |
| | | </template> |
| | | </a-dropdown> |
| | | </div> |
| | | <div> |
| | | <a-dropdown> |
| | | <a class="header-user" @click.prevent> |
| | | <UserOutlined /> |
| | | <span>{{ globalState.user.username }}</span> |
| | | </a> |
| | | <template #overlay> |
| | | <a-menu @click="logout"> |
| | | <a-menu-item key="logout">{{ formatMessage('common.account.logout','退出') }}</a-menu-item> |
| | | </a-menu> |
| | | </template> |
| | | </a-dropdown> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </a-layout-header> |
| | | <a-layout-content class="content-view"> |
| | | <div class="tabs-fixed"> |
| | | <div v-for="(item, index) in routerCache" :key="index" @click="switchTabs(item)" class="tabs-item" |
| | | :class="currentCache == item ? 'tabs-item-active' : ''"> |
| | | <div :class="currentCache == item ? '' : 'tabs-item-reload-none'" @click="reloadTabs" @click.stop> |
| | | <RedoOutlined /> |
| | | </div> |
| | | <div>{{ item }}</div> |
| | | <div @click="closeTabs(item)" @click.stop> |
| | | <CloseOutlined /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <router-view v-slot="{ Component, route }" v-if="isRouterAlive"> |
| | | <keep-alive :include="routerCache"> |
| | | <component :is="Component" /> |
| | | </keep-alive> |
| | | </router-view> |
| | | </a-layout-content> |
| | | </a-layout> |
| | | </a-layout> |
| | | </template> |
| | | |
| | | <style scoped></style> |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, inject, ref } from 'vue'; |
| | | import { message } from 'ant-design-vue'; |
| | | import { get, post } from '../../utils/request.js' |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | const globalState = inject('globalState'); |
| | | |
| | | let copyrightLargeShow = ref(false); |
| | | let username = ref(""); |
| | | let password = ref(""); |
| | | |
| | | function loginConfirm() { |
| | | if (username.value == "" || password.value == "") { |
| | | message.info('请输入账号密码!'); |
| | | return; |
| | | } |
| | | |
| | | post('/api/login', { |
| | | username: username.value, |
| | | password: password.value |
| | | }).then((result) => { |
| | | if (result.data.code == 200) { |
| | | let data = result.data.data; |
| | | globalState.token = data.accessToken; |
| | | globalState.user = data.user; |
| | | localStorage.setItem('token', data.accessToken) |
| | | localStorage.setItem('user', JSON.stringify(data.user)) |
| | | message.success('登录成功') |
| | | } else { |
| | | message.error(result.data.msg) |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'login' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="container" @keyup.enter="loginConfirm"> |
| | | <div class="left-box"> |
| | | <div class="login-video"> |
| | | <video src="/public/img/login-bg.mp4" height="100%" loop autoplay muted="false" |
| | | controlslist="nodownload" disablepictureinpicture></video> |
| | | <!-- <img src="/public/img/bg1.png" height="100%"> --> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="right-box"> |
| | | <div class="login-box"> |
| | | <div class="form-main"> |
| | | <p style="text-align: center;"><img class="loginLogoUrl" src="/public/img/logo.png" alt="" |
| | | style="width: 80%"> |
| | | </p> |
| | | <p style="margin-top: -10px;"><span class="login100-form-title p-t-20 p-b-45" |
| | | style="color: #868686;font-size: 24px">WMS</span></p> |
| | | <div class="inputContainer"> |
| | | <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16" |
| | | xmlns="http://www.w3.org/2000/svg" class="inputIcon"> |
| | | <path |
| | | d="M13.106 7.222c0-2.967-2.249-5.032-5.482-5.032-3.35 0-5.646 2.318-5.646 5.702 0 3.493 2.235 5.708 5.762 5.708.862 0 1.689-.123 2.304-.335v-.862c-.43.199-1.354.328-2.29.328-2.926 0-4.813-1.88-4.813-4.798 0-2.844 1.921-4.881 4.594-4.881 2.735 0 4.608 1.688 4.608 4.156 0 1.682-.554 2.769-1.416 2.769-.492 0-.772-.28-.772-.76V5.206H8.923v.834h-.11c-.266-.595-.881-.964-1.6-.964-1.4 0-2.378 1.162-2.378 2.823 0 1.737.957 2.906 2.379 2.906.8 0 1.415-.39 1.709-1.087h.11c.081.67.703 1.148 1.503 1.148 1.572 0 2.57-1.415 2.57-3.643zm-7.177.704c0-1.197.54-1.907 1.456-1.907.93 0 1.524.738 1.524 1.907S8.308 9.84 7.371 9.84c-.895 0-1.442-.725-1.442-1.914z"> |
| | | </path> |
| | | </svg> |
| | | <input placeholder="请输入用户名" v-model="username" class="inputField" type="text"> |
| | | </div> |
| | | |
| | | <div class="inputContainer"> |
| | | <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16" |
| | | xmlns="http://www.w3.org/2000/svg" class="inputIcon"> |
| | | <path |
| | | d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"> |
| | | </path> |
| | | </svg> |
| | | <input placeholder="请输入密码" v-model="password" class="inputField" type="password"> |
| | | </div> |
| | | |
| | | <input @click="loginConfirm" type="button" class="login-button" value="登录"> |
| | | |
| | | <div style="display: none;margin-top: 5px;width: 100%;" id="updateLicense"> |
| | | <form enctype="multipart/form-data" style="display: none;"> |
| | | <input id="license" type="file" name="file"> |
| | | </form> |
| | | <input type="button" id="submitLicense" class="login-button" style="margin: 0;" value="更新许可证"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="login-copyright"> |
| | | <div class="copyright-text">Copyright ©2023 浙江中扬立库技术有限公司版权所有</div> |
| | | <div id="copyright-img1" class="copyright-img" @mouseover="copyrightLargeShow = true" |
| | | @mouseout="copyrightLargeShow = false"> |
| | | <img class="copyright-img-url" src="/public/img/weixin_qrcode.jpg" /> |
| | | <div v-if="copyrightLargeShow" class="copyright-img-large"><img class="copyright-img-url" |
| | | src="/public/img/weixin_qrcode.jpg" /></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style> |
| | | * { |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | .container { |
| | | display: flex; |
| | | height: 100vh; |
| | | width: 100%; |
| | | } |
| | | |
| | | .left-box { |
| | | height: 100%; |
| | | width: 70%; |
| | | } |
| | | |
| | | .login-video { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .form-main { |
| | | width: 300px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-color: rgba(255, 255, 255, 0.6); |
| | | padding: 50px 30px 50px 30px; |
| | | border-radius: 20px; |
| | | box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.062); |
| | | } |
| | | |
| | | .heading { |
| | | font-size: 2.5em; |
| | | color: #2e2e2e; |
| | | font-weight: 700; |
| | | margin: 15px 0 0px 0; |
| | | } |
| | | |
| | | .inputContainer { |
| | | width: 100%; |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .inputIcon { |
| | | position: absolute; |
| | | left: 10px; |
| | | } |
| | | |
| | | .inputField { |
| | | width: 100%; |
| | | height: 40px; |
| | | background-color: transparent; |
| | | border: none; |
| | | border-bottom: 2px solid rgb(173, 173, 173); |
| | | border-radius: 30px; |
| | | margin: 10px 0; |
| | | color: black; |
| | | font-size: .8em; |
| | | font-weight: 500; |
| | | box-sizing: border-box; |
| | | padding-left: 30px; |
| | | } |
| | | |
| | | .inputField:focus { |
| | | outline: none; |
| | | border-bottom: 2px solid rgb(199, 114, 255); |
| | | } |
| | | |
| | | .inputField::placeholder { |
| | | color: rgb(80, 80, 80); |
| | | font-size: 1em; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .login-box { |
| | | height: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .login-button { |
| | | position: relative; |
| | | width: 100%; |
| | | border: 2px solid #8000ff; |
| | | background-color: #8000ff; |
| | | height: 40px; |
| | | color: white; |
| | | font-size: .8em; |
| | | font-weight: 500; |
| | | letter-spacing: 1px; |
| | | border-radius: 30px; |
| | | margin: 10px; |
| | | cursor: pointer; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .login-button::after { |
| | | content: ""; |
| | | position: absolute; |
| | | background-color: rgba(255, 255, 255, 0.253); |
| | | height: 100%; |
| | | width: 150px; |
| | | top: 0; |
| | | left: -200px; |
| | | border-bottom-right-radius: 100px; |
| | | border-top-left-radius: 100px; |
| | | filter: blur(10px); |
| | | transition-duration: .5s; |
| | | } |
| | | |
| | | .login-button:hover::after { |
| | | transform: translateX(600px); |
| | | transition-duration: .5s; |
| | | } |
| | | |
| | | .right-box { |
| | | height: 100%; |
| | | width: 30%; |
| | | background: #f6f6f6; |
| | | position: relative; |
| | | } |
| | | |
| | | .login-copyright { |
| | | position: absolute; |
| | | bottom: 20px; |
| | | right: 20px; |
| | | font-size: 14px; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .copyright-text { |
| | | margin-right: 20px; |
| | | } |
| | | |
| | | .copyright-img { |
| | | width: 40px; |
| | | height: 40px; |
| | | position: relative; |
| | | } |
| | | |
| | | .copyright-img>img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .copyright-img-large { |
| | | width: 140px; |
| | | height: 140px; |
| | | position: absolute; |
| | | top: -140px; |
| | | left: -50px; |
| | | } |
| | | |
| | | .copyright-img-large>img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive, watch } from 'vue'; |
| | | import { get, post } from '@/utils/request.js' |
| | | import * as Icons from "@ant-design/icons-vue"; |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | const components = { |
| | | ...Icons, |
| | | }; |
| | | |
| | | const open = ref(false); |
| | | const initFormData = { |
| | | name: null |
| | | } |
| | | let formData = ref(initFormData); |
| | | const treeData = ref(null); |
| | | |
| | | const emit = defineEmits(['tableReload']) |
| | | |
| | | const handleOk = (e) => { |
| | | open.value = false; |
| | | console.log(formData.value); |
| | | post('/api/menu/update', formData.value).then((result) => { |
| | | console.log(result); |
| | | emit('tableReload', 'reload') |
| | | }) |
| | | }; |
| | | |
| | | const onFinish = values => { |
| | | console.log('Success:', values); |
| | | }; |
| | | const onFinishFailed = errorInfo => { |
| | | console.log('Failed:', errorInfo); |
| | | }; |
| | | |
| | | defineExpose({ |
| | | open, |
| | | formData, |
| | | initFormData, |
| | | treeData, |
| | | }) |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '菜单管理' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <a-modal v-model:open="open" :title="formData == null ? '添加' : '编辑'" @ok="handleOk" style="width: 600px;"> |
| | | <a-form :model="formData" name="menu" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" |
| | | style="display: flex;justify-content: space-between;flex-wrap: wrap;" autocomplete="off" |
| | | @finish="onFinish" @finishFailed="onFinishFailed"> |
| | | <a-form-item label="上级菜单" name="parentId" style="width: 250px;" |
| | | :rules="[{ required: true, message: '上级菜单不能为空!' }]"> |
| | | <a-tree-select v-model:value="formData.parentId" show-search style="width: 100%" |
| | | :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="Please select" |
| | | allow-clea tree-data-simple-mode :tree-data="treeData" tree-node-filter-prop="name" |
| | | :field-names="{ |
| | | children: 'children', |
| | | label: 'name', |
| | | value: 'id', |
| | | }"> |
| | | <template #title="{ value: id, name }"> |
| | | {{ name }} |
| | | </template> |
| | | </a-tree-select> |
| | | </a-form-item> |
| | | <a-form-item label="菜单名称" name="name" style="width: 250px;" |
| | | :rules="[{ required: true, message: '菜单名称不能为空!' }]"> |
| | | <a-input v-model:value="formData.name" /> |
| | | </a-form-item> |
| | | <a-form-item label="路由地址" name="route" style="width: 250px;"> |
| | | <a-input v-model:value="formData.route" /> |
| | | </a-form-item> |
| | | <a-form-item label="页面组件" name="component" style="width: 250px;"> |
| | | <a-input v-model:value="formData.component" /> |
| | | </a-form-item> |
| | | <a-form-item label="类型" name="type" style="width: 250px;" |
| | | :rules="[{ required: true, message: '类型不能为空!' }]"> |
| | | <a-select ref="select" v-model:value="formData.type" :options="[ |
| | | { label: '菜单', value: 0 }, |
| | | { label: '按钮', value: 1 }, |
| | | ]"></a-select> |
| | | </a-form-item> |
| | | <a-form-item label="菜单图标" name="icon" style="width: 250px;"> |
| | | <a-input v-model:value="formData.icon" /> |
| | | </a-form-item> |
| | | <a-form-item label="排序" name="sort" style="width: 250px;"> |
| | | <a-input v-model:value="formData.sort" /> |
| | | </a-form-item> |
| | | <a-form-item label="状态" name="status" style="width: 250px;"> |
| | | <a-select ref="select" v-model:value="formData.status" :options="[ |
| | | { label: '禁用', value: 0 }, |
| | | { label: '正常', value: 1 }, |
| | | ]"></a-select> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-modal> |
| | | </div> |
| | | </template> |
| | | |
| | | <style></style> |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive, onMounted } from 'vue'; |
| | | import { get, post } from '@/utils/request.js' |
| | | import * as Icons from "@ant-design/icons-vue"; |
| | | import EditView from './edit.vue' |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | const components = { |
| | | ...Icons, |
| | | }; |
| | | |
| | | const searchInput = ref("") |
| | | const editChild = ref(null) |
| | | |
| | | let tableData = ref([]); |
| | | getPage(); |
| | | |
| | | const typeMap = { |
| | | 0: { |
| | | color: 'success', |
| | | text: '菜单', |
| | | }, |
| | | 1: { |
| | | color: 'default', |
| | | text: '按钮', |
| | | }, |
| | | }; |
| | | |
| | | const state = reactive({ |
| | | selectedRowKeys: [], |
| | | loading: false, |
| | | }); |
| | | const hasSelected = computed(() => state.selectedRowKeys.length > 0); |
| | | const start = () => { |
| | | state.loading = true; |
| | | // ajax request after empty completing |
| | | setTimeout(() => { |
| | | state.loading = false; |
| | | state.selectedRowKeys = []; |
| | | }, 1000); |
| | | }; |
| | | const onSelectChange = selectedRowKeys => { |
| | | // console.log('selectedRowKeys changed: ', selectedRowKeys); |
| | | state.selectedRowKeys = selectedRowKeys; |
| | | }; |
| | | |
| | | function getPage() { |
| | | post('/api/menu/tree', {}).then((result) => { |
| | | if (result.data.code == 200) { |
| | | let data = result.data.data; |
| | | tableData.value = data; |
| | | console.log(data); |
| | | editChild.value.treeData = [{ |
| | | id: 0, |
| | | name: '根目录', |
| | | children: data |
| | | }]; |
| | | } else { |
| | | |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const handleEdit = (item) => { |
| | | editChild.value.open = true; |
| | | editChild.value.formData = item == null ? editChild.value.initFormData : item; |
| | | } |
| | | |
| | | const handleExport = async (intl) => { |
| | | post('/api/menu/export', {}).then(result => { |
| | | const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' }); |
| | | window.location.href = window.URL.createObjectURL(blob); |
| | | return true; |
| | | }) |
| | | }; |
| | | |
| | | const onSearch = () => { |
| | | console.log('search'); |
| | | } |
| | | |
| | | function handleTableReload(value) { |
| | | getPage() |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '菜单管理' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <EditView ref="editChild" @tableReload="handleTableReload" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" placeholder="请输入" style="width: 200px;" @search="onSearch" /> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">添加</a-button> |
| | | <a-button @click="handleExport">导出</a-button> |
| | | </div> |
| | | </div> |
| | | <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }" |
| | | :data-source="tableData" :defaultExpandAllRows="false" key="menu" rowKey="id"> |
| | | <a-table-column title="菜单名称" key="name" data-index="name" /> |
| | | <a-table-column title="路由地址" key="route" data-index="route" /> |
| | | <a-table-column title="类型" key="type" data-index="type$"> |
| | | <template #default="{ record }"> |
| | | <span> |
| | | <a-tag :color="typeMap[record.type].color">{{ record.type$ }}</a-tag> |
| | | </span> |
| | | </template> |
| | | </a-table-column> |
| | | <a-table-column title="权限标识" key="authority" data-index="authority" /> |
| | | <a-table-column title="菜单图标" key="icon" data-index="icon"> |
| | | <template #default="{ record }"> |
| | | <component :is="components[ref(record.icon).value]" /> |
| | | </template> |
| | | </a-table-column> |
| | | <a-table-column title="排序" key="sort" data-index="sort" /> |
| | | <a-table-column title="状态" key="status$" data-index="status$" /> |
| | | <a-table-column title="修改时间" key="updateTime$" data-index="updateTime$" /> |
| | | <a-table-column title="操作" key="oper" data-index="oper"> |
| | | <template #default="{ record }"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | | <a-button type="link" primary @click="handleEdit(record)">编辑</a-button> |
| | | <a-button type="link" danger>删除</a-button> |
| | | </div> |
| | | </template> |
| | | </a-table-column> |
| | | </a-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <style></style> |
New file |
| | |
| | | <script setup> |
| | | import { ref, nextTick } from 'vue'; |
| | | import { get, post } from '@/utils/request.js' |
| | | import { formatMessage } from '@/utils/localeUtils.js'; |
| | | |
| | | const submitButton = ref(null); |
| | | const isSave = ref(true); |
| | | const open = ref(false); |
| | | const initFormData = { |
| | | name: null |
| | | } |
| | | let formData = ref(initFormData); |
| | | const treeData = ref(null); |
| | | |
| | | const emit = defineEmits(['tableReload']) |
| | | |
| | | const handleOk = (e) => { |
| | | nextTick(() => { |
| | | setTimeout(() => { |
| | | submitButton.value.$el.click(); |
| | | }, 100); |
| | | }); |
| | | }; |
| | | |
| | | const onFinish = values => { |
| | | // console.log('Success:', values); |
| | | open.value = false; |
| | | post(isSave.value ? '/api/userLogin/save' : '/api/userLogin/update', formData.value).then((result) => { |
| | | console.log(result); |
| | | emit('tableReload', 'reload') |
| | | }) |
| | | }; |
| | | const onFinishFailed = errorInfo => { |
| | | console.log('Failed:', errorInfo); |
| | | }; |
| | | |
| | | defineExpose({ |
| | | open, |
| | | formData, |
| | | initFormData, |
| | | treeData, |
| | | isSave, |
| | | }) |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '菜单管理' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <a-modal v-model:open="open" |
| | | :title="isSave ? formatMessage('page.add', '添加') : formatMessage('page.edit', '编辑')" @ok="handleOk" |
| | | style="width: 600px;"> |
| | | <a-form :model="formData" name="formTable" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" |
| | | style="display: flex;justify-content: space-between;flex-wrap: wrap;" autocomplete="off" |
| | | @finish="onFinish" @finishFailed="onFinishFailed"> |
| | | <a-form-item label="用户" name="userId" style="width: 250px;" |
| | | :rules="[{ required: true, message: '用户不能为空!' }]"> |
| | | <a-input v-model:value="formData.userId" /> |
| | | </a-form-item> |
| | | <a-form-item label="密钥" name="token" style="width: 250px;"> |
| | | <a-input v-model:value="formData.token" /> |
| | | </a-form-item> |
| | | <a-form-item label="登录ip" name="ip" style="width: 250px;"> |
| | | <a-input v-model:value="formData.ip" /> |
| | | </a-form-item> |
| | | <a-form-item label="类型" name="type" style="width: 250px;" |
| | | :rules="[{ required: true, message: '类型不能为空!' }]"> |
| | | <a-select ref="select" v-model:value="formData.type" :options="[ |
| | | { label: '登录成功', value: 0 }, |
| | | { label: '登录失败', value: 1 }, |
| | | { label: '退出登录', value: 2 }, |
| | | { label: '续签token', value: 3 }, |
| | | ]"></a-select> |
| | | </a-form-item> |
| | | <a-form-item label="备注" name="memo" style="width: 250px;"> |
| | | <a-input v-model:value="formData.memo" /> |
| | | </a-form-item> |
| | | <a-form-item> |
| | | <a-button type="primary" html-type="submit" ref="submitButton" |
| | | style="visibility: hidden;">Submit</a-button> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-modal> |
| | | </div> |
| | | </template> |
| | | |
| | | <style></style> |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | | import { formatMessage } from '@/utils/localeUtils.js'; |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | |
| | | const router = useRouter(); |
| | | const TABLE_KEY = 'table-userLogin'; |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const editChild = ref(null) |
| | | |
| | | let tableData = ref([]); |
| | | getPage(); |
| | | |
| | | const columns = [ |
| | | { |
| | | title: 'ID', |
| | | name: 'id', |
| | | dataIndex: 'id', |
| | | key: 'id', |
| | | }, |
| | | { |
| | | title: '用户', |
| | | name: 'userId$', |
| | | dataIndex: 'userId$', |
| | | key: 'userId$', |
| | | }, |
| | | { |
| | | title: '密钥', |
| | | name: 'token', |
| | | dataIndex: 'token', |
| | | key: 'token', |
| | | ellipsis: true, |
| | | }, |
| | | { |
| | | title: '登录ip', |
| | | name: 'ip', |
| | | dataIndex: 'ip', |
| | | key: 'ip', |
| | | }, |
| | | { |
| | | title: '类型', |
| | | name: 'type', |
| | | dataIndex: 'type', |
| | | key: 'type', |
| | | customRender: (column) => { |
| | | let typeMap = { |
| | | 0: { |
| | | text: formatMessage('login.success', '登录成功'), |
| | | }, |
| | | 1: { |
| | | text: formatMessage('login.fail', '登录失败'), |
| | | }, |
| | | 2: { |
| | | text: formatMessage('login.logout', '退出登录'), |
| | | }, |
| | | 3: { |
| | | text: formatMessage('login.retoken', '续签token'), |
| | | }, |
| | | }; |
| | | return typeMap[column.value].text; |
| | | } |
| | | }, |
| | | { |
| | | title: '添加时间', |
| | | name: 'createTime$', |
| | | dataIndex: 'createTime$', |
| | | key: 'createTime$', |
| | | }, |
| | | { |
| | | title: '备注', |
| | | name: 'memo', |
| | | dataIndex: 'memo', |
| | | key: 'memo', |
| | | }, |
| | | { |
| | | title: '操作', |
| | | name: 'oper', |
| | | dataIndex: 'oper', |
| | | key: 'oper', |
| | | }, |
| | | ]; |
| | | |
| | | const state = reactive({ |
| | | selectedRowKeys: [], |
| | | loading: false, |
| | | }); |
| | | const hasSelected = computed(() => state.selectedRowKeys.length > 0); |
| | | const start = () => { |
| | | state.loading = true; |
| | | // ajax request after empty completing |
| | | setTimeout(() => { |
| | | state.loading = false; |
| | | state.selectedRowKeys = []; |
| | | }, 1000); |
| | | }; |
| | | const onSelectChange = selectedRowKeys => { |
| | | // console.log('selectedRowKeys changed: ', selectedRowKeys); |
| | | state.selectedRowKeys = selectedRowKeys; |
| | | }; |
| | | |
| | | function getPage() { |
| | | post('/api/userLogin/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | | let data = result.data; |
| | | tableData.value = data; |
| | | } else if (result.code === 401) { |
| | | message.error(result.msg); |
| | | logout() |
| | | } else { |
| | | message.error(result.msg); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const handleEdit = (item) => { |
| | | editChild.value.open = true; |
| | | editChild.value.formData = item == null ? editChild.value.initFormData : JSON.parse(JSON.stringify(item)); |
| | | editChild.value.isSave = item == null; |
| | | } |
| | | |
| | | const handleDel = (rows) => { |
| | | Modal.confirm({ |
| | | title: formatMessage('page.delete', '删除'), |
| | | content: formatMessage('page.delete.confirm', '确定删除该项吗?'), |
| | | maskClosable: true, |
| | | onOk: async () => { |
| | | post('/api/userLogin/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => { |
| | | let result = resp.data; |
| | | if (result.code === 200) { |
| | | message.success(result.msg); |
| | | } else { |
| | | message.error(result.msg); |
| | | } |
| | | getPage() |
| | | }) |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | const handleExport = async (intl) => { |
| | | postBlob('/api/userLogin/export', {}).then(result => { |
| | | const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' }); |
| | | window.location.href = window.URL.createObjectURL(blob); |
| | | return true; |
| | | }) |
| | | }; |
| | | |
| | | const onSearch = () => { |
| | | // console.log('search'); |
| | | getPage() |
| | | } |
| | | |
| | | const onPageChange = (page, size) => { |
| | | currentPage = page; |
| | | pageSize = size; |
| | | getPage(); |
| | | } |
| | | |
| | | function handleTableReload(value) { |
| | | getPage() |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '登录日志' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <EditView ref="editChild" @tableReload="handleTableReload" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | | </div> |
| | | </div> |
| | | <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }" |
| | | :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" |
| | | :pagination="{ total: tableData.total, onChange: onPageChange }" |
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns"> |
| | | <template #bodyCell="{ column, text, record }"> |
| | | <template v-if="column.dataIndex === 'oper'"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | | <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '编辑') }}</a-button> |
| | | <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '删除') |
| | | }}</a-button> |
| | | </div> |
| | | </template> |
| | | </template> |
| | | </a-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <style></style> |
New file |
| | |
| | | import { fileURLToPath, URL } from 'node:url' |
| | | |
| | | import { defineConfig } from 'vite' |
| | | import vue from '@vitejs/plugin-vue' |
| | | import VueJsx from '@vitejs/plugin-vue-jsx' |
| | | |
| | | // https://vitejs.dev/config/ |
| | | export default defineConfig({ |
| | | plugins: [ |
| | | VueJsx(), |
| | | vue(), |
| | | ], |
| | | resolve: { |
| | | alias: { |
| | | '@': fileURLToPath(new URL('./src', import.meta.url)) |
| | | } |
| | | } |
| | | }) |
New file |
| | |
| | | package com.zy.asrs.framework.generators; |
| | | |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.generators.constant.SqlOsType; |
| | | import com.zy.asrs.framework.generators.domain.Column; |
| | | import com.zy.asrs.framework.generators.utils.GeneratorUtils; |
| | | import org.springframework.core.io.ClassPathResource; |
| | | |
| | | import java.io.*; |
| | | import java.sql.*; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by vincent on 2019-06-18 |
| | | */ |
| | | public class VueGenerator { |
| | | |
| | | private static final String BASE_DIR = "src/main/"; |
| | | private static final String JAVA_DIR = BASE_DIR + "java/"; |
| | | private static final String XML_DIR = BASE_DIR + "resources/mapper/"; |
| | | private static final String HTML_DIR = BASE_DIR + "webapp/"; |
| | | private static final String[] ALL_TEMPLATES = new String[]{ |
| | | "Controller", |
| | | "Service", |
| | | "ServiceImpl", |
| | | "Mapper", |
| | | "Entity", |
| | | "Xml", |
| | | "Index", |
| | | "Edit", |
| | | "Sql"}; |
| | | private static final ArrayList<String> SYSTEM_MODEL = new ArrayList<String>(){{ |
| | | add("User"); |
| | | add("Host"); |
| | | }}; |
| | | |
| | | |
| | | public String url; |
| | | public String username; |
| | | public String password; |
| | | public String table; |
| | | public String tableName; |
| | | public String packagePath; |
| | | public boolean controller = true; |
| | | public boolean service = true; |
| | | public boolean mapper = true; |
| | | public boolean entity = true; |
| | | public boolean xml = true; |
| | | public boolean vue = true; |
| | | public boolean sql = true; |
| | | public SqlOsType sqlOsType; |
| | | public String backendPrefixPath; |
| | | public String frontendPrefixPath; |
| | | |
| | | private List<Column> columns = new ArrayList<>(); |
| | | private String fullEntityName; |
| | | private String simpleEntityName; |
| | | private String entityImport; |
| | | private String entityContent; |
| | | private String xmlContent; |
| | | private String htmlContent; |
| | | private String htmlDialogContent; |
| | | private String jsTableContent; |
| | | private String jsForeignKeyContent; |
| | | private String jsDateContent; |
| | | private String jsPrimaryKeyDoms; |
| | | private String primaryKeyColumn; |
| | | private String majorColumn; |
| | | private String systemPackagePath; |
| | | private String systemPackage; |
| | | private String itemName; |
| | | private String tableColumns; |
| | | private String formEditColumns; |
| | | |
| | | public void build() throws Exception { |
| | | init(); |
| | | for (String template : ALL_TEMPLATES){ |
| | | boolean pass = false; |
| | | String lowerCase = template.toLowerCase(); |
| | | String templatePath = lowerCase.contains("impl")?lowerCase.substring(0,lowerCase.length()-4)+"/"+lowerCase.substring(lowerCase.length()-4):lowerCase; |
| | | String directory=""; |
| | | String fileName=""; |
| | | switch (template){ |
| | | case "Controller": |
| | | pass = controller; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "Service": |
| | | pass = service; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "ServiceImpl": |
| | | pass = service; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "Mapper": |
| | | pass = mapper; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "Entity": |
| | | pass = entity; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+".java"; |
| | | break; |
| | | case "Xml": |
| | | pass = xml; |
| | | directory = backendPrefixPath + XML_DIR + itemName + "/"; |
| | | fileName = fullEntityName+"Mapper.xml"; |
| | | break; |
| | | case "Sql": |
| | | pass = sql; |
| | | directory = backendPrefixPath + JAVA_DIR; |
| | | fileName = simpleEntityName+".sql"; |
| | | break; |
| | | case "Index": |
| | | pass = vue; |
| | | directory = frontendPrefixPath + "/src/views/" + simpleEntityName + "/"; |
| | | fileName = "index.vue"; |
| | | break; |
| | | case "Edit": |
| | | pass = vue; |
| | | directory = frontendPrefixPath + "/src/views/" + simpleEntityName + "/"; |
| | | fileName = "edit.vue"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!pass){ continue; } |
| | | String content = readFile(template); |
| | | writeFile(content, directory, fileName, template); |
| | | } |
| | | } |
| | | |
| | | private void init() throws Exception { |
| | | gainDbInfo(); |
| | | fullEntityName = GeneratorUtils.getNameSpace(table); |
| | | simpleEntityName = fullEntityName.substring(0, 1).toLowerCase()+fullEntityName.substring(1); |
| | | entityContent = createEntityMsg(); |
| | | htmlContent = createHtmlMsg(); |
| | | htmlDialogContent = createHtmlDialogMsg(); |
| | | jsTableContent = createJsTableMsg(); |
| | | jsForeignKeyContent = createJsFkContent(); |
| | | jsDateContent = createJsDateContent(); |
| | | jsPrimaryKeyDoms = createJsPrimaryKeyMsg(); |
| | | primaryKeyColumn = createPrimaryMsg(); |
| | | majorColumn = createMajorMsg(); |
| | | String[] packagePathSplit = packagePath.split("\\."); |
| | | systemPackagePath = packagePath.replaceAll(packagePathSplit[packagePathSplit.length-1], "system"); |
| | | String[] split = systemPackagePath.split("\\."); |
| | | systemPackage = ""; |
| | | for (int i = 1;i <= split.length; i++) { |
| | | if (i != split.length) { |
| | | if (i == split.length - 1) { |
| | | systemPackage = systemPackage + split[i-1]; |
| | | } else { |
| | | systemPackage = systemPackage + split[i-1] + "."; |
| | | } |
| | | } |
| | | } |
| | | itemName = packagePathSplit[packagePathSplit.length - 1]; |
| | | tableColumns = createTableColumns(); |
| | | formEditColumns = createFormEditColumns(); |
| | | } |
| | | |
| | | private String readFile(String template){ |
| | | StringBuilder txtContentBuilder=new StringBuilder(); |
| | | ClassPathResource classPath=new ClassPathResource("templates/vue/"+template + ".txt"); |
| | | |
| | | try (BufferedReader reader = new BufferedReader(new InputStreamReader(classPath.getInputStream()))) { |
| | | String lineContent; |
| | | while ((lineContent = reader.readLine()) != null) { |
| | | txtContentBuilder.append(lineContent).append("\n"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return txtContentBuilder.toString(); |
| | | } |
| | | |
| | | private void writeFile(String content, String directory, String fileName, String template) throws IOException { |
| | | File codeDirectory=new File(directory); |
| | | if(!codeDirectory.exists()){ |
| | | codeDirectory.mkdirs(); |
| | | } |
| | | |
| | | File writerFile=new File(directory+fileName); |
| | | if(!writerFile.exists()){ |
| | | content=content. |
| | | replaceAll("@\\{TABLENAME}", table) |
| | | .replaceAll("@\\{TABLEDESC}", tableName) |
| | | .replaceAll("@\\{ENTITYIMPORT}", entityImport) |
| | | .replaceAll("@\\{ENTITYCONTENT}", entityContent) |
| | | .replaceAll("@\\{ENTITYNAME}", fullEntityName) |
| | | .replaceAll("@\\{SIMPLEENTITYNAME}", simpleEntityName) |
| | | .replaceAll("@\\{UENTITYNAME}", simpleEntityName) |
| | | .replaceAll("@\\{COMPANYNAME}",packagePath) |
| | | .replaceAll("@\\{ITEMNAME}",itemName) |
| | | // .replaceAll("@\\{XMLCONTENT}", xmlContent) |
| | | .replaceAll("@\\{HTMLCONTENT}", htmlContent) |
| | | .replaceAll("@\\{HTMLDIALOGCONTENT}", htmlDialogContent) |
| | | .replaceAll("@\\{JSTABLECONTENT}", jsTableContent) |
| | | .replaceAll("@\\{JSFOREIGNKEYCONTENT}", jsForeignKeyContent) |
| | | .replaceAll("@\\{JSDATECONTENT}", jsDateContent) |
| | | .replaceAll("@\\{JSPRIMARYKEYDOMS}", jsPrimaryKeyDoms) |
| | | .replaceAll("@\\{MAJORCOLUMN}", GeneratorUtils.humpToLine(majorColumn)) |
| | | .replaceAll("@\\{MAJORCOLUMN0}", GeneratorUtils.firstCharConvert(majorColumn, false)) |
| | | .replaceAll("@\\{MAJORCOLUMN_UP}", GeneratorUtils.firstCharConvert(majorColumn, false)) |
| | | .replaceAll("@\\{PRIMARYKEYCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false)) |
| | | .replaceAll("@\\{PRIMARYKEYCOLUMN0}", GeneratorUtils.firstCharConvert(primaryKeyColumn, true)) |
| | | .replaceAll("@\\{UPCASEMARJORCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false)) |
| | | .replaceAll("@\\{SYSTEMPACKAGE}",systemPackage) |
| | | .replaceAll("@\\{TABLECOLUMNS}", tableColumns) |
| | | .replaceAll("@\\{FORMEDITCOLUMNS}", formEditColumns) |
| | | ; |
| | | writerFile.createNewFile(); |
| | | BufferedWriter writer=new BufferedWriter(new FileWriter(writerFile)); |
| | | writer.write(content); |
| | | writer.flush(); |
| | | writer.close(); |
| | | System.out.println(fullEntityName+template+" 源文件创建成功!"); |
| | | }else{ |
| | | System.out.println(fullEntityName+template+" 源文件已经存在创建失败!"); |
| | | } |
| | | } |
| | | |
| | | private void gainDbInfo() throws Exception { |
| | | Connection conn; |
| | | if (null == this.sqlOsType) { |
| | | throw new RuntimeException("请选择sqlOsType!"); |
| | | } |
| | | if (null == this.table) { |
| | | throw new RuntimeException("请输入table!"); |
| | | } |
| | | if (null == this.tableName) { |
| | | throw new RuntimeException("请输入tableName!"); |
| | | } |
| | | switch (this.sqlOsType) { |
| | | case MYSQL: |
| | | Class.forName("com.mysql.cj.jdbc.Driver").newInstance(); |
| | | conn = DriverManager.getConnection("jdbc:mysql://"+url, username, password); |
| | | this.columns = getMysqlColumns(conn, table, true, sqlOsType); |
| | | break; |
| | | case SQL_SERVER: |
| | | Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); |
| | | conn = DriverManager.getConnection("jdbc:sqlserver://"+url, username, password); |
| | | this.columns = getSqlServerColumns(conn, table, true, sqlOsType); |
| | | break; |
| | | default: |
| | | throw new RuntimeException("请指定数据库类型!"); |
| | | } |
| | | |
| | | } |
| | | |
| | | // mysql |
| | | public static List<Column> getMysqlColumns(Connection conn, String table, boolean init, SqlOsType sqlOsType) throws Exception { |
| | | List<Column> result = new ArrayList<>(); |
| | | PreparedStatement ps = conn.prepareStatement("select * from " + table); |
| | | ResultSetMetaData meta = ps.executeQuery().getMetaData(); |
| | | // 单表字段数量 |
| | | int count = meta.getColumnCount(); |
| | | ResultSet resultSet = ps.executeQuery("show full columns from " + table); |
| | | for (int i = 1; i < count + 1; i++) { |
| | | String columnName = meta.getColumnName(i); |
| | | if (resultSet.next() && columnName.equals(resultSet.getString("Field"))){ |
| | | result.add(new Column( |
| | | conn, |
| | | meta.getColumnName(i), |
| | | GeneratorUtils.getType(meta.getColumnType(i)), |
| | | resultSet.getString("Comment"), |
| | | resultSet.getString("Key").equals("PRI"), |
| | | resultSet.getString("Key").equals("PRI"), |
| | | resultSet.getString("Null").equals("NO"), |
| | | GeneratorUtils.getColumnLength(resultSet.getString("Type")), |
| | | init, |
| | | sqlOsType |
| | | )); |
| | | } |
| | | result.forEach(column -> System.out.println(column.toString())); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | // sqlserver |
| | | public static List<Column> getSqlServerColumns(Connection conn, String table, boolean init, SqlOsType sqlOsType) throws Exception { |
| | | List<Column> result = new ArrayList<>(); |
| | | PreparedStatement ps = conn.prepareStatement("select * from " + table); |
| | | ResultSetMetaData meta = ps.executeQuery().getMetaData(); |
| | | // 单表字段数量 |
| | | int count = meta.getColumnCount(); |
| | | StringBuilder sql = new StringBuilder("SELECT \n" + |
| | | " 'Field'= a.name,\n" + |
| | | " 'Comment'= isnull(g.[value],''),\n" + |
| | | " 'Key'= case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then 'PRI' else '' end,\n" + |
| | | " 'Main'= case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then 'PRI' else '' end,"+ |
| | | " 'Type'= b.name,\n" + |
| | | " 'Length'= COLUMNPROPERTY(a.id,a.name,'PRECISION'),\n" + |
| | | " 'Decimals'= isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),\n" + |
| | | " 'Null'= case when a.isnullable=1 then 'Yes' else 'No' end,\n" + |
| | | " 'Default' = isnull(e.text,'')\n" + |
| | | "FROM syscolumns a\n" + |
| | | "LEFT JOIN systypes b on a.xusertype=b.xusertype\n" + |
| | | "INNER JOIN sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'\n" + |
| | | "LEFT JOIN syscomments e on a.cdefault=e.id\n" + |
| | | "LEFT JOIN sys.extended_properties g on a.id=G.major_id and a.colid=g.minor_id \n" + |
| | | "LEFT JOIN sys.extended_properties f on d.id=f.major_id and f.minor_id=0 where d.name = '") |
| | | .append(table).append("' ORDER BY a.colorder ASC"); |
| | | ResultSet resultSet = conn.prepareStatement(sql.toString()).executeQuery(); |
| | | for (int i = 1; i < count + 1; i++) { |
| | | String columnName = meta.getColumnName(i); |
| | | if (resultSet.next() && columnName.equals(resultSet.getString("Field"))){ |
| | | result.add(new Column( |
| | | conn, |
| | | meta.getColumnName(i), |
| | | GeneratorUtils.getType(meta.getColumnType(i)), |
| | | resultSet.getString("Comment"), |
| | | resultSet.getString("Key").equals("PRI"), |
| | | resultSet.getString("Main").equals("PRI"), |
| | | resultSet.getString("Null").equals("No"), |
| | | GeneratorUtils.getColumnLength(resultSet.getString("Type")), |
| | | init, |
| | | sqlOsType |
| | | )); |
| | | } |
| | | } |
| | | result.forEach(column -> System.out.println(column.toString())); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /**********************************************************************************************/ |
| | | /************************************* Entity动态字段 *******************************************/ |
| | | /**********************************************************************************************/ |
| | | |
| | | private String createEntityMsg(){ |
| | | if (Cools.isEmpty(systemPackagePath)) { |
| | | String[] packagePathSplit = packagePath.split("\\."); |
| | | systemPackagePath = packagePath.replaceAll(packagePathSplit[packagePathSplit.length-1], "system"); |
| | | } |
| | | if (columns.isEmpty()){ |
| | | return null; |
| | | } |
| | | StringBuilder sb = new StringBuilder(); |
| | | StringBuilder entityIm = new StringBuilder(); |
| | | boolean setTableField = true; |
| | | boolean setTableId = true; |
| | | boolean setDateTimeFormat = true; |
| | | for (Column column : columns){ |
| | | if (column.getType().equals("Date")){ |
| | | entityIm.append("import java.text.SimpleDateFormat;\n") |
| | | .append("import java.util.Date;\n"); |
| | | } |
| | | |
| | | // 注释 |
| | | if (!Cools.isEmpty(column.getComment())){ |
| | | sb.append(" /**\n") |
| | | .append(" * ") |
| | | .append(column.getWholeComment()) |
| | | .append("\n") |
| | | .append(" */") |
| | | .append("\n"); |
| | | } |
| | | |
| | | // swagger |
| | | sb.append(" @ApiModelProperty(value= \"") |
| | | .append(column.getWholeComment()) |
| | | .append("\")\n"); |
| | | |
| | | |
| | | // 主键修饰 |
| | | if (column.isMainKey()){ |
| | | if (column.isOnly()){ |
| | | sb.append(" ") |
| | | .append("@TableId(value = \"") |
| | | .append(column.getName()) |
| | | .append("\", type = IdType.AUTO)") |
| | | .append("\n"); |
| | | } else { |
| | | sb.append(" ") |
| | | .append("@TableId(value = \"") |
| | | .append(column.getName()) |
| | | .append("\", type = IdType.INPUT)") |
| | | .append("\n"); |
| | | } |
| | | |
| | | } |
| | | |
| | | if (column.getName().equals("deleted")) { |
| | | entityIm.append("import com.baomidou.mybatisplus.annotation.TableLogic;\n"); |
| | | sb.append(" ") |
| | | .append("@TableLogic\n"); |
| | | } |
| | | |
| | | if ("Date".equals(column.getType())){ |
| | | if (setDateTimeFormat){ |
| | | entityIm.append("import org.springframework.format.annotation.DateTimeFormat;").append("\n"); |
| | | setDateTimeFormat = false; |
| | | } |
| | | sb.append(" ") |
| | | .append("@DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\")") |
| | | .append("\n"); |
| | | } |
| | | |
| | | sb.append(" ") |
| | | .append("private ") |
| | | .append(column.getType()) |
| | | .append(" ") |
| | | .append(column.getHumpName()) |
| | | .append(";") |
| | | .append("\n") |
| | | .append("\n"); |
| | | } |
| | | |
| | | // default constructor |
| | | sb.append(" public ").append(fullEntityName).append("() {}\n\n"); |
| | | // full constructor |
| | | sb.append(" public ").append(fullEntityName).append("("); |
| | | for (Column column : columns){ |
| | | if (column.isOnly()){ continue;} |
| | | sb.append(column.getType()).append(" ").append(column.getHumpName()).append(","); |
| | | } |
| | | sb.deleteCharAt(sb.length()-1); |
| | | sb.append(") {\n"); |
| | | for (Column column : columns){ |
| | | if (column.isPrimaryKey()){ continue;} |
| | | sb.append(" this.").append(column.getHumpName()).append(" = ").append(column.getHumpName()).append(";\n"); |
| | | } |
| | | sb.append(" }\n\n"); |
| | | // constructor tips |
| | | sb.append("// ").append(fullEntityName).append(" ").append(simpleEntityName).append(" = new ").append(fullEntityName).append("(\n"); |
| | | for (int i = 0; i<columns.size(); i++) { |
| | | if (columns.get(i).isOnly()){ continue;} |
| | | sb.append("// null"); |
| | | if (i < columns.size()-1){ |
| | | sb.append(","); |
| | | } |
| | | sb.append(" // ").append(columns.get(i).getComment()).append(columns.get(i).isNotNull()?"[非空]":""); |
| | | if (i < columns.size()-1){ |
| | | sb.append("\n"); |
| | | } |
| | | } |
| | | sb.append("\n// );\n\n"); |
| | | |
| | | // get set |
| | | for (Column column : columns){ |
| | | // 时间字段增加$格式化 |
| | | if ("Date".equals(column.getType())){ |
| | | sb.append(" public String get") |
| | | .append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1)) |
| | | .append("\\$") |
| | | .append("(){\n") |
| | | .append(" if (Cools.isEmpty(this.").append(column.getHumpName()).append(")){\n") |
| | | .append(" return \"\";\n") |
| | | .append(" }\n") |
| | | .append(" return new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\").format(this.") |
| | | .append(column.getHumpName()) |
| | | .append(");\n") |
| | | .append(" }\n\n"); |
| | | // 枚举字段增加$格式化 |
| | | } else if (!Cools.isEmpty(column.getEnums())){ |
| | | sb.append(" public String get") |
| | | .append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1)) |
| | | .append("\\$") |
| | | .append("(){\n") |
| | | .append(" if (null == this.").append(column.getHumpName()).append("){ return null; }\n") |
| | | .append(" switch (this.").append(column.getHumpName()).append("){\n"); |
| | | for (Map<String, Object> map : column.getEnums()){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | sb.append(" case ").append(entry.getKey()).append(":\n") |
| | | .append(" return \"").append(entry.getValue()).append("\";\n"); |
| | | } |
| | | } |
| | | sb.append(" default:\n") |
| | | .append(" return String.valueOf(this.").append(column.getHumpName()).append(");\n") |
| | | .append(" }\n") |
| | | .append(" }\n\n"); |
| | | } |
| | | |
| | | // 外键修饰 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(" public String get").append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1)).append("\\$").append("(){\n") |
| | | .append(" ").append(column.getForeignKey()).append("Service service = SpringUtils.getBean(").append(column.getForeignKey()).append("Service.class);\n") |
| | | .append(" ").append(column.getForeignKey()).append(" ").append(GeneratorUtils.firstCharConvert(column.getForeignKey())) |
| | | .append(" = service.getById(this.").append(column.getHumpName()).append(");\n") |
| | | .append(" if (!Cools.isEmpty(").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append(")){\n") |
| | | .append(" return String.valueOf(").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append(".get").append(column.getForeignKeyMajor()).append("());\n") |
| | | .append(" }\n") |
| | | .append(" return null;\n") |
| | | .append(" }\n\n"); |
| | | } |
| | | |
| | | } |
| | | entityImport = entityIm.toString(); |
| | | return sb.toString(); |
| | | } |
| | | |
| | | /**********************************************************************************************/ |
| | | /*********************************** Controller动态字段 *****************************************/ |
| | | /**********************************************************************************************/ |
| | | |
| | | private String createPrimaryMsg(){ |
| | | String defaultMajor = "id"; |
| | | boolean havePrimary = false; |
| | | for (Column column: columns){ |
| | | if (column.isPrimaryKey()){ |
| | | defaultMajor = column.getHumpName(); |
| | | havePrimary = true; |
| | | } |
| | | } |
| | | if (!havePrimary) { |
| | | for (Column column: columns){ |
| | | if (column.isMainKey()){ |
| | | defaultMajor = column.getHumpName(); |
| | | } |
| | | } |
| | | } |
| | | return defaultMajor; |
| | | } |
| | | |
| | | private String createMajorMsg(){ |
| | | String defaultMajor = "id"; |
| | | for (Column column: columns){ |
| | | if (column.isPrimaryKey()){ |
| | | defaultMajor = column.getHumpName(); |
| | | } |
| | | if (column.isMajor()){ |
| | | return column.getHumpName(); |
| | | } |
| | | } |
| | | return defaultMajor; |
| | | } |
| | | |
| | | /**********************************************************************************************/ |
| | | /************************************** Html动态字段 *******************************************/ |
| | | /**********************************************************************************************/ |
| | | |
| | | private String createHtmlMsg(){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns){ |
| | | if (column.isPrimaryKey()){ continue;} |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(" <div class=\"layui-inline\">\n") |
| | | .append(" <div class=\"layui-input-inline cool-auto-complete\">\n") |
| | | .append(" <input id=\"").append(column.getHumpName()).append("\"") |
| | | .append(" class=\"layui-input\" name=\"").append(column.getName()).append("\" type=\"text\" placeholder=\"请输入\" autocomplete=\"off\" style=\"display: none\">\n") |
| | | .append(" <input id=\"").append(column.getHumpName()).append("\\$") |
| | | .append("\" class=\"layui-input cool-auto-complete-div\" onclick=\"autoShow(this.id)\" type=\"text\" placeholder=\"").append(GeneratorUtils.supportHtmlName(column.getComment())).append("\" onfocus=this.blur()>\n") |
| | | .append(" <div class=\"cool-auto-complete-window\">\n") |
| | | .append(" <input class=\"cool-auto-complete-window-input\" data-key=\"").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("Query").append("By").append(column.getHumpName()).append("\" onkeyup=\"autoLoad(this.getAttribute('data-key'))\">\n") |
| | | .append(" <select class=\"cool-auto-complete-window-select\" data-key=\"").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("Query").append("By").append(column.getHumpName()).append("Select\" onchange=\"confirmed(this.getAttribute('data-key'))\" multiple=\"multiple\">\n") |
| | | .append(" </select>\n") |
| | | .append(" </div>\n") |
| | | .append(" </div>\n") |
| | | .append(" </div>\n"); |
| | | } |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String createHtmlDialogMsg() { |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns){ |
| | | if (column.isPrimaryKey()) { |
| | | continue; |
| | | } |
| | | sb.append(" <div class=\"layui-form-item\">\n"); |
| | | sb.append(" <label class=\"layui-form-label"); |
| | | if (column.isNotNull()){ |
| | | sb.append(" layui-form-required"); |
| | | } |
| | | sb.append("\">").append(column.getComment()).append(": </label>\n"); |
| | | sb.append(" <div class=\"layui-input-block"); |
| | | // 关联外键 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(" cool-auto-complete"); |
| | | } |
| | | sb.append("\">\n"); |
| | | // 输入框类型 |
| | | if (Cools.isEmpty(column.getEnums())){ |
| | | sb.append(" <input class=\"layui-input\" name=\"").append(column.getHumpName()); |
| | | if ("Date".equals(column.getType())){ |
| | | sb.append("\" id=\"").append(column.getHumpName()).append("\\$"); |
| | | } |
| | | sb.append("\" placeholder=\"请输入").append(column.getComment()).append("\""); |
| | | if (column.isNotNull()){ |
| | | sb.append(" lay-vertype=\"tips\" lay-verify=\"required\""); |
| | | } |
| | | // 关联外键 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(" style=\"display: none\""); |
| | | } |
| | | sb.append(">\n"); |
| | | |
| | | // 关联外键 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(" <input id=\"").append(column.getHumpName()).append("\\$").append("\" name=\"").append(column.getHumpName()).append("\\$") |
| | | .append("\" class=\"layui-input cool-auto-complete-div\" onclick=\"autoShow(this.id)\" type=\"text\" placeholder=\"请输入").append(column.getComment()).append("\" onfocus=this.blur()>\n"); |
| | | sb.append(" <div class=\"cool-auto-complete-window\">\n") |
| | | .append(" <input class=\"cool-auto-complete-window-input\" data-key=\"") |
| | | .append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("Query").append("By").append(column.getHumpName()).append("\" onkeyup=\"autoLoad(this.getAttribute('data-key'))\">\n") |
| | | .append(" <select class=\"cool-auto-complete-window-select\" data-key=\"").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("Query").append("By").append(column.getHumpName()).append("Select\" onchange=\"confirmed(this.getAttribute('data-key'))\" multiple=\"multiple\">\n") |
| | | .append(" </select>\n") |
| | | .append(" </div>\n"); |
| | | } |
| | | // 枚举类型 |
| | | } else { |
| | | sb.append(" <select name=\"").append(column.getHumpName()).append("\""); |
| | | if (column.isNotNull()){ |
| | | sb.append(" lay-vertype=\"tips\" lay-verify=\"required\""); |
| | | } |
| | | sb.append(">\n"); |
| | | sb.append(" <option value=\"\">").append("请选择").append(column.getComment()).append("</option>\n"); |
| | | for (Map<String, Object> map : column.getEnums()){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | sb.append(" <option value=\"") |
| | | .append(entry.getKey()) |
| | | .append("\">") |
| | | .append(entry.getValue()) |
| | | .append("</option>\n"); |
| | | } |
| | | } |
| | | sb.append(" </select>\n"); |
| | | } |
| | | |
| | | sb.append(" </div>\n"); |
| | | sb.append(" </div>\n"); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String createJsTableMsg(){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns){ |
| | | // if (column.isPrimaryKey()){ continue;} |
| | | sb.append(" ,{field: '"); |
| | | if ("Date".equals(column.getType()) || !Cools.isEmpty(column.getEnums())){ |
| | | // 时间、枚举 格式化 |
| | | sb.append(column.getHumpName()).append("\\$"); |
| | | } else { |
| | | // 主键修饰 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(column.getHumpName()).append("\\$"); |
| | | } else { |
| | | sb.append(column.getHumpName()); |
| | | } |
| | | } |
| | | sb.append("', align: 'center',title: '").append(column.getComment()).append("'"); |
| | | // 复选框 |
| | | if (column.isCheckBox()){ |
| | | sb.append(", templet:function(row){\n") |
| | | .append(" var html = \"<input value='") |
| | | .append(column.getHumpName()).append("' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='\"+row.LAY_TABLE_INDEX+\"'\";\n") |
| | | .append(" if(row.").append(column.getHumpName()).append(" === 'Y'){html += \" checked \";}\n") |
| | | .append(" html += \">\";\n") |
| | | .append(" return html;\n") |
| | | .append(" }"); |
| | | } |
| | | sb.append("}\n"); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String createJsFkContent(){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns){ |
| | | // 如果有关联外健 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | sb.append(" window.load").append(column.getForeignKey()).append("Sel = function () {").append("\n") |
| | | .append(" return xmSelect.render({").append("\n") |
| | | .append(" el: '#").append(GeneratorUtils.firstCharConvert(column.getForeignKey(), true)).append("XmlSel',").append("\n") |
| | | .append(" autoRow: true,").append("\n") |
| | | .append(" filterable: true,").append("\n") |
| | | .append(" remoteSearch: true,").append("\n") |
| | | .append(" radio: true,").append("\n") |
| | | .append(" remoteMethod: function (val, cb, show) {").append("\n") |
| | | .append(" \\$.ajax({").append("\n") |
| | | .append(" url: baseUrl + \"/").append(GeneratorUtils.firstCharConvert(column.getForeignKey(), true)).append("/all/get/kv\",").append("\n") |
| | | .append(" headers: {'token': localStorage.getItem('token')},").append("\n") |
| | | .append(" data: {").append("\n") |
| | | .append(" condition: val").append("\n") |
| | | .append(" },").append("\n") |
| | | .append(" method: 'POST',").append("\n") |
| | | .append(" success: function (res) {").append("\n") |
| | | .append(" if (res.code === 200) {").append("\n") |
| | | .append(" cb(res.data)").append("\n") |
| | | .append(" } else {").append("\n") |
| | | .append(" cb([]);").append("\n") |
| | | .append(" layer.msg(res.msg, {icon: 2});").append("\n") |
| | | .append(" }").append("\n") |
| | | .append(" }").append("\n") |
| | | .append(" });").append("\n") |
| | | .append(" }").append("\n") |
| | | .append(" });").append("\n") |
| | | .append(" }").append("\n") |
| | | .append("\n"); |
| | | } |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String createJsDateContent(){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns) { |
| | | if (column.isPrimaryKey()) { |
| | | continue; |
| | | } |
| | | if ("Date".equals(column.getType())){ |
| | | sb.append(" layDate.render({\n") |
| | | .append(" elem: '#").append(column.getHumpName()).append("\\\\\\\\\\$',\n") |
| | | .append(" type: 'datetime',\n") |
| | | .append(" value: data!==undefined?data['").append(column.getHumpName()).append("\\$'").append("]:null\n") |
| | | .append(" });\n"); |
| | | } |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String createJsPrimaryKeyMsg(){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns) { |
| | | if (column.isPrimaryKey()) { |
| | | sb.append("#").append(column.getHumpName()).append(","); |
| | | } |
| | | } |
| | | if (sb.length() > 1){ |
| | | if (sb.substring(sb.length() - 1).equals(",")) { |
| | | sb.deleteCharAt(sb.length()-1); |
| | | } |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | /**********************************************************************************************/ |
| | | /************************************** Index动态字段 *******************************************/ |
| | | /**********************************************************************************************/ |
| | | |
| | | private String createTableColumns() { |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns) { |
| | | if (column.isPrimaryKey() |
| | | || column.getHumpName().equals("deleted") |
| | | || column.getHumpName().equals("hostId") |
| | | ) { |
| | | continue; |
| | | } |
| | | sb.append(" {\n") |
| | | .append(" title: '").append(column.getComment()).append("',\n") |
| | | .append(" dataIndex: '"); |
| | | if ("Date".equals(column.getType()) || !Cools.isEmpty(column.getEnums()) || !Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | // 时间、枚举 格式化 主键修饰 |
| | | sb.append(column.getHumpName()).append("\\$"); |
| | | } else { |
| | | sb.append(column.getHumpName()); |
| | | } |
| | | sb.append("',\n") |
| | | .append(" width: 140,\n"); |
| | | if (!Cools.isEmpty(column.getEnums())) { |
| | | sb.append(" customRender: (column) => {\n"); |
| | | sb.append(" let typeMap = {"); |
| | | for (Map<String, Object> map : column.getEnums()) { |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | sb.append(" ").append(entry.getKey()).append(": "); |
| | | sb.append(" { text: '").append(entry.getValue()).append("'").append(" },\n"); |
| | | } |
| | | } |
| | | sb.append(" }\n"); |
| | | sb.append(" }\n"); |
| | | } |
| | | sb.append(" },\n"); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String getAntProFilterType(Column column){ |
| | | String filter = "TextFilter"; |
| | | switch (column.getType()) { |
| | | case "Boolean": |
| | | filter = "TextFilter"; |
| | | break; |
| | | case "Short": |
| | | filter = "TextFilter"; |
| | | break; |
| | | case "Integer": |
| | | filter = "TextFilter"; |
| | | break; |
| | | case "Long": |
| | | filter = "TextFilter"; |
| | | break; |
| | | case "Double": |
| | | filter = "TextFilter"; |
| | | break; |
| | | case "String": |
| | | filter = "TextFilter"; |
| | | break; |
| | | case "Date": |
| | | filter = "DatetimeRangeFilter"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!Cools.isEmpty(column.getEnums())) { |
| | | filter = "SelectFilter"; |
| | | } |
| | | if (!Cools.isEmpty(column.getForeignKey())) { |
| | | filter = "LinkFilter"; |
| | | } |
| | | return filter; |
| | | } |
| | | |
| | | /**********************************************************************************************/ |
| | | /************************************** Edit动态字段 ********************************************/ |
| | | /**********************************************************************************************/ |
| | | |
| | | private String createFormEditColumns() { |
| | | StringBuilder sb = new StringBuilder(); |
| | | int times = 0; |
| | | boolean has = false;boolean init = false; |
| | | for (Column column : columns) { |
| | | if (column.isPrimaryKey() |
| | | || column.getHumpName().equals("deleted") |
| | | || column.getHumpName().equals("hostId") |
| | | ) { |
| | | continue; |
| | | } |
| | | if (times%2 == 0) { |
| | | sb.append(" <ProForm.Group>\n"); |
| | | has = true;init=true; |
| | | } |
| | | |
| | | String itemType = "ProFormText"; |
| | | String precision = ""; |
| | | switch (column.getType()) { |
| | | case "Boolean": |
| | | itemType = "ProFormText"; |
| | | break; |
| | | case "Short": |
| | | itemType = "ProFormDigit"; |
| | | precision = "0"; |
| | | break; |
| | | case "Integer": |
| | | itemType = "ProFormDigit"; |
| | | precision = "0"; |
| | | break; |
| | | case "Long": |
| | | itemType = "ProFormDigit"; |
| | | precision = "0"; |
| | | break; |
| | | case "Double": |
| | | itemType = "ProFormDigit"; |
| | | precision = "2"; |
| | | break; |
| | | case "String": |
| | | itemType = "ProFormText"; |
| | | break; |
| | | case "Date": |
| | | itemType = "ProFormDateTimePicker"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!Cools.isEmpty(column.getEnums())) { |
| | | itemType = "ProFormSelect"; |
| | | } |
| | | if (!Cools.isEmpty(column.getForeignKey())) { |
| | | itemType = "ProFormSelect"; |
| | | } |
| | | |
| | | sb.append(" <").append(itemType).append("\n") |
| | | .append(" name=\"").append(column.getHumpName()).append("\"\n") |
| | | .append(" label=\"").append(column.getComment()).append("\"\n") |
| | | .append(" colProps={{ md: 12, xl: 12 }}\n"); |
| | | // 数字小数点 |
| | | if (!Cools.isEmpty(precision) && Cools.isEmpty(column.getEnums())) { |
| | | sb.append(" fieldProps={{ precision: ").append(precision).append(" }}\n"); |
| | | } |
| | | |
| | | // 非空 |
| | | if (column.isNotNull()) { |
| | | sb.append(" rules={[{ required: true }]}\n"); |
| | | } |
| | | |
| | | // 枚举 |
| | | if (!Cools.isEmpty(column.getEnums())) { |
| | | sb.append(" options={[\n"); |
| | | for (Map<String, Object> map : column.getEnums()) { |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | sb.append(" { label: '").append(entry.getValue()).append("', value: ").append(entry.getKey()).append(" },\n"); |
| | | } |
| | | } |
| | | sb.append(" ]}\n"); |
| | | } |
| | | |
| | | // 时间 |
| | | if ("Date".equals(column.getType())) { |
| | | sb.append(" transform={(value) => moment(value).toISOString()}\n"); |
| | | } |
| | | |
| | | // 关联表 |
| | | if (!Cools.isEmpty(column.getForeignKey())) { |
| | | sb.append(" showSearch\n") |
| | | .append(" debounceTime={300}\n") |
| | | .append(" request={async ({ keyWords }) => {\n") |
| | | .append(" const resp = await Http.doPostForm('api/").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("/query', { condition: keyWords });\n") |
| | | .append(" return resp.data;\n") |
| | | .append(" }}\n"); |
| | | } |
| | | |
| | | sb.append(" />\n"); |
| | | |
| | | if (times%2 != 0) { |
| | | sb.append(" </ProForm.Group>\n"); |
| | | has = false; |
| | | } |
| | | times++; |
| | | } |
| | | if (init && has) { |
| | | sb.append(" </ProForm.Group>\n"); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zy.asrs.wms.system.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.wms.common.annotation.OperationLog; |
| | | import com.zy.asrs.wms.common.domain.BaseParam; |
| | | import com.zy.asrs.wms.common.domain.KeyValVo; |
| | | import com.zy.asrs.wms.common.domain.PageParam; |
| | | import @{COMPANYNAME}.entity.@{ENTITYNAME}; |
| | | import @{COMPANYNAME}.service.@{ENTITYNAME}Service; |
| | | import com.zy.asrs.wms.utils.ExcelUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | @RequestMapping("/api") |
| | | public class @{ENTITYNAME}Controller extends BaseController { |
| | | |
| | | @Autowired |
| | | private @{ENTITYNAME}Service @{SIMPLEENTITYNAME}Service; |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:list')") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/page") |
| | | public R page(@RequestBody Map<String, Object> map) { |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<@{ENTITYNAME}, BaseParam> pageParam = new PageParam<>(baseParam, @{ENTITYNAME}.class); |
| | | return R.ok().add(@{SIMPLEENTITYNAME}Service.page(pageParam, pageParam.buildWrapper(true))); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:list')") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/list") |
| | | public R list(@RequestBody Map<String, Object> map) { |
| | | return R.ok().add(@{SIMPLEENTITYNAME}Service.list()); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:list')") |
| | | @GetMapping("/@{SIMPLEENTITYNAME}/{id}") |
| | | public R get(@PathVariable("id") Long id) { |
| | | return R.ok().add(@{SIMPLEENTITYNAME}Service.getById(id)); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:save')") |
| | | @OperationLog("添加@{TABLEDESC}") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/save") |
| | | public R save(@RequestBody @{ENTITYNAME} @{SIMPLEENTITYNAME}) { |
| | | if (!@{SIMPLEENTITYNAME}Service.save(@{SIMPLEENTITYNAME})) { |
| | | return R.error("添加失败"); |
| | | } |
| | | return R.ok("添加成功"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:update')") |
| | | @OperationLog("修改@{TABLEDESC}") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/update") |
| | | public R update(@RequestBody @{ENTITYNAME} @{SIMPLEENTITYNAME}) { |
| | | if (!@{SIMPLEENTITYNAME}Service.updateById(@{SIMPLEENTITYNAME})) { |
| | | return R.error("修改失败"); |
| | | } |
| | | return R.ok("修改成功"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:remove')") |
| | | @OperationLog("删除@{TABLEDESC}") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/remove/{ids}") |
| | | public R remove(@PathVariable Long[] ids) { |
| | | if (!@{SIMPLEENTITYNAME}Service.removeByIds(Arrays.asList(ids))) { |
| | | return R.error("删除失败"); |
| | | } |
| | | return R.ok("删除成功"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:list')") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/query") |
| | | public R query(@RequestParam(required = false) String condition) { |
| | | List<KeyValVo> vos = new ArrayList<>(); |
| | | LambdaQueryWrapper<@{ENTITYNAME}> wrapper = new LambdaQueryWrapper<>(); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(@{ENTITYNAME}::get@{MAJORCOLUMN_UP}, condition); |
| | | } |
| | | @{SIMPLEENTITYNAME}Service.page(new Page<>(1, 30), wrapper).getRecords().forEach( |
| | | item -> vos.add(new KeyValVo(item.getId(), item.get@{MAJORCOLUMN_UP}())) |
| | | ); |
| | | return R.ok().add(vos); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('@{ITEMNAME}:@{SIMPLEENTITYNAME}:list')") |
| | | @PostMapping("/@{SIMPLEENTITYNAME}/export") |
| | | public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { |
| | | ExcelUtil.build(ExcelUtil.create(@{SIMPLEENTITYNAME}Service.list(), @{ENTITYNAME}.class), response); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | import React, { useState, useRef, useEffect } from 'react'; |
| | | import { |
| | | ProForm, |
| | | ProFormDigit, |
| | | ProFormText, |
| | | ProFormSelect, |
| | | ProFormDateTimePicker |
| | | } from '@ant-design/pro-components'; |
| | | import { Form, Modal } from 'antd'; |
| | | import { FormattedMessage, useIntl } from '@umijs/max'; |
| | | import moment from 'moment'; |
| | | import Http from '@/utils/http'; |
| | | |
| | | const Edit = (props) => { |
| | | const intl = useIntl(); |
| | | const [form] = Form.useForm(); |
| | | const { } = props; |
| | | |
| | | useEffect(() => { |
| | | form.resetFields(); |
| | | form.setFieldsValue({ |
| | | ...props.values |
| | | }) |
| | | }, [form, props]) |
| | | |
| | | const handleCancel = () => { |
| | | props.onCancel(); |
| | | }; |
| | | |
| | | const handleOk = () => { |
| | | form.submit(); |
| | | } |
| | | |
| | | const handleFinish = async (values) => { |
| | | props.onSubmit({ ...values }); |
| | | } |
| | | |
| | | return ( |
| | | <> |
| | | <Modal |
| | | title={ |
| | | Object.keys(props.values).length > 0 |
| | | ? intl.formatMessage({ id: 'page.edit', defaultMessage: '编辑' }) |
| | | : intl.formatMessage({ id: 'page.add', defaultMessage: '添加' }) |
| | | } |
| | | width={640} |
| | | forceRender |
| | | destroyOnClose |
| | | open={props.open} |
| | | onCancel={handleCancel} |
| | | onOk={handleOk} |
| | | > |
| | | <ProForm |
| | | form={form} |
| | | submitter={false} |
| | | onFinish={handleFinish} |
| | | layout="horizontal" |
| | | grid={true} |
| | | > |
| | | <ProFormDigit |
| | | name="id" |
| | | disabled |
| | | hidden={true} |
| | | /> |
| | | @{FORMEDITCOLUMNS} |
| | | </ProForm> |
| | | </Modal> |
| | | </> |
| | | ) |
| | | } |
| | | |
| | | export default Edit; |
New file |
| | |
| | | package @{COMPANYNAME}.entity; |
| | | |
| | | @{ENTITYIMPORT} |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableLogic; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.SpringUtils; |
| | | import com.zy.asrs.wms.system.service.UserService; |
| | | import com.zy.asrs.wms.system.service.HostService; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("@{TABLENAME}") |
| | | public class @{ENTITYNAME} implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @{ENTITYCONTENT} |
| | | } |
New file |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | | import { formatMessage } from '@/utils/localeUtils.js'; |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | |
| | | const router = useRouter(); |
| | | |
| | | const TABLE_KEY = 'table-@{SIMPLEENTITYNAME}'; |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const editChild = ref(null) |
| | | |
| | | let tableData = ref([]); |
| | | getPage(); |
| | | |
| | | const columns = [ |
| | | @{TABLECOLUMNS} |
| | | { |
| | | title: '操作', |
| | | name: 'oper', |
| | | dataIndex: 'oper', |
| | | key: 'oper', |
| | | }, |
| | | ]; |
| | | |
| | | const state = reactive({ |
| | | selectedRowKeys: [], |
| | | loading: false, |
| | | }); |
| | | const hasSelected = computed(() => state.selectedRowKeys.length > 0); |
| | | const start = () => { |
| | | state.loading = true; |
| | | // ajax request after empty completing |
| | | setTimeout(() => { |
| | | state.loading = false; |
| | | state.selectedRowKeys = []; |
| | | }, 1000); |
| | | }; |
| | | const onSelectChange = selectedRowKeys => { |
| | | // console.log('selectedRowKeys changed: ', selectedRowKeys); |
| | | state.selectedRowKeys = selectedRowKeys; |
| | | }; |
| | | |
| | | function getPage() { |
| | | post('/api/@{SIMPLEENTITYNAME}/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | | let data = result.data; |
| | | tableData.value = data; |
| | | } else if (result.code === 401) { |
| | | message.error(result.msg); |
| | | logout() |
| | | } else { |
| | | message.error(result.msg); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const handleEdit = (item) => { |
| | | editChild.value.open = true; |
| | | editChild.value.formData = item == null ? editChild.value.initFormData : JSON.parse(JSON.stringify(item)); |
| | | editChild.value.isSave = item == null; |
| | | } |
| | | |
| | | const handleDel = (rows) => { |
| | | Modal.confirm({ |
| | | title: formatMessage('page.delete', '删除'), |
| | | content: formatMessage('page.delete.confirm', '确定删除该项吗?'), |
| | | maskClosable: true, |
| | | onOk: async () => { |
| | | post('/api/@{SIMPLEENTITYNAME}/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => { |
| | | let result = resp.data; |
| | | if (result.code === 200) { |
| | | message.success(result.msg); |
| | | } else { |
| | | message.error(result.msg); |
| | | } |
| | | getPage() |
| | | }) |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | const handleExport = async (intl) => { |
| | | postBlob('/api/@{SIMPLEENTITYNAME}/export', {}).then(result => { |
| | | const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' }); |
| | | window.location.href = window.URL.createObjectURL(blob); |
| | | return true; |
| | | }) |
| | | }; |
| | | |
| | | const onSearch = () => { |
| | | // console.log('search'); |
| | | getPage() |
| | | } |
| | | |
| | | const onPageChange = (page, size) => { |
| | | currentPage = page; |
| | | pageSize = size; |
| | | getPage(); |
| | | } |
| | | |
| | | function handleTableReload(value) { |
| | | getPage() |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | | export default { |
| | | name: '@{fullEntityName}' |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <EditView ref="editChild" @tableReload="handleTableReload" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" style="width: 200px;" @search="onSearch" /> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | | </div> |
| | | </div> |
| | | <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }" |
| | | :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" |
| | | :pagination="{ total: tableData.total, onChange: onPageChange }" |
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }"> |
| | | @{TABLECOLUMNS} |
| | | <a-table-column title="类型" key="type" data-index="type" /> |
| | | <a-table-column title="操作" key="oper" data-index="oper"> |
| | | <template #default="{ record }"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | | <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '编辑') }}</a-button> |
| | | <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '删除') }}</a-button> |
| | | </div> |
| | | </template> |
| | | </a-table-column> |
| | | </a-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <template> |
| | | <div> |
| | | <EditView ref="editChild" @tableReload="handleTableReload" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | | </div> |
| | | </div> |
| | | <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }" |
| | | :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" |
| | | :pagination="{ total: tableData.total, onChange: onPageChange }" |
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns"> |
| | | <template #bodyCell="{ column, text, record }"> |
| | | <template v-if="column.dataIndex === 'oper'"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | | <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '编辑') }}</a-button> |
| | | <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '删除') |
| | | }}</a-button> |
| | | </div> |
| | | </template> |
| | | </template> |
| | | </a-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <style></style> |
New file |
| | |
| | | package @{COMPANYNAME}.mapper; |
| | | |
| | | import @{COMPANYNAME}.entity.@{ENTITYNAME}; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface @{ENTITYNAME}Mapper extends BaseMapper<@{ENTITYNAME}> { |
| | | |
| | | } |
New file |
| | |
| | | package @{COMPANYNAME}.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import @{COMPANYNAME}.entity.@{ENTITYNAME}; |
| | | |
| | | public interface @{ENTITYNAME}Service extends IService<@{ENTITYNAME}> { |
| | | |
| | | } |
New file |
| | |
| | | package @{COMPANYNAME}.service.impl; |
| | | |
| | | import @{COMPANYNAME}.mapper.@{ENTITYNAME}Mapper; |
| | | import @{COMPANYNAME}.entity.@{ENTITYNAME}; |
| | | import @{COMPANYNAME}.service.@{ENTITYNAME}Service; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("@{SIMPLEENTITYNAME}Service") |
| | | public class @{ENTITYNAME}ServiceImpl extends ServiceImpl<@{ENTITYNAME}Mapper, @{ENTITYNAME}> implements @{ENTITYNAME}Service { |
| | | |
| | | } |
New file |
| | |
| | | -- save @{SIMPLEENTITYNAME} record |
| | | -- mysql |
| | | insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '@{TABLEDESC}管理', '0', '/@{ITEMNAME}/@{SIMPLEENTITYNAME}', '/@{ITEMNAME}/@{SIMPLEENTITYNAME}', '0' , '0', '1' , '1'); |
| | | |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '查询@{TABLEDESC}', '', '1', '@{ITEMNAME}:@{SIMPLEENTITYNAME}:list', '0', '1', '1'); |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '添加@{TABLEDESC}', '', '1', '@{ITEMNAME}:@{SIMPLEENTITYNAME}:save', '1', '1', '1'); |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '修改@{TABLEDESC}', '', '1', '@{ITEMNAME}:@{SIMPLEENTITYNAME}:update', '2', '1', '1'); |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '删除@{TABLEDESC}', '', '1', '@{ITEMNAME}:@{SIMPLEENTITYNAME}:remove', '3', '1', '1'); |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="@{COMPANYNAME}.mapper.@{ENTITYNAME}Mapper"> |
| | | |
| | | </mapper> |
| | |
| | | package com.zy.asrs.wms.utils; |
| | | |
| | | |
| | | import com.zy.asrs.framework.generators.BetterGenerator; |
| | | import com.zy.asrs.framework.generators.VueGenerator; |
| | | import com.zy.asrs.framework.generators.constant.SqlOsType; |
| | | |
| | | /** |
| | |
| | | public class CodeBuilder { |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | BetterGenerator generator = new BetterGenerator(); |
| | | VueGenerator generator = new VueGenerator(); |
| | | generator.backendPrefixPath = "zy-asrs-wms/"; |
| | | generator.frontendPrefixPath = "zy-asrs-flow/"; |
| | | generator.frontendPrefixPath = "zy-asrs-admin/"; |
| | | |
| | | generator.sqlOsType = SqlOsType.MYSQL; |
| | | generator.url="localhost:3306/asrs"; |
| | | generator.username="root"; |
| | | generator.password="xltys1995"; |
| | | generator.password="root"; |
| | | // generator.url="47.97.1.152:51433;databasename=jkasrs"; |
| | | // generator.username="sa"; |
| | | // generator.password="Zoneyung@zy56$"; |
| | | |
| | | generator.table="sys_operation_record"; |
| | | generator.tableName="操作日志"; |
| | | generator.table="sys_user"; |
| | | generator.tableName="用户管理"; |
| | | generator.packagePath="com.zy.asrs.wms.system"; |
| | | |
| | | generator.build(); |
New file |
| | |
| | | -- save user record |
| | | -- mysql |
| | | insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '用户管理管理', '0', '/system/user', '/system/user', '0' , '0', '1' , '1'); |
| | | |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '查询用户管理', '', '1', 'system:user:list', '0', '1', '1'); |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '添加用户管理', '', '1', 'system:user:save', '1', '1', '1'); |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '修改用户管理', '', '1', 'system:user:update', '2', '1', '1'); |
| | | insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '删除用户管理', '', '1', 'system:user:remove', '3', '1', '1'); |
| | | |