From b5c267924a0bf25b1324455f60da2de6c8739726 Mon Sep 17 00:00:00 2001 From: HINOTOR <108602298+HINOTOR@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:18:45 +0800 Subject: [PATCH] src --- src/demo/manage/LICENSE | 21 + src/demo/manage/auto-imports.d.ts | 5 + src/demo/manage/components.d.ts | 53 + src/demo/manage/index.html | 22 + src/demo/manage/package-lock.json | 1298 +++++++++++++++++ src/demo/manage/package.json | 38 + src/demo/manage/public/table.json | 40 + src/demo/manage/public/template.xlsx | Bin 0 -> 10163 bytes src/demo/manage/src/App.vue | 14 + src/demo/manage/src/api/index.ts | 8 + src/demo/manage/src/assets/css/color-dark.css | 23 + src/demo/manage/src/assets/css/icon.css | 4 + src/demo/manage/src/assets/css/main.css | 137 ++ src/demo/manage/src/assets/img/img.jpg | Bin 0 -> 6147 bytes src/demo/manage/src/assets/img/login-bg.jpg | Bin 0 -> 70587 bytes src/demo/manage/src/components/header.vue | 154 ++ src/demo/manage/src/components/sidebar.vue | 181 +++ src/demo/manage/src/components/tags.vue | 168 +++ src/demo/manage/src/main.ts | 28 + src/demo/manage/src/router/index.ts | 179 +++ src/demo/manage/src/store/permiss.ts | 23 + src/demo/manage/src/store/sidebar.ts | 15 + src/demo/manage/src/store/tags.ts | 53 + src/demo/manage/src/utils/request.ts | 31 + src/demo/manage/src/views/403.vue | 54 + src/demo/manage/src/views/404.vue | 54 + src/demo/manage/src/views/charts.vue | 127 ++ src/demo/manage/src/views/dashboard.vue | 301 ++++ src/demo/manage/src/views/donate.vue | 14 + src/demo/manage/src/views/editor.vue | 37 + src/demo/manage/src/views/export.vue | 98 ++ src/demo/manage/src/views/form.vue | 156 ++ src/demo/manage/src/views/home.vue | 26 + src/demo/manage/src/views/icon.vue | 212 +++ src/demo/manage/src/views/import.vue | 118 ++ src/demo/manage/src/views/login.vue | 129 ++ src/demo/manage/src/views/markdown.vue | 21 + src/demo/manage/src/views/permission.vue | 137 ++ src/demo/manage/src/views/table.vue | 191 +++ src/demo/manage/src/views/tabs.vue | 116 ++ src/demo/manage/src/views/upload.vue | 48 + src/demo/manage/src/views/user.vue | 174 +++ src/demo/manage/src/vite-env.d.ts | 10 + src/demo/manage/tsconfig.json | 18 + src/demo/manage/tsconfig.node.json | 9 + src/demo/manage/vite.config.ts | 22 + 46 files changed, 4567 insertions(+) create mode 100644 src/demo/manage/LICENSE create mode 100644 src/demo/manage/auto-imports.d.ts create mode 100644 src/demo/manage/components.d.ts create mode 100644 src/demo/manage/index.html create mode 100644 src/demo/manage/package-lock.json create mode 100644 src/demo/manage/package.json create mode 100644 src/demo/manage/public/table.json create mode 100644 src/demo/manage/public/template.xlsx create mode 100644 src/demo/manage/src/App.vue create mode 100644 src/demo/manage/src/api/index.ts create mode 100644 src/demo/manage/src/assets/css/color-dark.css create mode 100644 src/demo/manage/src/assets/css/icon.css create mode 100644 src/demo/manage/src/assets/css/main.css create mode 100644 src/demo/manage/src/assets/img/img.jpg create mode 100644 src/demo/manage/src/assets/img/login-bg.jpg create mode 100644 src/demo/manage/src/components/header.vue create mode 100644 src/demo/manage/src/components/sidebar.vue create mode 100644 src/demo/manage/src/components/tags.vue create mode 100644 src/demo/manage/src/main.ts create mode 100644 src/demo/manage/src/router/index.ts create mode 100644 src/demo/manage/src/store/permiss.ts create mode 100644 src/demo/manage/src/store/sidebar.ts create mode 100644 src/demo/manage/src/store/tags.ts create mode 100644 src/demo/manage/src/utils/request.ts create mode 100644 src/demo/manage/src/views/403.vue create mode 100644 src/demo/manage/src/views/404.vue create mode 100644 src/demo/manage/src/views/charts.vue create mode 100644 src/demo/manage/src/views/dashboard.vue create mode 100644 src/demo/manage/src/views/donate.vue create mode 100644 src/demo/manage/src/views/editor.vue create mode 100644 src/demo/manage/src/views/export.vue create mode 100644 src/demo/manage/src/views/form.vue create mode 100644 src/demo/manage/src/views/home.vue create mode 100644 src/demo/manage/src/views/icon.vue create mode 100644 src/demo/manage/src/views/import.vue create mode 100644 src/demo/manage/src/views/login.vue create mode 100644 src/demo/manage/src/views/markdown.vue create mode 100644 src/demo/manage/src/views/permission.vue create mode 100644 src/demo/manage/src/views/table.vue create mode 100644 src/demo/manage/src/views/tabs.vue create mode 100644 src/demo/manage/src/views/upload.vue create mode 100644 src/demo/manage/src/views/user.vue create mode 100644 src/demo/manage/src/vite-env.d.ts create mode 100644 src/demo/manage/tsconfig.json create mode 100644 src/demo/manage/tsconfig.node.json create mode 100644 src/demo/manage/vite.config.ts diff --git a/src/demo/manage/LICENSE b/src/demo/manage/LICENSE new file mode 100644 index 00000000..f33b1eed --- /dev/null +++ b/src/demo/manage/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016-2023 vue-manage-system + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/src/demo/manage/auto-imports.d.ts b/src/demo/manage/auto-imports.d.ts new file mode 100644 index 00000000..08908edd --- /dev/null +++ b/src/demo/manage/auto-imports.d.ts @@ -0,0 +1,5 @@ +// Generated by 'unplugin-auto-import' +export {} +declare global { + +} diff --git a/src/demo/manage/components.d.ts b/src/demo/manage/components.d.ts new file mode 100644 index 00000000..25a75fb9 --- /dev/null +++ b/src/demo/manage/components.d.ts @@ -0,0 +1,53 @@ +// generated by unplugin-vue-components +// We suggest you to commit this file into source control +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + ElAvatar: typeof import('element-plus/es')['ElAvatar'] + ElButton: typeof import('element-plus/es')['ElButton'] + ElCard: typeof import('element-plus/es')['ElCard'] + ElCascader: typeof import('element-plus/es')['ElCascader'] + ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] + ElDialog: typeof import('element-plus/es')['ElDialog'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] + ElForm: typeof import('element-plus/es')['ElForm'] + ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElIcon: typeof import('element-plus/es')['ElIcon'] + ElImage: typeof import('element-plus/es')['ElImage'] + ElInput: typeof import('element-plus/es')['ElInput'] + ElLink: typeof import('element-plus/es')['ElLink'] + ElMenu: typeof import('element-plus/es')['ElMenu'] + ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElOption: typeof import('element-plus/es')['ElOption'] + ElPagination: typeof import('element-plus/es')['ElPagination'] + ElProgress: typeof import('element-plus/es')['ElProgress'] + ElRadio: typeof import('element-plus/es')['ElRadio'] + ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] + ElRow: typeof import('element-plus/es')['ElRow'] + ElSelect: typeof import('element-plus/es')['ElSelect'] + ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] + ElSwitch: typeof import('element-plus/es')['ElSwitch'] + ElTable: typeof import('element-plus/es')['ElTable'] + ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] + ElTag: typeof import('element-plus/es')['ElTag'] + ElTimePicker: typeof import('element-plus/es')['ElTimePicker'] + ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ElUpload: typeof import('element-plus/es')['ElUpload'] + Header: typeof import('./src/components/header.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Sidebar: typeof import('./src/components/sidebar.vue')['default'] + Tags: typeof import('./src/components/tags.vue')['default'] + } +} diff --git a/src/demo/manage/index.html b/src/demo/manage/index.html new file mode 100644 index 00000000..d0cedf2a --- /dev/null +++ b/src/demo/manage/index.html @@ -0,0 +1,22 @@ + + + + + + + + vue-manage-system + + + + + +
+ + + + + \ No newline at end of file diff --git a/src/demo/manage/package-lock.json b/src/demo/manage/package-lock.json new file mode 100644 index 00000000..eeec21e2 --- /dev/null +++ b/src/demo/manage/package-lock.json @@ -0,0 +1,1298 @@ +{ + "name": "vue-manage-system", + "version": "5.3.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@antfu/utils": { + "version": "0.5.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/@antfu/utils/-/utils-0.5.2.tgz", + "integrity": "sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==", + "dev": true + }, + "@babel/parser": { + "version": "7.18.11", + "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==" + }, + "@babel/runtime": { + "version": "7.18.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.18.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", + "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + } + }, + "@ctrl/tinycolor": { + "version": "3.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", + "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" + }, + "@element-plus/icons-vue": { + "version": "2.0.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@element-plus/icons-vue/-/icons-vue-2.0.9.tgz", + "integrity": "sha512-okdrwiVeKBmW41Hkl0eMrXDjzJwhQMuKiBOu17rOszqM+LS/yBYpNQNV5Jvoh06Wc+89fMmb/uhzf8NZuDuUaQ==" + }, + "@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "dev": true, + "optional": true + }, + "@floating-ui/core": { + "version": "0.7.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/@floating-ui/core/-/core-0.7.3.tgz", + "integrity": "sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==" + }, + "@floating-ui/dom": { + "version": "0.5.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/@floating-ui/dom/-/dom-0.5.4.tgz", + "integrity": "sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==", + "requires": { + "@floating-ui/core": "^0.7.3" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@types/lodash": { + "version": "4.14.184", + "resolved": "https://repo.huaweicloud.com/repository/npm/@types/lodash/-/lodash-4.14.184.tgz", + "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==" + }, + "@types/lodash-es": { + "version": "4.17.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/@types/lodash-es/-/lodash-es-4.17.6.tgz", + "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/marked": { + "version": "4.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/@types/marked/-/marked-4.0.5.tgz", + "integrity": "sha512-jMN2moJ+lSf1VZXQo3VXeMCjoXuciVONig8+U0YNBop5aBvQw4qkolx1Nzn1i0T8L2l9IZ3jju6bS1pPwlaY1w==" + }, + "@types/web-bluetooth": { + "version": "0.0.15", + "resolved": "https://repo.huaweicloud.com/repository/npm/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", + "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==" + }, + "@vitejs/plugin-vue": { + "version": "3.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", + "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", + "dev": true + }, + "@volar/code-gen": { + "version": "0.38.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/code-gen/-/code-gen-0.38.9.tgz", + "integrity": "sha512-n6LClucfA+37rQeskvh9vDoZV1VvCVNy++MAPKj2dT4FT+Fbmty/SDQqnsEBtdEe6E3OQctFvA/IcKsx3Mns0A==", + "dev": true, + "requires": { + "@volar/source-map": "0.38.9" + } + }, + "@volar/source-map": { + "version": "0.38.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/source-map/-/source-map-0.38.9.tgz", + "integrity": "sha512-ba0UFoHDYry+vwKdgkWJ6xlQT+8TFtZg1zj9tSjj4PykW1JZDuM0xplMotLun4h3YOoYfY9K1huY5gvxmrNLIw==", + "dev": true + }, + "@volar/vue-code-gen": { + "version": "0.38.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/vue-code-gen/-/vue-code-gen-0.38.9.tgz", + "integrity": "sha512-tzj7AoarFBKl7e41MR006ncrEmNPHALuk8aG4WdDIaG387X5//5KhWC5Ff3ZfB2InGSeNT+CVUd74M0gS20rjA==", + "dev": true, + "requires": { + "@volar/code-gen": "0.38.9", + "@volar/source-map": "0.38.9", + "@vue/compiler-core": "^3.2.37", + "@vue/compiler-dom": "^3.2.37", + "@vue/shared": "^3.2.37" + } + }, + "@volar/vue-typescript": { + "version": "0.38.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/vue-typescript/-/vue-typescript-0.38.9.tgz", + "integrity": "sha512-iJMQGU91ADi98u8V1vXd2UBmELDAaeSP0ZJaFjwosClQdKlJQYc6MlxxKfXBZisHqfbhdtrGRyaryulnYtliZw==", + "dev": true, + "requires": { + "@volar/code-gen": "0.38.9", + "@volar/source-map": "0.38.9", + "@volar/vue-code-gen": "0.38.9", + "@vue/compiler-sfc": "^3.2.37", + "@vue/reactivity": "^3.2.37" + } + }, + "@vue/compiler-core": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-core/-/compiler-core-3.2.37.tgz", + "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", + "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", + "requires": { + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", + "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-ssr": "3.2.37", + "@vue/reactivity-transform": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", + "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", + "requires": { + "@vue/compiler-dom": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/devtools-api": { + "version": "6.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/devtools-api/-/devtools-api-6.2.1.tgz", + "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" + }, + "@vue/reactivity": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/reactivity/-/reactivity-3.2.37.tgz", + "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", + "requires": { + "@vue/shared": "3.2.37" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", + "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "@vue/runtime-core": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/runtime-core/-/runtime-core-3.2.37.tgz", + "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==", + "requires": { + "@vue/reactivity": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/runtime-dom": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz", + "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==", + "requires": { + "@vue/runtime-core": "3.2.37", + "@vue/shared": "3.2.37", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/server-renderer/-/server-renderer-3.2.37.tgz", + "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==", + "requires": { + "@vue/compiler-ssr": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/shared": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/shared/-/shared-3.2.37.tgz", + "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==" + }, + "@vueuse/core": { + "version": "9.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vueuse/core/-/core-9.1.0.tgz", + "integrity": "sha512-BIroqvXEqt826aE9r3K5cox1zobuPuAzdYJ36kouC2TVhlXvFKIILgFVWrpp9HZPwB3aLzasmG3K87q7TSyXZg==", + "requires": { + "@types/web-bluetooth": "^0.0.15", + "@vueuse/metadata": "9.1.0", + "@vueuse/shared": "9.1.0", + "vue-demi": "*" + } + }, + "@vueuse/metadata": { + "version": "9.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vueuse/metadata/-/metadata-9.1.0.tgz", + "integrity": "sha512-8OEhlog1iaAGTD3LICZ8oBGQdYeMwByvXetOtAOZCJOzyCRSwqwdggTsmVZZ1rkgYIEqgUBk942AsAPwM21s6A==" + }, + "@vueuse/shared": { + "version": "9.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/@vueuse/shared/-/shared-9.1.0.tgz", + "integrity": "sha512-pB/3njQu4tfJJ78ajELNda0yMG6lKfpToQW7Soe09CprF1k3QuyoNi1tBNvo75wBDJWD+LOnr+c4B5HZ39jY/Q==", + "requires": { + "vue-demi": "*" + } + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "async-validator": { + "version": "4.2.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "core-js-pure": { + "version": "3.24.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/core-js-pure/-/core-js-pure-3.24.1.tgz", + "integrity": "sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==" + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "cropperjs": { + "version": "1.5.12", + "resolved": "https://repo.huaweicloud.com/repository/npm/cropperjs/-/cropperjs-1.5.12.tgz", + "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==" + }, + "csstype": { + "version": "2.6.20", + "resolved": "https://repo.huaweicloud.com/repository/npm/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + }, + "dayjs": { + "version": "1.11.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "element-plus": { + "version": "2.2.14", + "resolved": "https://repo.huaweicloud.com/repository/npm/element-plus/-/element-plus-2.2.14.tgz", + "integrity": "sha512-V5Pis0OHhePg1RgVogZrcefaVl8vjVn4Pn9Qsh/t2CbFgjg9kKOYFqf/tuP3ObSXGm3X89hpe0W+nLVAsaFnpw==", + "requires": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.0.6", + "@floating-ui/dom": "^0.5.4", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "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.2.0" + }, + "dependencies": { + "@popperjs/core": { + "version": "npm:@sxzz/popperjs-es@2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + } + } + }, + "esbuild": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "requires": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "dev": true, + "optional": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://repo.huaweicloud.com/repository/npm/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/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" + } + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "local-pkg": { + "version": "0.4.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/local-pkg/-/local-pkg-0.4.2.tgz", + "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash-unified": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash-unified/-/lodash-unified-1.0.2.tgz", + "integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==" + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "md-editor-v3": { + "version": "2.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/md-editor-v3/-/md-editor-v3-2.2.1.tgz", + "integrity": "sha512-nOd8mlEhvC99l9Y8pDMwEi6EdCAeBp88Ffl24We+2uz3/Iympctm92L1qyNicONJRhtZJacQ4oWTQGMYKGAxVg==", + "requires": { + "@types/marked": "^4.0.3" + } + }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://repo.huaweicloud.com/repository/npm/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mlly": { + "version": "0.5.13", + "resolved": "https://repo.huaweicloud.com/repository/npm/mlly/-/mlly-0.5.13.tgz", + "integrity": "sha512-0SK2fqoan+PMjADs4I2egAtrtNtpjqRez6PDTCeAdGjUQNJCvO5o9v2NEq52WA1jFmMU97qBr/JgdvCquehDbA==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "pathe": "^0.3.4", + "pkg-types": "^0.3.3", + "ufo": "^0.8.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "pathe": { + "version": "0.3.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/pathe/-/pathe-0.3.5.tgz", + "integrity": "sha512-grU/QeYP0ChuE5kjU2/k8VtAeODzbernHlue0gTa27+ayGIu3wqYBIPGfP9r5xSqgCgDd4nWrjKXEfxMillByg==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pinia": { + "version": "2.0.20", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinia/-/pinia-2.0.20.tgz", + "integrity": "sha512-fdHHumXW/0U5HhxmY1emo3I4z85p8NJPdbtFQSlmJXFe3ktuF0pYNVgVtk2q+j2zCtTufY763xzaEMx0t6T59g==", + "requires": { + "@vue/devtools-api": "^6.2.1", + "vue-demi": "*" + } + }, + "pkg-types": { + "version": "0.3.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/pkg-types/-/pkg-types-0.3.4.tgz", + "integrity": "sha512-s214f/xkRpwlwVBToWq9Mu0XlU3HhZMYCnr2var8+jjbavBHh/VCh4pBLsJW29rJ//B1jb4HlpMIaNIMH+W2/w==", + "dev": true, + "requires": { + "jsonc-parser": "^3.1.0", + "mlly": "^0.5.13", + "pathe": "^0.3.5" + } + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://repo.huaweicloud.com/repository/npm/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rollup": { + "version": "2.77.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "schart.js": { + "version": "3.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/schart.js/-/schart.js-3.0.4.tgz", + "integrity": "sha512-uylb2u9rrHX1jyAuSAJUQON8XTfyDKI9kWj1J3fUlCQCkLVZ4HG4+IiV8qm//Z71dqvLI78QZ/fCBw0reB22Zw==" + }, + "scule": { + "version": "0.3.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/scule/-/scule-0.3.2.tgz", + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "requires": { + "frac": "~1.1.2" + } + }, + "strip-literal": { + "version": "0.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-literal/-/strip-literal-0.4.0.tgz", + "integrity": "sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==", + "dev": true, + "requires": { + "acorn": "^8.7.1" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "ufo": { + "version": "0.8.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/ufo/-/ufo-0.8.5.tgz", + "integrity": "sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA==", + "dev": true + }, + "unimport": { + "version": "0.6.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/unimport/-/unimport-0.6.7.tgz", + "integrity": "sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.2.1", + "escape-string-regexp": "^5.0.0", + "fast-glob": "^3.2.11", + "local-pkg": "^0.4.2", + "magic-string": "^0.26.2", + "mlly": "^0.5.7", + "pathe": "^0.3.3", + "scule": "^0.3.2", + "strip-literal": "^0.4.0", + "unplugin": "^0.9.0" + } + }, + "unplugin": { + "version": "0.9.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/unplugin/-/unplugin-0.9.3.tgz", + "integrity": "sha512-GWXxizZG+tobNs8fuGTCeilerkkfZTZax2iivuE4pxLaF9wTnPJHOq8tbLKDb5ohVb+2BXNjrU9xx59yWTUnuw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.4.4" + } + }, + "unplugin-auto-import": { + "version": "0.11.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/unplugin-auto-import/-/unplugin-auto-import-0.11.2.tgz", + "integrity": "sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==", + "dev": true, + "requires": { + "@antfu/utils": "^0.5.2", + "@rollup/pluginutils": "^4.2.1", + "local-pkg": "^0.4.2", + "magic-string": "^0.26.2", + "unimport": "^0.6.7", + "unplugin": "^0.9.3" + } + }, + "unplugin-vue-components": { + "version": "0.22.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/unplugin-vue-components/-/unplugin-vue-components-0.22.4.tgz", + "integrity": "sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==", + "dev": true, + "requires": { + "@antfu/utils": "^0.5.2", + "@rollup/pluginutils": "^4.2.1", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.11", + "local-pkg": "^0.4.2", + "magic-string": "^0.26.2", + "minimatch": "^5.1.0", + "resolve": "^1.22.1", + "unplugin": "^0.9.0" + } + }, + "vite": { + "version": "3.0.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/vite/-/vite-3.0.9.tgz", + "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", + "dev": true, + "requires": { + "esbuild": "^0.14.47", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + } + }, + "vite-plugin-vue-setup-extend": { + "version": "0.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz", + "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==", + "dev": true, + "requires": { + "@vue/compiler-sfc": "^3.2.29", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "vue": { + "version": "3.2.37", + "resolved": "https://repo.huaweicloud.com/repository/npm/vue/-/vue-3.2.37.tgz", + "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==", + "requires": { + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-sfc": "3.2.37", + "@vue/runtime-dom": "3.2.37", + "@vue/server-renderer": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "vue-cropperjs": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/vue-cropperjs/-/vue-cropperjs-5.0.0.tgz", + "integrity": "sha512-RhnC8O33uRZNkn74aiHZwNHnBJOXWlS4P6gsRI0lw4cZlWjKSCywZI9oSI9POlIPI6OYv30jvnHMXGch85tw7w==", + "requires": { + "cropperjs": "^1.5.6" + } + }, + "vue-demi": { + "version": "0.13.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/vue-demi/-/vue-demi-0.13.8.tgz", + "integrity": "sha512-Vy1zbZhCOdsmvGR6tJhAvO5vhP7eiS8xkbYQSoVa7o6KlIy3W8Rc53ED4qI4qpeRDjv3mLfXSEpYU6Yq4pgXRg==" + }, + "vue-router": { + "version": "4.1.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/vue-router/-/vue-router-4.1.3.tgz", + "integrity": "sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==", + "requires": { + "@vue/devtools-api": "^6.1.4" + } + }, + "vue-schart": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/vue-schart/-/vue-schart-2.0.0.tgz", + "integrity": "sha512-qAu3e5wfMcq26wK1xeHExEWfGpnjfoN1R/9QXblNi+AsU/p52X7tTwhi+Fw7H/otfEufhEY2X7z7emaoF4QO+g==", + "requires": { + "schart.js": "^3.0.0" + } + }, + "vue-tsc": { + "version": "0.38.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/vue-tsc/-/vue-tsc-0.38.9.tgz", + "integrity": "sha512-Yoy5phgvGqyF98Fb4mYqboR4Q149jrdcGv5kSmufXJUq++RZJ2iMVG0g6zl+v3t4ORVWkQmRpsV4x2szufZ0LQ==", + "dev": true, + "requires": { + "@volar/vue-typescript": "0.38.9" + } + }, + "wangeditor": { + "version": "4.7.15", + "resolved": "https://repo.huaweicloud.com/repository/npm/wangeditor/-/wangeditor-4.7.15.tgz", + "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==", + "requires": { + "@babel/runtime": "^7.11.2", + "@babel/runtime-corejs3": "^7.11.2", + "tslib": "^2.1.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.4.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz", + "integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==", + "dev": true + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" + }, + "xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "requires": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + } + } + } +} diff --git a/src/demo/manage/package.json b/src/demo/manage/package.json new file mode 100644 index 00000000..e0fad80b --- /dev/null +++ b/src/demo/manage/package.json @@ -0,0 +1,38 @@ +{ + "name": "vue-manage-system", + "version": "5.3.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "serve": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.0.9", + "axios": "^0.27.2", + "element-plus": "^2.2.14", + "md-editor-v3": "^2.2.1", + "pinia": "^2.0.20", + "vue": "^3.2.37", + "vue-cropperjs": "^5.0.0", + "vue-router": "^4.1.3", + "vue-schart": "^2.0.0", + "wangeditor": "^4.7.15", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.0.0", + "@vue/compiler-sfc": "^3.1.2", + "typescript": "^4.6.4", + "unplugin-auto-import": "^0.11.2", + "unplugin-vue-components": "^0.22.4", + "vite": "^3.0.0", + "vite-plugin-vue-setup-extend": "^0.4.0", + "vue-tsc": "^0.38.4" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ] +} diff --git a/src/demo/manage/public/table.json b/src/demo/manage/public/table.json new file mode 100644 index 00000000..ddd2e322 --- /dev/null +++ b/src/demo/manage/public/table.json @@ -0,0 +1,40 @@ +{ + "list": [{ + "id": 1, + "name": "张三", + "money": 123, + "address": "广东省东莞市长安镇", + "state": "成功", + "date": "2019-11-1", + "thumb": "https://lin-xin.gitee.io/images/post/wms.png" + }, + { + "id": 2, + "name": "李四", + "money": 456, + "address": "广东省广州市白云区", + "state": "成功", + "date": "2019-10-11", + "thumb": "https://lin-xin.gitee.io/images/post/node3.png" + }, + { + "id": 3, + "name": "王五", + "money": 789, + "address": "湖南省长沙市", + "state": "失败", + "date": "2019-11-11", + "thumb": "https://lin-xin.gitee.io/images/post/parcel.png" + }, + { + "id": 4, + "name": "赵六", + "money": 1011, + "address": "福建省厦门市鼓浪屿", + "state": "成功", + "date": "2019-10-20", + "thumb": "https://lin-xin.gitee.io/images/post/notice.png" + } + ], + "pageTotal": 4 +} \ No newline at end of file diff --git a/src/demo/manage/public/template.xlsx b/src/demo/manage/public/template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5d17cf71510bddf174eddf79cfd612017421f122 GIT binary patch literal 10163 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 PKn93?o--8D%hUe=g`SFR literal 0 HcmV?d00001 diff --git a/src/demo/manage/src/App.vue b/src/demo/manage/src/App.vue new file mode 100644 index 00000000..f0fca28d --- /dev/null +++ b/src/demo/manage/src/App.vue @@ -0,0 +1,14 @@ + + + + diff --git a/src/demo/manage/src/api/index.ts b/src/demo/manage/src/api/index.ts new file mode 100644 index 00000000..fbe9e904 --- /dev/null +++ b/src/demo/manage/src/api/index.ts @@ -0,0 +1,8 @@ +import request from '../utils/request'; + +export const fetchData = () => { + return request({ + url: './table.json', + method: 'get' + }); +}; diff --git a/src/demo/manage/src/assets/css/color-dark.css b/src/demo/manage/src/assets/css/color-dark.css new file mode 100644 index 00000000..0d8409a1 --- /dev/null +++ b/src/demo/manage/src/assets/css/color-dark.css @@ -0,0 +1,23 @@ +.header{ + background-color: #242f42; +} +.login-wrap{ + background: #324157; +} +.plugins-tips{ + background: #eef1f6; +} +.plugins-tips a{ + color: #20a0ff; +} + +.tags-li.active { + border: 1px solid #409EFF; + background-color: #409EFF; +} +.message-title{ + color: #20a0ff; +} +.collapse-btn:hover{ + background: rgb(40,52,70); +} \ No newline at end of file diff --git a/src/demo/manage/src/assets/css/icon.css b/src/demo/manage/src/assets/css/icon.css new file mode 100644 index 00000000..3ea036ac --- /dev/null +++ b/src/demo/manage/src/assets/css/icon.css @@ -0,0 +1,4 @@ +[class*=" el-icon-lx"], +[class^=el-icon-lx] { + font-family: lx-iconfont !important; +} \ No newline at end of file diff --git a/src/demo/manage/src/assets/css/main.css b/src/demo/manage/src/assets/css/main.css new file mode 100644 index 00000000..34acd553 --- /dev/null +++ b/src/demo/manage/src/assets/css/main.css @@ -0,0 +1,137 @@ +* { + margin: 0; + padding: 0; +} + +html, +body, +#app, +.wrapper { + width: 100%; + height: 100%; + overflow: hidden; +} + +body { + font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif; +} + +a { + text-decoration: none +} + + +.content-box { + position: absolute; + left: 250px; + right: 0; + top: 70px; + bottom: 0; + padding-bottom: 30px; + -webkit-transition: left .3s ease-in-out; + transition: left .3s ease-in-out; + background: #f0f0f0; +} + +.content { + width: auto; + height: 100%; + padding: 10px; + overflow-y: scroll; + box-sizing: border-box; +} + +.content-collapse { + left: 65px; +} + +.container { + padding: 30px; + background: #fff; + border: 1px solid #ddd; + border-radius: 5px; +} + +.crumbs { + margin: 10px 0; +} + +.el-table th { + background-color: #f5f7fa !important; +} + +.pagination { + margin: 20px 0; + text-align: right; +} + +.plugins-tips { + padding: 20px 10px; + margin-bottom: 20px; +} + +.el-button+.el-tooltip { + margin-left: 10px; +} + +.el-table tr:hover { + background: #f6faff; +} + +.mgb20 { + margin-bottom: 20px; +} + +.move-enter-active, +.move-leave-active { + transition: opacity .1s ease; +} + +.move-enter-from, +.move-leave-to { + opacity: 0; +} + +/*BaseForm*/ + +.form-box { + width: 600px; +} + +.form-box .line { + text-align: center; +} + +.el-time-panel__content::after, +.el-time-panel__content::before { + margin-top: -7px; +} + +.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { + padding-bottom: 0; +} + + +[class*=" el-icon-"], [class^=el-icon-] { + speak: none; + font-style: normal; + font-weight: 400; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: baseline; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.el-sub-menu [class^=el-icon-] { + vertical-align: middle; + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} + +[hidden]{ + display: none !important; +} \ No newline at end of file diff --git a/src/demo/manage/src/assets/img/img.jpg b/src/demo/manage/src/assets/img/img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbe6c002c49f03dc3957b415bbf6d2736e33a1c6 GIT binary patch literal 6147 zcmbV~cQhPcwC_h9(V~ss1wlykP9o8R=!_O+)F8@Wl=vZt5~3#Bh%#!J=)FuBqlM@- zdherm*YDoD?p^Es_1^oQz1KQx?Y+<0pL6!z*LPJGe1%QKt19*GC0C$UkXUcv~ z_5gsE7JwfB01(~BgaNqsJMw#Hymx@Fudk3R#K{{fWb5t{kv^oOr=_8%q5;wTdk7BR zeGNXr0|J5vG-M=XH2=@KYX?vg0sH`dcsP^*TuK}~N}Rh+02=^+LvYXcFXDd-2lu{5 zLLkutVv_rW8VUd|4jvvZKHk4w-)9Hi#{u}11XLWtF9@l1t$~~#G$J7hIYeAa6)2G2 z(7_{78_&=O#I$tu42;}7ypQ?##l$5frKDwEzEW0ERa4i{H!w6ZHZcX;+Cl6c9G#rK zyrDk6elY*AkKqxKpQ54@laf1RTPIR4;Ua)*jTHA|XUHN(ng?s0Uo4dIumI&mm&kM`DZI*niRflkEQv zEcE}2?0>-imunh8iidOmd3clnMZf`*CJczJyE%4Qly1s)x4C@DZpm^75Y?Lmua*YD zJo+TpoZZACtd!YNvv+{B;s&Ee(dGsjI_vZFjj%lj?mtMer#EW@!Obpq1F%OiMwC+4 zM|Eq?vAe}Zv^x83>w0?Jd^{tO?gNR`Dhh>bAKkMW{nM*=n13vb^Fewp=8wuo>Kk-J z&ph+nw&{c0KRc!g(hBY)gcSYPZ}FWocC=!4gZS9C&9YBF+wZ@xt>Z|)bo~g6zXJs6 z2E?8OxNy`VV4ofRU;l~J>E66BP$$XpXA$KJ`TZit?9GTakcH2r79s)n%CxDCO#2vp zIGL@np+ZLc`Mmp)Q&6^joTl4NG1X zTAbna0MBN4QxV9v_ms3oxYA8MEO++h>3p3Z=g6>chV`0D_)SA_%iW zGL4MHS`n^F?aZVG=~g-4rr)EM>Y@fYKVG^KE!C;YzN>>E4jVu|qVM4ATKxWOU5L-Z zF@NKE?iwLYRleQ&db`AV+eQ+diswQ0}`3!?<}W?=sM3T4H}bHCjj4 zZ5Dnq9~UlUi-SDE2VBNBDtfR_5gdXq~$b&vLPAD^rb=?fvI zAx-ZHr*S73KK%22UyUK@$y+R#lg;|4)5zbRN)nj8*Azv?jexh8I-+>Q(UN@pX~sK7 zNC${PI=1M>(JR*IN7vf#iGRe4%C0ZOHecD!Jo*4q7-vC=X4enTv7naitWl)G(bXf9 zO__65b`qJyQCw>9pdY5Yf^#1&G1SG=tAh+>lnMo=wfr5?xvs@5ol-nG;XC%TyuB)X z-{q07lZ%-rq$da3UVD1zp|`wKBZcEeLszd@$j>^BhfF7b*(D5+1QTB+X)4zvxCwj$ zc*7J3{CrSGuKp`ql7N-YvPyBq@k~27CPS}!HQ!tQ!>|RNMvbm5#D%d7K=^oqom}Rm zyoN!Y*~h|E)6_Q=7yHF4;tiqfkUr5Wi$=IX+Td)5m`9$Q?8S<)EDFISYG}06k#5G6 zmQJQUAieB$)6Z6}>{ruLzzCKnujkgaVCIdxB_q?o3t0SB`Bd-``E~sF@?QGx-{9A7 z2eTJdXc>#HET~{hzaW11`|ghP6ZX-RKl?#(gtrgpBtf}^{l{T~-M{hMLuJp zmXf_04Bgc2S zN`%Rfy1%EHuM2SFWq!h!=ck51zQlh-xQgv?XbHR(iS}^D6e_u$J>EDw1ef*_xi)9Q ziIAV2Mv~+sl2hV<%MKxn*usdF@#CTdq@cRU3*6QD3Grh;xz`RPwXn+AVuRIbY;pW-HxDUhJ0VKSBsKRMO4x^WU&LfNApDr~;_r?A(BJy`Z#w(JD^!wu8c_vx;+_FP$RA?96MuITlDMC%oYiMnn{#hYSkAB z7w5_SF{nele-?X|2s=^LMzIQGEIT~*!H>O#hJzghw(U_=Mo2R^` z*D1HKa8Bn$pnD88auHI)>e{W}0YhUOyu zbK3&zMY)wSq;!yi)FaeTJ6L8QS?>%U0TMb^6q4!Cw3>xmc55> zkrLSEvxB1$+8P6tHQkb_KHCiz9D;FY^@0)gs44oc z-45VH(SG{Lc5kM2Kqif$sgCQzkzhg>x{1_hXeay%a5$hszs_A-ebH;*JQ02MxX{-4 zg~schvOxB9@1K9SjMeBX>>$$Z@^Spuv1`VOl{^NnxdPXk=aP$UF)~UfvlbZlUJ+Z`#`u(>Dn#Pi)pCk6z}3tyPK^#l>jZ?~ zZgfz#ovd6<4e@V6pGx==>q;Tq>wiieC^PPD^7>Y-siy1I_#NOG zrXH!6Dw1MBJ-WV{IJ(I5It=ZTWV@k5(gBby>?-@ERWbWLt}+Qh&-p%hwJ_;N5aGoxY){AYOIyI3$? zs+@ygshEK+#c2?9i=Un5AK2p9} zAF--D+vW4ZN_LK)il98)-D%vJbON(mOmXPVm+`oGC&brn-+M1}%NT18dexCxx{(=N zODI%fTN7MQrJyPy5Yi?_!_}0QoA{bQxD%bW+|W$%_9C0;s=NMC%<0cB=kd!D35A5u zrqMV@Q~o$-@f)%egv936yh4SA;`@1n&05%kJs_=5FW1kye^f!a%>3c(VIjw$2~8m_ zFZrpI*IF4W!6Ax{SxVdHkmhgsdi|8m9ovI!DV73{BRM^U^FDj}I3NQVZgTJ?e0{)K zs6<(q=~vj_M)}S=0RN$fbl|eCcG?gzHrd?X0^4iaS|>gh!e-N?>qQm6XvBaHFmY-a z(Kh?m!V<4B1U0D52q-`1@9rg+;$jHL$SlwZU6N?@e-@O3Kdiu0NadHNj12^9#CSF z*7Uys+3j%sp~&LGuQFxY+J95m`$zlpw6}=YbI&zT$%e(sm~{%y^Yk)wVUGy6ym9cO z-y3wvJjBRNcvr5vm@k-|&i{JPM)l)lKg?4Vvh>Zmj+#wq8q4#S8N>WGyD9ra%Hd?c zV4z%sUENlI3HZ2F0G$~ZCg)#XN<7=Tksp{Anh3!wdXW&mo9L4I`EfC~XhHs5IqzuY z_Oo;ScI)7(x3unfZt4cIl<|E)xiG8zMQNuOo~2w%6_TZr{U?f|3Ve>K6L9V^q3^W< zYpqJ*U7h%@pLO045{eGD@EQqPV)*l~vLf4`(#$%^>}EWC`nGQiJOL6$VAOvS7I^I z@lnuuI)zdW&Axz$E3tAQ2a_|B#cv;ef*sww;!j>?Njs5TD_A*GfMH`N5;P7`ByNEM ztmi;P&v;Z zvc_s$SaVWHSRI@2b!k_ZmY&g;|2My*tNybVZRKbyPLaS2D8+aA6cqttkJV^ZuUHLyN_kjyxFcU~ z&QEPG!Beol>R+u!rtE5K6Ae{)WoaHW8*fa)O48ZLK53^*wM~{TX`ZjmV;X~YyB<}K zuO<>PU!y#IpPkAvHbOyWGv5tj3T-3r0HKN7V1oUQAnnfC=TI%lp88a7j|SaJ9E^?V zg)xspOqRT)sy1#(>~+@QX9d!0`-79gu;UShf>baflam3y`ilUi_>3$4V*1>HVI$sN z9F}s)rr|hW4GiTvpu2tzeO$i&NSWEvDbZAPKy`8cJMw#nVJu(yhsYFgGD5N!W>j%d zcS}1}d&QGOn}%@q712Cpg7zb5s925Vk|v*STIiKA_NjOk$+*vnR4Y!^p)ElzjNv~v zOO);C2I@vtQ~R1yI-n@Pt>M6`*j|mwrt*Hyh9&pS4=57voKuTer&5gWkMP?J3$;*a(|spr<)nW zQbNZGY#{IOjWO)$7dvKwy-$ugAVAwfte9it=l(w;VpPJ=>Gm%VkIT0Vxy0=twUHyi z2j5#6Eq>AV9_dHezgJE8P~M$}>VEs;@@nGA!P&SVvVPZ)zi{6SE0?#V)4ow&4ZX!+ z?Q@4_E;bIjZE!fPk4iyZd&1_}^*o-<(w4N+f)ZrlPAick7`Zcbfa!!Y49h7$y39I$ z_vi25nLNaIcG>Xf9qY2^f|$PHmLmI_4SiRA1A=iooC->hicAT4+peZOq8 zHtc$IK`@0y^;e_Bodn&OpwXKN0KprewV|f;I8SS9>&-)ql3zVyEY>2$2 z+NZ3fA2R<$sg8dXi}{1SU|jdxd6m^*JUfsQf&k?O!*YDD2+xV94}u}*edsqjBotlh zoIWJ62f1vok4)vD?kh&e_Ax-<*v&?Eha$e%9e~t@%`I%nD#}$ZCZ3PcAv_R+VW*@- zVYG$yNrNoF(N=ys1X_=3>w`8Qs(tX+FtWNm#R<4EZ2lSQg&PT zQFol`N4e&ccD^lb;N8p|(`YgJ@k`3zw{f<`MIohdD#mZuR^qBpjA!k6{+XQApvJmK zF|Y4aRB%FJRp^G<*DkDCvJ1Un*`p|*2r9K}f9vey;&8$m*ThlNONJmM+J!Z?Qajw5 z8qFy`&W)cadMG{kVnklX_;sdh-_vcZ%qX|7d*3Zi|GBOH&m`qEM*93K-TEVLuSefF zM8gg#!@5!HSWr@;j)iINN5sZs_<)w4p~-@QV@kj1*9+sfgTGfvi-9EB{%}9BAvda+ z1_Z)cLdd!bYFMx7#+fS3OhM?Uph>#UI`v~|e4~NS%%Tk`;v}bE*pYAX>upU#0%%&( zEQXH(^+aT=U?wTflZ?v4WzM+mWRioyO4WUPv@hG_XTVgVtW^4Nz^iTv(FKro=<^z0 z?C!pyqpGp{_KK{A#T@{7Y#%SP59K|8ZlOY!SUdlG+t=jfEbgjXBG_UUD zjEUdvsqszFx_r?#h4^_}Lse86?VcDVnF!<|1HRpd9XAF=xI%T3=3k%N)>l39jKLFg zUXA62wxC0dIQ;N;E!`Dq&gB7)@QMRh@g`V6MZ#)gK~qcq{`%%MH)uWmoYIqiea@dt zL)`#jg)pS$O;D-DldLvmeb?`~{#DCc*%%4flQF42wOZttfQK*9F3>+HO#jN>K8QOZ z)Kf9a^^@BhmrOfKjKj~>-zP&7?U6GGnhEhsP z0g^JG-T@$H`8IzC{|H)H#+x-(M5vA)+IexPR)2EvV`k}BT1HB*)$^7mww)Zwe=0X? zQKY-1Pq$bZCxd{Jy)@|FG+949P5BYqiH;>jk4Vcc!1JWUOw0b>F3k7si@DXPLnhqq zL&x`)hBcoRlS&Pd+)e1w?E`*7DC7ayeP) zDB04{K_S6>^hbVizXWpK5MTXgdLuZz-dZHLbrT(4I*d%DXEDwkidDDv-2sMU>Bh_S zPGunh31R?qE%(z5`c*l*Wy+(G0)c3cW~8fv>T9#Q?EYV4fe`C}e3;URer!Q*qJUs0 zNv+&78(ig(QM=o>OEuA-kAvi5c^MQpllR4C18$)96c*Gxvpqcd;UZG_t{)v@^^!(z z=`(z8v@Olf-Ixp_Oy2KhL|*DARr#p0z8N4YOPpS#tJ#5M9Eh!|)Fv9uy+|uJn+Urt zML6c!_s^Ec`RXQ{>4NeGyyE}nEkYIy*a0!qQBxnfkHb8(d5GJ_8;O-tmLU4Br!JPmJ z?y~bdzx%oOec##v-)Jdh`!#|8n;K zj3rg`@$%!>WufRAiXBP&MN+JC z4?jcE#_q3ok!f4!Dp)m+G_TOAS=JjJY6<6!j`wu8XSNY`4?vw%_L|ejd)C8GJq71# z2jXZr>(N3su`TJ%0R5DqnMj@ez=edJ)_Id*P2&2KpOdnOL|uO|Fa5Nq?|WqDYM~n z$s;On0fb!l69?^Ee&Opxj$3_A(aXfcy!Lxw_A4)4>e}U3nS8Uw(%)Qh@+^%Jt|tlX zp9)%-iz^d3n^lf~o=VKu+v=8Kmn=OAVjgpM3Vr}EJk;{c!Cgvi%~|SlwSPz*OYsEI zooGDGf7O(~eZKcvx0J#k|8CjdC6M~?Z-<`~Jgq0O#GafgJ7l9#*Ro83Ih83HNMt3? z$cSF2TosON|sYska((f{ney(R;lLqbNY}#ViVS{vEG_GUt6>&7t3v!y>z3is_4Vq z{8ZXDe6{mJb~V1oGavm8cGq}4sVPN%8Q{qm_gf@Mh2i+SXHjf?Odh;=WcDI@Z*^75 z%u=cH3*9G&)y1c4ET1pg2iI?$4bF6Mt4(Nn$HOzL3FUoZ#%@(P{#f_xif&wk3S`KQ;I#u-{Y2!3S zi0{^Ia%)(1v~KRVn{raQ9rQj?la$T6 z))B>PHSpPehu z)f~QRtNyhClN8X|FwRewQ@->Rrj~~isq39kxyCkyGqQh7J}%5x3*lV4e1R2xzsF9R zZ*9Y+lGh`}dMPY=F}S%B<4u}3O{Z_K%D2tDqLy8|v@hW{(b8x==T&mh=oGE zH5v9r$NJ+FvkU7uPil$3J>ZMSHqFm?wu=2P);yNi78!yj7lN)ymE^j+=#lqm9|`Dw z-ThFI+bQwq_`?tla3`iG>AUEN6aIqkQ`-W+pq-9r)s9H>Mi@aokZud|90UEk>4-#k z1pXz!ng@i((B2_sYGDKkKspD=Qw#0g8jK)o3V4S^A4G2es3nVmpU`&XDN<(hMvIIf zbOKhL&Vf3Fvl*=gSkNW(U@kS$UzdZ3hnq}MJ|yW zM5=sf6k@q6j4)qq=SQ6f3hi(||0-3x;9-X}ol%lax3rxP`)rl|okzc9UP;ZX!J6mY z(oW3{dNV&3R=9OJzV|xVYD!e25eOUE?s&x0#GR$2S>bb5_LHuXE~e<4_mj?Cd7ZuB zS<+3_BC$V;T)5kLy?Na<436#HZmJ?e(enaluXuPg;p-VZzL4LGS(a-!3SsR$&VozT zaK}tnUs|UR9-qe*^)D+^26`c@?!L6)d0T8aSYHw6L!=G#{S7R#}!eKQ$)9<1>zB`pfjG{4ypwf0P+jJOKDjhs)kR{(|SpyI=ewDc1MC zG@hT_TPCj9It`eFp4(p9VF_PStGhh_8v5B+4fICYFZqplp5I_kH(Zjha0}jKW7w*k z)hph=nefQ=H0~HTGY{w~_}(dv_wxZLKKvF*Cf#CA{s55Z9`G6GXgHEyP#XtD)U&pc zX|rV#?0i&r%xhG5E4LgxQBqRu_rlD}A%+hjU8~{dB#dchD026<-|f_#4aXYOR84N_)G$^mx2?HKDiu^ed;CQ>H-cg- zf8vKHOwkTq;-b6#O0%2IZRqO4Bq}KSG)sE(kMtdGUe4O=!X3_`XiuV3?;#X{p zN6ZXeNK0yq=&p_qS#THt0kl9+%>S-noG={#i3Y=kLfScD|69}lMu-J_48yk?1E5F@ z6!l{mE(Qc&0E)!{bOVeKAVZ5W4%C=NnH)sHv0z;vg}#ND_nkkyG+y8L9On5D43pd| zeX3Gc7f(Feccp#2lwPz4gU!3={SI%;SRKy_kan11FYu}ArrifR2){%gsA~nsEzoE7t?~Qe?>dtNvtK0Si0H=!j z;am#Z*jO>p%kiNlDNXR=@|Nz=u!2{`)$4^uLAW@Xr`?^Xe{k_x^*E5S!0nW4{MNA( zFB6FOREF$@g-^rN_j?cM_e35^?oA*XJ-@p}k)8$G>^Iif&-!L($G5`&%#3V@sy}+w?@IymK3*c&=#u; z>x!&&o=3xwm?2(0S%D<}n z{>2Sg*%)Af9!M4r(w_63kr5U@Iojue2$hAd_?`g!t8z__%?Uk^ybLj=%5(}yOUji} zMS|s0j5QezZ=Q~5fu|%+(zxnrNh>IDsNNL#RY49MCulp94;u5KeLzQz3D0Qv+!ezV zD>}~LVQ+*c`6JO@<0bqN`<+8g@?Gmu-Nzg&&+J%y99{eNzdqqe0wfjqBJ#jF6I@ei zpO+W~(twi(fUM}x>u}eh!vLLy2cW|;KO<;xKIr*ymgL)#i{+5!iGv4V5mHJoqqeGK z16JL#-q_R8s>kQ}SHOY)uJS?ZX!$6S2RLCQ@HavY0NZas#BU7Lx&$LwIt6V0Q@y`H zq6f7B)DaZ`b#Db4$qo#<&2a?gb0_=jjy_-5+9Ec&Y=plaaNIplxG|%6zQHM)obPQ$# z$((I#8ekYN^3C8Q@UCuO3fmXj@Z_R^ELN@OI(id=uFobODGC@4*bM1TxgYU(_qZA4 zhGzACzP$O-ag}b59zWaW>(2S3?FGJu%CkJt8z-!O`&LhP$!-rdf)}p{u`RgT8{Kgx zskJ!i5{C|jmgRyfr?>};OuK(jZs!!%UOVMH;V*8o`TENahsC}})(ijWwQuaQ>%cBC zXTN1PdGlkwbiC-8Y-3qa!LN-&oa<>O9s)}{GLb8LqKle4yT!=-$Irrwb&lnOV?gT| zlXYY;r+sEz|Ao*=`}jMKI;^qfgD6JgSp5a`df3;{%RAdmi!W?c(WYx`qvi^!hBQqv z+nccB5wQX*a@G@eb~FhhV<7^$JI3s2uA6bBJvYn7-61A-cy77obhePGC++4@bebU^ zE)!k7DGx_f7V2O5DHbR2H4RXwLQVakP$*vgKUM)l;xz8;mjTO{NB5DAFfB$(+?nKkG`%OSDOklLW3v2;-|FDU2CKkvT~z{ z5`({K{>A0tGhk?w4LrQvof9+q{!a6+b!NzrocCA%DI=aPki z(LK=6rtsCr81b}t`%-_$(SA%b^(uUd!{_p%o!AuoR}RXZ+3|V&wTa6UZ5g|{k8=oB z+%5BS;$3JD%m6y8eZHfylA09hwBmYuoEh^a6 zyYsY82k$6y%RL1*_`I_Urr+OJ8rU0I@|}D!q+zOZx{;=6oesoA?JZ2RTUoEWDm4bL zeWFM@?m@Rq;}d~QrxH(AP%)B3(#ni3^-70{*Xrq)b4>CK!Pn+$Ob>^Yw`qg8Oou!b zJ~}c7%l5v5gPAvn8OxYFUW#*=bwouwtB6+@IMXn_JDxHH`@G&tZ1;-e0Lfdx$Oj=n zs{+6WE&wQy=n#Myiqi-K#E<~K7CIeF(5V*G&c18X(WSiow_+n*g3h6lmpM+QF6xLZ zVM*^Roxlb8Vqj-NpyySkCvDvA~jq~2yPF+t4*7Jow8iTF+Yvm0D6`09o<*d$^ ziygg>^L+pc*iXvyeMk+8Z@fCtsov55fe#dJx1qG18POu?z;I-*ssf`efHePKCiwrF z#bGGz2b>mSXtpEqe=V%6j5%q#LAu#AhkUPRrHaa19ILZT9suw0Vq?khl#TnNB2RIp z>W;VvAfULFHfQeBhrG-AsG8%>8obor+j@Kdp-N>>Mw<+xv+!(jA{)Xkjc4t<%(&yq z5vr0O?`K`x-rA2V59sC1xh}s5+AK3DDYV#?r~18JUv3{8RrrzadM9X5*U*w3bFPZ@ zZq_a>GnNp$@)`BAP~hoWx-s#9!`$y=4A=w-d^0OL{L_tElk?M`m3AthZIzr|W^&iq zUiSZ0;;&S#-EK3sY~kuptM5^*NP8neh1=X(3=)KPA+h3nIM9Skp$5sKYblf$*xRCI z>Sat6#_|%Ao)$HEBuO+=0!i93`P^|BXu+n!xPUMmki`V#_tJ#X>TAL)NU9%6R!f%t zk&`E|Eo#t-B_Oq_(T(BOe@gS-zxPJM|6R!F>U3o`kA{nv<7enTw?E-49(9`dTK*wH zZ1b&nO!A zmPnONSLx>#%qBO1QqCFgJMoFnNDa(gYV2oDzU05nObPCYjlK}uRY=2IXyEjS(SVW9 zt8V9rt|hJL9G;iYFC~*sc5f(mmGuOD2!(6BoJ;xk)=iz4DQp*t%K@4KtYK7ET7qc+ zX(tsB_>a-XCjcc70#YHsdn7s&jA{ym5sP&_U5M#fOE9%nl^H+q#yeE)CBqx?20g28 zjzXV--DQg@>S#CPg?_n&-Tgm$vR{umo-s{5!;qI4`>=?3eq>!8MSVLZVwv^ssNX4R zy@yIQgy>r50eIeBH(cB(wR4z!8=CU~xa&2yqR7-Rh(7Ac^`@Q(na zR3-sGvr9Li-J%{UCmg;>0%nKz^xA)>02l2lL<|YFOLA0Sg{S)((2G%p10ZZs#mdAz2;0FGK~8*Utx>s)!6%@A=gSs5%jvDG&cSt1fN@e$W)o7saLgr z$e25&dXcNrdQHtK(b9AppXJ@lg>}kjy=-rO7SN9M8u!<}S5FrEtI*$KArAAKE)-8% ziu7khUg(jQ%5*kj#a#*#x9)-G*%toix$MbdZG&u_Et#rl)DI}!!I>lub<%Y z8C*zm{hqh8V#Lwko29Hud(rz%_RFiz;H}a4R^CzVU4>aFOO&E=;bZU*3JF}(Az_yL z-mreYk%PX)4C3sfF`|wbYi^P#aqlQ)ElzY+#5--TYFwv^gv`mF=Dnm{g_Ku>Y3J0k z=o?mO!j*2a8e#kFzY;4x>_qRp5QwpDY{WZ*&OSz2<}~s(_vkZG+#lT?U05(`KW^*` zDuzz^YY$G(xgRKlSxg|CwHg3pu*z@SW+JT`I3Tei2nD5Bz#geVv8|9;$)ZS1EEqW( z%20!T$V&Jlu*Q`h)6FY8C1IssWKr(Z3+I&@+JXwe=XsK83B|q|(w4+hUi+rarmVZx z)eP-@Cw>!Y>XUa;?4}$cIB=_dg!$eJGhXcUS!im!myOt}TBHXN&83+~@zh3Hgu51aP8st2&m5FHps_G4Zxn_Iq;w zTAfHUMKjXB-EzGEMaNlASpiuO4?c@4%8r;eL5S9(GHf~%a2d(bE5%z#pBnI?nE z6HAP*pTRowqmbjWbBQI-`ZE!>-c6<8CuZ_T9vSPKX8h<^vjxd|8|BGveZ4;hqK>5o z>yN%R8IQn!OSF2wbafjfS^Ab`#L<)Zq9R*blWzNUwmib4?Yo2RW4-7B3M;NNsl>zE zFZBT_%MFW~MUlC%@~a0x@2;DhW&dg8qP;&&Hj-Xm2LaV6PBR&omuukBMK{fmn6~%6=#@;bIy@Fm z^8^>Eh29jej2{P~fL2Rz_NO=+H)@StRyIurig)N%-h$;IH_5IYdz!5kiOGrAQ*8 z?zt}K*X5@3!)d#-nb8VV>Uzo-Y;rbT_lyfG80}cCbmyodwq(^?ZQgfcMzT+(#lOv& zyQKJVWDuW4G*5Ch&GJ@zCotktE7X$cCbzMq<+q$=Icx)W%Q`HqgcA?ifs(%ec4z*T z#eeobquly-2V5Ysn@xwZX+GAA;M-Kly6Pltdj&UUPs)ixgi9fp0X=_D)O-}Ft4PFr z6!{SJ(58WmS3UTkZa#{NGq?3;{Ft`2aWQ=K4a$}3)@gY?!RjM4%Ukq`T>bV`;qy`+H-Ahq35eKQ9T>CI4Ud+F-1PUZ}rkftDip6JF z9XDKu1Rw&P5oNPZyOITE09uQbD2U&82<_IS_z6s8~ylIq+nU8_L;i@ z{;-)H&%_5y$I-ZO-B$w_4XLMmNwvniGl!$$X+pSN?ktAAdiHMb#px{}Q#x;}gwDHd zEIy>I$lwh!JId?qLwA7w9PUFX$y z){WFTh}6Kr`Nf)226E)5R?cf4WN3oKn1w=l=45<0tG|ypm?EBKo^QvCxov}E>tN_ zbbO?2@u8bB1`pcZ!$C>Y849KGiduR6QdMAXrr4%4i1JjMt#Y{j?d!UqS&rT}v!ca9 z&M+FwU0qkmJ1J!hhNFozCS$7Cc-eG(6G3~ML7DGkyLD`Knm(93_m}wyXO1qA-@Hs^m#Pew{4R^l)q@|FxQe1M0XAi;=_nxpy;d$K~vnvX>k zX4i2y8EsEWokD1e9B_&h3r~0U(RonSE=P>aO6kw<* zfT@;NJ)nhV0i#m1MSEKR2VJ7lZUMu#Bp9z7N}M7>mte{#G>?B;u)HNCX4 zBMz7_CLuoWwvB3=9yMZrCi}FU*8{8G_D^L*>h@nEir)T=gWJ|=@mF)I=Tnoy#TP0r zEuqC+PznB1=Cks%1~_ZT6HeUtj2h`+A#622aX%gZl%%I_nYrPAn;(bBNKgUJBOCxm zoRWkV+Go$BAB9a*IGudpDqkq|u{Q+Bb2)$#&UKB6<1$GOgUmY^p+?TpxL|WxgsLGP z9^8;3#|}7XMq>VgV$I{C_d@Vh0k~W@;3mbQF;h!qKf~bfb>urHT*DMQwO#O*cf`JQ zXDwdyseG%_JH3>-{;7R+XcD7ROR18?xKc+Gwg20EF5(A(oW$!Sj>fy+afWzI6x9L^Dq+IQzSYX459_zR0`cV@fT-p zbz{x{L+qtG!4D8KfxRLx*l_&0enF>BB9D!>pB1*!Qch#q~(*R$D zuR2ZwpQIfm0%6{bP6Cz;!+_Ck1wZCt4R-~EfHN3jkr0R>Qt928I1w&bMn)DjXrr~z z;D$i%3ZxS4ARjFlN`wa`M2%!9zJ!)mhb<_7j5}7@I|p-!z(WnX;%iXzmY(a@e3J4R zGw0v#x4eBB?h+%COD3G`Oo=hP(F9hHsl}eTh;6;~Hr+ppiGKjhIB)lI-udVgO=w~W zyAK9kV3KO)6dY#egW;PtDzYOccIT>Wg;vG>&SVEnFTnpWGF(CK!dJJ8CEfZ#!;S1+M*XW~5Fd`a2;Hfel5gdFA^76vY zRBGOP^(-keTP!5Aiex4bZ2xIB8~)rXVl!qV#bh!oan!Gju3RX&Z;T5ev;|GUI8D(ZFf9%cbPGm92BQJ10v@Qi zISCy2gn)pE-@ySpA)sf23K*WsU8csZllLa?;UyVvvO_x-E6GYrGu}CT$$MM!Q4We9T8$0;{`#69jNVqI>_(in$~R#X5riVLO7FionrUw{ZX0V(xr`3HqnF zNQ^^GHHEaui9~(J$RVm6)u#U(!9b3YlMg{qU7>(7RLvDWFgDZG8)4i)i{6kNpzkWc zq{hDe&;Cpl5WazmPysj4v)p#}d4+$rB)iD~5eBc^Zt%Pk%EAbzj@^6F1?K}HZRK3S zzC2plcBm@`7w!-iqMV&7;IC!^7WF25w`M|F^z#tJT3!O5&~IF6c#Kx_WXY3@lH;%* zT5a%=_5eARhaUK^?k3)+=U?z|r(99TEd*|5W1!7FGkNq~92)@F;?UbMczzsOg=~lHJ))X0a0AQ z83G`+&`{xFY?P-X1fr%H!;n9LVvB9T&;(_a%iPlwCgqe;ZWSlOhCk%Jf5EA#=iYUd zY*Ks7cl{<5&hQ5zO-%QaW~9aGxQVo6duVm@3zcVuqw@=i68-PS)9-u|5lvEr-dhA_ zYK?dt*7HvVO@5`Z=Y^N%m;1d<{QdRKR`W)=Z)6&dtH4ZM^&ja2Ag12P{5&|T-U$5w zxX5i6S_Cac0Ra^OwsoXEcjdn0<`MI=(!QA~IOo&%XEaF0Z`!wduJH92xp|jiQU>Hi z2c-9hd5O`Q2dwm6($B@9ng>GnhqpVMq&*LSJ;S|#5`(F91If)As#9mC^XPlP>zc7) zsJ3?sh;Jx*3e!&weTL;xsBY@mAX-!NcmR^huBN#(;x=L-SzHY->Nsv4G|ic4jVkk# zvRE5iZsNHE2;@sd6G|1%_<|gIq@x2pvN^qI((2zk)6l=0sO~qubII(80=;l_>X+w)qpzz7cMNO50~s`^&W-vrL=VsBo7-wqf!c z&INzvi4{@5xrCeMqBEa!#$hE-CV$0A7D{rL*!_;O-;?_`2RRGjW|7zO(t+2+XD(Vh zD(^pf!ySrCj>J`5j+bSjr!IQc69M?Ih2cxe1ztyfa`g|u%i?yJmmN@cU4BEMCfKRu zldI+w^_+L^ZYBr)js+`u+WHI0T}gP5Bk`jDt8rdetEo3;W$=iIxJ3eM@1Sjk^e1rR zXUAK-vgExNrc~PrK3?LSYbAP@Z(Z^JMy0VP`43*g=qgOzy2gu+l=q@rz7ac0@$EE0 zeY|Q~_BsvdU+3I*4R|huT&xpDI%GdRB0s7y;EMX0qDJz9y7oN&NKSd$auIXBPx6y} zsjP8#n1qH{t3sUS5pEBAr$%U+eLm$}WiNZoyA8^hGQ%D{5;v5prmd;h$z4(0Ptk`! zmCfb_d=b3r>Wr=YPWMlDlVHisJ(6WkrK+(W!H%8tjGAyRc`^;4X4l&No zo;BLNI`$W0cGB;kU=pT4gCB(L?z?;N1y2>K_fh%gD$So$`%kJWd;A}O zLoEUc`gqM&X)Wm^6aH6llAs?@$KJ(>KZrHyp6t4^4b5{ztg6!`2ReVpt_Xb; z?(31F&)@5v#tK9Zt~_p^%P(B_ah&Um=LFeGb))X<6rd6LD_?q@Bk!l)AI;fiiw_S# zQ+VUb!9=^HSQ6r`)Y|p!4du!G!VLbdR-P32%^<8piq2i;5qKqAHIrru6+d zqUQUYZdsFUE@u#LiEk9;M53I??~SWAHFQ4usX(@l5`Pn&tpt+39$@iPv@yN>b0&Bn z2VT`Hk*i5BW6^Pb^C_%M)aJ# zA=#DfX!z&owZpx;pXfQ!zs*s355SYkAS(L|KfL*G8=o(iyjGT4r2lI7({*!IwUBN{ zRRRM`q7OhY>PY)U5D{MWoIc$k0goUX!PuoCs?~})fc!2yj(?47&&-;3>-rz zp7rpT^mc6{nsIJe*Ws+Q7RzZ$9=efDlnk_AscYF?Bwy}ov?H5*+O%%W(WvyC-^l|{ zW#g&O3Lxo_%he^uEc^g;8<6qyKMn2GaquonC`5oS?FjrRhieQCTrlFncOj4(5rC2naT4(%OBAC7?NKau#vrHagCFs~Wk(+SDy6 zs3}{kNk#mFx=vd-*Js*Z@p-B*qKj5smo;{L>U695Ez8dp{qp=i#>;H;f}ZY75?a@v z!=_x^bH@&&NqkDIYnqX1?;FDyV^y0lr0ElVPi-*EQxC<$j1worL|ch%=}8^GO02t~ z6m|JlqHn@RlW6t#mwELjiqo?_j`W7mLIp)hIrpl^FZM6!m{g@sUpmNNP8Qg@;g3Sz zxQl^3~J$#M0kB382=CHF!xTEIA_ZI)gv)O`{YuNmPCL_?YbjKrPe; z>WoT>RuB3xbDF5EChw?P_g#ocVLb5Z&T9s}?kWG9*_>hehCC?*QA}-pOpb(Cfr&{R z-=okGw~3~3wnx9cRCCL6l^DxzWvi$8jJo*+il`$P(yrBcJqA7f&-v0_$5y|ZultFs z88T@plTPbCjvG79B>Q=s-4#UrN%6OARgcSSwPeB8=LupKK7BKzmij|B1N6T>oJmY< z(Q`2cyve#O7$R$-w%?}rqyI$nV*uSydZ}oLCXZU5U0P&SiQhF=s!&r-iQg!!flPAO z4Y!jJ8DP6b&oSxW+lC?+T8dvv>`btHP5;`q`AU(xE~~z>GeOQh0F_Yi!lO6XJ&Gct zSTwHgGUQ%fuqev4XsAS}UK+Y=?MxVpT^+o&RX!gj{qfSZKkFXLbX*E~m+my&&{I?> z(9y^$^Rj#4jK*DZt2~@-$@bA163mOqxS}OsOBxcQhV2SM)~pr4(nGRdZ~{JqV>D@i z8GlVX1Xzgq3c8J|-%;OTY$ubc)16X-?u;D1br`!*QwhVkck%XAb5p>XIdS z%5^`a*mhEUCn*u?#GsNI?G zSm@}IaEvvX-_8oqJZw5on@k#@ex+mXzyuRf7M1?Q%1%qUtVA+U!92TmhxC7jkETD( zOC5b%5w9`8?%Lhymq>CBpLmwqC48Y;k@0o}ysBYRLPU`@v{U|#70QHJ`5EzQt^PuT zH0Wt~$x)MX9jnwtZU0UL^N~>fj(Uyus~5gzpT7859B^0!{H}~e%ouE{1d7`Yj{lI_ zO6LDo4@VrG_e)2e6%5h8WK2E}nQT0E4y<=0+EecPc6s)e&A$o#x9v9L+LM|vm!nD? zLjTpPX}5fCiX(e=$M@0t7G$R@IlJn;kR1A{X+szhc7 znoIShBswoAO}UA$v`2f!+Nq<9p&@FalRZvUU5s9c1Mc{N6=h4$z=wOjzP_yfDrp}9tciq$JQzw5f zU#7JR*2iCs^s;7Tr2W?4CbhDo(NIp{^LHp-koqgp6QDQYQN;T*qjbRJ1D)8^3I<-t z(t%zLDY-6pZNq4kQ>BTU`j0l5l0>^fPc_4ZfbXB4i95Br4&R??)+f8+Xnkm?p`DF7 z!>fs8yDbsxKf{a&*)h-v{3G0#TKCtGYBFZ1$D4~}iAk+$aY)Ke1)^HN*~&&i^~g(` zB5iueW;5|S)o7MlN%>)dRl~y*w>4( z@>vw6-PP$ShWNzz{K#FQUdT!S!ZOZGTs( zFdwI^@F-Z8$u*TMI?1(eb9=|tj%_o}MjM0Fm!ptp;SEJgRTR$oclI;IBZfL-2mWAp zo?G)E$Lz($u4HV_TX8u|LjmRCE;)o3IoGfl{NTi|1yE5qRCWjz&IpG+ zf&;36EC+}Kl&^)Rr32wbNBgRUDc;w_2pJpSG$TG8XKfXhbkM7O>`O0h@3|$Oo`R5d zGhyz^`jn+|gw|f~N~2#f`m|O8-K5FEp+{77_&q{0_SY*?(VS0I{AQ0_Me}upc+YM= zV(EX;Vt?#;)P2o2oe*}~-;K7(F}&_@KS@6V)8;Vsp42)JxZUASB&F}Z4kbFT!K1|~A-;bo63*oj4wID1wn)jcatM^`NfXq7;QXT-D0_W=Q zbGkw9lcW(uL_@xe-Q=_>XNL=20TUc}M06Ax+0AyQJS^X+(ir0+jtj|ZvZXRvST^lG z<_~CnwtZwB{81Bvjir*0xo0BHAH#v+_|x02vL=jODkPp)aSMKlHZ~rBGO=rIXT7=A!{flC z&r%7mz|0VTi4>Pj`hh6K&zj}KD(eRz%jUSioo+bdmb>32^FtuSjqyg9{;;ZG^t$d! z_Y0AAH$BnY-UaDIJ}aI4p6rNY#FfoVj1{}aM+tNWiJaTwEjhg|Cs3dCW~z{B;E>ZT zL!9LwD!wPyPi`5i9sr5aHI8OK@tmUe5y2GHb9VkDkOIfwWEar%1@>K2_s)a|&@L(s zQ!Ys3&ah`2YA9U>X&?Xf7cANSv~2zPhAuHt-&?Q@kI#5;=$c!x#X+t0<=FmO#4;6c>vFbQG|z)1LI1 z2m-AB1DcRQV*Z<1lbb-nT_3~Hp*U~=cMJ_Aql`)>U?Z{l$hqv0qC|ARz>}NnqLdZ6 z>RA!P##0QxS*|w>ijPZgmB4EUkWrcx(+zzOQ7*;paPOuL&9*+{X~E$P9v4?z@<%No zLa9VU!Rg08@?LcL=UXHWC|3)agnV}&cTLKFY%4-3LB&VL)xWwIE=eerV2WGo{oa*m zpzDsK`HV@5A_FB-Mb0YKsLnR9zQ+RZs&2A6OFd3SEHEVw)a`(OoMf*^CvxYOciunh zM;wZvUTgw5#G3ui#1cj7T2rwSnOtt=x0X5PTAOiClBjYen!7qMP}DII|EVx4f|DnZ zBoWoYsynU1wkDT!FC!N2IA0OS)b?El@JUZ+43@o)TI0ldqO#U)fx15771%lu4qNK(i|_T^5OeXphxJXj zHFunD1UmaKzT>$>ccLyM{dSRz`O=8!wzhXwEhVt~>5v&Nm@*1cz~@qmnQ*CvLm6?J zmlD`jn~h6O|JyCw-n83~ZnID7aS8K<+;PE>4pMt2kc@}Fk*Rl8FJCRs5y5q27(z9k zg0VekFzzL~t(h!0boNT9V;^^&R7qTslllb*S%-CsQ5<6u1oYF}P~K72gW6SeE#8xl zYyW}>=T>S7t{O;D>BamFf>4?ar0%fZGTFiO=Q`SxLp~^^cFe z9kd(G&SrFQ;-?&?SLGA`w8rDO){o}i3X~9ND%E`fGubBAT^hzsXCmqf_-sq)4gJ}t zrR#609g-Ff@AqdumQ=j=6fF}ZgMnsXv`|7?4v;OV|3}H27hoZn2Ox^F!vBRgp=wM( z2#(5$qw>iRz!8bHjunhVzVX!}XG|{;;?8i2W(y5^<9Z{-0(KZ~fueI-Qr zAWF~mNF`M2GfFK)Xtt=`lU{FstoaM~BCk_O z4~iHMr$oRFd38m2B+$~oPp|k|#O4;w&1*))CV~fnJB}wmaRcf8tAC$?m0d5<7_%1x z6YO;gQ30wCgaYxK(RZBSIywogQ1Bq-wbnCr??WET`rl-~Z#zN-K~_hLuUf~#apk9UBX%54t{O+m{_z%$l3ie8(v?{;8L7zxQsP|G6mraqG;##+Q zLED}lx9CDzl}9Hsv+7dC__3$Qd2ZJLcgfmosY7__V9L=5p%Rp+9RdT~SD; z%^C%weWRl>oob`#otkU>@i$|Zw&OAF+7|AN0d)K*MBGc#W#x}_A;Cs)ji(IW=tq!p z!69Wr3O|chVJSm5#JKjmTT2h?TP61oZ*HP>11RCY5&D-Jo};VFHGP`tZv{J)swE85 z4TRIBvcXcm%GcTFLDNmFXQ3i_#lz~aBl37H5LOlVVW{*VE?^93*@8M?^ja8uW2kKA zzuB=|)G+<8uS-z*TO|6w*w{}{f?)uKvzKFBnS{D7aa>ifpoSv;#;KIW5%KY@Arl=s z4Seyv4+^m}X7V%gAmOY+qg=0L%s~CN&F;~fR(vOJ@1Kbpi4T??aLvWsAN&2}9dPN0 z)7);?$4|l%JdAk^8O{#B5Ut#HlM%|ScVbJ!v@Kd59j)f~a-cwhkG>y%s*+}t#!V+3 z5WgqxriBFRy(Ar=Ka44+skE)WQlO(Z`?D5Bl%S2|{9SM4U*I=NloOrVAWY9W{MtJ} zE~7vrdOHM%TGQbT;3hcN}E5B06FW&=9!aFM?FXj8G46l$CI0^j^}RE$B|q zwPr{48|jbJ^SsY|k%k?46WJVpRI^CIHMg9uVf}_3rJCv}=`z#NKm0;ihRS%QO7Q2e zum$0Yy(8yg|ImL^L!(nm`SjA1;VPFY^E1J7A(xDI^odehEkefbP{e25>OTr4yGh5g z?ZsPZAJZj**672T;&5K-iD1P?_Ul@%n?+IC%xxtQho-qmz>7XCzZqFJ&PyqFfkTZa zlZU>1QmPOT+zSdeW-{r-|6rA2;P@)jJz00}FLpNtT%g{awoE>DUncXc;>$Y>j$PGW zSvK!PB^hWR73(Rai}+Xg8-6k56H7nMTAjR2QXYa7_frNJZI`*vyHUGJ{N?<+mPdIh zJp8-%y?@4s(34foWR&>#^}kK(^(fBU#q^R_+5SpwzT<3gmiT4R;2<_S04+DJuCyUz znS%8$D4=mG?-L1u^i!&Zu%kn!u!`apgP#AEGA!x$E+7bRMY&h>!V`h@*OZRjncKm9 z-H50&ZqqgK=D1zSQQwU!+SL8GCv`4Tk(ZL?4}kUMm$CQ{=>lmRCfTwLQBr9;4!XoH z>L|<~2G<$VvOOO?!uT^AA{P4iUl9r90+7`9WMC`_N8CnTkd(Pfg96<<7n15^+^ z3IP^7U{pq)$lSIC7$bzgW!OwD$*Dpql^|7;bmx}?`aAj5{7}7q0kTamcMH>n_$G$({4hy3~Rpg`*LFPc<-(7`X^Fb7p zw@#sB$a@^@p1W$^DG$E1dxaVC2|_saim-E50po7o^oPY+BfJceROiao6K!k^y0E8- zs{VPJ@K%}^SH==gYkcZGgGGZ5V;;f5Z6U*Xg}l{oFA!;jswZpRh{Q{0e4^#~)InkY zPe%j&R^dL{&N5=%8VI_|?ZM>iz3e^JEmp;~7^La=0_&;OQ3z+;xm4%nlOT%5Cdz%$ z{F$OxScsCZ?7poe87^scGlioHHLbFtZD5W5EN8zlj3@kO-5^(G_E+m^m~KUr`8s9r z;iONko*20ONv5V$pJ^{RQO0Sj+&kJ zM58RVjZjuYRB24l6?a40<^iw~s(919F==4BiBtYF_v1;ftaL=S%gZK9+euAVF`)vA zc8ccSXOVI;ko-`|K(8WAc5{jb>xBZY+=ea>2W3)Tb== zDIq9;jWZGqR|n&MW{F-I!)QVIGmw8g9uO373H8MvpTIvBQz0r3WGA@;!a-s$tihPr zg@6fH&K!XXJ(a}L-fv`OA5%}VdmJT7PV_A8MjVQA)@Kd8I4@=QhMQja!s{J1c0AzT zh3>N-^C|OXp0#d_>4*qz?`lvn8%d+3DhvwaD;T5aP9C}#XzCVDuIYej zCb(urDtLQo3>=eedu{XGi<^x;8&#R3VjMeF)xjE`5=ivWlE|fA<^rp z4w4aWIZEY|Ac(!#rxCYU#ciPt|LG%(6*Wguc81V2&#_}J)%`06ZG_`c%5L+FwQcUL zPIU*Rx(*tLtWBFgj29Y1Vw&L@6CwIo(5g!^N2FLZ*000 z;+LnxFXv0C=nrE{X!vh;=*37bBbAO2BT?Yz*k9FyuL1+>jb4w_T1T!aZzxbd0LEFm z%EPo_F{PE@Ap)zlcli!KeDgg>U9_(rP59cB~bkgwfNbGUJx z2Tlr9^i)y*qsijfi!F1Jy(#IwESBYkc?BR;5egPtxjhVLTEN2(;H~nDW^#P7j$WDAT9Nrn3}u$jNbp zG@fwMq*fGxgP70A;H0!}3Q&A=>Tr&Pl@E+iu|H7A!YmM6?<8XyTV@ zV zJ@+z`kQS-CLnXowJ!>3+usF_xBOMpGO3uYz&u7B?sX+?BcBXYrSW8X!70KT%8coD# zn4S4gFX=dH+-C?1NTq11V|CAt++}uhg*VezKmOqYR`w414?eR7`7E-qx!Rvge3Nn7 zibRLXz#3P*v>#6sZw8vsE`Ccd=9bNsdHcZexVdiY-kN(uASqiuVMB4ZbrfN<7ReD0 z3LF`n53;W^71B2&erT_#YX9j!VL|>XIcblikzB}2brpOcE?eQDxanF@_tN8(;M}R( zB8s}-0La2Vb~c-NgI7}vf{92WtiUa$y>hU2j^5@zvTb-by^RNBQk#=1 zMf(+Gm8)n;Q?mB8XSZIiPigx~=+fYE)yisc5HPw{TlCAr^{NcP%EM55_RKzsLrich zb$=>p(bF}^j_Mc6mQQ{>^i_Z0l<$&=}>BQhhC1qX#ND(j+(q^`zEV8 zZy7;GdCrdz)q2o|(@m(E$9}u!Z3O=G;wAJah6n821&xNKs-SXNQtGSRlhezB-Jw($(t z3i)DQb)q?DTn*sO`z=3ECl~Gu__3QmQm3d9v5)!iGv936su-7=hGwN`k6oQjYU3=c zMK#?aDhlZP=G{Y`jpVf(8x`jVn+g+W5)R&DmUo{fM*zY4zeWqeV+!F}Hk*n$a82bi z7bPt&Y+u^~l03R_7pUNc}j<_c-Pa?)R|%sZ@m;4)jTZ=b(A zL1JSFZ&SG`7L41ur2MVwUF1vx6vEjFJc?=U64-l zwT{r$krcd zVDCs}({LEpM-=oQn(h}t4z>9+pV2v~yGf@vV&Mh!k9!xn>(VInk9VWGno~4;ed;y! z=pW!_+jX4RkGAP*O98js)vtt(N#hNVxMx%#N{_I_ud?OPd8x%h$X@=UN0O0nsuhlVH@K%Dp@V%5s+P5RkUHx{Ws{H{ zjh8cO$TC!br(4y{om(9Qa*i#%m45rs!T)A$DQhgedEXwyv4uHL2I>vfsf~f51LZqz zet%t>zt)MiJ70#Sd&-_27*vVulvv$Y0ygXD)#d$b{na~BcL`QYgpS^f7JqVT_K z<)7R&Bp)SZ{m1718($-tF__3uE4go)l5|c-p1Uk9%X-Xj%1Q1%c-JeSMyOD|KqU9i7eP?5T6uH0|jDIv&j~c z2=6>_NrztMrQ3YpFck_%p^#i%9hUhVCg=F1m=o$F8lfAX+P@ZT?Eu(hZ>*XW=z?PV z6?9nWnXA!Uig&4E=c}>m6z%GWKf3%8g4oTzGZZG8LYBXFJjljNk{hjt)V>tdHtIRm zXq1K;^cES6G{!kv!((E*X1)rhZx(1sGXqqrh$MSAO$(Qr(h&;|h~!=Kl%Cg7)SqfB z9lWl~i#K1v5%pY_i=t-dqcWeR{2cr}DW z`Vg1%;ai?)_j5{NJRLrk9wtcvU>ay+rte43io7q)GVkUkg%`i`&+GRK&wdB2K6ZY; z_txS{RURxRD?XU>XMEj@Mu!q%;)J65e+H3a?lLmbg4h?Y3Y~PdC9TNTzfmW4X3zwE zURG_9CteR!CY-!_+btG4iBty;)>TE<$y^q~mh468I!TKDLzBadfx62=OUg`bei6a8 z%ZHv^*<%mW-HOlTr{e?!E^QLTP&zk5)y6-;RvR2T3boTUSi8jIOFA5M4zk zhoe_ovKSFH!}~BS>bhQG(BiSiDA-*z`s>13`enr)ug`ft?WLom&8{|L`6>EMm0Vdjy&< z8neK^lhlM#iWi}yXQNGE{12E#O~+_nYR~LP(PSmqnBUBi50qd6wIY1jbx0XKDr0!Z zIZn(m^RystIvihbMnB-mP>@j1c8+;Z28T!{uV}-$&f`6a;aIH1lFW^FvM;6IzQ%hK zqu~Df{YTn}ppei$)^7r|6PVv@kFDPPW>e$(Xd190T&2)WkVlqpTEW@#s<_IXF&yP# z0upZPonx@8zipB{6>mDx8(dgo?)=$|2B6qYj4tZg{r!2s6rCh6jem!`u$cp&7aoz= zJ(D`$3-V-FYzF}2selLDbBO$T%mHK1=0EjXC5^WhQ43rwz-@MRl93+x9teO$DgWR z;CL{TMt_>k&sqRJkS-Iw53V^j=5Ck@+Y-%kc^o4WTjPa?Y18ocWQb~wFR9Nw%-LtC zSJVr{ka{dleAV~_pGFMrR>y5o1Lp}3mhsc?=c;4@i+c?Xk$_l_^0>WmIOE};SkD5J zrWoO%D7j;uZNv+CvR(}KzMvp9Ir}j|HT7q)>2SH1K9QM;4P?IQoBrtNs6lHO{Y3nI z7oHai+^KTFvExFxzouf0+myF^$*i!omeK3bFX=~b7}{|mcRl(R%Q7 z!xA@FZYj(E>a{D=SRK$gaH4p(&2ZUpJVj+tw7=W~uK8e*Ve1$YW~wv3VPv~Da<8Ca z&*+=+2WIfJ@`ofMc_en1@sTxd=@%$<728g#L>x6}{{uwT=llVMFZ>z)zbEhiC`1$x z`Y$yH8x5xR%(5Jf;aR9nY`A+^)5{WZ6p+xK&JYv>)z;n|&PP_jZq4gUicfky4i>W% zDFyajZNq2c+|gLSF(ROkwYl zm)qK6zR}frcDQg^JUy{h`6x#o`pcjqS1=K$Z|2z^cvMypm>8}Ycchr^gT&|l=>?u> zA~)QMR$;lw5g^H*+DiG6Kf)o2e=D;U`*(?mDRHuTN;w*vC`MsFNR}!xUs`UTtxnVC zg>InXM6W(PSyyWmboM#%=aCq66-JQI^=5D@y0=t!bDAreILCGK7nceRV%3yjn2l@1 z7P{CPm3S^<&s&r{&KoI*n?!sy4nLVS zQ-3LHFSY1*PwjOmVRRhFWoYJ3>xD)&^&_?x5_CpP1}2TZkQ)tfo^w$r9tVvxfJwEf{6&qLwO5kXPU42Mws zKDVOJ6jf+%y)?Rs@=p{wB|0X;OckUneuDB`)vut;SU)X*;xB)+09X?)iP245yyum> zUSZ#FCUw3UEHK1*+PS?hbXq9;Bd`&md6_LqCQfBVHqK^AOvoJKjz(yO(c@*<6Uc)3 zL!=|ye8C4;G?E>m(_g{-8u!a<<5H(r0w>{oB*B%zznAk{P_D1>iD6&iPfo@(C#q9z zVL7DfST-qIb#i$X2a<}i&z)ZuQZ&a2Vk`8A+=|F#Y@Wy}C87hO&))c=K!tf@eFdM1 z$jQ4l8^5vIgN&4J{jZ3R_1pkOm{3Q@J!UU_Him8Sz=Ua3b>hC|+GOsAqd30?9>6EEspZf2>pXe6;N~hAv1bm zarR3@02fkCPE%Y;U(nsx&O|;1N_Y$*3Kbj^LjEQA;Hl4r z2u{>xK2!8GjRanlRN+;hYJH)W6u3Zpv?-G+3yz`gQoZktDaW`T$P@$gtkRR;&tlcF z^>3kMmV4QcC{eae*nD5r*+b{uWcJ^je56O4>0Mcd=fyvNbB%D!vHKlLuSo79WV z%XpaYiZ6cbNT-4bW!$wck_N*5Sqcy!DIa*( zoHnGXJ#JF8(%m$p?}z?aB9dbeWL<}at)fgl84=t0b6$x)-U-@Q$}r8^yXhLc<@bf+ zI7l;IYt&n4|MVCbZeSrOh)~9F*uq7QZz7>Mk*SQJyEPvnS>mwN2=cjZus$ zR-6eSDFLRM5GkyICJIeI98+PdswKxm;l}7YJponQGC;$*O5PYY>)m#iCQOx+aNcXSVuA33nz7e3Z zc69wENrV1fd`afn#G)G3-|JfLJg4VF#lp%zx@tSxHruL3X(iS@!=hR!FfXL^G=r}!et`gRA_pPYeon^`V`4*?K97k4TZq` zXT>acehibE{#v~(NaJ#W&LpVZ(x62tGH!Zr<#Vy>2%hk)gT8-cM8AO1hs%Tq>{Bpx zitv$jaI(B}>IIQH6w#R)e}j-#y{W=!$S&CdE+9>eAK9yPuh|qR+n+0!sn*DK|A!U? z|7;0l?V&l6De$QmX{U4qu2=XaPkISp<*U81ncFB&i=L@00_9wMj*Q*^N$|eWILT6N z@dgX!dob1uNC8p0i3yDsKM3pa!}F&tDJ-L}UiQB^e8aHh>jiS1(@~JcBlW3q5}9Au z2~CkZ`|HnM#{qv0ztiF9Z&Usyb#y;5;mGT6lvsvYBlrAY-?t7ICwxCNfts)W5%bSc zQx;kFbCeU1+X}_n3#nmHppL%G{|hNGTbqIjE3f;VGX_quC+Ycu0)bW6d88{AkZnRQkK=Pr1rF4#Q=Cj|SAJqke zD=~>6r~Pdq`R4ErVa3V>pm}LH>t3EM;BWg6`h?%wjkO9h`}QEJB2ha(5Ghr}htf#j z4TbJ1{OhjMhZ$W6ubr#-@e6BRHrIRQ4p#69BsD>1y%AmTy4*8#hr8}o1ZMbX&Brp+ zRy$)vTy@)0l9X~4UHH6Sv~Nl76{Vqy@l7d*R-B;%gfm`NI`@$0ql}8QRf%q&n$mF@ zD3;i4vl#~2<0%+T^EKC};q!g&PzdLLO*(ZA_WSe9Yc5=e$B9spQZcjSxd=HaSDhH< z;#!^s2z-s)RFu#3-Bb-EO(}XXG03v9(TMKT%pou3_52XljuvELwfPsAOP0z$&QV}U zZWHriUKH1GiO16k;0vr4NW2j)X|mM^`2O~HeGL(7b`UAeheQYue%hlBhTZyIV@L!w zUYGmkS^{%G6CbA?0#JIHUrC}avNb8Df7>&hzw9LVX*JC|Zl}PC{uF+z04Z+k(VCD6 zpUvfuzNOGesEf%JCf^9Hy(RWkXzZY)dTx3M%nTAFg=XgD$l8+MT}OJ&_U8F%#YjwS z*2Z&gIZQ7#=T0Pr{Vp&2nx3R43-ZF`rXK5ccFxk&G?Si`IrV<6{qjNbn%62UK@rA9 zsTyy*I#9-wps*j2yLa82l==yPA!wR0X>dULw(oj!`TPYwdNCY-i9VdbV{`D7{51v( z+<-*ub8qp%yql=QP6v5OGe|?(VEyWVjUhEPgD)^s6`BG=XsE(4aJ`k-u(zttUQjtshL z9y-m_5W&3T^`g-`I}a2`24~%Ccz(B+7n4%+NIv) zG{Ry%i;h}c`Nv8|T*r}V<1~gNcynSII@K~Ci1i6QW4*2bGkJE|(%>Fgzv9hPf&`N2XtBB7}yd#z0W`2pcSlzby)_=0e zmU3I~okYimum?`^zw7sT_S&t+VGECJ2`g8Yx2j%XUjXN-j@0ttd%r@B*jC0cFN}b# zNbk7taA9CiCM`Ri$-}%os|8O+NGA#kbSE;Dq$cwaH&?4 z#|iZA4CgH!PRH!UO2jM2`V^^H=4Pr$D%q}johBjTU8GO(DI6NpO(_()$sl@LfSimh z>b(Rn|NI7t{B`)2?6RB$5^Zhr?w(|Ny*G{8#CWK3X`pjGXCd8(vN{F{ywkjn4Eg$X z-}*odpS^aD(ga]#eRQ1@dLu1cSX=Jv@ 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 literal 0 HcmV?d00001 diff --git a/src/demo/manage/src/components/header.vue b/src/demo/manage/src/components/header.vue new file mode 100644 index 00000000..2c14ace0 --- /dev/null +++ b/src/demo/manage/src/components/header.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/demo/manage/src/components/sidebar.vue b/src/demo/manage/src/components/sidebar.vue new file mode 100644 index 00000000..1bfd9b5f --- /dev/null +++ b/src/demo/manage/src/components/sidebar.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/demo/manage/src/components/tags.vue b/src/demo/manage/src/components/tags.vue new file mode 100644 index 00000000..79a4887b --- /dev/null +++ b/src/demo/manage/src/components/tags.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/demo/manage/src/main.ts b/src/demo/manage/src/main.ts new file mode 100644 index 00000000..43ae5c79 --- /dev/null +++ b/src/demo/manage/src/main.ts @@ -0,0 +1,28 @@ +import { createApp } from 'vue'; +import { createPinia } from 'pinia'; +import * as ElementPlusIconsVue from '@element-plus/icons-vue'; +import App from './App.vue'; +import router from './router'; +import { usePermissStore } from './store/permiss'; +import 'element-plus/dist/index.css'; +import './assets/css/icon.css'; + +const app = createApp(App); +app.use(createPinia()); +app.use(router); + +// 注册elementplus图标 +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component); +} +// 自定义权限指令 +const permiss = usePermissStore(); +app.directive('permiss', { + mounted(el, binding) { + if (!permiss.key.includes(String(binding.value))) { + el['hidden'] = true; + } + }, +}); + +app.mount('#app'); diff --git a/src/demo/manage/src/router/index.ts b/src/demo/manage/src/router/index.ts new file mode 100644 index 00000000..02e9668a --- /dev/null +++ b/src/demo/manage/src/router/index.ts @@ -0,0 +1,179 @@ +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'; +import { usePermissStore } from '../store/permiss'; +import Home from '../views/home.vue'; + +const routes: RouteRecordRaw[] = [ + { + path: '/', + redirect: '/dashboard', + }, + { + path: '/', + name: 'Home', + component: Home, + children: [ + { + path: '/dashboard', + name: 'dashboard', + meta: { + title: '系统首页', + permiss: '1', + }, + component: () => import(/* webpackChunkName: "dashboard" */ '../views/dashboard.vue'), + }, + { + path: '/table', + name: 'basetable', + meta: { + title: '表格', + permiss: '2', + }, + component: () => import(/* webpackChunkName: "table" */ '../views/table.vue'), + }, + { + path: '/charts', + name: 'basecharts', + meta: { + title: '图表', + permiss: '11', + }, + component: () => import(/* webpackChunkName: "charts" */ '../views/charts.vue'), + }, + { + path: '/form', + name: 'baseform', + meta: { + title: '表单', + permiss: '5', + }, + component: () => import(/* webpackChunkName: "form" */ '../views/form.vue'), + }, + { + path: '/tabs', + name: 'tabs', + meta: { + title: 'tab标签', + permiss: '3', + }, + component: () => import(/* webpackChunkName: "tabs" */ '../views/tabs.vue'), + }, + { + path: '/donate', + name: 'donate', + meta: { + title: '鼓励作者', + permiss: '14', + }, + component: () => import(/* webpackChunkName: "donate" */ '../views/donate.vue'), + }, + { + path: '/permission', + name: 'permission', + meta: { + title: '权限管理', + permiss: '13', + }, + component: () => import(/* webpackChunkName: "permission" */ '../views/permission.vue'), + }, + { + path: '/upload', + name: 'upload', + meta: { + title: '上传插件', + permiss: '6', + }, + component: () => import(/* webpackChunkName: "upload" */ '../views/upload.vue'), + }, + { + path: '/icon', + name: 'icon', + meta: { + title: '自定义图标', + permiss: '10', + }, + component: () => import(/* webpackChunkName: "icon" */ '../views/icon.vue'), + }, + { + path: '/user', + name: 'user', + meta: { + title: '个人中心', + }, + component: () => import(/* webpackChunkName: "user" */ '../views/user.vue'), + }, + { + path: '/editor', + name: 'editor', + meta: { + title: '富文本编辑器', + permiss: '8', + }, + component: () => import(/* webpackChunkName: "editor" */ '../views/editor.vue'), + }, + { + path: '/markdown', + name: 'markdown', + meta: { + title: 'markdown编辑器', + permiss: '9', + }, + component: () => import(/* webpackChunkName: "markdown" */ '../views/markdown.vue'), + }, + { + path: '/export', + name: 'export', + meta: { + title: '导出Excel', + permiss: '2', + }, + component: () => import(/* webpackChunkName: "export" */ '../views/export.vue'), + }, + { + path: '/import', + name: 'import', + meta: { + title: '导入Excel', + permiss: '2', + }, + component: () => import(/* webpackChunkName: "import" */ '../views/import.vue'), + }, + ], + }, + { + path: '/login', + name: 'Login', + meta: { + title: '登录', + }, + component: () => import(/* webpackChunkName: "login" */ '../views/login.vue'), + }, + { + path: '/403', + name: '403', + meta: { + title: '没有权限', + }, + component: () => import(/* webpackChunkName: "403" */ '../views/403.vue'), + }, +]; + +const router = createRouter({ + history: createWebHashHistory(), + routes, +}); + +router.beforeEach((to, from, next) => { + document.title = `${to.meta.title} | vue-manage-system`; + const role = localStorage.getItem('ms_username'); + const permiss = usePermissStore(); + if (!role && to.path !== '/login') { + next('/login'); + } else if (to.meta.permiss && !permiss.key.includes(to.meta.permiss)) { + // 如果没有权限,则进入403 + next('/403'); + } else { + next(); + } +}); + +export default router; diff --git a/src/demo/manage/src/store/permiss.ts b/src/demo/manage/src/store/permiss.ts new file mode 100644 index 00000000..504d78ff --- /dev/null +++ b/src/demo/manage/src/store/permiss.ts @@ -0,0 +1,23 @@ +import { defineStore } from 'pinia'; + +interface ObjectList { + [key: string]: string[]; +} + +export const usePermissStore = defineStore('permiss', { + state: () => { + const keys = localStorage.getItem('ms_keys'); + return { + key: keys ? JSON.parse(keys) : [], + defaultList: { + admin: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], + user: ['1', '2', '3', '11', '13', '14', '15'] + } + }; + }, + actions: { + handleSet(val: string[]) { + this.key = val; + } + } +}); diff --git a/src/demo/manage/src/store/sidebar.ts b/src/demo/manage/src/store/sidebar.ts new file mode 100644 index 00000000..ab7a146d --- /dev/null +++ b/src/demo/manage/src/store/sidebar.ts @@ -0,0 +1,15 @@ +import { defineStore } from 'pinia'; + +export const useSidebarStore = defineStore('sidebar', { + state: () => { + return { + collapse: false + }; + }, + getters: {}, + actions: { + handleCollapse() { + this.collapse = !this.collapse; + } + } +}); diff --git a/src/demo/manage/src/store/tags.ts b/src/demo/manage/src/store/tags.ts new file mode 100644 index 00000000..7f8ff18b --- /dev/null +++ b/src/demo/manage/src/store/tags.ts @@ -0,0 +1,53 @@ +import { defineStore } from 'pinia'; + +interface ListItem { + name: string; + path: string; + title: string; +} + +export const useTagsStore = defineStore('tags', { + state: () => { + return { + list: [] + }; + }, + getters: { + show: state => { + return state.list.length > 0; + }, + nameList: state => { + return state.list.map(item => item.name); + } + }, + actions: { + delTagsItem(index: number) { + this.list.splice(index, 1); + }, + setTagsItem(data: ListItem) { + this.list.push(data); + }, + clearTags() { + this.list = []; + }, + closeTagsOther(data: ListItem[]) { + this.list = data; + }, + closeCurrentTag(data: any) { + for (let i = 0, len = this.list.length; i < len; i++) { + const item = this.list[i]; + if (item.path === data.$route.fullPath) { + if (i < len - 1) { + data.$router.push(this.list[i + 1].path); + } else if (i > 0) { + data.$router.push(this.list[i - 1].path); + } else { + data.$router.push('/'); + } + this.list.splice(i, 1); + break; + } + } + } + } +}); diff --git a/src/demo/manage/src/utils/request.ts b/src/demo/manage/src/utils/request.ts new file mode 100644 index 00000000..f90bc899 --- /dev/null +++ b/src/demo/manage/src/utils/request.ts @@ -0,0 +1,31 @@ +import axios, {AxiosInstance, AxiosError, AxiosResponse, AxiosRequestConfig} from 'axios'; + +const service:AxiosInstance = axios.create({ + timeout: 5000 +}); + +service.interceptors.request.use( + (config: AxiosRequestConfig) => { + return config; + }, + (error: AxiosError) => { + console.log(error); + return Promise.reject(); + } +); + +service.interceptors.response.use( + (response: AxiosResponse) => { + if (response.status === 200) { + return response; + } else { + Promise.reject(); + } + }, + (error: AxiosError) => { + console.log(error); + return Promise.reject(); + } +); + +export default service; diff --git a/src/demo/manage/src/views/403.vue b/src/demo/manage/src/views/403.vue new file mode 100644 index 00000000..c7132708 --- /dev/null +++ b/src/demo/manage/src/views/403.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/demo/manage/src/views/404.vue b/src/demo/manage/src/views/404.vue new file mode 100644 index 00000000..a4dfcf20 --- /dev/null +++ b/src/demo/manage/src/views/404.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/demo/manage/src/views/charts.vue b/src/demo/manage/src/views/charts.vue new file mode 100644 index 00000000..7e4df52a --- /dev/null +++ b/src/demo/manage/src/views/charts.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/demo/manage/src/views/dashboard.vue b/src/demo/manage/src/views/dashboard.vue new file mode 100644 index 00000000..5e6d0391 --- /dev/null +++ b/src/demo/manage/src/views/dashboard.vue @@ -0,0 +1,301 @@ + + + + + diff --git a/src/demo/manage/src/views/donate.vue b/src/demo/manage/src/views/donate.vue new file mode 100644 index 00000000..c127e30d --- /dev/null +++ b/src/demo/manage/src/views/donate.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/demo/manage/src/views/editor.vue b/src/demo/manage/src/views/editor.vue new file mode 100644 index 00000000..c08d55be --- /dev/null +++ b/src/demo/manage/src/views/editor.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/demo/manage/src/views/export.vue b/src/demo/manage/src/views/export.vue new file mode 100644 index 00000000..21ecf6b2 --- /dev/null +++ b/src/demo/manage/src/views/export.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/demo/manage/src/views/form.vue b/src/demo/manage/src/views/form.vue new file mode 100644 index 00000000..75609aeb --- /dev/null +++ b/src/demo/manage/src/views/form.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/demo/manage/src/views/home.vue b/src/demo/manage/src/views/home.vue new file mode 100644 index 00000000..e8ba189a --- /dev/null +++ b/src/demo/manage/src/views/home.vue @@ -0,0 +1,26 @@ + + diff --git a/src/demo/manage/src/views/icon.vue b/src/demo/manage/src/views/icon.vue new file mode 100644 index 00000000..0b01ff3d --- /dev/null +++ b/src/demo/manage/src/views/icon.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/demo/manage/src/views/import.vue b/src/demo/manage/src/views/import.vue new file mode 100644 index 00000000..e0ca8c3d --- /dev/null +++ b/src/demo/manage/src/views/import.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/demo/manage/src/views/login.vue b/src/demo/manage/src/views/login.vue new file mode 100644 index 00000000..da669ebf --- /dev/null +++ b/src/demo/manage/src/views/login.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/demo/manage/src/views/markdown.vue b/src/demo/manage/src/views/markdown.vue new file mode 100644 index 00000000..d435f9ca --- /dev/null +++ b/src/demo/manage/src/views/markdown.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/demo/manage/src/views/permission.vue b/src/demo/manage/src/views/permission.vue new file mode 100644 index 00000000..bf83327e --- /dev/null +++ b/src/demo/manage/src/views/permission.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/demo/manage/src/views/table.vue b/src/demo/manage/src/views/table.vue new file mode 100644 index 00000000..6888ccb9 --- /dev/null +++ b/src/demo/manage/src/views/table.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/demo/manage/src/views/tabs.vue b/src/demo/manage/src/views/tabs.vue new file mode 100644 index 00000000..849a131f --- /dev/null +++ b/src/demo/manage/src/views/tabs.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/demo/manage/src/views/upload.vue b/src/demo/manage/src/views/upload.vue new file mode 100644 index 00000000..960edc3f --- /dev/null +++ b/src/demo/manage/src/views/upload.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/demo/manage/src/views/user.vue b/src/demo/manage/src/views/user.vue new file mode 100644 index 00000000..c0728dab --- /dev/null +++ b/src/demo/manage/src/views/user.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/src/demo/manage/src/vite-env.d.ts b/src/demo/manage/src/vite-env.d.ts new file mode 100644 index 00000000..ff773960 --- /dev/null +++ b/src/demo/manage/src/vite-env.d.ts @@ -0,0 +1,10 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} + +declare module 'vue-schart'; +declare module 'vue-cropperjs'; \ No newline at end of file diff --git a/src/demo/manage/tsconfig.json b/src/demo/manage/tsconfig.json new file mode 100644 index 00000000..49c50ade --- /dev/null +++ b/src/demo/manage/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["ESNext", "DOM"], + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.d.ts","src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/src/demo/manage/tsconfig.node.json b/src/demo/manage/tsconfig.node.json new file mode 100644 index 00000000..9d31e2ae --- /dev/null +++ b/src/demo/manage/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/src/demo/manage/vite.config.ts b/src/demo/manage/vite.config.ts new file mode 100644 index 00000000..30ed7089 --- /dev/null +++ b/src/demo/manage/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import VueSetupExtend from 'vite-plugin-vue-setup-extend'; +import AutoImport from 'unplugin-auto-import/vite'; +import Components from 'unplugin-vue-components/vite'; +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; +export default defineConfig({ + base: './', + plugins: [ + vue(), + VueSetupExtend(), + AutoImport({ + resolvers: [ElementPlusResolver()] + }), + Components({ + resolvers: [ElementPlusResolver()] + }) + ], + optimizeDeps: { + include: ['schart.js'] + } +});