From d9e71524b2b065884cc2e571cf12d3371a13ab70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E6=B3=BD=E7=BD=91?= <357099073@qq.com> Date: Thu, 24 Apr 2025 11:53:18 +0800 Subject: [PATCH] first commit --- .env | 5 + .env.development | 8 + .env.production | 8 + .gitignore | 25 + LICENSE | 127 + README.md | 53 + env.d.ts | 6 + index.html | 13 + package-lock.json | 2391 +++++++++++++++++ package.json | 34 + public/vite.svg | 1 + src/App.vue | 12 + src/api/system/index.ts | 12 + src/api/table/index.ts | 12 + src/api/user/index.ts | 14 + src/assets/background.svg | 69 + src/assets/favicon.ico | Bin 0 -> 29329 bytes src/assets/logo.png | Bin 0 -> 6849 bytes src/assets/style/style.scss | 99 + src/assets/vue.svg | 1 + src/components/Pagination/index.vue | 55 + src/components/YunzerDialog/index.vue | 45 + src/components/YunzerForm/formType.ts | 31 + src/components/YunzerForm/index.vue | 88 + src/components/YunzerTable/index.vue | 78 + src/components/YunzerTable/tableType.ts | 17 + src/directive/debounce.ts | 23 + src/directive/index.ts | 53 + src/hooks/useForm.ts | 0 src/hooks/useTable.ts | 61 + src/layout/classic/index.vue | 33 + .../components/vAside/components/Logo.vue | 59 + .../components/vAside/components/index.vue | 48 + src/layout/components/vAside/vAside.vue | 55 + .../vHeader/components/SettingView.vue | 120 + .../vHeader/components/TagsView.vue | 310 +++ src/layout/components/vHeader/vHeader.vue | 249 ++ src/layout/components/vMain/vMain.vue | 27 + src/layout/index.vue | 19 + src/layout/streamline/index.vue | 22 + src/main.ts | 40 + src/permission.ts | 56 + src/router/index.ts | 69 + src/store/permission.ts | 79 + src/store/settings.ts | 21 + src/store/tagsView.ts | 119 + src/store/user.ts | 88 + src/utils/filters.ts | 14 + src/utils/getTable.ts | 65 + src/utils/request.ts | 72 + src/utils/storage.ts | 16 + src/utils/vue-awesome-console.ts | 115 + src/views/dashboard/index.vue | 49 + src/views/dialog/simpleDialog/index.vue | 59 + src/views/directives/dept/index.vue | 16 + src/views/directives/thrShaking/index.vue | 65 + src/views/form/simpleForm/formConfig.ts | 65 + src/views/form/simpleForm/index.vue | 87 + src/views/nested/menu1.vue | 11 + src/views/nested/menu1/index.vue | 11 + src/views/nested/menu1/menu1.vue | 11 + src/views/nested/menu2/index.vue | 11 + src/views/redirect/index.vue | 15 + src/views/system/dept/index.vue | 16 + src/views/system/menu/index.vue | 16 + src/views/system/role/index.vue | 16 + src/views/system/user/index.vue | 16 + src/views/table/contextTable/index.vue | 118 + src/views/table/dragableTable/index.vue | 93 + src/views/table/editTable/index.vue | 95 + src/views/table/packTable/index.vue | 69 + src/views/table/userList/index.vue | 108 + src/views/table/userList/tableConfig.ts | 49 + src/views/user/error-page/404.vue | 11 + src/views/user/login/index.vue | 95 + src/vite-env.d.ts | 11 + tsconfig.json | 32 + tsconfig.node.json | 10 + vite.config.ts | 34 + 79 files changed, 6226 insertions(+) create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 env.d.ts create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.vue create mode 100644 src/api/system/index.ts create mode 100644 src/api/table/index.ts create mode 100644 src/api/user/index.ts create mode 100644 src/assets/background.svg create mode 100644 src/assets/favicon.ico create mode 100644 src/assets/logo.png create mode 100644 src/assets/style/style.scss create mode 100644 src/assets/vue.svg create mode 100644 src/components/Pagination/index.vue create mode 100644 src/components/YunzerDialog/index.vue create mode 100644 src/components/YunzerForm/formType.ts create mode 100644 src/components/YunzerForm/index.vue create mode 100644 src/components/YunzerTable/index.vue create mode 100644 src/components/YunzerTable/tableType.ts create mode 100644 src/directive/debounce.ts create mode 100644 src/directive/index.ts create mode 100644 src/hooks/useForm.ts create mode 100644 src/hooks/useTable.ts create mode 100644 src/layout/classic/index.vue create mode 100644 src/layout/components/vAside/components/Logo.vue create mode 100644 src/layout/components/vAside/components/index.vue create mode 100644 src/layout/components/vAside/vAside.vue create mode 100644 src/layout/components/vHeader/components/SettingView.vue create mode 100644 src/layout/components/vHeader/components/TagsView.vue create mode 100644 src/layout/components/vHeader/vHeader.vue create mode 100644 src/layout/components/vMain/vMain.vue create mode 100644 src/layout/index.vue create mode 100644 src/layout/streamline/index.vue create mode 100644 src/main.ts create mode 100644 src/permission.ts create mode 100644 src/router/index.ts create mode 100644 src/store/permission.ts create mode 100644 src/store/settings.ts create mode 100644 src/store/tagsView.ts create mode 100644 src/store/user.ts create mode 100644 src/utils/filters.ts create mode 100644 src/utils/getTable.ts create mode 100644 src/utils/request.ts create mode 100644 src/utils/storage.ts create mode 100644 src/utils/vue-awesome-console.ts create mode 100644 src/views/dashboard/index.vue create mode 100644 src/views/dialog/simpleDialog/index.vue create mode 100644 src/views/directives/dept/index.vue create mode 100644 src/views/directives/thrShaking/index.vue create mode 100644 src/views/form/simpleForm/formConfig.ts create mode 100644 src/views/form/simpleForm/index.vue create mode 100644 src/views/nested/menu1.vue create mode 100644 src/views/nested/menu1/index.vue create mode 100644 src/views/nested/menu1/menu1.vue create mode 100644 src/views/nested/menu2/index.vue create mode 100644 src/views/redirect/index.vue create mode 100644 src/views/system/dept/index.vue create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/user/index.vue create mode 100644 src/views/table/contextTable/index.vue create mode 100644 src/views/table/dragableTable/index.vue create mode 100644 src/views/table/editTable/index.vue create mode 100644 src/views/table/packTable/index.vue create mode 100644 src/views/table/userList/index.vue create mode 100644 src/views/table/userList/tableConfig.ts create mode 100644 src/views/user/error-page/404.vue create mode 100644 src/views/user/login/index.vue create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.env b/.env new file mode 100644 index 0000000..b0b7d15 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +# 本地运行端口号 +VITE_PORT = 8686 + +# API接口域名配置 +VITE_BASE_URL = http://localhost/ diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..32bc531 --- /dev/null +++ b/.env.development @@ -0,0 +1,8 @@ +# 开发环境 +NODE_ENV = development +# 后台请求前缀,这是mock地址 +VITE_BASE_URL = '/apis' + +VITE_PERMISSION_MODE = 'CONSTANT' +# VITE_PERMISSION_MODE = 'FRONT' +# VITE_PERMISSION_MODE = 'BACK' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..84f1752 --- /dev/null +++ b/.env.production @@ -0,0 +1,8 @@ +# 生产环境 +NODE_ENV = prod +# 后台请求前缀,这是mock地址 +VITE_BASE_URL = 'https://mock.apifox.cn/m1/3365861-0-default' + +VITE_PERMISSION_MODE = 'CONSTANT' +# VITE_PERMISSION_MODE = 'FRONT' +# VITE_PERMISSION_MODE = 'BACK' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9147b36 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +src/views/test +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9e32cde --- /dev/null +++ b/LICENSE @@ -0,0 +1,127 @@ + 木兰宽松许可证, 第2版 + + 木兰宽松许可证, 第2版 + 2020年1月 http://license.coscl.org.cn/MulanPSL2 + + + 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: + + 0. 定义 + + “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 + + “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 + + “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 + + “法人实体”是指提交贡献的机构及其“关联实体”。 + + “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 + + 1. 授予版权许可 + + 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 + + 2. 授予专利许可 + + 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 + + 3. 无商标许可 + + “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 + + 4. 分发限制 + + 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 + + 5. 免责声明与责任限制 + + “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 + + 6. 语言 + “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 + + 条款结束 + + 如何将木兰宽松许可证,第2版,应用到您的软件 + + 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: + + 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; + + 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; + + 3, 请将如下声明文本放入每个源文件的头部注释中。 + + Copyright (c) [Year] [name of copyright holder] + [Software Name] is licensed under Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. + + + Mulan Permissive Software License,Version 2 + + Mulan Permissive Software License,Version 2 (Mulan PSL v2) + January 2020 http://license.coscl.org.cn/MulanPSL2 + + Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: + + 0. Definition + + Software means the program and related documents which are licensed under this License and comprise all Contribution(s). + + Contribution means the copyrightable work licensed by a particular Contributor under this License. + + Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. + + Legal Entity means the entity making a Contribution and all its Affiliates. + + Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. + + 1. Grant of Copyright License + + Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. + + 2. Grant of Patent License + + Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. + + 3. No Trademark License + + No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. + + 4. Distribution Restriction + + You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. + + 5. Disclaimer of Warranty and Limitation of Liability + + THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 6. Language + + THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. + + END OF THE TERMS AND CONDITIONS + + How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software + + To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: + + i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; + + ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; + + iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. + + + Copyright (c) [Year] [name of copyright holder] + [Software Name] is licensed under Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c27fd20 --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +### 介绍 + +**Yunzer-Admin** 基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 专注于表格,表单的企业级后台管理框架,取名 **Yunzer**源于NBA球队圣安东尼奥马刺队(San Antonio Yunzer),作为一支专业篮球队,马刺的卓越不止在于技术水平和战术运筹的精妙,更在于他们小石匠精神一直激励着大家。 +马刺队更衣室里的一句话: + +“当一切看起来无可挽回之时,我跑去看石匠重复捶击他面前的岩石一百次,而那块石头连 +一个裂缝都没有露出来。接下来的第一百零一次捶击之时,此石一分为二。不是因为这 +一次捶击,而是因为你的始终如一。” + +共勉...... + +[代码gitee地址](https://gitee.com/3439/Yunzer-Admin) + +[在线预览](http://jdvip.suipin.net) + +### 技术栈+版本 + +本项目技术栈基于`npm^6.14.7+node^14.8.1+Vue3.3.4 + TypeScript + Vite4.4.5 + vue-router4.2.4 + pinia + axios` + +### 运行 + +```javascript +克隆项目 +git clone https://gitee.com/3439/Yunzer-Admin.git + +进入项目目录 +cd Yunzer-Admin + +安装依赖 +npm install + +本地开发 启动项目 +npm run dev +``` + +### 系列文章 + +[从零开始vue3+vite+ts+pinia+router4后台管理(1)](https://juejin.cn/post/7286112965609357347) + +[从零开始vue3+vite+ts+pinia+router4后台管理(2)-页面布局](https://juejin.cn/post/7286508785104322594) + +[从零开始vue3+vite+ts+pinia+router4后台管理(3)-动态路由](https://juejin.cn/post/7286679458131312674) + +[从零开始vue3+vite+ts+pinia+router4后台管理(4)-导航标签栏和keep-alive缓存](https://juejin.cn/post/7287053284787028003) + +[从零开始vue3+vite+ts+pinia+router4后台管理(5)-二次封装表格1.0](https://juejin.cn/post/7288963909581635618) + +[从零开始vue3+vite+ts+pinia+router4后台管理(6)-全局自定义指令实现节流与防抖](https://juejin.cn/post/7290470513116856320) + +[什么才是完美的表格二次封装elementPlus表格?-从零开始vue3+vite+ts+pinia+router4后台管理(7)](https://juejin.cn/post/7301903019222155264) + + + diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..7f21329 --- /dev/null +++ b/env.d.ts @@ -0,0 +1,6 @@ +//解决import vue文件红色波浪线问题 +declare module '*.vue' { + import { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..3b957cf --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Yunzer-Admin + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..605f763 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2391 @@ +{ + "name": "Yunzer-Admin", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "Yunzer-Admin", + "version": "0.0.0", + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@imengyu/vue3-context-menu": "^1.3.3", + "axios": "^1.5.0", + "element-plus": "^2.4.2", + "element-plus-table-dragable": "^1.0.0", + "js-cookie": "^3.0.5", + "nprogress": "^0.2.0", + "pinia": "^2.1.7", + "vue": "^3.3.4", + "vue-router": "^4.2.4" + }, + "devDependencies": { + "@types/node": "^20.9.0", + "@types/nprogress": "^0.2.3", + "@vitejs/plugin-vue": "^4.2.3", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "sass": "^1.69.5", + "typescript": "^5.0.2", + "vite": "^4.4.5", + "vite-plugin-vue-setup-extend": "^0.4.0", + "vue-tsc": "^1.8.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", + "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", + "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", + "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", + "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", + "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.4.tgz", + "integrity": "sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==" + }, + "node_modules/@imengyu/vue3-context-menu": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@imengyu/vue3-context-menu/-/vue3-context-menu-1.3.3.tgz", + "integrity": "sha512-FyST4cyjWMkU7Ays/D45g0UPL8HtR5jtIL8DbN+dYGgFgNEQoqCZuEwm50SEckVztks7dITROHhjWO/LZTP1jA==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + }, + "node_modules/@types/lodash": { + "version": "4.14.198", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", + "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.9", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", + "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/nprogress": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz", + "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==", + "dev": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", + "integrity": "sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.2.tgz", + "integrity": "sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.10", + "@babel/plugin-transform-typescript": "^7.22.10", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.10.1.tgz", + "integrity": "sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.10.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.10.1.tgz", + "integrity": "sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.10.1.tgz", + "integrity": "sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.10.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz", + "integrity": "sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz", + "integrity": "sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "@vue/babel-helper-vue-transform-on": "^1.1.5", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/language-core": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.10.tgz", + "integrity": "sha512-db8PtM4ZZr7SYNH30XpKxUYnUBYaTvcuJ4c2whKK04fuAjbtjAIZ2al5GzGEfUlesmvkpgdbiSviRXUxgD9Omw==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.10.0", + "@volar/source-map": "~1.10.0", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "dependencies": { + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "dependencies": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "dependencies": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "dependencies": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + }, + "peerDependencies": { + "vue": "3.3.4" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "node_modules/@vue/typescript": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.10.tgz", + "integrity": "sha512-vPSpTXMk4chYwvyTGjM891cKgnx2r6vtbdANOp2mRU31f4HYGyLrZBlGgiua7SaO2cLjUg8y91OipJe0t8OFhA==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.10.0", + "@vue/language-core": "1.8.10" + } + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001546", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz", + "integrity": "sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/dayjs": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.544", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.544.tgz", + "integrity": "sha512-54z7squS1FyFRSUqq/knOFSptjjogLZXbKcYk3B0qkE1KZzvqASwRZnY2KzZQJqIYLVD38XZeoiMRflYSwyO4w==", + "dev": true + }, + "node_modules/element-plus": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.4.2.tgz", + "integrity": "sha512-E/HwXX7JF1LPvQSjs0fZ8WblIoc0quoXsRXQZiL7QDq7xJdNGSUaXtdk7xiEv7axPmLfEFtxE5du9fFspDrmJw==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.0.6", + "@floating-ui/dom": "^1.0.1", + "@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" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/element-plus-table-dragable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/element-plus-table-dragable/-/element-plus-table-dragable-1.0.0.tgz", + "integrity": "sha512-NKa95z3wkKv8l4iydQksJh+uGYtbI3ixiUio6tZzmY9XyJZDtgzWHx6kpqRzCWoba7EUoaIhA+Se/QKWKeOhTA==", + "dependencies": { + "sortablejs": "^1.15.0" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", + "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rollup": { + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.1.tgz", + "integrity": "sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/sass": { + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sortablejs": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", + "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vue-setup-extend": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz", + "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==", + "dev": true, + "dependencies": { + "@vue/compiler-sfc": "^3.2.29", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-vue-setup-extend/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.10.tgz", + "integrity": "sha512-ptpTFFDoHQgkWJF7i5iERxooiQzOGtG1uKTfmAUuS3qPuSQGq+Ky/S8BFHhnFGwoOxq/PjmGN2QSZEfg1rtzQA==", + "dev": true, + "dependencies": { + "@vue/language-core": "1.8.10", + "@vue/typescript": "1.8.10", + "semver": "^7.3.8" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c991c75 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "Yunzer-Admin", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@imengyu/vue3-context-menu": "^1.3.3", + "axios": "^1.5.0", + "element-plus": "^2.4.2", + "element-plus-table-dragable": "^1.0.0", + "js-cookie": "^3.0.5", + "nprogress": "^0.2.0", + "pinia": "^2.1.7", + "vue": "^3.3.4", + "vue-router": "^4.2.4" + }, + "devDependencies": { + "@types/node": "^20.9.0", + "@types/nprogress": "^0.2.3", + "@vitejs/plugin-vue": "^4.2.3", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "sass": "^1.69.5", + "typescript": "^5.0.2", + "vite": "^4.4.5", + "vite-plugin-vue-setup-extend": "^0.4.0", + "vue-tsc": "^1.8.5" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..8b88816 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,12 @@ + + + + diff --git a/src/api/system/index.ts b/src/api/system/index.ts new file mode 100644 index 0000000..32338a5 --- /dev/null +++ b/src/api/system/index.ts @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +export default { +//获取菜单管理列表 + getMenuList(data) { + return request({ + url: '/system/getMenuList', + method: 'post', + params: data + }) + }, +} diff --git a/src/api/table/index.ts b/src/api/table/index.ts new file mode 100644 index 0000000..c066198 --- /dev/null +++ b/src/api/table/index.ts @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +export default { +//获取表格数据 + packTableList(data:any) { + return request({ + url: '/table/packTable', + method: 'post', + params: data + }) + }, +} diff --git a/src/api/user/index.ts b/src/api/user/index.ts new file mode 100644 index 0000000..b6b3b62 --- /dev/null +++ b/src/api/user/index.ts @@ -0,0 +1,14 @@ +import request from '@/utils/request' +export function login(data:object) { + return request({ + url: '/system/login', + method: 'post', + data: data + }) +} +export function getIndex() { + return request({ + url: '/system/index', + method: 'post' + }) +} diff --git a/src/assets/background.svg b/src/assets/background.svg new file mode 100644 index 0000000..89c2597 --- /dev/null +++ b/src/assets/background.svg @@ -0,0 +1,69 @@ + + + + Group 21 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/favicon.ico b/src/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b79e35ce8b66b0b8c4b11983d07c7f38c9733fa8 GIT binary patch literal 29329 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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