From ef1c97251d789ade4e331ac7731e165489f1f41e Mon Sep 17 00:00:00 2001 From: simple321vip Date: Sun, 3 Apr 2022 23:43:45 +0800 Subject: [PATCH] initial commit --- .gitignore | 24 + .vscode/extensions.json | 3 + README.md | 26 + index.html | 13 + package-lock.json | 1375 +++++++++++++++++++++++++++++ package.json | 29 + public/favicon.ico | Bin 0 -> 4286 bytes src/App.vue | 9 + src/api/bookmark.ts | 38 + src/assets/close_sidebar.PNG | Bin 0 -> 15170 bytes src/assets/logo.png | Bin 0 -> 6849 bytes src/assets/open_sidebar.PNG | Bin 0 -> 20364 bytes src/components/HelloWorld.vue | 52 ++ src/components/layout/Layout.vue | 67 ++ src/components/layout/MainApp.vue | 12 + src/components/layout/NavBar.vue | 43 + src/components/layout/SideBar.vue | 38 + src/components/login/login.vue | 14 + src/const/const.ts | 71 ++ src/env.d.ts | 8 + src/main.ts | 18 + src/router/index.ts | 74 ++ src/service/search.ts | 6 + src/store/index.ts | 19 + src/store/table.ts | 3 + src/utils/auth.ts | 16 + src/utils/request.ts | 54 ++ src/view/blog/index.vue | 12 + src/view/bookmark/dialog.vue | 68 ++ src/view/bookmark/index.vue | 164 ++++ src/view/cloud/index.vue | 12 + src/view/dashboard/index.vue | 14 + src/view/recommend/index.vue | 12 + src/view/school/index.vue | 12 + src/view/thinking/index.vue | 12 + src/view/tools/cal.vue | 122 +++ src/view/tools/frame.vue | 29 + src/view/tools/index.vue | 40 + src/view/tools/unit.vue | 87 ++ tsconfig.json | 17 + tsconfig.node.json | 8 + vite.config.ts | 7 + 42 files changed, 2628 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 src/App.vue create mode 100644 src/api/bookmark.ts create mode 100644 src/assets/close_sidebar.PNG create mode 100644 src/assets/logo.png create mode 100644 src/assets/open_sidebar.PNG create mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/layout/Layout.vue create mode 100644 src/components/layout/MainApp.vue create mode 100644 src/components/layout/NavBar.vue create mode 100644 src/components/layout/SideBar.vue create mode 100644 src/components/login/login.vue create mode 100644 src/const/const.ts create mode 100644 src/env.d.ts create mode 100644 src/main.ts create mode 100644 src/router/index.ts create mode 100644 src/service/search.ts create mode 100644 src/store/index.ts create mode 100644 src/store/table.ts create mode 100644 src/utils/auth.ts create mode 100644 src/utils/request.ts create mode 100644 src/view/blog/index.vue create mode 100644 src/view/bookmark/dialog.vue create mode 100644 src/view/bookmark/index.vue create mode 100644 src/view/cloud/index.vue create mode 100644 src/view/dashboard/index.vue create mode 100644 src/view/recommend/index.vue create mode 100644 src/view/school/index.vue create mode 100644 src/view/thinking/index.vue create mode 100644 src/view/tools/cal.vue create mode 100644 src/view/tools/frame.vue create mode 100644 src/view/tools/index.vue create mode 100644 src/view/tools/unit.vue create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..3dc5b08 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["johnsoncodehk.volar"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..120f902 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# Vue 3 + Typescript + Vite + pinia + vue-router + +# Create project document how to bulid a project + before create project, you should install node to promit npm and node command is standy. + npm -v + node -v
+ + // 在想要创建的工程路径下执行以下命令,3到6秒就可以结束 + npm init vite@latest + // 1.填写 g-home + // 2.选择vue + // 3.vue.ts + + cd g-home + npm install + +# vue-router + + npm install vue-router -S + +# pinia + // instand of vuex + npm install pinia -S + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..11603f8 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..396f0fb --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1375 @@ +{ + "name": "g-home", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@ctrl/tinycolor": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz", + "integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==" + }, + "@element-plus/icons-vue": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-1.1.4.tgz", + "integrity": "sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ==" + }, + "@emmetio/abbreviation": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz", + "integrity": "sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==", + "dev": true, + "requires": { + "@emmetio/scanner": "^1.0.0" + } + }, + "@emmetio/css-abbreviation": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz", + "integrity": "sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==", + "dev": true, + "requires": { + "@emmetio/scanner": "^1.0.0" + } + }, + "@emmetio/scanner": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.0.tgz", + "integrity": "sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==", + "dev": true + }, + "@floating-ui/core": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.6.1.tgz", + "integrity": "sha512-Y30eVMcZva8o84c0HcXAtDO4BEzPJMvF6+B7x7urL2xbAqVsGJhojOyHLaoQHQYjb6OkqRq5kO+zeySycQwKqg==" + }, + "@floating-ui/dom": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-0.4.2.tgz", + "integrity": "sha512-2/4vOhMAujkMmGqGX1Gut84phe5MNfk1kGeM+RSTJCpeR0SWR2/RR+/f1r1msOvTQa28wn7HEhxGe71CjYY/vw==", + "requires": { + "@floating-ui/core": "^0.6.1" + } + }, + "@popperjs/core": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.4.tgz", + "integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==" + }, + "@types/js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ==", + "dev": true + }, + "@vitejs/plugin-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz", + "integrity": "sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==", + "dev": true + }, + "@volar/code-gen": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.29.8.tgz", + "integrity": "sha512-eohLLUqPChHRPDFT5gXn4V6pr/CeTri7Ou5GI26lUvBRRAbP8p+oYfQRcbMPGeKmVkYjfVj0chsxQGx6T8PQ4Q==", + "dev": true, + "requires": { + "@volar/shared": "0.29.8", + "@volar/source-map": "0.29.8" + } + }, + "@volar/html2pug": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@volar/html2pug/-/html2pug-0.29.8.tgz", + "integrity": "sha512-bhSNXg8A2aD3w0B+CwmHjqCAaKtj5rORbE5C/q/UdGqptJbC6STCmi30KuRTdfPhR++Xb18Hauf3s/WCmtNAPA==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0", + "domhandler": "^4.2.2", + "htmlparser2": "^7.1.2", + "pug": "^3.0.2" + } + }, + "@volar/shared": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@volar/shared/-/shared-0.29.8.tgz", + "integrity": "sha512-Y1NN6irkIukD+T0wf4p/dHWYL90sacN2e2lYoDXxRlvoYxwANnHgw0J0Rcp+yw58ElWRScdG7/YntEIuZWeJsw==", + "dev": true, + "requires": { + "upath": "^2.0.1", + "vscode-jsonrpc": "^8.0.0-next.2", + "vscode-uri": "^3.0.2" + } + }, + "@volar/source-map": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.29.8.tgz", + "integrity": "sha512-7w+UoYtnc6UQu30CgMVvx0YN4dzDgP4TIsSmUaW62AGmxU9Lxwp3Kkn/4N8efi91z8ma5Z78v/HddyJPwAC3LA==", + "dev": true, + "requires": { + "@volar/shared": "0.29.8" + } + }, + "@volar/transforms": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@volar/transforms/-/transforms-0.29.8.tgz", + "integrity": "sha512-o2hRa8CoDwYTO1Mu5KA47+1elUnYUjDaVhCvbyKlRfd8qpHea2llotArq7B6OORSL2M9DVs1IRJ5NGURBFeZ3Q==", + "dev": true, + "requires": { + "@volar/shared": "0.29.8", + "vscode-languageserver": "^8.0.0-next.2" + } + }, + "@volar/vue-code-gen": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@volar/vue-code-gen/-/vue-code-gen-0.29.8.tgz", + "integrity": "sha512-E1e7P2oktNC/DzgDBditfla4s8+HlUlluZ+BtcLvEdbkl3QEjujkB0x1wxguWzXmpWgLIDPtrS3Jzll5cCOkTg==", + "dev": true, + "requires": { + "@volar/code-gen": "0.29.8", + "@volar/shared": "0.29.8", + "@volar/source-map": "0.29.8", + "@vue/compiler-core": "^3.2.21", + "@vue/compiler-dom": "^3.2.21", + "@vue/shared": "^3.2.21", + "upath": "^2.0.1" + } + }, + "@vscode/emmet-helper": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.8.4.tgz", + "integrity": "sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==", + "dev": true, + "requires": { + "emmet": "^2.3.0", + "jsonc-parser": "^2.3.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.15.1", + "vscode-nls": "^5.0.0", + "vscode-uri": "^2.1.2" + }, + "dependencies": { + "vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + }, + "vscode-uri": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", + "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", + "dev": true + } + } + }, + "@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "requires": { + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", + "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-ssr": "3.2.31", + "@vue/reactivity-transform": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", + "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "requires": { + "@vue/compiler-dom": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/devtools-api": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", + "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==" + }, + "@vue/reactivity": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.31.tgz", + "integrity": "sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==", + "requires": { + "@vue/shared": "3.2.31" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", + "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.31.tgz", + "integrity": "sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==", + "requires": { + "@vue/reactivity": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/runtime-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz", + "integrity": "sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==", + "requires": { + "@vue/runtime-core": "3.2.31", + "@vue/shared": "3.2.31", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.31.tgz", + "integrity": "sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==", + "requires": { + "@vue/compiler-ssr": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + }, + "@vueuse/core": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.2.3.tgz", + "integrity": "sha512-bz6XroFRFOIGzhAHcnTfjtAQNkNcSELKPoSSUGROwYfOgTnaVyq7iKhgwdeRNom3y9q+a60RlhD35oJaGsXDHA==", + "requires": { + "@vueuse/metadata": "8.2.3", + "@vueuse/shared": "8.2.3", + "vue-demi": "*" + } + }, + "@vueuse/metadata": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.2.3.tgz", + "integrity": "sha512-xH5256Bn6hBYvQWoaCBagpeCrzJmeEeWnyDDkwVFhx7+pLOe4I6gsMHie3yJoowK9AN/D7JLTtEBbWvvBi5TOA==" + }, + "@vueuse/shared": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.2.3.tgz", + "integrity": "sha512-4Cd3s+x8ZwzzAf7o8jS7mEj9pQ1Zsf9aiNBAFg4rHcWeDY0S3XMgvN4ae2hBul7jmi+Ab4REAqiqYWyYqU86qg==", + "requires": { + "vue-demi": "*" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "async-validator": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.0.7.tgz", + "integrity": "sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ==" + }, + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "clipboard": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.10.tgz", + "integrity": "sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + }, + "dayjs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", + "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "dependencies": { + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "element-plus": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.1.7.tgz", + "integrity": "sha512-jamE9F/a2rfAQJwf3kLaDfWXxhjXuAJAvrto76SLJsJfr3iIUAzC849RHdn6h7tNJy9Yanq8GlQAsdBe5lJmrA==", + "requires": { + "@ctrl/tinycolor": "^3.4.0", + "@element-plus/icons-vue": "^1.1.4", + "@floating-ui/dom": "^0.4.1", + "@popperjs/core": "^2.11.4", + "@vueuse/core": "^8.1.2", + "async-validator": "^4.0.7", + "dayjs": "^1.11.0", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.1.1" + } + }, + "emmet": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.3.6.tgz", + "integrity": "sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==", + "dev": true, + "requires": { + "@emmetio/abbreviation": "^2.2.3", + "@emmetio/css-abbreviation": "^2.1.4" + } + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + }, + "esbuild": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.29.tgz", + "integrity": "sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.29", + "esbuild-android-arm64": "0.14.29", + "esbuild-darwin-64": "0.14.29", + "esbuild-darwin-arm64": "0.14.29", + "esbuild-freebsd-64": "0.14.29", + "esbuild-freebsd-arm64": "0.14.29", + "esbuild-linux-32": "0.14.29", + "esbuild-linux-64": "0.14.29", + "esbuild-linux-arm": "0.14.29", + "esbuild-linux-arm64": "0.14.29", + "esbuild-linux-mips64le": "0.14.29", + "esbuild-linux-ppc64le": "0.14.29", + "esbuild-linux-riscv64": "0.14.29", + "esbuild-linux-s390x": "0.14.29", + "esbuild-netbsd-64": "0.14.29", + "esbuild-openbsd-64": "0.14.29", + "esbuild-sunos-64": "0.14.29", + "esbuild-windows-32": "0.14.29", + "esbuild-windows-64": "0.14.29", + "esbuild-windows-arm64": "0.14.29" + } + }, + "esbuild-android-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.29.tgz", + "integrity": "sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.29.tgz", + "integrity": "sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.29.tgz", + "integrity": "sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.29.tgz", + "integrity": "sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.29.tgz", + "integrity": "sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.29.tgz", + "integrity": "sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.29.tgz", + "integrity": "sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.29.tgz", + "integrity": "sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.29.tgz", + "integrity": "sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.29.tgz", + "integrity": "sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.29.tgz", + "integrity": "sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.29.tgz", + "integrity": "sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.29.tgz", + "integrity": "sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.29.tgz", + "integrity": "sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.29.tgz", + "integrity": "sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.29.tgz", + "integrity": "sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.29.tgz", + "integrity": "sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.29.tgz", + "integrity": "sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.29.tgz", + "integrity": "sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.29", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.29.tgz", + "integrity": "sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==", + "dev": true, + "optional": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==" + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "dev": true + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "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==" + }, + "lodash-unified": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.2.tgz", + "integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "nanoid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", + "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==" + }, + "normalize-wheel-es": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz", + "integrity": "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "pinia": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.13.tgz", + "integrity": "sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==", + "requires": { + "@vue/devtools-api": "^6.1.4", + "vue-demi": "*" + } + }, + "postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "requires": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, + "request-light": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.7.tgz", + "integrity": "sha512-i/wKzvcx7Er8tZnvqSxWuNO5ZGggu2UgZAqj/RyZ0si7lBTXL7kZiI/dWxzxnQjaY7s5HEy1qK21Do4Ncr6cVw==", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true + }, + "typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true + }, + "upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true + }, + "vite": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.1.tgz", + "integrity": "sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==", + "dev": true, + "requires": { + "esbuild": "^0.14.27", + "fsevents": "~2.3.2", + "postcss": "^8.4.12", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + } + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true + }, + "vscode-css-languageservice": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.4.1.tgz", + "integrity": "sha512-W7D3GKFXf97ReAaU4EZ2nxVO1kQhztbycJgc1b/Ipr0h8zYWr88BADmrXu02z+lsCS84D7Sr4hoUzDKeaFn2Kg==", + "dev": true, + "requires": { + "vscode-languageserver-textdocument": "^1.0.4", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + }, + "dependencies": { + "vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + } + } + }, + "vscode-html-languageservice": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.2.4.tgz", + "integrity": "sha512-1HqvXKOq9WlZyW4HTD+0XzrjZoZ/YFrgQY2PZqktbRloHXVAUKm6+cAcvZi4YqKPVn05/CK7do+KBHfuSaEdbg==", + "dev": true, + "requires": { + "vscode-languageserver-textdocument": "^1.0.4", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + }, + "dependencies": { + "vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + } + } + }, + "vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + } + } + }, + "vscode-jsonrpc": { + "version": "8.0.0-next.7", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.7.tgz", + "integrity": "sha512-JX/F31LEsims0dAlOTKFE4E+AJMiJvdRSRViifFJSqSN7EzeYyWlfuDchF7g91oRNPZOIWfibTkDf3/UMsQGzQ==", + "dev": true + }, + "vscode-languageserver": { + "version": "8.0.0-next.10", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.0-next.10.tgz", + "integrity": "sha512-sdjldl9ipuBSWVw5ENVMRcOVQwF0o+J6+lNA7FrB8MiLmzflnfjRoJMqA5tCEY8S/J/+P56ZR/dqiQnRYg5m8w==", + "dev": true, + "requires": { + "vscode-languageserver-protocol": "3.17.0-next.16" + } + }, + "vscode-languageserver-protocol": { + "version": "3.17.0-next.16", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.16.tgz", + "integrity": "sha512-tx4DnXw9u3N7vw+bx6n2NKp6FoxoNwiP/biH83AS30I2AnTGyLd7afSeH6Oewn2E8jvB7K15bs12sMppkKOVeQ==", + "dev": true, + "requires": { + "vscode-jsonrpc": "8.0.0-next.7", + "vscode-languageserver-types": "3.17.0-next.9" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz", + "integrity": "sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.17.0-next.9", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.9.tgz", + "integrity": "sha512-9/PeDNPYduaoXRUzYpqmu4ZV9L01HGo0wH9FUt+sSHR7IXwA7xoXBfNUlv8gB9H0D2WwEmMomSy1NmhjKQyn3A==", + "dev": true + }, + "vscode-nls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", + "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==", + "dev": true + }, + "vscode-pug-languageservice": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vscode-pug-languageservice/-/vscode-pug-languageservice-0.29.8.tgz", + "integrity": "sha512-QHYAzDSJLg7GOLxCZ12qsM0dAM0dPeMSS1t4kKfzLsfpErmZpFzkAIXbidVrNMdMffGZMtTuIlcpEyWHbx96Iw==", + "dev": true, + "requires": { + "@volar/code-gen": "0.29.8", + "@volar/shared": "0.29.8", + "@volar/source-map": "0.29.8", + "@volar/transforms": "0.29.8", + "pug-lexer": "^5.0.1", + "pug-parser": "^6.0.0", + "vscode-languageserver": "^8.0.0-next.2" + } + }, + "vscode-typescript-languageservice": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vscode-typescript-languageservice/-/vscode-typescript-languageservice-0.29.8.tgz", + "integrity": "sha512-eecDqHk4WjEvy6VHQ6teHczppQ9yJO2wExCy7yu7WiFj35qbw0h4G6Erv46MvP3ClL8FggFzD7s1qM6vdqJUfw==", + "dev": true, + "requires": { + "@volar/shared": "0.29.8", + "semver": "^7.3.5", + "upath": "^2.0.1", + "vscode-languageserver": "^8.0.0-next.2", + "vscode-languageserver-textdocument": "^1.0.1" + } + }, + "vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==", + "dev": true + }, + "vscode-vue-languageservice": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vscode-vue-languageservice/-/vscode-vue-languageservice-0.29.8.tgz", + "integrity": "sha512-qSJdvW5ttyGUB/8uWDKgo8vnIoFnXYlBP4Z/cn54btsRn6ZMw7IJGJU1381e7p/yGvMTLeGbugD53SghbnSa6g==", + "dev": true, + "requires": { + "@volar/code-gen": "0.29.8", + "@volar/html2pug": "0.29.8", + "@volar/shared": "0.29.8", + "@volar/source-map": "0.29.8", + "@volar/transforms": "0.29.8", + "@volar/vue-code-gen": "0.29.8", + "@vscode/emmet-helper": "^2.8.0", + "@vue/reactivity": "^3.2.21", + "@vue/shared": "^3.2.21", + "request-light": "^0.5.4", + "upath": "^2.0.1", + "vscode-css-languageservice": "^5.1.7", + "vscode-html-languageservice": "^4.1.0", + "vscode-json-languageservice": "^4.1.8", + "vscode-languageserver": "^8.0.0-next.2", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-pug-languageservice": "0.29.8", + "vscode-typescript-languageservice": "0.29.8" + } + }, + "vue": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.31.tgz", + "integrity": "sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==", + "requires": { + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-sfc": "3.2.31", + "@vue/runtime-dom": "3.2.31", + "@vue/server-renderer": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "vue-demi": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz", + "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==" + }, + "vue-router": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.14.tgz", + "integrity": "sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==", + "requires": { + "@vue/devtools-api": "^6.0.0" + } + }, + "vue-tsc": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.29.8.tgz", + "integrity": "sha512-pT0wLRjvRuSmB+J4WJT6uuV9mO0KtSSXEAtaVXZQzyk5+DJdbLIQTbRce/TXSkfqt1l1WogO78RjtOJFiMCgfQ==", + "dev": true, + "requires": { + "@volar/shared": "0.29.8", + "vscode-vue-languageservice": "0.29.8" + } + }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..04ec0a3 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "g-home", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^1.1.4", + "axios": "^0.26.1", + "clipboard": "^2.0.10", + "copy-to-clipboard": "^3.3.1", + "element-plus": "^2.1.7", + "js-cookie": "^3.0.1", + "moment": "^2.29.1", + "pinia": "^2.0.13", + "vue": "^3.2.25", + "vue-router": "^4.0.14" + }, + "devDependencies": { + "@types/js-cookie": "^3.0.1", + "@vitejs/plugin-vue": "^2.3.0", + "typescript": "^4.5.4", + "vite": "^2.9.0", + "vue-tsc": "^0.29.8" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..d7a79cb --- /dev/null +++ b/src/App.vue @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/src/api/bookmark.ts b/src/api/bookmark.ts new file mode 100644 index 0000000..9d14b07 --- /dev/null +++ b/src/api/bookmark.ts @@ -0,0 +1,38 @@ +import request from '../utils/request' +const search_bookmark = (params: Object) => { + return request({ + url: '/bookmark', + method: 'get', + headers: {}, + // data: params + }) +} + +const put_bookmark = (params: Object) => { + return request({ + url: '/bookmark', + method: 'put', + headers: {}, + data: params + }) +} + +const delete_bookmark = (params: Object) => { + return request({ + url: '/bookmark', + method: 'delete', + headers: {}, + data: params + }) +} + +const delete_bookmarks = (params: Object) => { + return request({ + url: '/bookmark', + method: 'delete', + headers: {}, + data: params + }) +} + +export { search_bookmark, put_bookmark, delete_bookmark, delete_bookmarks } diff --git a/src/assets/close_sidebar.PNG b/src/assets/close_sidebar.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b23cc2f9de9c3c9f6c7a1ae7d4126fa90b35903a GIT binary patch literal 15170 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 literal 0 HcmV?d00001 diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..2d61249 --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/layout/Layout.vue b/src/components/layout/Layout.vue new file mode 100644 index 0000000..21abb01 --- /dev/null +++ b/src/components/layout/Layout.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/components/layout/MainApp.vue b/src/components/layout/MainApp.vue new file mode 100644 index 0000000..190ba4a --- /dev/null +++ b/src/components/layout/MainApp.vue @@ -0,0 +1,12 @@ + + + + + diff --git a/src/components/layout/NavBar.vue b/src/components/layout/NavBar.vue new file mode 100644 index 0000000..0e647d6 --- /dev/null +++ b/src/components/layout/NavBar.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/components/layout/SideBar.vue b/src/components/layout/SideBar.vue new file mode 100644 index 0000000..0d6f8f5 --- /dev/null +++ b/src/components/layout/SideBar.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/src/components/login/login.vue b/src/components/login/login.vue new file mode 100644 index 0000000..f606704 --- /dev/null +++ b/src/components/login/login.vue @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/src/const/const.ts b/src/const/const.ts new file mode 100644 index 0000000..31c94db --- /dev/null +++ b/src/const/const.ts @@ -0,0 +1,71 @@ +const from_static_data = { + list: [ + { + binary: 2, + flg: true, + text: '2进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 8, + flg: true, + text: '8进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 10, + flg: true, + text: '10进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 16, + flg: true, + text: '16进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 32, + flg: true, + text: '32进制', + style: 'background-color: #F8F8FF' + }, + ] +} + +const to_static_data = { + list: [ + { + binary: 2, + flg: false, + text: '2进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 8, + flg: false, + text: '8进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 10, + flg: false, + text: '10进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 16, + flg: false, + text: '16进制', + style: 'background-color: #F8F8FF' + }, + { + binary: 32, + flg: false, + text: '32进制', + style: 'background-color: #F8F8FF' + }, + ] +} + +export { from_static_data, to_static_data } \ No newline at end of file diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..aafef95 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,8 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..1ec2ec0 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,18 @@ +import { createApp } from 'vue' +import App from './App.vue' +import ElementPlus from "element-plus"; +import 'element-plus/dist/index.css' +import router from './router' + +// vue store +import { createPinia } from 'pinia' +const store = createPinia() + +let app = createApp(App) + + +app.use(router) +app.use(ElementPlus) +app.use(store) +app.mount('#app') + diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..bc5e27f --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,74 @@ +import { createRouter, createMemoryHistory, RouteRecordRaw } from 'vue-router' + +const routes: Array = [ + { + path: "/", + component: () => import('../components/layout/layout.vue'), + children: [ + { + path: '/home', + component: () => import('../view/dashboard/index.vue'), + meta: { + name: '控制台' + } + }, + { + path: '/tools', + component: () => import('../view/tools/index.vue'), + meta: { + name: '工具' + } + }, + { + path: '/blog', + component: () => import('../view/blog/index.vue'), + meta: { + name: '博客' + } + }, + { + path: '/bookmark', + component: () => import('../view/bookmark/index.vue'), + meta: { + name: '书签' + } + }, + { + path: '/school', + component: () => import('../view/school/index.vue'), + meta: { + name: '学习' + } + }, + { + path: '/thinking', + component: () => import('../view/thinking/index.vue'), + meta: { + name: '感悟人生' + } + }, + { + path: '/cloud', + component: () => import('../view/cloud/index.vue'), + meta: { + name: '个人云盘' + } + }, + { + path: '/recommend', + component: () => import('../view/recommend/index.vue'), + meta: { + name: '推荐中' + } + }, + ] + } +] + + +const router = createRouter({ + history: createMemoryHistory(), + routes +}) + +export default router \ No newline at end of file diff --git a/src/service/search.ts b/src/service/search.ts new file mode 100644 index 0000000..d27b1cf --- /dev/null +++ b/src/service/search.ts @@ -0,0 +1,6 @@ +const query = () => { + + +} + +export { query } \ No newline at end of file diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..7f6a005 --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,19 @@ +import { defineStore } from 'pinia' +import { Tables } from './table' + +export const store = defineStore(Tables.AccessRoutes, { + state: () => { + return [ + { + current: 1, + name: 'xiaoman' + } + ] + }, + getters: { + + }, + actions: { + + } +}) \ No newline at end of file diff --git a/src/store/table.ts b/src/store/table.ts new file mode 100644 index 0000000..ddd70f0 --- /dev/null +++ b/src/store/table.ts @@ -0,0 +1,3 @@ +export const enum Tables { + AccessRoutes = 'AccessRoutes' +} \ No newline at end of file diff --git a/src/utils/auth.ts b/src/utils/auth.ts new file mode 100644 index 0000000..7d96400 --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,16 @@ +import Cookies from 'js-cookie' + +const getToken = () => { + const token = Cookies.get('token') + return token +} + +const setToken = (token: String) => { + Cookies.set('token', token) +} + +const resetToken = (token: String) => { + Cookies.set('token', "") +} + +export { getToken, setToken, resetToken } diff --git a/src/utils/request.ts b/src/utils/request.ts new file mode 100644 index 0000000..6571644 --- /dev/null +++ b/src/utils/request.ts @@ -0,0 +1,54 @@ +import axios from 'axios' + +const service = axios.create( + { + baseURL: 'http://localhost:8081', + timeout: 5000 + } +) + + + + +// service.interceptors.request.use( +// config => { +// if (true) { +// config.headers['Authorization'] = 'Bearer' + getToken('user-token') +// } +// return config +// }, +// error => { +// console.log(error) +// return Promise.reject(error) +// } +// ) + +// service.interceptors.response.use( +// response => { +// if (response.headers['content-dispostion'] +// && response.headers['content-dispostion'].split(';')[0] === 'attachment') { +// return response +// } else { +// return response.data +// } +// }, +// async error => { +// if (error.code === 'ECONNABORTED') { +// const error = { +// message: '通信タイムアウト' +// } +// return Promise.reject(error) +// } else if (!error.response) { +// const error = { +// message: 'サーバーエラー' +// } +// return Promise.reject(error) +// } else if (error.response && error.response.status && (error.response.status === 403 || error.response.status === 403)) { + +// } else { +// return Promise.reject(error.response.data) +// } +// } +// ) + +export default service \ No newline at end of file diff --git a/src/view/blog/index.vue b/src/view/blog/index.vue new file mode 100644 index 0000000..c29dda5 --- /dev/null +++ b/src/view/blog/index.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/view/bookmark/dialog.vue b/src/view/bookmark/dialog.vue new file mode 100644 index 0000000..870443e --- /dev/null +++ b/src/view/bookmark/dialog.vue @@ -0,0 +1,68 @@ + + + + \ No newline at end of file diff --git a/src/view/bookmark/index.vue b/src/view/bookmark/index.vue new file mode 100644 index 0000000..2fea52e --- /dev/null +++ b/src/view/bookmark/index.vue @@ -0,0 +1,164 @@ + + + + + \ No newline at end of file diff --git a/src/view/cloud/index.vue b/src/view/cloud/index.vue new file mode 100644 index 0000000..a055538 --- /dev/null +++ b/src/view/cloud/index.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/view/dashboard/index.vue b/src/view/dashboard/index.vue new file mode 100644 index 0000000..c5d8535 --- /dev/null +++ b/src/view/dashboard/index.vue @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/src/view/recommend/index.vue b/src/view/recommend/index.vue new file mode 100644 index 0000000..cb29545 --- /dev/null +++ b/src/view/recommend/index.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/view/school/index.vue b/src/view/school/index.vue new file mode 100644 index 0000000..1036411 --- /dev/null +++ b/src/view/school/index.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/view/thinking/index.vue b/src/view/thinking/index.vue new file mode 100644 index 0000000..1168761 --- /dev/null +++ b/src/view/thinking/index.vue @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/view/tools/cal.vue b/src/view/tools/cal.vue new file mode 100644 index 0000000..3c75ced --- /dev/null +++ b/src/view/tools/cal.vue @@ -0,0 +1,122 @@ + + + + + \ No newline at end of file diff --git a/src/view/tools/frame.vue b/src/view/tools/frame.vue new file mode 100644 index 0000000..59f497c --- /dev/null +++ b/src/view/tools/frame.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/src/view/tools/index.vue b/src/view/tools/index.vue new file mode 100644 index 0000000..e20011b --- /dev/null +++ b/src/view/tools/index.vue @@ -0,0 +1,40 @@ + + + + + \ No newline at end of file diff --git a/src/view/tools/unit.vue b/src/view/tools/unit.vue new file mode 100644 index 0000000..b2f8ca7 --- /dev/null +++ b/src/view/tools/unit.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..52205ea --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["esnext", "dom"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..e993792 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "esnext", + "moduleResolution": "node" + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..315212d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()] +})