From 22f77eb29041f8ae8f0b4c2ee451d19fea8c6579 Mon Sep 17 00:00:00 2001 From: Ls <2391972606@qq.com> Date: Mon, 9 Mar 2026 16:31:33 +0800 Subject: [PATCH] first commit --- .gitignore | 21 + .hbuilderx/launch.json | 20 + index.html | 20 + package-lock.json | 13367 ++++++++++++++++ package.json | 80 + shims-uni.d.ts | 10 + src/App.vue | 50 + src/Service/BaseConfig.ts | 9 + src/Service/Nvp/NvpAddressService.ts | 36 + src/Service/Nvp/NvpAgentService.ts | 43 + src/Service/Nvp/NvpApplyService.ts | 156 + src/Service/Nvp/NvpBankService.ts | 50 + src/Service/Nvp/NvpLoginService.ts | 36 + src/Service/Nvp/NvpMachineService.ts | 32 + src/Service/Nvp/NvpMerchService.ts | 106 + src/Service/Nvp/NvpPubService.ts | 43 + src/Service/Nvp/NvpTencentCosService.ts | 22 + src/Service/Nvp/NvpUserService.ts | 43 + src/Service/Nvp/NvpWithService.ts | 22 + src/Service/Service.ts | 320 + src/colorui/animation.css | 184 + src/colorui/components/cu-custom.vue | 65 + src/colorui/icon.css | 1226 ++ src/colorui/main.css | 3912 +++++ src/common/Common.ts | 13 + src/common/Domain/ResultData.ts | 10 + src/common/Unit/HttpRequest.ts | 64 + src/common/Unit/StorageAssist.ts | 14 + src/common/Unit/StoreAssist.ts | 13 + src/common/Unit/StringAssist.ts | 98 + src/common/Unit/UploadAssist.ts | 19 + src/components/ImageCropper.vue | 54 + src/components/liy-select/liy-select.vue | 299 + src/env.d.ts | 8 + src/main.ts | 13 + src/manifest.json | 143 + src/package.json | 16 + src/pages.json | 53 + src/pages/index/index.vue | 29 + src/pages/index/user.vue | 19 + src/shime-uni.d.ts | 6 + src/static/liy-select/images/check_mark.png | Bin 0 -> 34093 bytes src/static/liy-select/images/complete.png | Bin 0 -> 54491 bytes src/static/liy-select/images/loading.png | Bin 0 -> 24454 bytes src/static/liy-select/images/search.png | Bin 0 -> 40266 bytes src/static/liy-select/images/void.png | Bin 0 -> 53985 bytes src/static/tab/01.png | Bin 0 -> 5508 bytes src/static/tab/02.png | Bin 0 -> 5737 bytes src/static/tab/03.png | Bin 0 -> 8650 bytes src/static/tab/04.png | Bin 0 -> 8925 bytes src/static/tab/05.png | Bin 0 -> 6941 bytes src/static/tab/06.png | Bin 0 -> 7169 bytes src/static/tab/07.png | Bin 0 -> 6769 bytes src/static/tab/08.png | Bin 0 -> 6994 bytes src/static/tab/09.png | Bin 0 -> 6045 bytes src/static/tab/10.png | Bin 0 -> 6260 bytes src/types/uview.d.ts | 1 + src/uni.scss | 78 + .../lime-echart/components/l-echart/canvas.js | 372 + .../components/l-echart/l-echart.vue | 517 + .../lime-echart/components/l-echart/utils.js | 74 + .../components/lime-echart/index.vue | 0 .../piaoyi-cityPicker/changelog.md | 22 + .../components/piaoyi-cityPicker/cityData.js | 10661 ++++++++++++ .../piaoyi-cityPicker/piaoyi-cityPicker.vue | 281 + .../piaoyi-cityPicker/package.json | 17 + src/uni_modules/piaoyi-cityPicker/readme.md | 106 + src/uni_modules/qf-image-cropper/changelog.md | 72 + .../qf-image-cropper.render.js | 855 + .../qf-image-cropper/qf-image-cropper.vue | 743 + .../qf-image-cropper/qf-image-cropper.wxs | 727 + src/uni_modules/qf-image-cropper/package.json | 81 + src/uni_modules/qf-image-cropper/readme.md | 97 + tsconfig.json | 13 + unpackage/res/icons/1024x1024.png | Bin 0 -> 24874 bytes unpackage/res/icons/120x120.png | Bin 0 -> 2805 bytes unpackage/res/icons/144x144.png | Bin 0 -> 3376 bytes unpackage/res/icons/152x152.png | Bin 0 -> 3538 bytes unpackage/res/icons/167x167.png | Bin 0 -> 3622 bytes unpackage/res/icons/180x180.png | Bin 0 -> 4094 bytes unpackage/res/icons/192x192.png | Bin 0 -> 4358 bytes unpackage/res/icons/20x20.png | Bin 0 -> 471 bytes unpackage/res/icons/29x29.png | Bin 0 -> 678 bytes unpackage/res/icons/40x40.png | Bin 0 -> 966 bytes unpackage/res/icons/58x58.png | Bin 0 -> 1362 bytes unpackage/res/icons/60x60.png | Bin 0 -> 1433 bytes unpackage/res/icons/72x72.png | Bin 0 -> 1743 bytes unpackage/res/icons/76x76.png | Bin 0 -> 1780 bytes unpackage/res/icons/80x80.png | Bin 0 -> 1856 bytes unpackage/res/icons/87x87.png | Bin 0 -> 2071 bytes unpackage/res/icons/96x96.png | Bin 0 -> 2236 bytes vite.config.ts | 7 + 92 files changed, 35468 insertions(+) create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 shims-uni.d.ts create mode 100644 src/App.vue create mode 100644 src/Service/BaseConfig.ts create mode 100644 src/Service/Nvp/NvpAddressService.ts create mode 100644 src/Service/Nvp/NvpAgentService.ts create mode 100644 src/Service/Nvp/NvpApplyService.ts create mode 100644 src/Service/Nvp/NvpBankService.ts create mode 100644 src/Service/Nvp/NvpLoginService.ts create mode 100644 src/Service/Nvp/NvpMachineService.ts create mode 100644 src/Service/Nvp/NvpMerchService.ts create mode 100644 src/Service/Nvp/NvpPubService.ts create mode 100644 src/Service/Nvp/NvpTencentCosService.ts create mode 100644 src/Service/Nvp/NvpUserService.ts create mode 100644 src/Service/Nvp/NvpWithService.ts create mode 100644 src/Service/Service.ts create mode 100644 src/colorui/animation.css create mode 100644 src/colorui/components/cu-custom.vue create mode 100644 src/colorui/icon.css create mode 100644 src/colorui/main.css create mode 100644 src/common/Common.ts create mode 100644 src/common/Domain/ResultData.ts create mode 100644 src/common/Unit/HttpRequest.ts create mode 100644 src/common/Unit/StorageAssist.ts create mode 100644 src/common/Unit/StoreAssist.ts create mode 100644 src/common/Unit/StringAssist.ts create mode 100644 src/common/Unit/UploadAssist.ts create mode 100644 src/components/ImageCropper.vue create mode 100644 src/components/liy-select/liy-select.vue create mode 100644 src/env.d.ts create mode 100644 src/main.ts create mode 100644 src/manifest.json create mode 100644 src/package.json create mode 100644 src/pages.json create mode 100644 src/pages/index/index.vue create mode 100644 src/pages/index/user.vue create mode 100644 src/shime-uni.d.ts create mode 100644 src/static/liy-select/images/check_mark.png create mode 100644 src/static/liy-select/images/complete.png create mode 100644 src/static/liy-select/images/loading.png create mode 100644 src/static/liy-select/images/search.png create mode 100644 src/static/liy-select/images/void.png create mode 100644 src/static/tab/01.png create mode 100644 src/static/tab/02.png create mode 100644 src/static/tab/03.png create mode 100644 src/static/tab/04.png create mode 100644 src/static/tab/05.png create mode 100644 src/static/tab/06.png create mode 100644 src/static/tab/07.png create mode 100644 src/static/tab/08.png create mode 100644 src/static/tab/09.png create mode 100644 src/static/tab/10.png create mode 100644 src/types/uview.d.ts create mode 100644 src/uni.scss create mode 100644 src/uni_modules/lime-echart/components/l-echart/canvas.js create mode 100644 src/uni_modules/lime-echart/components/l-echart/l-echart.vue create mode 100644 src/uni_modules/lime-echart/components/l-echart/utils.js create mode 100644 src/uni_modules/lime-echart/components/lime-echart/index.vue create mode 100644 src/uni_modules/piaoyi-cityPicker/changelog.md create mode 100644 src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js create mode 100644 src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue create mode 100644 src/uni_modules/piaoyi-cityPicker/package.json create mode 100644 src/uni_modules/piaoyi-cityPicker/readme.md create mode 100644 src/uni_modules/qf-image-cropper/changelog.md create mode 100644 src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.render.js create mode 100644 src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue create mode 100644 src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxs create mode 100644 src/uni_modules/qf-image-cropper/package.json create mode 100644 src/uni_modules/qf-image-cropper/readme.md create mode 100644 tsconfig.json create mode 100644 unpackage/res/icons/1024x1024.png create mode 100644 unpackage/res/icons/120x120.png create mode 100644 unpackage/res/icons/144x144.png create mode 100644 unpackage/res/icons/152x152.png create mode 100644 unpackage/res/icons/167x167.png create mode 100644 unpackage/res/icons/180x180.png create mode 100644 unpackage/res/icons/192x192.png create mode 100644 unpackage/res/icons/20x20.png create mode 100644 unpackage/res/icons/29x29.png create mode 100644 unpackage/res/icons/40x40.png create mode 100644 unpackage/res/icons/58x58.png create mode 100644 unpackage/res/icons/60x60.png create mode 100644 unpackage/res/icons/72x72.png create mode 100644 unpackage/res/icons/76x76.png create mode 100644 unpackage/res/icons/80x80.png create mode 100644 unpackage/res/icons/87x87.png create mode 100644 unpackage/res/icons/96x96.png create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ce6e50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +*.local + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? \ No newline at end of file diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..ee5be77 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,20 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "app-plus" : + { + "launchtype" : "local" + }, + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..f8a54cb --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c9f8b1f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13367 @@ +{ + "name": "uni-preset-vue", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "uni-preset-vue", + "version": "0.0.0", + "dependencies": { + "@climblee/uv-ui": "^1.1.20", + "@dcloudio/uni-app": "3.0.0-4010520240507001", + "@dcloudio/uni-app-plus": "3.0.0-4010520240507001", + "@dcloudio/uni-components": "3.0.0-4010520240507001", + "@dcloudio/uni-h5": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-alipay": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-baidu": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-jd": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-kuaishou": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-lark": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-qq": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-toutiao": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-weixin": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-xhs": "3.0.0-4010520240507001", + "@dcloudio/uni-quickapp-webview": "3.0.0-4010520240507001", + "clipboard": "^2.0.11", + "dayjs": "^1.11.13", + "echarts": "^5.5.1", + "uview-plus": "^3.3.54", + "vue": "^3.4.21", + "vue-i18n": "^9.1.9" + }, + "devDependencies": { + "@dcloudio/types": "^3.4.8", + "@dcloudio/uni-automator": "3.0.0-4010520240507001", + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-stacktracey": "3.0.0-4010520240507001", + "@dcloudio/vite-plugin-uni": "3.0.0-4010520240507001", + "@vue/runtime-core": "^3.4.21", + "@vue/tsconfig": "^0.1.3", + "sass": "1.63.2", + "sass-loader": "10.4.1", + "typescript": "^4.9.4", + "vite": "5.2.8", + "vue-tsc": "^1.0.24" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz", + "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", + "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.8.tgz", + "integrity": "sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.24.8.tgz", + "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.8", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@climblee/uv-ui": { + "version": "1.1.20", + "resolved": "https://registry.npmmirror.com/@climblee/uv-ui/-/uv-ui-1.1.20.tgz", + "integrity": "sha512-jkyesHJsPJkF4Nap9ZmG1/ibKlxXA5M8+ntqKXwwloIsYSYL5SOKb0gyPj17aBOU1PkJpmeiZ8PwnTolhK2/HA==", + "license": "ISC" + }, + "node_modules/@dcloudio/types": { + "version": "3.4.12", + "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.12.tgz", + "integrity": "sha512-xSFDhBCm4bqdRBO9mBj7wySz7fzOv9sMeK9VMI21tHvZbT2bIdGMU5o+kJ/J4H2+N5+7SW2kDY+aIzZs94DAOg==", + "license": "Apache-2.0" + }, + "node_modules/@dcloudio/uni-app": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-4010520240507001.tgz", + "integrity": "sha512-yMTa35qT+GKl/U5wh/8T+70mix1zr7VGXlBEKMSsI5a5C7iEE+8Jj298QbRLimiksvMn01QHAEuMVeoio31buw==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cloud": "3.0.0-4010520240507001", + "@dcloudio/uni-components": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-push": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-stat": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21" + }, + "peerDependencies": { + "@dcloudio/types": "^3.4.8" + } + }, + "node_modules/@dcloudio/uni-app-plus": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-4010520240507001.tgz", + "integrity": "sha512-KrXnFer3l4qsHo8It3rB/Ag9U/h7upCdWkh2go5QA46EJR9bS7ptRHXVNq9NaP48hVl8xKxHINHQdn8uHV6s0A==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-app-uts": "3.0.0-4010520240507001", + "@dcloudio/uni-app-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-app-vue": "3.0.0-4010520240507001", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "licia": "^1.29.0", + "postcss-selector-parser": "^6.0.6" + } + }, + "node_modules/@dcloudio/uni-app-uts": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-4010520240507001.tgz", + "integrity": "sha512-C6XTRYjod20PnMoY3KeHNNmZJRe7QrugRAnlXhizPI37Iwo1c35B3qtuzwXH3Yd3U7EGziqbAgLbcuRSVKqOhg==", + "license": "Apache-2.0", + "dependencies": { + "@babel/parser": "^7.23.9", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-nvue-styler": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@jridgewell/gen-mapping": "^0.3.3", + "@jridgewell/trace-mapping": "^0.3.19", + "@rollup/pluginutils": "^5.0.5", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/consolidate": "^1.0.0", + "@vue/shared": "3.4.21", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "estree-walker": "^2.0.2", + "fs-extra": "^10.0.0", + "magic-string": "^0.30.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2", + "unplugin-auto-import": "^0.16.7" + } + }, + "node_modules/@dcloudio/uni-app-vite": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-4010520240507001.tgz", + "integrity": "sha512-tEYblA4RqybZQn6S2+8HQp/Yl6ZONF0OQIdArpxudIO9qszY/Sti/3NjlA5urukWe33W9mnYU+7R37QrMukHOQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-nvue-styler": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@rollup/pluginutils": "^5.0.5", + "@vitejs/plugin-vue": "^5.0.4", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@dcloudio/uni-app-vue": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-4010520240507001.tgz", + "integrity": "sha512-d+ZiTPk/eLsYraMi8FYKDuas7TVXeEgc6qOWIgJXh3Vf5ooguUe13LKTBvtXgU5d6ezdQ6X7Qri70zkyogRV0g==", + "license": "Apache-2.0" + }, + "node_modules/@dcloudio/uni-automator": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-4010520240507001.tgz", + "integrity": "sha512-I/Ue71jEFcM3PfU80y1KUOL5398AQ5wJcqHqg9RSc3mTavpFLCbXSx7k+Yg7ZvUlhWR+YUUh24VXt5R985VDpw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "address": "^1.1.2", + "cross-env": "^7.0.3", + "debug": "^4.3.3", + "default-gateway": "^6.0.3", + "fs-extra": "^10.0.0", + "jsonc-parser": "^3.2.0", + "licia": "^1.29.0", + "merge": "^2.1.1", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + }, + "peerDependencies": { + "jest": "27.0.4", + "jest-environment-node": "27.5.1" + } + }, + "node_modules/@dcloudio/uni-cli-shared": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-4010520240507001.tgz", + "integrity": "sha512-TB8yf4zAVNY4FWUPt7MRw5p26xmK+QmScVc4m8caRlUG9BQRPG8/ZDgalC5/o6nXhPnm+vj3/jbGYxRCfCL/9A==", + "license": "Apache-2.0", + "dependencies": { + "@ampproject/remapping": "^2.1.2", + "@babel/code-frame": "^7.23.5", + "@babel/core": "^7.23.3", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.20.7", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@intlify/core-base": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9", + "@rollup/pluginutils": "^5.0.5", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21", + "autoprefixer": "^10.4.19", + "base64url": "^3.0.1", + "chokidar": "^3.5.3", + "compare-versions": "^3.6.0", + "debug": "^4.3.3", + "es-module-lexer": "^1.2.1", + "esbuild": "^0.20.1", + "estree-walker": "^2.0.2", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.2.0", + "lines-and-columns": "^2.0.4", + "magic-string": "^0.30.7", + "merge": "^2.1.1", + "mime": "^3.0.0", + "module-alias": "^2.2.2", + "os-locale-s-fix": "^1.0.8-fix-1", + "picocolors": "^1.0.0", + "postcss-import": "^14.0.2", + "postcss-load-config": "^3.1.1", + "postcss-modules": "^4.3.0", + "postcss-selector-parser": "^6.0.6", + "resolve": "^1.22.1", + "source-map-js": "^1.0.2", + "tapable": "^2.2.0", + "unplugin-auto-import": "^0.16.7", + "xregexp": "3.1.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/@dcloudio/uni-cloud": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-4010520240507001.tgz", + "integrity": "sha512-STJQOhi6XNCob4msDrQvFrVmjPGIhDvxnHa2X7OLRqGrNhOkAe5Rcnsg2THA/CPAnqfT7xIYARvr9Jqb1z+8Mg==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21", + "fast-glob": "^3.2.11" + } + }, + "node_modules/@dcloudio/uni-components": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-4010520240507001.tgz", + "integrity": "sha512-MTy3Fe0d/AAsy8TN8adAEFpDu/805l5MSV1FBckzhiF6QoCdl3ammAe3Z2uxrR6rFHMGnKfgfgjhYvyK8BAD7Q==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cloud": "3.0.0-4010520240507001", + "@dcloudio/uni-h5": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001" + } + }, + "node_modules/@dcloudio/uni-h5": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-4010520240507001.tgz", + "integrity": "sha512-dk1wIlPBtt8wwDkez/mD+JpTbFviANbf4V4IjSndYG5voqkfcCc4D1giKyL7JTuv2xFaDAYp8/UqPRrSV47qiQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-h5-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-h5-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21", + "debug": "^4.3.3", + "localstorage-polyfill": "^1.0.1", + "postcss-selector-parser": "^6.0.6", + "safe-area-insets": "^1.4.1", + "vue-router": "^4.3.0", + "xmlhttprequest": "^1.8.0" + } + }, + "node_modules/@dcloudio/uni-h5-vite": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-4010520240507001.tgz", + "integrity": "sha512-HWAr97tS2kreYkAPuaHk59Doa80Dgg8RV0lZNmdWfcnXsip+MCZ+Zs5GDfty5osy2dAtSWqbzZ2C9HLS8O64uw==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@rollup/pluginutils": "^5.0.5", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21", + "debug": "^4.3.3", + "fs-extra": "^10.0.0", + "mime": "^3.0.0", + "module-alias": "^2.2.2" + } + }, + "node_modules/@dcloudio/uni-h5-vue": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-4010520240507001.tgz", + "integrity": "sha512-HuhUxeKkbNZvqr5uLH2zM328qgo3W2l7Lv1K1GKMUhDjn8YWjaKrQU5taPcBKNQPY15Do3z+5Y2EKPkyVthGkg==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/server-renderer": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-i18n": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-4010520240507001.tgz", + "integrity": "sha512-yaNbb8k8P+u/etevgtL+h5wAsR9SIknc37kRcfiYDyyk0UMOeOQ2vTFA32j1eB/WqHFoHRz/38QUjKk5sFLlzA==", + "license": "Apache-2.0" + }, + "node_modules/@dcloudio/uni-mp-alipay": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-4010520240507001.tgz", + "integrity": "sha512-YJ0gYi7/16PE2wJVAuzsc3dv9GXSaKrRAFZZNLyEu9qkVDfEiv14v/eV+EpD0J9112PH1ysbDSc9hRuL5rzVqw==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-mp-baidu": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-4010520240507001.tgz", + "integrity": "sha512-NoEfijJoh1dZ3eqEuFTa8PAEanLcS0Dn1mjismauykUrgDPdjXCtmqh3+34NDmBuOM5xZKFlKof3UjLgBpMcHQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-weixin": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "node_modules/@dcloudio/uni-mp-compiler": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-4010520240507001.tgz", + "integrity": "sha512-9gjb1zY05BhHnZXwwyPdAYlwztBJS/wEefu+SCR3NzCPUXi8tGX5agjlfe4XwlHQefA6vM8xGYgM2sEgtQn0Lg==", + "license": "Apache-2.0", + "dependencies": { + "@babel/generator": "^7.20.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.20.7", + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/shared": "3.4.21", + "estree-walker": "^2.0.2" + } + }, + "node_modules/@dcloudio/uni-mp-jd": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-4010520240507001.tgz", + "integrity": "sha512-Ivxg0ycSNWrjaMCpaANQ+NVPxlNGvYOYXjmDu6dlxXiWD22J6AdreTN/1kw4y77Txf7RDYp7SW8n/kAPwBJU9g==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-mp-kuaishou": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-4010520240507001.tgz", + "integrity": "sha512-uutJyoa8aXH1Y1fzZ6HALE479DNwdrCYzMbpqfbkCQZzdvUuADS90ZAV/6hZuhNRf2K6jKYRFgZOwJWpEq/aLQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-weixin": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-mp-lark": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-4010520240507001.tgz", + "integrity": "sha512-1z+lov0uvFZf+dfiA5VdPiQkqAEDpeXLeCw1vm0tCBy1tAFKkxZq5nQV2U6moPtE9WeCwf0TyohqRynCAaHqQg==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-toutiao": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-mp-qq": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-4010520240507001.tgz", + "integrity": "sha512-9VXNFbihJfhde6imGls8fxB6f+xjmcTGxcOYiShQfnRRSlgR3Mawa1eqV48Jw/2PAZYTJXcr0g3A8EsjOzNcHA==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21", + "fs-extra": "^10.0.0" + } + }, + "node_modules/@dcloudio/uni-mp-toutiao": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-4010520240507001.tgz", + "integrity": "sha512-aDqDzW0pPcC3DLScdJVAsGPM6TSIirLOYcfrvVmiHDRSohZ9GEwnNner8AmIRYrw0UhU08CHzgNxSjDIkI/clQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-mp-vite": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-4010520240507001.tgz", + "integrity": "sha512-rOkcYjxODSb7E2DAOTsC4B0aS9mXyul/P0cpbB4luVNdBO5Fm/IkbRCqQE3eQAK16ebi/GcKReD6yXpzSwNTPw==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-i18n": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/compiler-sfc": "3.4.21", + "@vue/shared": "3.4.21", + "debug": "^4.3.3" + } + }, + "node_modules/@dcloudio/uni-mp-vue": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-4010520240507001.tgz", + "integrity": "sha512-nZRlp8YPAP3NeTziH9NNZpAuMIrs/F7LlCzZzjqwNfFzTei/t8rjtF2busIlBTLlZZ9PqRG/0DE/lkApEuB94g==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-mp-weixin": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-4010520240507001.tgz", + "integrity": "sha512-shRLCP6MCzDpI0rRh/4UL8XpP87gAAt/g47zMBrP2zgqqgVR3/AE0PQxIG5t3FtaSpc9DxbBm9L5JlTvwJmwrA==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21", + "jimp": "^0.10.1", + "licia": "^1.29.0", + "qrcode-reader": "^1.0.4", + "qrcode-terminal": "^0.12.0", + "ws": "^8.4.2" + } + }, + "node_modules/@dcloudio/uni-mp-xhs": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-xhs/-/uni-mp-xhs-3.0.0-4010520240507001.tgz", + "integrity": "sha512-sW4FsMtgXqfJzQBGaz6tkGlmsGLLqPeBso6ESs7co6zYoKj6i9GeRWirbe/aE7Dwbhu/tx2Uj0yKKRPd/FGOiQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-compiler": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-nvue-styler": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-4010520240507001.tgz", + "integrity": "sha512-d3H5Pw9EPwPjvglVwaLFkfVA+vN2IWAWhRyiN0oYn4GoXmTA8GET1GH86zJdUf+QOUaBW58Yt4yRV/EPm65qhA==", + "license": "Apache-2.0", + "dependencies": { + "parse-css-font": "^4.0.0", + "postcss": "^8.4.35" + } + }, + "node_modules/@dcloudio/uni-push": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-4010520240507001.tgz", + "integrity": "sha512-1Fc7PdD9weLOmYZcaGEGkMQ6xTl9MlOnvmTxDBszNEFHHnA+CTo/+1gEBeWjNQnueOleZZx4CLjn/5ppFZglog==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001" + } + }, + "node_modules/@dcloudio/uni-quickapp-webview": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-4010520240507001.tgz", + "integrity": "sha512-HS1chfTv8Qr+nrggroJfbLMEoSYvcMLfYy6J68YD5WKjPgeg/QOHToqWSVduQblEgoeIqBgo+8GOoiSa9D48Aw==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vite": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-vue": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-shared": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-4010520240507001.tgz", + "integrity": "sha512-cfEN8lQJetitXQ3tywHCxDjY6PsSuefYWQMGCEoctP0xfFcuwZRaa4f2MbG+VgTFV4hZTJAi89dVVnhqrynz3A==", + "license": "Apache-2.0", + "dependencies": { + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-stacktracey": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-4010520240507001.tgz", + "integrity": "sha512-Xpnng1NQ7vh6e/pN7fPdzr0OtiY3cznAksJT9AULlhGr5l8M1e1DpeoUNCFaLHcyHcfRVD77ksxVLOkiArmQOA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@dcloudio/uni-stat": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-4010520240507001.tgz", + "integrity": "sha512-XcFc6CaE37GRljIoejkzbgIPkM1Gy9fqRvSUx01QJdpDcVAzBCjb5n39WE6DTJn85fglP/ShuusFueFodasqkQ==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "debug": "^4.3.3" + } + }, + "node_modules/@dcloudio/vite-plugin-uni": { + "version": "3.0.0-4010520240507001", + "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-4010520240507001.tgz", + "integrity": "sha512-7fsPM3iUo6+TLIlgrXHYKBHpTNfO2VVqhTVZ/A3yF1ddsGUQw8ekTgqpFbHJJ1kWl3CbwBROooq8yMGbNybZBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.23.3", + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-shared": "3.0.0-4010520240507001", + "@rollup/pluginutils": "^5.0.5", + "@vitejs/plugin-legacy": "^5.3.2", + "@vitejs/plugin-vue": "^5.0.4", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/shared": "3.4.21", + "cac": "6.7.9", + "debug": "^4.3.3", + "estree-walker": "^2.0.2", + "express": "^4.17.1", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.0", + "hash-sum": "^2.0.0", + "jsonc-parser": "^3.2.0", + "magic-string": "^0.30.7", + "picocolors": "^1.0.0", + "terser": "^5.4.0", + "unplugin-auto-import": "^0.16.7" + }, + "bin": { + "uni": "bin/uni.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^5.2.8" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@intlify/core-base": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz", + "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==", + "license": "MIT", + "dependencies": { + "@intlify/devtools-if": "9.1.9", + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz", + "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz", + "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==", + "license": "MIT", + "dependencies": { + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/message-resolver": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz", + "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/runtime": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz", + "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.1.9", + "@intlify/message-resolver": "9.1.9", + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/shared": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz", + "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.1.9", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz", + "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==", + "license": "MIT", + "dependencies": { + "@intlify/message-resolver": "9.1.9", + "@intlify/runtime": "9.1.9", + "@intlify/shared": "9.1.9" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz", + "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz", + "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/custom": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz", + "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "node_modules/@jimp/gif": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz", + "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz", + "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz", + "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz", + "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz", + "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz", + "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz", + "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz", + "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz", + "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz", + "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz", + "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz", + "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz", + "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz", + "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz", + "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz", + "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz", + "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz", + "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz", + "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz", + "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz", + "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-shadow": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz", + "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz", + "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz", + "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.10.3", + "@jimp/plugin-blur": "^0.10.3", + "@jimp/plugin-circle": "^0.10.3", + "@jimp/plugin-color": "^0.10.3", + "@jimp/plugin-contain": "^0.10.3", + "@jimp/plugin-cover": "^0.10.3", + "@jimp/plugin-crop": "^0.10.3", + "@jimp/plugin-displace": "^0.10.3", + "@jimp/plugin-dither": "^0.10.3", + "@jimp/plugin-fisheye": "^0.10.3", + "@jimp/plugin-flip": "^0.10.3", + "@jimp/plugin-gaussian": "^0.10.3", + "@jimp/plugin-invert": "^0.10.3", + "@jimp/plugin-mask": "^0.10.3", + "@jimp/plugin-normalize": "^0.10.3", + "@jimp/plugin-print": "^0.10.3", + "@jimp/plugin-resize": "^0.10.3", + "@jimp/plugin-rotate": "^0.10.3", + "@jimp/plugin-scale": "^0.10.3", + "@jimp/plugin-shadow": "^0.10.3", + "@jimp/plugin-threshold": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz", + "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz", + "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz", + "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.10.3", + "@jimp/gif": "^0.10.3", + "@jimp/jpeg": "^0.10.3", + "@jimp/png": "^0.10.3", + "@jimp/tiff": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz", + "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/@jimp/utils/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", + "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", + "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", + "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", + "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", + "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", + "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", + "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", + "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", + "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", + "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", + "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", + "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", + "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", + "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", + "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", + "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.14.11", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@vitejs/plugin-legacy": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-5.4.1.tgz", + "integrity": "sha512-kee0l7dVevCNs1l3u2PnihVunvQ0WTJL2UJ/siQGD3Iht546mR9NO16tCv32uCP6lcGO1QDLqlPqInJtV1FE7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.6", + "@babel/preset-env": "^7.24.6", + "browserslist": "^4.23.0", + "browserslist-to-esbuild": "^2.1.1", + "core-js": "^3.37.1", + "magic-string": "^0.30.10", + "regenerator-runtime": "^0.14.1", + "systemjs": "^6.15.1" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "peerDependencies": { + "terser": "^5.4.0", + "vite": "^5.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.5", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", + "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.21", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", + "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", + "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.7", + "postcss": "^8.4.35", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", + "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/consolidate": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@vue/consolidate/-/consolidate-1.0.0.tgz", + "integrity": "sha512-oTyUE+QHIzLw2PpV14GD/c7EohDyP64xCniWTcqcEmTd699eFqTIwOmtDYjcO1j3QgdXoJEoWv1/cCdLrRoOfg==", + "license": "MIT", + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.33", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.33.tgz", + "integrity": "sha512-B24QIelahDbyHipBgbUItQblbd4w5HpG3KccL+YkGyo3maXyS253FzcTR3pSz739OTphmzlxP7JxEMWBpewilA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.4.33" + } + }, + "node_modules/@vue/reactivity/node_modules/@vue/shared": { + "version": "3.4.33", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.33.tgz", + "integrity": "sha512-aoRY0jQk3A/cuvdkodTrM4NMfxco8n55eG4H7ML/CRy7OryHfiqvug4xrCBBMbbN+dvXAetDDwZW9DXWWjBntA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.33", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.33.tgz", + "integrity": "sha512-6wavthExzT4iAxpe8q37/rDmf44nyOJGISJPxCi9YsQO+8w9v0gLCFLfH5TzD1V1AYrTAdiF4Y1cgUmP68jP6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.4.33", + "@vue/shared": "3.4.33" + } + }, + "node_modules/@vue/runtime-core/node_modules/@vue/shared": { + "version": "3.4.33", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.33.tgz", + "integrity": "sha512-aoRY0jQk3A/cuvdkodTrM4NMfxco8n55eG4H7ML/CRy7OryHfiqvug4xrCBBMbbN+dvXAetDDwZW9DXWWjBntA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", + "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", + "license": "MIT", + "dependencies": { + "@vue/runtime-core": "3.4.21", + "@vue/shared": "3.4.21", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/runtime-dom/node_modules/@vue/reactivity": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.21.tgz", + "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/runtime-dom/node_modules/@vue/runtime-core": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.21.tgz", + "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.21.tgz", + "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21" + }, + "peerDependencies": { + "vue": "3.4.21" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.21.tgz", + "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "peer": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "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.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserslist-to-esbuild": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz", + "integrity": "sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "browserslist-to-esbuild": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "browserslist": "*" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.9", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz", + "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001688", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz", + "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==", + "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/centra": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/centra/-/centra-2.7.0.tgz", + "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "license": "MIT" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==", + "license": "MIT" + }, + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==", + "license": "MIT" + }, + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==", + "license": "MIT" + }, + "node_modules/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==", + "license": "MIT" + }, + "node_modules/css-list-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz", + "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==", + "license": "MIT" + }, + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==", + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/echarts": { + "version": "5.5.1", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz", + "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.73", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz", + "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "license": "MIT", + "dependencies": { + "loader-utils": "^3.2.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "peer": true + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "license": "MIT" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "license": "ISC" + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz", + "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sindresorhus/invert-kv?sponsor=1" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.0.4", + "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/core": "^27.0.4", + "import-local": "^3.0.2", + "jest-cli": "^27.0.4" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jimp": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz", + "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.10.3", + "@jimp/plugins": "^0.10.3", + "@jimp/types": "^0.10.3", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/jimp/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==", + "license": "BSD-3-Clause" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lcid": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz", + "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", + "license": "MIT", + "dependencies": { + "invert-kv": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/licia": { + "version": "1.41.0", + "resolved": "https://registry.npmmirror.com/licia/-/licia-1.41.0.tgz", + "integrity": "sha512-ByZNnAcROO2FJyL2UU0uERC/boE14UCPNYixs7B5PI8kcPOPCgsI0iLjkfhQgiI5M5fNp6TOvbr87EPBR7lw7Q==", + "license": "MIT" + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/load-bmfont": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.2.tgz", + "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", + "license": "MIT", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^3.7.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-bmfont/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-bmfont/node_modules/phin": { + "version": "3.7.1", + "resolved": "https://registry.npmmirror.com/phin/-/phin-3.7.1.tgz", + "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", + "license": "MIT", + "dependencies": { + "centra": "^2.7.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/localstorage-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz", + "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmmirror.com/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/module-alias": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.12.tgz", + "integrity": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-locale-s-fix": { + "version": "1.0.8-fix-1", + "resolved": "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz", + "integrity": "sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==", + "license": "MIT", + "dependencies": { + "lcid": "^3.0.0" + }, + "engines": { + "node": ">=10", + "yarn": "^1.22.4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "license": "MIT", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "node_modules/parse-css-font": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz", + "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==", + "license": "MIT", + "dependencies": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-list-helpers": "^2.0.0", + "css-system-font-keywords": "^1.0.0", + "unquote": "^1.1.1" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "license": "ISC", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", + "license": "MIT", + "dependencies": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode-reader": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz", + "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==", + "license": "Apache-2.0" + }, + "node_modules/qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.19.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.19.0.tgz", + "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.0", + "@rollup/rollup-android-arm64": "4.19.0", + "@rollup/rollup-darwin-arm64": "4.19.0", + "@rollup/rollup-darwin-x64": "4.19.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", + "@rollup/rollup-linux-arm-musleabihf": "4.19.0", + "@rollup/rollup-linux-arm64-gnu": "4.19.0", + "@rollup/rollup-linux-arm64-musl": "4.19.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", + "@rollup/rollup-linux-riscv64-gnu": "4.19.0", + "@rollup/rollup-linux-s390x-gnu": "4.19.0", + "@rollup/rollup-linux-x64-gnu": "4.19.0", + "@rollup/rollup-linux-x64-musl": "4.19.0", + "@rollup/rollup-win32-arm64-msvc": "4.19.0", + "@rollup/rollup-win32-ia32-msvc": "4.19.0", + "@rollup/rollup-win32-x64-msvc": "4.19.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-area-insets": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz", + "integrity": "sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ==", + "license": "ISC" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.63.2", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.63.2.tgz", + "integrity": "sha512-u56TU0AIFqMtauKl/OJ1AeFsXqRHkgO7nCWmHaDwfxDo9GUMSqBA4NEh6GMuh1CYVM7zuROYtZrHzPc2ixK+ww==", + "devOptional": 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/sass-loader": { + "version": "10.4.1", + "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-10.4.1.tgz", + "integrity": "sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "sass": "^1.3.0", + "webpack": "^4.36.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/sass-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "license": "CC0-1.0" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/systemjs": { + "version": "6.15.1", + "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.15.1.tgz", + "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.31.3", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", + "devOptional": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", + "license": "MIT" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true, + "license": "MIT", + "peer": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unimport": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.9.0.tgz", + "integrity": "sha512-H2ftTISja1BonUVdOKRos6HC6dqYDR40dQTZY3zIDJ/5/z4ihncuL0LqLvtxYqUDMib41eAtunQUhXIWTCZ8rA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "acorn": "^8.12.1", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.10", + "mlly": "^1.7.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.3", + "scule": "^1.3.0", + "strip-literal": "^2.1.0", + "unplugin": "^1.11.0" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.11.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.11.0.tgz", + "integrity": "sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "chokidar": "^3.6.0", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.16.7", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.7.tgz", + "integrity": "sha512-w7XmnRlchq6YUFJVFGSvG1T/6j8GrdYN6Em9Wf0Ye+HXgD/22kont+WnuCAA0UaUoxtuvRR1u/mXKy63g/hfqQ==", + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.6", + "@rollup/pluginutils": "^5.0.5", + "fast-glob": "^3.3.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "minimatch": "^9.0.3", + "unimport": "^3.4.0", + "unplugin": "^1.5.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-auto-import/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "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.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uview-plus": { + "version": "3.3.54", + "resolved": "https://registry.npmmirror.com/uview-plus/-/uview-plus-3.3.54.tgz", + "integrity": "sha512-c/KcwTkbJed6ZZqxh7mreDFjtkq5ebNkMHsvgFn53xKVEbjWuGJ/zz4jOXWoO+n0r5hxH1LzrDXXDDiBDvqORA==", + "dependencies": { + "clipboard": "^2.0.11", + "dayjs": "^1.11.3" + }, + "engines": { + "HBuilderX": "^3.1.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.2.8", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.2.8.tgz", + "integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.21.tgz", + "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/runtime-dom": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/vue-router": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.0.tgz", + "integrity": "sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.97.1", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "peer": true + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "license": "MIT", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", + "license": "MIT" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xregexp": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz", + "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zrender": { + "version": "5.6.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz", + "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..24f3abe --- /dev/null +++ b/package.json @@ -0,0 +1,80 @@ +{ + "name": "uni-preset-vue", + "version": "0.0.0", + "scripts": { + "dev:app": "uni -p app", + "dev:app-android": "uni -p app-android", + "dev:app-ios": "uni -p app-ios", + "dev:custom": "uni -p", + "dev:h5": "uni", + "dev:h5:ssr": "uni --ssr", + "dev:mp-alipay": "uni -p mp-alipay", + "dev:mp-baidu": "uni -p mp-baidu", + "dev:mp-jd": "uni -p mp-jd", + "dev:mp-kuaishou": "uni -p mp-kuaishou", + "dev:mp-lark": "uni -p mp-lark", + "dev:mp-qq": "uni -p mp-qq", + "dev:mp-toutiao": "uni -p mp-toutiao", + "dev:mp-weixin": "uni -p mp-weixin", + "dev:mp-xhs": "uni -p mp-xhs", + "dev:quickapp-webview": "uni -p quickapp-webview", + "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei", + "dev:quickapp-webview-union": "uni -p quickapp-webview-union", + "build:app": "uni build -p app", + "build:app-android": "uni build -p app-android", + "build:app-ios": "uni build -p app-ios", + "build:custom": "uni build -p", + "build:h5": "uni build", + "build:h5:ssr": "uni build --ssr", + "build:mp-alipay": "uni build -p mp-alipay", + "build:mp-baidu": "uni build -p mp-baidu", + "build:mp-jd": "uni build -p mp-jd", + "build:mp-kuaishou": "uni build -p mp-kuaishou", + "build:mp-lark": "uni build -p mp-lark", + "build:mp-qq": "uni build -p mp-qq", + "build:mp-toutiao": "uni build -p mp-toutiao", + "build:mp-weixin": "uni build -p mp-weixin", + "build:mp-xhs": "uni build -p mp-xhs", + "build:quickapp-webview": "uni build -p quickapp-webview", + "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei", + "build:quickapp-webview-union": "uni build -p quickapp-webview-union", + "type-check": "vue-tsc --noEmit" + }, + "dependencies": { + "@climblee/uv-ui": "^1.1.20", + "@dcloudio/uni-app": "3.0.0-4010520240507001", + "@dcloudio/uni-app-plus": "3.0.0-4010520240507001", + "@dcloudio/uni-components": "3.0.0-4010520240507001", + "@dcloudio/uni-h5": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-alipay": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-baidu": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-jd": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-kuaishou": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-lark": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-qq": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-toutiao": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-weixin": "3.0.0-4010520240507001", + "@dcloudio/uni-mp-xhs": "3.0.0-4010520240507001", + "@dcloudio/uni-quickapp-webview": "3.0.0-4010520240507001", + "clipboard": "^2.0.11", + "dayjs": "^1.11.13", + "echarts": "^5.5.1", + "uview-plus": "^3.3.54", + "vue": "^3.4.21", + "vue-i18n": "^9.1.9" + }, + "devDependencies": { + "@dcloudio/types": "^3.4.8", + "@dcloudio/uni-automator": "3.0.0-4010520240507001", + "@dcloudio/uni-cli-shared": "3.0.0-4010520240507001", + "@dcloudio/uni-stacktracey": "3.0.0-4010520240507001", + "@dcloudio/vite-plugin-uni": "3.0.0-4010520240507001", + "@vue/runtime-core": "^3.4.21", + "@vue/tsconfig": "^0.1.3", + "sass": "1.63.2", + "sass-loader": "10.4.1", + "typescript": "^4.9.4", + "vite": "5.2.8", + "vue-tsc": "^1.0.24" + } +} diff --git a/shims-uni.d.ts b/shims-uni.d.ts new file mode 100644 index 0000000..ed4adcf --- /dev/null +++ b/shims-uni.d.ts @@ -0,0 +1,10 @@ +/// +import 'vue' + +declare module '@vue/runtime-core' { + type Hooks = App.AppInstance & Page.PageInstance; + + interface ComponentCustomOptions extends Hooks { + + } +} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..0dd0cb3 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,50 @@ + + \ No newline at end of file diff --git a/src/Service/BaseConfig.ts b/src/Service/BaseConfig.ts new file mode 100644 index 0000000..2140936 --- /dev/null +++ b/src/Service/BaseConfig.ts @@ -0,0 +1,9 @@ +export class BaseConfig { + // protected static servesUrl: string = "http://192.168.0.190:8806";//线下 + + protected static servesUrl: string = "http://vp.xypays.cn"; + protected static imgUrl: string = "http://vp.cloud.xypays.cn"; + protected static mediaUrl: string = "http://byc1.xypays.cn/"; + protected static uploadUrl: string = "/TencentCos/GetUpLoadInfo"; + protected static payuploadUrl: string = "http://pay.xypays.cn"; +} \ No newline at end of file diff --git a/src/Service/Nvp/NvpAddressService.ts b/src/Service/Nvp/NvpAddressService.ts new file mode 100644 index 0000000..0d128a3 --- /dev/null +++ b/src/Service/Nvp/NvpAddressService.ts @@ -0,0 +1,36 @@ +import { Service } from '@/Service/Service'; +/*****登录接口*****/ +class NvpAddressService { + private static GetAddressListPath: string = '/Address/GetAddressList'; + /*****收货地址*****/ + static GetAddressList(page: number) { + var result = Service.Request(this.GetAddressListPath, "GET", { page }); + return result; + } + + private static DelUserAddressPath: string = '/Address/DelUserAddress'; + /*****删除地址*****/ + static DelUserAddress(uaId: string) { + var result = Service.Request(this.DelUserAddressPath, "POST", { uaId }); + return result; + } + + private static AddUserAddressPath: string = '/Address/AddUserAddress'; + /*****添加地址*****/ + static AddUserAddress(uaId: string, name: string, phone: string, province: string, city: string, county: string, address: string, isDefault: number) { + var result = Service.Request(this.AddUserAddressPath, "POST", { uaId, name, phone, province, city, county, address, isDefault }); + return result; + } + + private static UpdateUserAddressPath: string = '/Address/UpdateUserAddress'; + /*****修改默认地址*****/ + static UpdateUserAddress(uaId: string) { + var result = Service.Request(this.UpdateUserAddressPath, "POST", { uaId }); + return result; + } + +} +export { + Service, + NvpAddressService +} diff --git a/src/Service/Nvp/NvpAgentService.ts b/src/Service/Nvp/NvpAgentService.ts new file mode 100644 index 0000000..0c8e719 --- /dev/null +++ b/src/Service/Nvp/NvpAgentService.ts @@ -0,0 +1,43 @@ +import { Service } from '@/Service/Service'; +/*****代理端接口*****/ +class NvpAgentService { + private static LoginPath: string = '/Agent/Login'; + /*****登录接口*****/ + static Login(name: string, pwd: string) { + var result = Service.Request(this.LoginPath, "POST", { name, pwd }); + return result; + } + + private static GetAgentAccInfoPath: string = '/Agent/GetAgentAccInfo'; + /*****账户接口*****/ + static GetAgentAccInfo() { + var result = Service.Request(this.GetAgentAccInfoPath, "GET", ""); + return result; + } + + private static GetAgentAccLogPath: string = '/Agent/GetAgentAccLog'; + /*****账户记录*****/ + static GetAgentAccLog(code: string, page: number) { + var result = Service.Request(this.GetAgentAccLogPath, "GET", { code, page }); + return result; + } + + private static GetAgentMerchPath: string = '/Agent/GetAgentMerch'; + /*****获取代理开通商家*****/ + static GetAgentMerch(type: number, page: number) { + var result = Service.Request(this.GetAgentMerchPath, "GET", { type, page }); + return result; + } + + private static GetAgentHomePath: string = '/Agent/GetAgentHome'; + /*****代理主页*****/ + static GetAgentHome() { + var result = Service.Request(this.GetAgentHomePath, "GET", { }); + return result; + } + +} +export { + Service, + NvpAgentService +} diff --git a/src/Service/Nvp/NvpApplyService.ts b/src/Service/Nvp/NvpApplyService.ts new file mode 100644 index 0000000..9716c2d --- /dev/null +++ b/src/Service/Nvp/NvpApplyService.ts @@ -0,0 +1,156 @@ +import { Service } from '@/Service/Service'; +/*****用户接口*****/ +class NvpApplyService { + // private static WithDrawPath: string = '/With/WithDraw'; + // /*****佣金提现*****/ + // static WithDraw(money: number, name: string, account: string) { + // var result = Service.Request(this.WithDrawPath, "POST", { money, name, account }); + // return result; + // } + + private static GetSiteMccCodeListPath: string = '/Apply/GetSiteMccCodeList'; + /*****获取mcc列表*****/ + static GetSiteMccCodeList(mercType:string, mchType: string) { + var result = Service.Request(this.GetSiteMccCodeListPath, "GET", {mercType, mchType }); + return result; + } + + + + + + private static GetBankTypeListPath: string = '/Apply/GetBankTypeList'; + /*****获取银行列表*****/ + static GetBankTypeList(name:string) { + var result = Service.Request(this.GetBankTypeListPath, "GET", {name}); + return result; + } + + + private static GetAreaListPath: string = '/Apply/GetAreaList'; + /*****获取银行地区列表*****/ + static GetAreaList(areaCode:string) { + var result = Service.Request(this.GetAreaListPath, "GET", { areaCode}); + return result; + } + + + + private static GetBankCodeListPath: string = '/Apply/GetBankCodeList'; + /*****获取银行代码列表*****/ + static GetBankCodeList(bankType:string,cityCode:string,name:string) { + var result = Service.Request(this.GetBankCodeListPath, "GET", {bankType,cityCode,name}); + return result; + } + + + private static SendApplyMerchPath: string = '/Apply/SendApplyMerch'; + /*****进价提交*****/ + static SendApplyMerch(para:any) { + var result = Service.Request(this.SendApplyMerchPath, "POST", para); + return result; + } + + private static GetAgentMerchLogPath: string = '/Apply/GetAgentMerchLog'; + /*****获取待审核*****/ + static GetAgentMerchLog() { + var result = Service.Request(this.GetAgentMerchLogPath, "GET", {}); + return result; + } + + + + private static AuditApplyPath: string = '/Apply/AuditApply'; + /*****确认资料*****/ + static AuditApply(outId:string) { + var result = Service.Request(this.AuditApplyPath, "POST", {outId}); + return result; + } + + private static SetPayFeePath: string = '/Apply/SetPayFee'; + /*****确认资料*****/ + static SetPayFee(outId:string) { + var result = Service.Request(this.SetPayFeePath, "POST", {outId}); + return result; + } + + + private static GetAssortListPath: string = '/Apply/GetAssortList'; + /*****获取v派分类*****/ + static GetAssortList(code:string) { + var result = Service.Request(this.GetAssortListPath, "GET", {code,parent:'0'}); + return result; + } + + + private static GetAgentMerchPath: string = '/Agent/GetAgentMerch'; + /*****获取已开通商家*****/ + static GetAgentMerch(type:number,page:number) { + var result = Service.Request(this.GetAgentMerchPath, "GET", {type,page}); + return result; + } + + + private static GetAppMerchInfoPath: string = '/Apply/GetAppMerchInfo'; + /*****获取银盛已填写信息*****/ + static GetAppMerchInfo(outId:string) { + var result = Service.Request(this.GetAppMerchInfoPath, "GET", {outId}); + return result; + } + + + private static UpdateMerchPath: string = '/Apply/UpdateMerch'; + /*****修改银盛信息*****/ + static UpdateMerch(obj:any) { + var result = Service.Request(this.UpdateMerchPath, "POST", obj); + return result; + } + + + private static UploadImgPath: string = '/Apply/UploadImg'; + /*****修改银盛图片*****/ + static UploadImg(outId:string,picType:string,img:string) { + var result = Service.Request(this.UploadImgPath, "POST", {outId,picType,img}); + return result; + } + + + private static GetAgentApplyPath: string = '/Apply/GetAgentApply'; + /*****获取添加的商家*****/ + static GetAgentApply(serch:string,page:number) { + var result = Service.Request(this.GetAgentApplyPath, "GET", {serch,page}); + return result; + } + + private static GetCategoryPath: string = '/Apply/GetCategory'; + /*****获取商家类型*****/ + static GetCategory() { + var result = Service.Request(this.GetCategoryPath, "GET", {}); + return result; + } + + + private static AddMerchInfoPath: string = '/Apply/AddMerchInfo'; + /*****添加商户*****/ + static AddMerchInfo(obj:any) { + var result = Service.Request(this.AddMerchInfoPath, "POST", obj); + return result; + } + + + private static BandAppIdPath: string = '/Agent/BandAppId'; + /*****绑定appid*****/ + static BandAppId(merchId:string) { + var result = Service.Request(this.BandAppIdPath, "POST", {merchId}); + return result; + } + + + + + +} +export { + Service, + NvpApplyService +} diff --git a/src/Service/Nvp/NvpBankService.ts b/src/Service/Nvp/NvpBankService.ts new file mode 100644 index 0000000..f07227e --- /dev/null +++ b/src/Service/Nvp/NvpBankService.ts @@ -0,0 +1,50 @@ +import { Service } from '@/Service/Service'; +/*****登录接口*****/ +class NvpBankService { + private static GetPageBankListPath: string = '/Bank/GetPageBankList'; + /*****用户银行卡列表*****/ + static GetPageBankList(page: number) { + var result = Service.Request(this.GetPageBankListPath, "GET", { page }); + return result; + } + + private static GetBankListPath: string = '/Bank/GetBankList'; + /*****用户银行卡列表*****/ + static GetBankList() { + var result = Service.Request(this.GetBankListPath, "GET", ""); + return result; + } + + private static GetUnitBankListPath: string = '/Bank/GetUnitBankList'; + /*****银行卡列表*****/ + static GetUnitBankList() { + var result = Service.Request(this.GetUnitBankListPath, "GET", ""); + return result; + } + + private static AddUserBankPath: string = '/Bank/AddUserBank'; + /*****添加银行卡*****/ + static AddUserBank(account: string, bank: string, name: string) { + var result = Service.Request(this.AddUserBankPath, "POST", { account, bank, name }); + return result; + } + + private static UpdateBankPath: string = '/Bank/UpdateBank'; + /*****修改银行卡*****/ + static UpdateBank(ubId: string, bank: string, name: string, account: string) { + var result = Service.Request(this.UpdateBankPath, "POST", { ubId, bank, name, account }); + return result; + } + + private static DelUserBankPath: string = '/Bank/DelUserBank'; + /*****删除银行卡*****/ + static DelUserBank(ubId: string) { + var result = Service.Request(this.DelUserBankPath, "POST", { ubId }); + return result; + } + +} +export { + Service, + NvpBankService +} diff --git a/src/Service/Nvp/NvpLoginService.ts b/src/Service/Nvp/NvpLoginService.ts new file mode 100644 index 0000000..a145c67 --- /dev/null +++ b/src/Service/Nvp/NvpLoginService.ts @@ -0,0 +1,36 @@ +import { Service } from '@/Service/Service'; +/*****登录接口*****/ +class NvpLoginService { + private static GetWxLoginOpenIdPath: string = '/Login/GetWxLoginOpenId'; + /*****小程序根据code获取openId*****/ + static GetWxLoginOpenId(code: string, type: number) { + var result = Service.Request(this.GetWxLoginOpenIdPath, "GET", { code, type }); + return result; + } + + private static AppletLoginPath: string = '/Login/AppletLogin'; + /*****普通登陆接口(小程序)*****/ + static AppletLogin(openId: string, channel: string) { + var result = Service.Request(this.AppletLoginPath, "POST", { openId, channel }); + return result; + } + + private static RegistPath: string = '/Login/Regist'; + /*****注册接口*****/ + static Regist(remNo: string, openId: string, uniopenId: string, channel: string, type: number) { + var result = Service.Request(this.RegistPath, "POST", { remNo, openId, uniopenId, channel, type }); + return result; + } + + private static GetNumberPhonePath: string = '/Login/GetNumberPhone'; + /*****获取手机号*****/ + static GetNumberPhone(code: string) { + var result = Service.Request(this.GetNumberPhonePath, "GET", { code }); + return result; + } + +} +export { + Service, + NvpLoginService +} diff --git a/src/Service/Nvp/NvpMachineService.ts b/src/Service/Nvp/NvpMachineService.ts new file mode 100644 index 0000000..1de64bc --- /dev/null +++ b/src/Service/Nvp/NvpMachineService.ts @@ -0,0 +1,32 @@ +import { Service } from '@/Service/Service'; +/*****设备接口*****/ +class NvpMachineService { + + private static GetMerchListPath: string = '/Machine/GetMerchList'; + /*****商户设备*****/ + static GetMerchList(merchId: string) { + var result = Service.Request(this.GetMerchListPath, "GET", { merchId }); + return result; + } + + private static DelMerchMachinePath: string = '/Machine/DelMerchMachine'; + /*****删除设备*****/ + static DelMerchMachine(merchId: string, machineId: string) { + var result = Service.Request(this.DelMerchMachinePath, "POST", { merchId, machineId }); + return result; + } + + private static AddMachinePath: string = '/Machine/AddMachine'; + /*****添加设备*****/ + static AddMachine(merchId: string, payCode: string) { + var result = Service.Request(this.AddMachinePath, "POST", { merchId, payCode }); + return result; + } + + + +} +export { + Service, + NvpMachineService +} diff --git a/src/Service/Nvp/NvpMerchService.ts b/src/Service/Nvp/NvpMerchService.ts new file mode 100644 index 0000000..04e3569 --- /dev/null +++ b/src/Service/Nvp/NvpMerchService.ts @@ -0,0 +1,106 @@ +import { Service } from '@/Service/Service'; +/*****用户接口*****/ +class NvpMerchService { + + + private static GetMerchInfoPath: string = '/Merch/GetMerchInfo'; + /*****获取商家信息*****/ + static GetMerchInfo(merchId: string,lon:number,lat:number) { + var result = Service.Request(this.GetMerchInfoPath, "GET", { merchId,lon,lat}); + return result; + } + + + private static GetMerchOrderPath: string = '/Merch/GetMerchOrder'; + /*****获取商家营业数据*****/ + static GetMerchOrder(merchId: string) { + var result = Service.Request(this.GetMerchOrderPath, "GET", { merchId }); + return result; + } + + + private static UpdateMerchInfoPath: string = '/Merch/UpdateMerchInfo'; + /*****修改商家信息*****/ + static UpdateMerchInfo(merchId: string, logo: string ,name:string, phone:string,province:string,city:string,county:string,address:string,lon:string,lat:string,sTime:string,eTime:string,showImg:string) { + var result = Service.Request(this.UpdateMerchInfoPath, "POST", { merchId, logo,name ,phone,province,city,county,address,lon,lat,sTime,eTime,showImg}); + return result; + } + + + + private static GetMerchAccPath: string = '/Merch/GetMerchAcc'; + /*****获取商家佣金数据*****/ + static GetMerchAcc(merchId: string) { + var result = Service.Request(this.GetMerchAccPath, "GET", { merchId }); + return result; + } + + private static GetMerchAccLogPath: string = '/Merch/GetMerchAccLog'; + /*****获取商家佣金记录*****/ + static GetMerchAccLog(merchId: string,op:string,page:number) { + var result = Service.Request(this.GetMerchAccLogPath, "GET", { merchId,op,page }); + return result; + } + + + + private static MerchWithDrawPath: string = '/Merch/MerchWithDraw'; + /*****商家佣金提现*****/ + static MerchWithDraw(merchId: string, money: number ,name:string, account:string) { + var result = Service.Request(this.MerchWithDrawPath, "POST", { merchId, money,name,account}); + return result; + } + + + private static GetMerchWithLogPath: string = '/Merch/GetMerchWithLog'; + /*****商家佣金提现记录*****/ + static GetMerchWithLog(merchId: string) { + var result = Service.Request(this.GetMerchWithLogPath, "GET", { merchId }); + return result; + } + + private static GetMerchTicketListPath: string = '/Merch/GetMerchTicketList'; + /*****商家优惠券列表*****/ + static GetMerchTicketList(merchId: string) { + var result = Service.Request(this.GetMerchTicketListPath, "GET", { merchId }); + return result; + } + + + private static AddMerchTicketPath: string = '/Merch/AddMerchTicket'; + /*****商家优惠券修改添加*****/ + static AddMerchTicket(ticketId: string, merchId: string ,code:string, atkAcc:number,redAcc:number,count:number,useTime:Number,state:Number,addTime:string,endTime:string) { + var result = Service.Request(this.AddMerchTicketPath, "POST", { ticketId, merchId,code,atkAcc,redAcc,count,useTime,state,addTime,endTime}); + return result; + } + + + + private static DelMerchTicketPath: string = '/Merch/DelMerchTicket'; + /*****商家删除优惠券*****/ + static DelMerchTicket(ticketId: string) { + var result = Service.Request(this.DelMerchTicketPath, "POST", { ticketId}); + return result; + } + + + private static GetTicketInfoPath: string = '/Merch/GetTicketInfo'; + /*****获取优惠券详情*****/ + static GetTicketInfo(ticketId: string) { + var result = Service.Request(this.GetTicketInfoPath, "GET", { ticketId }); + return result; + } + + + + private static GetAppVersionPath: string = '/Login/GetAppVersion'; + /*****更新*****/ + static GetAppVersion() { + var result = Service.Request(this.GetAppVersionPath, "GET", {type:2}); + return result; + } +} +export { + Service, + NvpMerchService +} diff --git a/src/Service/Nvp/NvpPubService.ts b/src/Service/Nvp/NvpPubService.ts new file mode 100644 index 0000000..c130f10 --- /dev/null +++ b/src/Service/Nvp/NvpPubService.ts @@ -0,0 +1,43 @@ +import { Service } from '@/Service/Service'; +/*****公共接口*****/ +class NvpPubService { + private static GetIndexPath: string = '/Pub/GetIndex'; + /*****主页信息*****/ + static GetIndex() { + var result = Service.Request(this.GetIndexPath, "GET", ""); + return result; + } + + private static GetIndexDataPath: string = '/Pub/GetIndexData'; + /*****获取首页数据*****/ + static GetIndexData(lon: number, lat: number, city: string, county: string, sort: number, page: number) { + var result = Service.Request(this.GetIndexDataPath, "GET", { lon, lat, city, county, sort, page }); + return result; + } + + private static GetMenuDataPath: string = '/Pub/GetMenuData'; + /*****获取分类*****/ + static GetMenuData(type: string, parent: string) { + var result = Service.Request(this.GetMenuDataPath, "GET", { type, parent }); + return result; + } + + private static GetMerchDataPath: string = '/Pub/GetMerchData'; + /*****获取店铺*****/ + static GetMerchData(code: string, serch: string, assId: string, lon: number, lat: number, city: string, county: string, sort: number, page: number, limit: number) { + var result = Service.Request(this.GetMerchDataPath, "GET", { code, serch, assId, lon, lat, city, county, sort, page, limit }); + return result; + } + + private static GetRandomMerchPath: string = '/Pub/GetRandomMerch'; + /*****随机获取商家*****/ + static GetRandomMerch(count: number, lon: number, lat: number, city: string, county: string) { + var result = Service.Request(this.GetRandomMerchPath, "GET", { count, lon, lat, city, county }); + return result; + } + +} +export { + Service, + NvpPubService +} diff --git a/src/Service/Nvp/NvpTencentCosService.ts b/src/Service/Nvp/NvpTencentCosService.ts new file mode 100644 index 0000000..22ded76 --- /dev/null +++ b/src/Service/Nvp/NvpTencentCosService.ts @@ -0,0 +1,22 @@ +import { Service } from '@/Service/Service'; +/*****腾讯云存储*****/ +class NvpTencentCosService { + private static GetAuthorizationPath: string = '/TencentCos/GetAuthorization'; + /*****获取云存储配置*****/ + static GetAuthorization() { + var result = Service.Request(this.GetAuthorizationPath, "GET", ""); + return result; + } + + private static GetUpLoadInfoPath: string = '/TencentCos/GetUpLoadInfo'; + /*****获取上传地址*****/ + static GetUpLoadInfo(code: string, fileName: string, desire: string) { + var result = Service.Request(this.GetUpLoadInfoPath, "GET", { code, fileName, desire }); + return result; + } + +} +export { + Service, + NvpTencentCosService +} diff --git a/src/Service/Nvp/NvpUserService.ts b/src/Service/Nvp/NvpUserService.ts new file mode 100644 index 0000000..7b7edbc --- /dev/null +++ b/src/Service/Nvp/NvpUserService.ts @@ -0,0 +1,43 @@ +import { Service } from '@/Service/Service'; +/*****用户接口*****/ +class NvpUserService { + private static GetUserInfoPath: string = '/User/GetUserInfo'; + /*****用户基础信息*****/ + static GetUserInfo() { + var result = Service.Request(this.GetUserInfoPath, "GET", ""); + return result; + } + + private static UpdateUserInfoPath: string = '/User/UpdateUserInfo'; + /*****修改用户信息*****/ + static UpdateUserInfo(par: string, smsCode: string, type: number) { + var result = Service.Request(this.UpdateUserInfoPath, "POST", { par, smsCode, type }); + return result; + } + + private static GetUserAccLogPath: string = '/User/GetUserAccLog'; + /*****获取账户记录*****/ + static GetUserAccLog(code: string, accType: string, page: number) { + var result = Service.Request(this.GetUserAccLogPath, "GET", { code, accType, page }); + return result; + } + + private static GetUserCommissionInfoPath: string = '/User/GetUserCommissionInfo'; + /*****用户佣金账户*****/ + static GetUserCommissionInfo() { + var result = Service.Request(this.GetUserCommissionInfoPath, "GET", ""); + return result; + } + + private static GetUserCommissionLogPath: string = '/User/GetUserCommissionLog'; + /*****用户佣金记录*****/ + static GetUserCommissionLog(code: string, accType: string, page: number) { + var result = Service.Request(this.GetUserCommissionLogPath, "GET", { code, accType, page }); + return result; + } + +} +export { + Service, + NvpUserService +} diff --git a/src/Service/Nvp/NvpWithService.ts b/src/Service/Nvp/NvpWithService.ts new file mode 100644 index 0000000..bd29371 --- /dev/null +++ b/src/Service/Nvp/NvpWithService.ts @@ -0,0 +1,22 @@ +import { Service } from '@/Service/Service'; +/*****用户接口*****/ +class NvpWithService { + private static WithDrawPath: string = '/With/WithDraw'; + /*****佣金提现*****/ + static WithDraw(money: number, name: string, account: string) { + var result = Service.Request(this.WithDrawPath, "POST", { money, name, account }); + return result; + } + + private static GetUserWithLogPath: string = '/With/GetUserWithLog'; + /*****用户提现记录*****/ + static GetUserWithLog(page: number) { + var result = Service.Request(this.GetUserWithLogPath, "GET", { page }); + return result; + } + +} +export { + Service, + NvpWithService +} diff --git a/src/Service/Service.ts b/src/Service/Service.ts new file mode 100644 index 0000000..f286dfa --- /dev/null +++ b/src/Service/Service.ts @@ -0,0 +1,320 @@ +import { HttpRequest, StoreAssist, UploadAssist, ResultData } from '@/common/Common'; +import { BaseConfig } from './BaseConfig'; +export class Service extends BaseConfig { + //获取API地址 + static ApiUrl(path : string) { + return `${this.servesUrl}${path}`; + } + + //获取图片地址 + static GetpayImg(path : string) { + if (path.startsWith('http') || path.startsWith('https')) { + return path; + } else { + return `${this.payuploadUrl}${path}`; + } + } + + //获取图片地址 + static GetMateUrlByImg(path : string) { + if (path.startsWith('http') || path.startsWith('https')) { + return path; + } else { + return `${this.imgUrl}${path}`; + } + } + //获取音视频地址 + static GetMateUrlByMedia(path : string) { + if (path.startsWith('http') || path.startsWith('https')) { + return path; + } else { + return `${this.mediaUrl}${path}`; + } + } + //获取登录账号token + static GetUserToken() { + return Service.GetStorageCache('token'); + } + // 获取登录状态 + static GetUserIsLogin() { + var token = this.GetUserToken(); + if (token == null || token == '') { + return false; + } else { + return true; + } + } + //设置登录账户Token + static SetUserToken(token : string) { + this.SetStorageCache('token', token); + } + //清理登录账户Token + static OffUserToken() { + Service.DelStorageCache('token'); + uni.$emit('ImComOff', 'user'); + this.ClearUserStateData(); + } + //获取登录账号状态信息 + static GetUserStateData() { + return Service.GetStorageCache('StateDomain'); + } + //设置当前登录账号状态信息 + static SetUserStateData() { + return Service.GetStorageCache('StateDomain'); + } + //清理当前登录账号状态信息 + static ClearUserStateData() { + Service.DelStorageCache('StateDomain'); + } + + //获取缓存 + static GetStorageCache(key : string) { + return StoreAssist.Get(key); + } + //删除缓存 + static DelStorageCache(key : string) { + StoreAssist.Delete(key); + } + //设置缓存 + static SetStorageCache(key : string, data : any) { + StoreAssist.Set(key, data); + } + + /*****以下是基础方法调用与拦截器*****/ + + static Request(url : string, method : 'GET' | 'POST' | 'PUT' | undefined, data : object | any) { + const token = Service.GetUserToken(); + + const _url = Service.ApiUrl(url); + var result = HttpRequest.RequestWithToken(_url, method, token, data).then((retResult : any) => { + if (retResult.statusCode == '200') { + var obj = retResult.data; + if (obj.code == 401) { + //过期 + this.OffUserToken(); + this.Msg('登录过期,请重新登录') + this.GoPage('/pages/login/login') + return Promise.reject(); + } else if (obj.code == 40101) { + //失效 + this.OffUserToken(); + this.GoPageDelse('/pages/mine/login/login'); + return Promise.reject(); + } else if (obj.code == 1004) { + //资源不存在 + this.GoPageDelse('/pages/AppSet/404/404'); + return Promise.reject(); + // return new ResultData(-1, '', ''); + } else if (obj.code == 40188) { + //无权限 + + this.GoPageDelse('/pages/AppSet/40188/40188'); + return Promise.reject(); + // return new ResultData(-1, '', ''); + } else if (obj.code == 1008) { + //业务提示 + return new ResultData(obj.code, obj.msg, obj.data); + } else { + return new ResultData(obj.code, obj.msg, obj.data); + } + } else { + return new ResultData(-1, '', ''); + } + }); + return result; + } + /*****以下是腾讯云oss上传*****/ + static UpLoadMedia(code : string, fileName : string, desire : string, path : string) { + var result = this.Request(this.uploadUrl, 'GET', { code, fileName, desire }).then((retResult) => { + if (retResult.code == 0) { + var upOk = UploadAssist.Upload(retResult.data.url, path, retResult.data.cosData).then((upRet : any) => { + if (upRet.statusCode == 200) { + const retData : any = { code: retResult.data.code, file: retResult.data.file, cache: retResult.data.cache }; + return new ResultData(0, '上传成功!', retData); + } else { + this.Msg('上传失败!'); + return new ResultData(-1, '', ''); + } + }); + return upOk; + } else { + this.Msg('上传失败!'); + return new ResultData(-1, retResult.msg,retResult.data); + } + }); + return result; + } + + /***********消息操作**************/ + static Msg(message : any, icon ?: any) : void { + if (icon != null) { + uni.showToast({ + title: message, + icon: icon + }); + } else { + uni.showToast({ + title: message, + icon: 'none' + }); + } + } + + static Alert(msg : string, cb ?: any) { + uni.showModal({ + title: '提示', + content: msg, + showCancel: false, + cancelText: '取消', + confirmText: '确定', + success: res => { + if (res.confirm) { + cb && cb(); + } + } + }) + } + + static LoadIng(text : any) : void { + uni.showLoading({ + title: text, + icon: 'none' + }); + } + + static LoadClose() : void { + uni.hideLoading(); + } + + /**********跳转操作*********/ + + + static GoPageTab(path : string) : void { + uni.switchTab({ + url: path + }); + } + + /**********跳转操作*********/ + static GoPage(path : string) : void { + uni.navigateTo({ + url: path, //跳转的页面 + success: function (res) { + // 通过eventChannel向被打开页面传送数据 + } + }); + } + /**********跳转并删除当前页面操作*********/ + static GoPageDelse(path : string) : void { + uni.redirectTo({ + url: path //跳转的页面 + }); + } + + /**********返回上一页*********/ + static GoPageBack() : void { + uni.navigateBack({ delta: 1 }); + } + + /*****获取图片base64*****/ + static UpLoadMediaBase64(path : string) { + return new Promise(function (resolve, reject) { + uni.uploadFile({ + url: 'http://cloud.pccsh.com/DefUp/UploadFileImgBase64', //仅为示例,非真实的接口地址 + filePath: path, + name: 'file', + success: (uploadFileRes) => { + resolve(uploadFileRes); + }, + fail: (err) => { + reject(err); + } + }); + }); + } + /*****获取图片位置信息*****/ + //获取时间戳 + static GetTimeSpan(milliSecond : number) { + return Date.now() + milliSecond; + } + + // 时间戳处理 + static formatDate(time : any, type : number) : string { + const date = new Date(time); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以加1,并用0填充 + const day = String(date.getDate()).padStart(2, '0'); // 用0填充 + const hours = String(date.getHours()).padStart(2, '0'); // 用0填充 + const minutes = String(date.getMinutes()).padStart(2, '0'); // 用0填充 + const seconds = String(date.getSeconds()).padStart(2, '0'); // 用0填充 + if (type == 0) { + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + } + else if (type == 1) { + return `${year}-${month}-${day} ${hours}:${minutes}`; + } else if (type == 2) { + return `${year}-${month}-${day}`; + } else if (type == 3) { + return `${hours}:${minutes}`; + } else if (type == 4) { + return `${year}${month}${day}`; + } + + else { + return `${hours}:${minutes}`; + } + } + + /*****节流*****/ + static throttle(fn: () => void, time: number) { + let canRun: boolean = true; + return function () { + if (!canRun) return; + canRun = false; + setTimeout(() => { + fn(); //可以不执行 + canRun = true; + }, time); + }; + } + /*****防抖*****/ + static debounce void>(fn: T, time: number): (...args: Parameters) => void { + let timerId: NodeJS.Timeout | null = null; + + return (...args: Parameters) => { + if (timerId) { + clearTimeout(timerId); + } + + timerId = setTimeout(() => { + fn(...args); // 执行传入的函数 + timerId = null; // 清除定时器ID + }, time); + }; + } + + + + + + // 普通图片上传 + static uploadH5(path, dic, callback) { + console.log(this.payuploadUrl,'xxx') + uni.uploadFile({ + url: this.payuploadUrl+'/Upload/UploadFile', + method: "POST", + header: { + 'Authorization': 'Bearer ' + Service.GetUserToken(), + }, + formData: { + "path": dic, + }, + filePath: path, + name: 'file', + success: (data) => { + let info = data.data + callback(info) + } + }) + } +} \ No newline at end of file diff --git a/src/colorui/animation.css b/src/colorui/animation.css new file mode 100644 index 0000000..931bb51 --- /dev/null +++ b/src/colorui/animation.css @@ -0,0 +1,184 @@ +/* + Animation 微动画 + 基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28 + */ + +/* css 滤镜 控制黑白底色gif的 */ +.gif-black{ + mix-blend-mode: screen; +} +.gif-white{ + mix-blend-mode: multiply; +} + + +/* Animation css */ +[class*=animation-] { + animation-duration: .5s; + animation-timing-function: ease-out; + animation-fill-mode: both +} + +.animation-fade { + animation-name: fade; + animation-duration: .8s; + animation-timing-function: linear +} + +.animation-scale-up { + animation-name: scale-up +} + +.animation-scale-down { + animation-name: scale-down +} + +.animation-slide-top { + animation-name: slide-top +} + +.animation-slide-bottom { + animation-name: slide-bottom +} + +.animation-slide-left { + animation-name: slide-left +} + +.animation-slide-right { + animation-name: slide-right +} + +.animation-shake { + animation-name: shake +} + +.animation-reverse { + animation-direction: reverse +} + +@keyframes fade { + 0% { + opacity: 0 + } + + 100% { + opacity: 1 + } +} + +@keyframes scale-up { + 0% { + opacity: 0; + transform: scale(.2) + } + + 100% { + opacity: 1; + transform: scale(1) + } +} + +@keyframes scale-down { + 0% { + opacity: 0; + transform: scale(1.8) + } + + 100% { + opacity: 1; + transform: scale(1) + } +} + +@keyframes slide-top { + 0% { + opacity: 0; + transform: translateY(-100%) + } + + 100% { + opacity: 1; + transform: translateY(0) + } +} + +@keyframes slide-bottom { + 0% { + opacity: 0; + transform: translateY(100%) + } + + 100% { + opacity: 1; + transform: translateY(0) + } +} + +@keyframes shake { + + 0%, + 100% { + transform: translateX(0) + } + + 10% { + transform: translateX(-9px) + } + + 20% { + transform: translateX(8px) + } + + 30% { + transform: translateX(-7px) + } + + 40% { + transform: translateX(6px) + } + + 50% { + transform: translateX(-5px) + } + + 60% { + transform: translateX(4px) + } + + 70% { + transform: translateX(-3px) + } + + 80% { + transform: translateX(2px) + } + + 90% { + transform: translateX(-1px) + } +} + +@keyframes slide-left { + 0% { + opacity: 0; + transform: translateX(-100%) + } + + 100% { + opacity: 1; + transform: translateX(0) + } +} + +@keyframes slide-right { + 0% { + opacity: 0; + transform: translateX(100%) + } + + 100% { + opacity: 1; + transform: translateX(0) + } +} \ No newline at end of file diff --git a/src/colorui/components/cu-custom.vue b/src/colorui/components/cu-custom.vue new file mode 100644 index 0000000..b09f70d --- /dev/null +++ b/src/colorui/components/cu-custom.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/colorui/icon.css b/src/colorui/icon.css new file mode 100644 index 0000000..16ed121 --- /dev/null +++ b/src/colorui/icon.css @@ -0,0 +1,1226 @@ +@keyframes cuIcon-spin { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.cuIconfont-spin { + -webkit-animation: cuIcon-spin 2s infinite linear; + animation: cuIcon-spin 2s infinite linear; + display: inline-block; +} + +.cuIconfont-pulse { + -webkit-animation: cuIcon-spin 1s infinite steps(8); + animation: cuIcon-spin 1s infinite steps(8); + display: inline-block; +} + +[class*="cuIcon-"] { + font-family: "cuIcon"; + font-size: inherit; + font-style: normal; +} + +@font-face { + font-family: "cuIcon"; + src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831'); + /* IE9*/ + src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'), + /* IE6-IE8 */ + url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), + url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'), + /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#cuIconfont') format('svg'); + /* iOS 4.1- */ +} + +.cuIcon-appreciate:before { + content: "\e644"; +} + +.cuIcon-check:before { + content: "\e645"; +} + +.cuIcon-close:before { + content: "\e646"; +} + +.cuIcon-edit:before { + content: "\e649"; +} + +.cuIcon-emoji:before { + content: "\e64a"; +} + +.cuIcon-favorfill:before { + content: "\e64b"; +} + +.cuIcon-favor:before { + content: "\e64c"; +} + +.cuIcon-loading:before { + content: "\e64f"; +} + +.cuIcon-locationfill:before { + content: "\e650"; +} + +.cuIcon-location:before { + content: "\e651"; +} + +.cuIcon-phone:before { + content: "\e652"; +} + +.cuIcon-roundcheckfill:before { + content: "\e656"; +} + +.cuIcon-roundcheck:before { + content: "\e657"; +} + +.cuIcon-roundclosefill:before { + content: "\e658"; +} + +.cuIcon-roundclose:before { + content: "\e659"; +} + +.cuIcon-roundrightfill:before { + content: "\e65a"; +} + +.cuIcon-roundright:before { + content: "\e65b"; +} + +.cuIcon-search:before { + content: "\e65c"; +} + +.cuIcon-taxi:before { + content: "\e65d"; +} + +.cuIcon-timefill:before { + content: "\e65e"; +} + +.cuIcon-time:before { + content: "\e65f"; +} + +.cuIcon-unfold:before { + content: "\e661"; +} + +.cuIcon-warnfill:before { + content: "\e662"; +} + +.cuIcon-warn:before { + content: "\e663"; +} + +.cuIcon-camerafill:before { + content: "\e664"; +} + +.cuIcon-camera:before { + content: "\e665"; +} + +.cuIcon-commentfill:before { + content: "\e666"; +} + +.cuIcon-comment:before { + content: "\e667"; +} + +.cuIcon-likefill:before { + content: "\e668"; +} + +.cuIcon-like:before { + content: "\e669"; +} + +.cuIcon-notificationfill:before { + content: "\e66a"; +} + +.cuIcon-notification:before { + content: "\e66b"; +} + +.cuIcon-order:before { + content: "\e66c"; +} + +.cuIcon-samefill:before { + content: "\e66d"; +} + +.cuIcon-same:before { + content: "\e66e"; +} + +.cuIcon-deliver:before { + content: "\e671"; +} + +.cuIcon-evaluate:before { + content: "\e672"; +} + +.cuIcon-pay:before { + content: "\e673"; +} + +.cuIcon-send:before { + content: "\e675"; +} + +.cuIcon-shop:before { + content: "\e676"; +} + +.cuIcon-ticket:before { + content: "\e677"; +} + +.cuIcon-back:before { + content: "\e679"; +} + +.cuIcon-cascades:before { + content: "\e67c"; +} + +.cuIcon-discover:before { + content: "\e67e"; +} + +.cuIcon-list:before { + content: "\e682"; +} + +.cuIcon-more:before { + content: "\e684"; +} + +.cuIcon-scan:before { + content: "\e689"; +} + +.cuIcon-settings:before { + content: "\e68a"; +} + +.cuIcon-questionfill:before { + content: "\e690"; +} + +.cuIcon-question:before { + content: "\e691"; +} + +.cuIcon-shopfill:before { + content: "\e697"; +} + +.cuIcon-form:before { + content: "\e699"; +} + +.cuIcon-pic:before { + content: "\e69b"; +} + +.cuIcon-filter:before { + content: "\e69c"; +} + +.cuIcon-footprint:before { + content: "\e69d"; +} + +.cuIcon-top:before { + content: "\e69e"; +} + +.cuIcon-pulldown:before { + content: "\e69f"; +} + +.cuIcon-pullup:before { + content: "\e6a0"; +} + +.cuIcon-right:before { + content: "\e6a3"; +} + +.cuIcon-refresh:before { + content: "\e6a4"; +} + +.cuIcon-moreandroid:before { + content: "\e6a5"; +} + +.cuIcon-deletefill:before { + content: "\e6a6"; +} + +.cuIcon-refund:before { + content: "\e6ac"; +} + +.cuIcon-cart:before { + content: "\e6af"; +} + +.cuIcon-qrcode:before { + content: "\e6b0"; +} + +.cuIcon-remind:before { + content: "\e6b2"; +} + +.cuIcon-delete:before { + content: "\e6b4"; +} + +.cuIcon-profile:before { + content: "\e6b7"; +} + +.cuIcon-home:before { + content: "\e6b8"; +} + +.cuIcon-cartfill:before { + content: "\e6b9"; +} + +.cuIcon-discoverfill:before { + content: "\e6ba"; +} + +.cuIcon-homefill:before { + content: "\e6bb"; +} + +.cuIcon-message:before { + content: "\e6bc"; +} + +.cuIcon-addressbook:before { + content: "\e6bd"; +} + +.cuIcon-link:before { + content: "\e6bf"; +} + +.cuIcon-lock:before { + content: "\e6c0"; +} + +.cuIcon-unlock:before { + content: "\e6c2"; +} + +.cuIcon-vip:before { + content: "\e6c3"; +} + +.cuIcon-weibo:before { + content: "\e6c4"; +} + +.cuIcon-activity:before { + content: "\e6c5"; +} + +.cuIcon-friendaddfill:before { + content: "\e6c9"; +} + +.cuIcon-friendadd:before { + content: "\e6ca"; +} + +.cuIcon-friendfamous:before { + content: "\e6cb"; +} + +.cuIcon-friend:before { + content: "\e6cc"; +} + +.cuIcon-goods:before { + content: "\e6cd"; +} + +.cuIcon-selection:before { + content: "\e6ce"; +} + +.cuIcon-explore:before { + content: "\e6d2"; +} + +.cuIcon-present:before { + content: "\e6d3"; +} + +.cuIcon-squarecheckfill:before { + content: "\e6d4"; +} + +.cuIcon-square:before { + content: "\e6d5"; +} + +.cuIcon-squarecheck:before { + content: "\e6d6"; +} + +.cuIcon-round:before { + content: "\e6d7"; +} + +.cuIcon-roundaddfill:before { + content: "\e6d8"; +} + +.cuIcon-roundadd:before { + content: "\e6d9"; +} + +.cuIcon-add:before { + content: "\e6da"; +} + +.cuIcon-notificationforbidfill:before { + content: "\e6db"; +} + +.cuIcon-explorefill:before { + content: "\e6dd"; +} + +.cuIcon-fold:before { + content: "\e6de"; +} + +.cuIcon-game:before { + content: "\e6df"; +} + +.cuIcon-redpacket:before { + content: "\e6e0"; +} + +.cuIcon-selectionfill:before { + content: "\e6e1"; +} + +.cuIcon-similar:before { + content: "\e6e2"; +} + +.cuIcon-appreciatefill:before { + content: "\e6e3"; +} + +.cuIcon-infofill:before { + content: "\e6e4"; +} + +.cuIcon-info:before { + content: "\e6e5"; +} + +.cuIcon-forwardfill:before { + content: "\e6ea"; +} + +.cuIcon-forward:before { + content: "\e6eb"; +} + +.cuIcon-rechargefill:before { + content: "\e6ec"; +} + +.cuIcon-recharge:before { + content: "\e6ed"; +} + +.cuIcon-vipcard:before { + content: "\e6ee"; +} + +.cuIcon-voice:before { + content: "\e6ef"; +} + +.cuIcon-voicefill:before { + content: "\e6f0"; +} + +.cuIcon-friendfavor:before { + content: "\e6f1"; +} + +.cuIcon-wifi:before { + content: "\e6f2"; +} + +.cuIcon-share:before { + content: "\e6f3"; +} + +.cuIcon-wefill:before { + content: "\e6f4"; +} + +.cuIcon-we:before { + content: "\e6f5"; +} + +.cuIcon-lightauto:before { + content: "\e6f6"; +} + +.cuIcon-lightforbid:before { + content: "\e6f7"; +} + +.cuIcon-lightfill:before { + content: "\e6f8"; +} + +.cuIcon-camerarotate:before { + content: "\e6f9"; +} + +.cuIcon-light:before { + content: "\e6fa"; +} + +.cuIcon-barcode:before { + content: "\e6fb"; +} + +.cuIcon-flashlightclose:before { + content: "\e6fc"; +} + +.cuIcon-flashlightopen:before { + content: "\e6fd"; +} + +.cuIcon-searchlist:before { + content: "\e6fe"; +} + +.cuIcon-service:before { + content: "\e6ff"; +} + +.cuIcon-sort:before { + content: "\e700"; +} + +.cuIcon-down:before { + content: "\e703"; +} + +.cuIcon-mobile:before { + content: "\e704"; +} + +.cuIcon-mobilefill:before { + content: "\e705"; +} + +.cuIcon-copy:before { + content: "\e706"; +} + +.cuIcon-countdownfill:before { + content: "\e707"; +} + +.cuIcon-countdown:before { + content: "\e708"; +} + +.cuIcon-noticefill:before { + content: "\e709"; +} + +.cuIcon-notice:before { + content: "\e70a"; +} + +.cuIcon-upstagefill:before { + content: "\e70e"; +} + +.cuIcon-upstage:before { + content: "\e70f"; +} + +.cuIcon-babyfill:before { + content: "\e710"; +} + +.cuIcon-baby:before { + content: "\e711"; +} + +.cuIcon-brandfill:before { + content: "\e712"; +} + +.cuIcon-brand:before { + content: "\e713"; +} + +.cuIcon-choicenessfill:before { + content: "\e714"; +} + +.cuIcon-choiceness:before { + content: "\e715"; +} + +.cuIcon-clothesfill:before { + content: "\e716"; +} + +.cuIcon-clothes:before { + content: "\e717"; +} + +.cuIcon-creativefill:before { + content: "\e718"; +} + +.cuIcon-creative:before { + content: "\e719"; +} + +.cuIcon-female:before { + content: "\e71a"; +} + +.cuIcon-keyboard:before { + content: "\e71b"; +} + +.cuIcon-male:before { + content: "\e71c"; +} + +.cuIcon-newfill:before { + content: "\e71d"; +} + +.cuIcon-new:before { + content: "\e71e"; +} + +.cuIcon-pullleft:before { + content: "\e71f"; +} + +.cuIcon-pullright:before { + content: "\e720"; +} + +.cuIcon-rankfill:before { + content: "\e721"; +} + +.cuIcon-rank:before { + content: "\e722"; +} + +.cuIcon-bad:before { + content: "\e723"; +} + +.cuIcon-cameraadd:before { + content: "\e724"; +} + +.cuIcon-focus:before { + content: "\e725"; +} + +.cuIcon-friendfill:before { + content: "\e726"; +} + +.cuIcon-cameraaddfill:before { + content: "\e727"; +} + +.cuIcon-apps:before { + content: "\e729"; +} + +.cuIcon-paintfill:before { + content: "\e72a"; +} + +.cuIcon-paint:before { + content: "\e72b"; +} + +.cuIcon-picfill:before { + content: "\e72c"; +} + +.cuIcon-refresharrow:before { + content: "\e72d"; +} + +.cuIcon-colorlens:before { + content: "\e6e6"; +} + +.cuIcon-markfill:before { + content: "\e730"; +} + +.cuIcon-mark:before { + content: "\e731"; +} + +.cuIcon-presentfill:before { + content: "\e732"; +} + +.cuIcon-repeal:before { + content: "\e733"; +} + +.cuIcon-album:before { + content: "\e734"; +} + +.cuIcon-peoplefill:before { + content: "\e735"; +} + +.cuIcon-people:before { + content: "\e736"; +} + +.cuIcon-servicefill:before { + content: "\e737"; +} + +.cuIcon-repair:before { + content: "\e738"; +} + +.cuIcon-file:before { + content: "\e739"; +} + +.cuIcon-repairfill:before { + content: "\e73a"; +} + +.cuIcon-taoxiaopu:before { + content: "\e73b"; +} + +.cuIcon-weixin:before { + content: "\e612"; +} + +.cuIcon-attentionfill:before { + content: "\e73c"; +} + +.cuIcon-attention:before { + content: "\e73d"; +} + +.cuIcon-commandfill:before { + content: "\e73e"; +} + +.cuIcon-command:before { + content: "\e73f"; +} + +.cuIcon-communityfill:before { + content: "\e740"; +} + +.cuIcon-community:before { + content: "\e741"; +} + +.cuIcon-read:before { + content: "\e742"; +} + +.cuIcon-calendar:before { + content: "\e74a"; +} + +.cuIcon-cut:before { + content: "\e74b"; +} + +.cuIcon-magic:before { + content: "\e74c"; +} + +.cuIcon-backwardfill:before { + content: "\e74d"; +} + +.cuIcon-playfill:before { + content: "\e74f"; +} + +.cuIcon-stop:before { + content: "\e750"; +} + +.cuIcon-tagfill:before { + content: "\e751"; +} + +.cuIcon-tag:before { + content: "\e752"; +} + +.cuIcon-group:before { + content: "\e753"; +} + +.cuIcon-all:before { + content: "\e755"; +} + +.cuIcon-backdelete:before { + content: "\e756"; +} + +.cuIcon-hotfill:before { + content: "\e757"; +} + +.cuIcon-hot:before { + content: "\e758"; +} + +.cuIcon-post:before { + content: "\e759"; +} + +.cuIcon-radiobox:before { + content: "\e75b"; +} + +.cuIcon-rounddown:before { + content: "\e75c"; +} + +.cuIcon-upload:before { + content: "\e75d"; +} + +.cuIcon-writefill:before { + content: "\e760"; +} + +.cuIcon-write:before { + content: "\e761"; +} + +.cuIcon-radioboxfill:before { + content: "\e763"; +} + +.cuIcon-punch:before { + content: "\e764"; +} + +.cuIcon-shake:before { + content: "\e765"; +} + +.cuIcon-move:before { + content: "\e768"; +} + +.cuIcon-safe:before { + content: "\e769"; +} + +.cuIcon-activityfill:before { + content: "\e775"; +} + +.cuIcon-crownfill:before { + content: "\e776"; +} + +.cuIcon-crown:before { + content: "\e777"; +} + +.cuIcon-goodsfill:before { + content: "\e778"; +} + +.cuIcon-messagefill:before { + content: "\e779"; +} + +.cuIcon-profilefill:before { + content: "\e77a"; +} + +.cuIcon-sound:before { + content: "\e77b"; +} + +.cuIcon-sponsorfill:before { + content: "\e77c"; +} + +.cuIcon-sponsor:before { + content: "\e77d"; +} + +.cuIcon-upblock:before { + content: "\e77e"; +} + +.cuIcon-weblock:before { + content: "\e77f"; +} + +.cuIcon-weunblock:before { + content: "\e780"; +} + +.cuIcon-my:before { + content: "\e78b"; +} + +.cuIcon-myfill:before { + content: "\e78c"; +} + +.cuIcon-emojifill:before { + content: "\e78d"; +} + +.cuIcon-emojiflashfill:before { + content: "\e78e"; +} + +.cuIcon-flashbuyfill:before { + content: "\e78f"; +} + +.cuIcon-text:before { + content: "\e791"; +} + +.cuIcon-goodsfavor:before { + content: "\e794"; +} + +.cuIcon-musicfill:before { + content: "\e795"; +} + +.cuIcon-musicforbidfill:before { + content: "\e796"; +} + +.cuIcon-card:before { + content: "\e624"; +} + +.cuIcon-triangledownfill:before { + content: "\e79b"; +} + +.cuIcon-triangleupfill:before { + content: "\e79c"; +} + +.cuIcon-roundleftfill-copy:before { + content: "\e79e"; +} + +.cuIcon-font:before { + content: "\e76a"; +} + +.cuIcon-title:before { + content: "\e82f"; +} + +.cuIcon-recordfill:before { + content: "\e7a4"; +} + +.cuIcon-record:before { + content: "\e7a6"; +} + +.cuIcon-cardboardfill:before { + content: "\e7a9"; +} + +.cuIcon-cardboard:before { + content: "\e7aa"; +} + +.cuIcon-formfill:before { + content: "\e7ab"; +} + +.cuIcon-coin:before { + content: "\e7ac"; +} + +.cuIcon-cardboardforbid:before { + content: "\e7af"; +} + +.cuIcon-circlefill:before { + content: "\e7b0"; +} + +.cuIcon-circle:before { + content: "\e7b1"; +} + +.cuIcon-attentionforbid:before { + content: "\e7b2"; +} + +.cuIcon-attentionforbidfill:before { + content: "\e7b3"; +} + +.cuIcon-attentionfavorfill:before { + content: "\e7b4"; +} + +.cuIcon-attentionfavor:before { + content: "\e7b5"; +} + +.cuIcon-titles:before { + content: "\e701"; +} + +.cuIcon-icloading:before { + content: "\e67a"; +} + +.cuIcon-full:before { + content: "\e7bc"; +} + +.cuIcon-mail:before { + content: "\e7bd"; +} + +.cuIcon-peoplelist:before { + content: "\e7be"; +} + +.cuIcon-goodsnewfill:before { + content: "\e7bf"; +} + +.cuIcon-goodsnew:before { + content: "\e7c0"; +} + +.cuIcon-medalfill:before { + content: "\e7c1"; +} + +.cuIcon-medal:before { + content: "\e7c2"; +} + +.cuIcon-newsfill:before { + content: "\e7c3"; +} + +.cuIcon-newshotfill:before { + content: "\e7c4"; +} + +.cuIcon-newshot:before { + content: "\e7c5"; +} + +.cuIcon-news:before { + content: "\e7c6"; +} + +.cuIcon-videofill:before { + content: "\e7c7"; +} + +.cuIcon-video:before { + content: "\e7c8"; +} + +.cuIcon-exit:before { + content: "\e7cb"; +} + +.cuIcon-skinfill:before { + content: "\e7cc"; +} + +.cuIcon-skin:before { + content: "\e7cd"; +} + +.cuIcon-moneybagfill:before { + content: "\e7ce"; +} + +.cuIcon-usefullfill:before { + content: "\e7cf"; +} + +.cuIcon-usefull:before { + content: "\e7d0"; +} + +.cuIcon-moneybag:before { + content: "\e7d1"; +} + +.cuIcon-redpacket_fill:before { + content: "\e7d3"; +} + +.cuIcon-subscription:before { + content: "\e7d4"; +} + +.cuIcon-loading1:before { + content: "\e633"; +} + +.cuIcon-github:before { + content: "\e692"; +} + +.cuIcon-global:before { + content: "\e7eb"; +} + +.cuIcon-settingsfill:before { + content: "\e6ab"; +} + +.cuIcon-back_android:before { + content: "\e7ed"; +} + +.cuIcon-expressman:before { + content: "\e7ef"; +} + +.cuIcon-evaluate_fill:before { + content: "\e7f0"; +} + +.cuIcon-group_fill:before { + content: "\e7f5"; +} + +.cuIcon-play_forward_fill:before { + content: "\e7f6"; +} + +.cuIcon-deliver_fill:before { + content: "\e7f7"; +} + +.cuIcon-notice_forbid_fill:before { + content: "\e7f8"; +} + +.cuIcon-fork:before { + content: "\e60c"; +} + +.cuIcon-pick:before { + content: "\e7fa"; +} + +.cuIcon-wenzi:before { + content: "\e6a7"; +} + +.cuIcon-ellipse:before { + content: "\e600"; +} + +.cuIcon-qr_code:before { + content: "\e61b"; +} + +.cuIcon-dianhua:before { + content: "\e64d"; +} + +.cuIcon-cuIcon:before { + content: "\e602"; +} + +.cuIcon-loading2:before { + content: "\e7f1"; +} + +.cuIcon-btn:before { + content: "\e601"; +} diff --git a/src/colorui/main.css b/src/colorui/main.css new file mode 100644 index 0000000..fade3b2 --- /dev/null +++ b/src/colorui/main.css @@ -0,0 +1,3912 @@ +/* + ColorUi for uniApp v2.1.6 | by 文晓港 2019-05-31 10:44:24 + 仅供学习交流,如作它用所承受的法律责任一概与作者无关 + + *使用ColorUi开发扩展与插件时,请注明基于ColorUi开发 + + (QQ交流群:240787041) +*/ + +/* ================== + 初始化 + ==================== */ +body { + background-color: #f1f1f1; + font-size: 28upx; + color: #333333; + font-family: Helvetica Neue, Helvetica, sans-serif; +} + +view, +scroll-view, +swiper, +button, +input, +textarea, +label, +navigator, +image { + box-sizing: border-box; +} + +.round { + border-radius: 5000upx; +} + +.radius { + border-radius: 6upx; +} + +/* ================== + 图片 + ==================== */ + +image { + max-width: 100%; + display: inline-block; + position: relative; + z-index: 0; +} + +image.loading::before { + content: ""; + background-color: #f5f5f5; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: -2; +} + +image.loading::after { + content: "\e7f1"; + font-family: "cuIcon"; + position: absolute; + top: 0; + left: 0; + width: 32upx; + height: 32upx; + line-height: 32upx; + right: 0; + bottom: 0; + z-index: -1; + font-size: 32upx; + margin: auto; + color: #ccc; + -webkit-animation: cuIcon-spin 2s infinite linear; + animation: cuIcon-spin 2s infinite linear; + display: block; +} + +.response { + width: 100%; +} + +/* ================== + 开关 + ==================== */ + +switch, +checkbox, +radio { + position: relative; +} + +switch::after, +switch::before { + font-family: "cuIcon"; + content: "\e645"; + position: absolute; + color: #ffffff !important; + top: 0%; + left: 0upx; + font-size: 26upx; + line-height: 26px; + width: 50%; + text-align: center; + pointer-events: none; + transform: scale(0, 0); + transition: all 0.3s ease-in-out 0s; + z-index: 9; + bottom: 0; + height: 26px; + margin: auto; +} + +switch::before { + content: "\e646"; + right: 0; + transform: scale(1, 1); + left: auto; +} + +switch[checked]::after, +switch.checked::after { + transform: scale(1, 1); +} + +switch[checked]::before, +switch.checked::before { + transform: scale(0, 0); +} + +/* #ifndef MP-ALIPAY */ +radio::before, +checkbox::before { + font-family: "cuIcon"; + content: "\e645"; + position: absolute; + color: #ffffff !important; + top: 50%; + margin-top: -8px; + right: 5px; + font-size: 32upx; + line-height: 16px; + pointer-events: none; + transform: scale(1, 1); + transition: all 0.3s ease-in-out 0s; + z-index: 9; +} + +radio .wx-radio-input, +checkbox .wx-checkbox-input, +radio .uni-radio-input, +checkbox .uni-checkbox-input { + margin: 0; + width: 24px; + height: 24px; +} + +checkbox.round .wx-checkbox-input, +checkbox.round .uni-checkbox-input { + border-radius: 100upx; +} + +/* #endif */ + +switch[checked]::before { + transform: scale(0, 0); +} + +switch .wx-switch-input, +switch .uni-switch-input { + border: none; + padding: 0 24px; + width: 48px; + height: 26px; + margin: 0; + border-radius: 100upx; +} + +switch .wx-switch-input:not([class*="bg-"]), +switch .uni-switch-input:not([class*="bg-"]) { + background: #8799a3 !important; +} + +switch .wx-switch-input::after, +switch .uni-switch-input::after { + margin: auto; + width: 26px; + height: 26px; + border-radius: 100upx; + left: 0upx; + top: 0upx; + bottom: 0upx; + position: absolute; + transform: scale(0.9, 0.9); + transition: all 0.1s ease-in-out 0s; +} + +switch .wx-switch-input.wx-switch-input-checked::after, +switch .uni-switch-input.uni-switch-input-checked::after { + margin: auto; + left: 22px; + box-shadow: none; + transform: scale(0.9, 0.9); +} + +radio-group { + display: inline-block; +} + + + +switch.radius .wx-switch-input::after, +switch.radius .wx-switch-input, +switch.radius .wx-switch-input::before, +switch.radius .uni-switch-input::after, +switch.radius .uni-switch-input, +switch.radius .uni-switch-input::before { + border-radius: 10upx; +} + +switch .wx-switch-input::before, +radio.radio::before, +checkbox .wx-checkbox-input::before, +radio .wx-radio-input::before, +switch .uni-switch-input::before, +radio.radio::before, +checkbox .uni-checkbox-input::before, +radio .uni-radio-input::before { + display: none; +} + +radio.radio[checked]::after, +radio.radio .uni-radio-input-checked::after { + content: ""; + background-color: transparent; + display: block; + position: absolute; + width: 8px; + height: 8px; + z-index: 999; + top: 0upx; + left: 0upx; + right: 0; + bottom: 0; + margin: auto; + border-radius: 200upx; + /* #ifndef MP */ + border: 7px solid #ffffff !important; + /* #endif */ + + /* #ifdef MP */ + border: 8px solid #ffffff !important; + /* #endif */ +} + +.switch-sex::after { + content: "\e71c"; +} + +.switch-sex::before { + content: "\e71a"; +} + +.switch-sex .wx-switch-input, +.switch-sex .uni-switch-input { + background: #e54d42 !important; + border-color: #e54d42 !important; +} + +.switch-sex[checked] .wx-switch-input, +.switch-sex.checked .uni-switch-input { + background: #0081ff !important; + border-color: #0081ff !important; +} + +switch.red[checked] .wx-switch-input.wx-switch-input-checked, +checkbox.red[checked] .wx-checkbox-input, +radio.red[checked] .wx-radio-input, +switch.red.checked .uni-switch-input.uni-switch-input-checked, +checkbox.red.checked .uni-checkbox-input, +radio.red.checked .uni-radio-input { + background-color: #e54d42 !important; + border-color: #e54d42 !important; + color: #ffffff !important; +} + +switch.orange[checked] .wx-switch-input, +checkbox.orange[checked] .wx-checkbox-input, +radio.orange[checked] .wx-radio-input, +switch.orange.checked .uni-switch-input, +checkbox.orange.checked .uni-checkbox-input, +radio.orange.checked .uni-radio-input { + background-color: #f37b1d !important; + border-color: #f37b1d !important; + color: #ffffff !important; +} + +switch.yellow[checked] .wx-switch-input, +checkbox.yellow[checked] .wx-checkbox-input, +radio.yellow[checked] .wx-radio-input, +switch.yellow.checked .uni-switch-input, +checkbox.yellow.checked .uni-checkbox-input, +radio.yellow.checked .uni-radio-input { + background-color: #fbbd08 !important; + border-color: #fbbd08 !important; + color: #333333 !important; +} + +switch.olive[checked] .wx-switch-input, +checkbox.olive[checked] .wx-checkbox-input, +radio.olive[checked] .wx-radio-input, +switch.olive.checked .uni-switch-input, +checkbox.olive.checked .uni-checkbox-input, +radio.olive.checked .uni-radio-input { + background-color: #8dc63f !important; + border-color: #8dc63f !important; + color: #ffffff !important; +} + +switch.green[checked] .wx-switch-input, +switch[checked] .wx-switch-input, +checkbox.green[checked] .wx-checkbox-input, +checkbox[checked] .wx-checkbox-input, +radio.green[checked] .wx-radio-input, +radio[checked] .wx-radio-input, +switch.green.checked .uni-switch-input, +switch.checked .uni-switch-input, +checkbox.green.checked .uni-checkbox-input, +checkbox.checked .uni-checkbox-input, +radio.green.checked .uni-radio-input, +radio.checked .uni-radio-input { + background-color: #39b54a !important; + border-color: #39b54a !important; + color: #ffffff !important; + border-color: #39B54A !important; +} + +switch.cyan[checked] .wx-switch-input, +checkbox.cyan[checked] .wx-checkbox-input, +radio.cyan[checked] .wx-radio-input, +switch.cyan.checked .uni-switch-input, +checkbox.cyan.checked .uni-checkbox-input, +radio.cyan.checked .uni-radio-input { + background-color: #1cbbb4 !important; + border-color: #1cbbb4 !important; + color: #ffffff !important; +} + +switch.blue[checked] .wx-switch-input, +checkbox.blue[checked] .wx-checkbox-input, +radio.blue[checked] .wx-radio-input, +switch.blue.checked .uni-switch-input, +checkbox.blue.checked .uni-checkbox-input, +radio.blue.checked .uni-radio-input { + background-color: #0081ff !important; + border-color: #0081ff !important; + color: #ffffff !important; +} + +switch.purple[checked] .wx-switch-input, +checkbox.purple[checked] .wx-checkbox-input, +radio.purple[checked] .wx-radio-input, +switch.purple.checked .uni-switch-input, +checkbox.purple.checked .uni-checkbox-input, +radio.purple.checked .uni-radio-input { + background-color: #6739b6 !important; + border-color: #6739b6 !important; + color: #ffffff !important; +} + +switch.mauve[checked] .wx-switch-input, +checkbox.mauve[checked] .wx-checkbox-input, +radio.mauve[checked] .wx-radio-input, +switch.mauve.checked .uni-switch-input, +checkbox.mauve.checked .uni-checkbox-input, +radio.mauve.checked .uni-radio-input { + background-color: #9c26b0 !important; + border-color: #9c26b0 !important; + color: #ffffff !important; +} + +switch.pink[checked] .wx-switch-input, +checkbox.pink[checked] .wx-checkbox-input, +radio.pink[checked] .wx-radio-input, +switch.pink.checked .uni-switch-input, +checkbox.pink.checked .uni-checkbox-input, +radio.pink.checked .uni-radio-input { + background-color: #e03997 !important; + border-color: #e03997 !important; + color: #ffffff !important; +} + +switch.brown[checked] .wx-switch-input, +checkbox.brown[checked] .wx-checkbox-input, +radio.brown[checked] .wx-radio-input, +switch.brown.checked .uni-switch-input, +checkbox.brown.checked .uni-checkbox-input, +radio.brown.checked .uni-radio-input { + background-color: #a5673f !important; + border-color: #a5673f !important; + color: #ffffff !important; +} + +switch.grey[checked] .wx-switch-input, +checkbox.grey[checked] .wx-checkbox-input, +radio.grey[checked] .wx-radio-input, +switch.grey.checked .uni-switch-input, +checkbox.grey.checked .uni-checkbox-input, +radio.grey.checked .uni-radio-input { + background-color: #8799a3 !important; + border-color: #8799a3 !important; + color: #ffffff !important; +} + +switch.gray[checked] .wx-switch-input, +checkbox.gray[checked] .wx-checkbox-input, +radio.gray[checked] .wx-radio-input, +switch.gray.checked .uni-switch-input, +checkbox.gray.checked .uni-checkbox-input, +radio.gray.checked .uni-radio-input { + background-color: #f0f0f0 !important; + border-color: #f0f0f0 !important; + color: #333333 !important; +} + +switch.black[checked] .wx-switch-input, +checkbox.black[checked] .wx-checkbox-input, +radio.black[checked] .wx-radio-input, +switch.black.checked .uni-switch-input, +checkbox.black.checked .uni-checkbox-input, +radio.black.checked .uni-radio-input { + background-color: #333333 !important; + border-color: #333333 !important; + color: #ffffff !important; +} + +switch.white[checked] .wx-switch-input, +checkbox.white[checked] .wx-checkbox-input, +radio.white[checked] .wx-radio-input, +switch.white.checked .uni-switch-input, +checkbox.white.checked .uni-checkbox-input, +radio.white.checked .uni-radio-input { + background-color: #ffffff !important; + border-color: #ffffff !important; + color: #333333 !important; +} + +/* ================== + 边框 + ==================== */ + +/* -- 实线 -- */ + +.solid, +.solid-top, +.solid-right, +.solid-bottom, +.solid-left, +.solids, +.solids-top, +.solids-right, +.solids-bottom, +.solids-left, +.dashed, +.dashed-top, +.dashed-right, +.dashed-bottom, +.dashed-left { + position: relative; +} + +.solid::after, +.solid-top::after, +.solid-right::after, +.solid-bottom::after, +.solid-left::after, +.solids::after, +.solids-top::after, +.solids-right::after, +.solids-bottom::after, +.solids-left::after, +.dashed::after, +.dashed-top::after, +.dashed-right::after, +.dashed-bottom::after, +.dashed-left::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; +} + +.solid::after { + border: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-top::after { + border-top: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-right::after { + border-right: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-bottom::after { + border-bottom: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-left::after { + border-left: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solids::after { + border: 8upx solid #eee; +} + +.solids-top::after { + border-top: 8upx solid #eee; +} + +.solids-right::after { + border-right: 8upx solid #eee; +} + +.solids-bottom::after { + border-bottom: 8upx solid #eee; +} + +.solids-left::after { + border-left: 8upx solid #eee; +} + +/* -- 虚线 -- */ + +.dashed::after { + border: 1upx dashed #ddd; +} + +.dashed-top::after { + border-top: 1upx dashed #ddd; +} + +.dashed-right::after { + border-right: 1upx dashed #ddd; +} + +.dashed-bottom::after { + border-bottom: 1upx dashed #ddd; +} + +.dashed-left::after { + border-left: 1upx dashed #ddd; +} + +/* -- 阴影 -- */ + +.shadow[class*='white'] { + --ShadowSize: 0 1upx 6upx; +} + +.shadow-lg { + --ShadowSize: 0upx 40upx 100upx 0upx; +} + +.shadow-warp { + position: relative; + box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1); +} + +.shadow-warp:before, +.shadow-warp:after { + position: absolute; + content: ""; + top: 20upx; + bottom: 30upx; + left: 20upx; + width: 50%; + box-shadow: 0 30upx 20upx rgba(0, 0, 0, 0.2); + transform: rotate(-3deg); + z-index: -1; +} + +.shadow-warp:after { + right: 20upx; + left: auto; + transform: rotate(3deg); +} + +.shadow-blur { + position: relative; +} + +.shadow-blur::before { + content: ""; + display: block; + background: inherit; + filter: blur(10upx); + position: absolute; + width: 100%; + height: 100%; + top: 10upx; + left: 10upx; + z-index: -1; + opacity: 0.4; + transform-origin: 0 0; + border-radius: inherit; + transform: scale(1, 1); +} + +/* ================== + 按钮 + ==================== */ + +.cu-btn { + position: relative; + border: 0upx; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0 30upx; + font-size: 28upx; + height: 64upx; + line-height: 1; + text-align: center; + text-decoration: none; + overflow: visible; + margin-left: initial; + transform: translate(0upx, 0upx); + margin-right: initial; +} + +.cu-btn::after { + display: none; +} + +.cu-btn:not([class*="bg-"]) { + background-color: #f0f0f0; +} + +.cu-btn[class*="line"] { + background-color: transparent; +} + +.cu-btn[class*="line"]::after { + content: " "; + display: block; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1upx solid currentColor; + transform: scale(0.5); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: 12upx; + z-index: 1; + pointer-events: none; +} + +.cu-btn.round[class*="line"]::after { + border-radius: 1000upx; +} + +.cu-btn[class*="lines"]::after { + border: 6upx solid currentColor; +} + +.cu-btn[class*="bg-"]::after { + display: none; +} + +.cu-btn.sm { + padding: 0 20upx; + font-size: 20upx; + height: 48upx; +} + +.cu-btn.lg { + padding: 0 40upx; + font-size: 32upx; + height: 80upx; +} + +.cu-btn.cuIcon.sm { + width: 48upx; + height: 48upx; +} + +.cu-btn.cuIcon { + width: 64upx; + height: 64upx; + border-radius: 500upx; + padding: 0; +} + +button.cuIcon.lg { + width: 80upx; + height: 80upx; +} + +.cu-btn.shadow-blur::before { + top: 4upx; + left: 4upx; + filter: blur(6upx); + opacity: 0.6; +} + +.cu-btn.button-hover { + transform: translate(1upx, 1upx); +} + +.block { + display: block; +} + +.cu-btn.block { + display: flex; +} + +.cu-btn[disabled] { + opacity: 0.6; + color: #ffffff; +} + +/* ================== + 徽章 + ==================== */ + +.cu-tag { + font-size: 24upx; + vertical-align: middle; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0upx 16upx; + height: 48upx; + font-family: Helvetica Neue, Helvetica, sans-serif; + white-space: nowrap; +} + +.cu-tag:not([class*="bg"]):not([class*="line"]) { + background-color: #f1f1f1; +} + +.cu-tag[class*="line-"]::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1upx solid currentColor; + transform: scale(0.5); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: inherit; + z-index: 1; + pointer-events: none; +} + +.cu-tag.radius[class*="line"]::after { + border-radius: 12upx; +} + +.cu-tag.round[class*="line"]::after { + border-radius: 1000upx; +} + +.cu-tag[class*="line-"]::after { + border-radius: 0; +} + +.cu-tag+.cu-tag { + margin-left: 10upx; +} + +.cu-tag.sm { + font-size: 20upx; + padding: 0upx 12upx; + height: 32upx; +} + +.cu-capsule { + display: inline-flex; + vertical-align: middle; +} + +.cu-capsule+.cu-capsule { + margin-left: 10upx; +} + +.cu-capsule .cu-tag { + margin: 0; +} + +.cu-capsule .cu-tag[class*="line-"]:last-child::after { + border-left: 0upx solid transparent; +} + +.cu-capsule .cu-tag[class*="line-"]:first-child::after { + border-right: 0upx solid transparent; +} + +.cu-capsule.radius .cu-tag:first-child { + border-top-left-radius: 6upx; + border-bottom-left-radius: 6upx; +} + +.cu-capsule.radius .cu-tag:last-child::after, +.cu-capsule.radius .cu-tag[class*="line-"] { + border-top-right-radius: 12upx; + border-bottom-right-radius: 12upx; +} + +.cu-capsule.round .cu-tag:first-child { + border-top-left-radius: 200upx; + border-bottom-left-radius: 200upx; + text-indent: 4upx; +} + +.cu-capsule.round .cu-tag:last-child::after, +.cu-capsule.round .cu-tag:last-child { + border-top-right-radius: 200upx; + border-bottom-right-radius: 200upx; + text-indent: -4upx; +} + +.cu-tag.badge { + border-radius: 200upx; + position: absolute; + top: -10upx; + right: -10upx; + font-size: 20upx; + padding: 0upx 10upx; + height: 28upx; + color: #ffffff; +} + +.cu-tag.badge:not([class*="bg-"]) { + background-color: #dd514c; +} + +.cu-tag:empty:not([class*="cuIcon-"]) { + padding: 0upx; + width: 16upx; + height: 16upx; + top: -4upx; + right: -4upx; +} + +.cu-tag[class*="cuIcon-"] { + width: 32upx; + height: 32upx; + top: -4upx; + right: -4upx; +} + +/* ================== + 头像 + ==================== */ + +.cu-avatar { + font-variant: small-caps; + margin: 0; + padding: 0; + display: inline-flex; + text-align: center; + justify-content: center; + align-items: center; + background-color: #ccc; + color: #ffffff; + white-space: nowrap; + position: relative; + width: 64upx; + height: 64upx; + background-size: cover; + background-position: center; + vertical-align: middle; + font-size: 1.5em; +} + +.cu-avatar.sm { + width: 48upx; + height: 48upx; + font-size: 1em; +} + +.cu-avatar.lg { + width: 96upx; + height: 96upx; + font-size: 2em; +} + +.cu-avatar.xl { + width: 128upx; + height: 128upx; + font-size: 2.5em; +} + +.cu-avatar .avatar-text { + font-size: 0.4em; +} + +.cu-avatar-group { + direction: rtl; + unicode-bidi: bidi-override; + padding: 0 10upx 0 40upx; + display: inline-block; +} + +.cu-avatar-group .cu-avatar { + margin-left: -30upx; + border: 4upx solid #f1f1f1; + vertical-align: middle; +} + +.cu-avatar-group .cu-avatar.sm { + margin-left: -20upx; + border: 1upx solid #f1f1f1; +} + +/* ================== + 进度条 + ==================== */ + +.cu-progress { + overflow: hidden; + height: 28upx; + background-color: #ebeef5; + display: inline-flex; + align-items: center; + width: 100%; +} + +.cu-progress+view, +.cu-progress+text { + line-height: 1; +} + +.cu-progress.xs { + height: 10upx; +} + +.cu-progress.sm { + height: 20upx; +} + +.cu-progress view { + width: 0; + height: 100%; + align-items: center; + display: flex; + justify-items: flex-end; + justify-content: space-around; + font-size: 20upx; + color: #ffffff; + transition: width 0.6s ease; +} + +.cu-progress text { + align-items: center; + display: flex; + font-size: 20upx; + color: #333333; + text-indent: 10upx; +} + +.cu-progress.text-progress { + padding-right: 60upx; +} + +.cu-progress.striped view { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 72upx 72upx; +} + +.cu-progress.active view { + animation: progress-stripes 2s linear infinite; +} + +@keyframes progress-stripes { + from { + background-position: 72upx 0; + } + + to { + background-position: 0 0; + } +} + +/* ================== + 加载 + ==================== */ + +.cu-load { + display: block; + line-height: 3em; + text-align: center; +} + +.cu-load::before { + font-family: "cuIcon"; + display: inline-block; + margin-right: 6upx; +} + +.cu-load.loading::before { + content: "\e67a"; + animation: cuIcon-spin 2s infinite linear; +} + +.cu-load.loading::after { + content: "加载中..."; +} + +.cu-load.over::before { + content: "\e64a"; +} + +.cu-load.over::after { + content: "没有更多了"; +} + +.cu-load.erro::before { + content: "\e658"; +} + +.cu-load.erro::after { + content: "加载失败"; +} + +.cu-load.load-cuIcon::before { + font-size: 32upx; +} + +.cu-load.load-cuIcon::after { + display: none; +} + +.cu-load.load-cuIcon.over { + display: none; +} + +.cu-load.load-modal { + position: fixed; + top: 0; + right: 0; + bottom: 140upx; + left: 0; + margin: auto; + width: 260upx; + height: 260upx; + background-color: #ffffff; + border-radius: 10upx; + box-shadow: 0 0 0upx 2000upx rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + font-size: 28upx; + z-index: 9999; + line-height: 2.4em; +} + +.cu-load.load-modal [class*="cuIcon-"] { + font-size: 60upx; +} + +.cu-load.load-modal image { + width: 70upx; + height: 70upx; +} + +.cu-load.load-modal::after { + content: ""; + position: absolute; + background-color: #ffffff; + border-radius: 50%; + width: 200upx; + height: 200upx; + font-size: 10px; + border-top: 6upx solid rgba(0, 0, 0, 0.05); + border-right: 6upx solid rgba(0, 0, 0, 0.05); + border-bottom: 6upx solid rgba(0, 0, 0, 0.05); + border-left: 6upx solid #f37b1d; + animation: cuIcon-spin 1s infinite linear; + z-index: -1; +} + +.load-progress { + pointer-events: none; + top: 0; + position: fixed; + width: 100%; + left: 0; + z-index: 2000; +} + +.load-progress.hide { + display: none; +} + +.load-progress .load-progress-bar { + position: relative; + width: 100%; + height: 4upx; + overflow: hidden; + transition: all 200ms ease 0s; +} + +.load-progress .load-progress-spinner { + position: absolute; + top: 10upx; + right: 10upx; + z-index: 2000; + display: block; +} + +.load-progress .load-progress-spinner::after { + content: ""; + display: block; + width: 24upx; + height: 24upx; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: solid 4upx transparent; + border-top-color: inherit; + border-left-color: inherit; + border-radius: 50%; + -webkit-animation: load-progress-spinner 0.4s linear infinite; + animation: load-progress-spinner 0.4s linear infinite; +} + +@-webkit-keyframes load-progress-spinner { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes load-progress-spinner { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +/* ================== + 列表 + ==================== */ +.grayscale { + filter: grayscale(1); +} + +.cu-list+.cu-list { + margin-top: 30upx +} + +.cu-list>.cu-item { + transition: all .6s ease-in-out 0s; + transform: translateX(0upx) +} + +.cu-list>.cu-item.move-cur { + transform: translateX(-260upx) +} + +.cu-list>.cu-item .move { + position: absolute; + right: 0; + display: flex; + width: 260upx; + height: 100%; + transform: translateX(100%) +} + +.cu-list>.cu-item .move view { + display: flex; + flex: 1; + justify-content: center; + align-items: center +} + +.cu-list.menu-avatar { + overflow: hidden; +} + +.cu-list.menu-avatar>.cu-item { + position: relative; + display: flex; + padding-right: 10upx; + height: 140upx; + background-color: #ffffff; + justify-content: flex-end; + align-items: center +} + +.cu-list.menu-avatar>.cu-item>.cu-avatar { + position: absolute; + left: 30upx +} + +.cu-list.menu-avatar>.cu-item .flex .text-cut { + max-width: 510upx +} + +.cu-list.menu-avatar>.cu-item .content { + position: absolute; + left: 146upx; + width: calc(100% - 96upx - 60upx - 120upx - 20upx); + line-height: 1.6em; +} + +.cu-list.menu-avatar>.cu-item .content.flex-sub { + width: calc(100% - 96upx - 60upx - 20upx); +} + +.cu-list.menu-avatar>.cu-item .content>view:first-child { + font-size: 30upx; + display: flex; + align-items: center +} + +.cu-list.menu-avatar>.cu-item .content .cu-tag.sm { + display: inline-block; + margin-left: 10upx; + height: 28upx; + font-size: 16upx; + line-height: 32upx +} + +.cu-list.menu-avatar>.cu-item .action { + width: 100upx; + text-align: center +} + +.cu-list.menu-avatar>.cu-item .action view+view { + margin-top: 10upx +} + +.cu-list.menu-avatar.comment>.cu-item .content { + position: relative; + left: 0; + width: auto; + flex: 1; +} + +.cu-list.menu-avatar.comment>.cu-item { + padding: 30upx 30upx 30upx 120upx; + height: auto +} + +.cu-list.menu-avatar.comment .cu-avatar { + align-self: flex-start +} + +.cu-list.menu>.cu-item { + position: relative; + display: flex; + padding: 0 30upx; + min-height: 100upx; + background-color: #ffffff; + justify-content: space-between; + align-items: center +} + +.cu-list.menu>.cu-item:last-child:after { + border: none +} + +.cu-list.menu-avatar>.cu-item:after, +.cu-list.menu>.cu-item:after { + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + width: 200%; + height: 200%; + border-bottom: 1upx solid #ddd; + border-radius: inherit; + content: " "; + transform: scale(.5); + transform-origin: 0 0; + pointer-events: none +} + +.cu-list.menu>.cu-item.grayscale { + background-color: #f5f5f5 +} + +.cu-list.menu>.cu-item.cur { + background-color: #fcf7e9 +} + +.cu-list.menu>.cu-item.arrow { + padding-right: 90upx +} + +.cu-list.menu>.cu-item.arrow:before { + position: absolute; + top: 0; + right: 30upx; + bottom: 0; + display: block; + margin: auto; + width: 30upx; + height: 30upx; + color: #8799a3; + content: "\e6a3"; + text-align: center; + font-size: 34upx; + font-family: cuIcon; + line-height: 30upx +} + +.cu-list.menu>.cu-item button.content { + padding: 0; + background-color: transparent; + justify-content: flex-start +} + +.cu-list.menu>.cu-item button.content:after { + display: none +} + +.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar { + border-color: #ffffff +} + +.cu-list.menu>.cu-item .content>view:first-child { + display: flex; + align-items: center +} + +.cu-list.menu>.cu-item .content>text[class*=cuIcon] { + display: inline-block; + margin-right: 10upx; + width: 1.6em; + text-align: center +} + +.cu-list.menu>.cu-item .content>image { + display: inline-block; + margin-right: 10upx; + width: 1.6em; + height: 1.6em; + vertical-align: middle +} + +.cu-list.menu>.cu-item .content { + font-size: 30upx; + line-height: 1.6em; + flex: 1 +} + +.cu-list.menu>.cu-item .content .cu-tag.sm { + display: inline-block; + margin-left: 10upx; + height: 28upx; + font-size: 16upx; + line-height: 32upx +} + +.cu-list.menu>.cu-item .action .cu-tag:empty { + right: 10upx +} + +.cu-list.menu { + display: block; + overflow: hidden +} + +.cu-list.menu.sm-border>.cu-item:after { + left: 30upx; + width: calc(200% - 120upx) +} + +.cu-list.grid>.cu-item { + position: relative; + display: flex; + padding: 20upx 0 30upx; + transition-duration: 0s; + flex-direction: column +} + +.cu-list.grid>.cu-item:after { + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + width: 200%; + height: 200%; + border-right: 1px solid rgba(0, 0, 0, .1); + border-bottom: 1px solid rgba(0, 0, 0, .1); + border-radius: inherit; + content: " "; + transform: scale(.5); + transform-origin: 0 0; + pointer-events: none +} + +.cu-list.grid>.cu-item text { + display: block; + margin-top: 10upx; + color: #888; + font-size: 26upx; + line-height: 40upx +} + +.cu-list.grid>.cu-item [class*=cuIcon] { + position: relative; + display: block; + margin-top: 20upx; + width: 100%; + font-size: 48upx +} + +.cu-list.grid>.cu-item .cu-tag { + right: auto; + left: 50%; + margin-left: 20upx +} + +.cu-list.grid { + background-color: #ffffff; + text-align: center +} + +.cu-list.grid.no-border>.cu-item { + padding-top: 10upx; + padding-bottom: 20upx +} + +.cu-list.grid.no-border>.cu-item:after { + border: none +} + +.cu-list.grid.no-border { + padding: 20upx 10upx +} + +.cu-list.grid.col-3>.cu-item:nth-child(3n):after, +.cu-list.grid.col-4>.cu-item:nth-child(4n):after, +.cu-list.grid.col-5>.cu-item:nth-child(5n):after { + border-right-width: 0 +} + +.cu-list.card-menu { + overflow: hidden; + margin-right: 30upx; + margin-left: 30upx; + border-radius: 20upx +} + + +/* ================== + 操作条 + ==================== */ + +.cu-bar { + display: flex; + position: relative; + align-items: center; + min-height: 100upx; + justify-content: space-between; +} + +.cu-bar .action { + display: flex; + align-items: center; + height: 100%; + justify-content: center; + max-width: 100%; +} + +.cu-bar .action.border-title { + position: relative; + top: -10upx; +} + +.cu-bar .action.border-title text[class*="bg-"]:last-child { + position: absolute; + bottom: -0.5rem; + min-width: 2rem; + height: 6upx; + left: 0; +} + +.cu-bar .action.sub-title { + position: relative; + top: -0.2rem; +} + +.cu-bar .action.sub-title text { + position: relative; + z-index: 1; +} + +.cu-bar .action.sub-title text[class*="bg-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.2rem; + border-radius: 6upx; + width: 100%; + height: 0.6rem; + left: 0.6rem; + opacity: 0.3; + z-index: 0; +} + +.cu-bar .action.sub-title text[class*="text-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.7rem; + left: 0.5rem; + opacity: 0.2; + z-index: 0; + text-align: right; + font-weight: 900; + font-size: 36upx; +} + +.cu-bar.justify-center .action.border-title text:last-child, +.cu-bar.justify-center .action.sub-title text:last-child { + left: 0; + right: 0; + margin: auto; + text-align: center; +} + +.cu-bar .action:first-child { + margin-left: 30upx; + font-size: 30upx; +} + +.cu-bar .action text.text-cut { + text-align: left; + width: 100%; +} + +.cu-bar .cu-avatar:first-child { + margin-left: 20upx; +} + +.cu-bar .action:first-child>text[class*="cuIcon-"] { + margin-left: -0.3em; + margin-right: 0.3em; +} + +.cu-bar .action:last-child { + margin-right: 30upx; +} + +.cu-bar .action>text[class*="cuIcon-"], +.cu-bar .action>view[class*="cuIcon-"] { + font-size: 36upx; +} + +.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] { + margin-left: 0.5em; +} + +.cu-bar .content { + position: absolute; + text-align: center; + width: calc(100% - 340upx); + left: 0; + right: 0; + bottom: 0; + top: 0; + margin: auto; + height: 60upx; + font-size: 32upx; + line-height: 60upx; + cursor: none; + pointer-events: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.cu-bar.ios .content { + bottom: 7px; + height: 30px; + font-size: 32upx; + line-height: 30px; +} + +.cu-bar.btn-group { + justify-content: space-around; +} + +.cu-bar.btn-group button { + padding: 20upx 32upx; +} + +.cu-bar.btn-group button { + flex: 1; + margin: 0 20upx; + max-width: 50%; +} + +.cu-bar .search-form { + background-color: #f5f5f5; + line-height: 64upx; + height: 64upx; + font-size: 24upx; + color: #333333; + flex: 1; + display: flex; + align-items: center; + margin: 0 30upx; +} + +.cu-bar .search-form+.action { + margin-right: 30upx; +} + +.cu-bar .search-form input { + flex: 1; + padding-right: 30upx; + height: 64upx; + line-height: 64upx; + font-size: 26upx; + background-color: transparent; +} + +.cu-bar .search-form [class*="cuIcon-"] { + margin: 0 0.5em 0 0.8em; +} + +.cu-bar .search-form [class*="cuIcon-"]::before { + top: 0upx; +} + +.cu-bar.fixed, +.nav.fixed { + position: fixed; + width: 100%; + top: 0; + z-index: 1024; + box-shadow: 0 1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.foot { + position: fixed; + width: 100%; + bottom: 0; + z-index: 1024; + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar { + padding: 0; + height: calc(100upx + env(safe-area-inset-bottom) / 2); + padding-bottom: calc(env(safe-area-inset-bottom) / 2); +} + +.cu-tabbar-height { + min-height: 100upx; + height: calc(100upx + env(safe-area-inset-bottom) / 2); +} + +.cu-bar.tabbar.shadow { + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar .action { + font-size: 22upx; + position: relative; + flex: 1; + text-align: center; + padding: 0; + display: block; + height: auto; + line-height: 1; + margin: 0; + background-color: inherit; + overflow: initial; +} + +.cu-bar.tabbar.shop .action { + width: 140upx; + flex: initial; +} + +.cu-bar.tabbar .action.add-action { + position: relative; + z-index: 2; + padding-top: 50upx; +} + +.cu-bar.tabbar .action.add-action [class*="cuIcon-"] { + position: absolute; + width: 70upx; + z-index: 2; + height: 70upx; + border-radius: 50%; + line-height: 70upx; + font-size: 50upx; + top: -35upx; + left: 0; + right: 0; + margin: auto; + padding: 0; +} + +.cu-bar.tabbar .action.add-action::after { + content: ""; + position: absolute; + width: 100upx; + height: 100upx; + top: -50upx; + left: 0; + right: 0; + margin: auto; + box-shadow: 0 -3upx 8upx rgba(0, 0, 0, 0.08); + border-radius: 50upx; + background-color: inherit; + z-index: 0; +} + +.cu-bar.tabbar .action.add-action::before { + content: ""; + position: absolute; + width: 100upx; + height: 30upx; + bottom: 30upx; + left: 0; + right: 0; + margin: auto; + background-color: inherit; + z-index: 1; +} + +.cu-bar.tabbar .btn-group { + flex: 1; + display: flex; + justify-content: space-around; + align-items: center; + padding: 0 10upx; +} + +.cu-bar.tabbar button.action::after { + border: 0; +} + +.cu-bar.tabbar .action [class*="cuIcon-"] { + width: 100upx; + position: relative; + display: block; + height: auto; + margin: 0 auto 10upx; + text-align: center; + font-size: 40upx; +} + +.cu-bar.tabbar .action .cuIcon-cu-image { + margin: 0 auto; +} + +.cu-bar.tabbar .action .cuIcon-cu-image image { + width: 50upx; + height: 50upx; + display: inline-block; +} + +.cu-bar.tabbar .submit { + align-items: center; + display: flex; + justify-content: center; + text-align: center; + position: relative; + flex: 2; + align-self: stretch; +} + +.cu-bar.tabbar .submit:last-child { + flex: 2.6; +} + +.cu-bar.tabbar .submit+.submit { + flex: 2; +} + +.cu-bar.tabbar.border .action::before { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + transform: scale(0.5); + transform-origin: 0 0; + border-right: 1upx solid rgba(0, 0, 0, 0.1); + z-index: 3; +} + +.cu-bar.tabbar.border .action:last-child:before { + display: none; +} + +.cu-bar.input { + padding-right: 20upx; + background-color: #ffffff; +} + +.cu-bar.input input { + overflow: initial; + line-height: 64upx; + height: 64upx; + min-height: 64upx; + flex: 1; + font-size: 30upx; + margin: 0 20upx; +} + +.cu-bar.input .action { + margin-left: 20upx; +} + +.cu-bar.input .action [class*="cuIcon-"] { + font-size: 48upx; +} + +.cu-bar.input input+.action { + margin-right: 20upx; + margin-left: 0upx; +} + +.cu-bar.input .action:first-child [class*="cuIcon-"] { + margin-left: 0upx; +} + +.cu-custom { + display: block; + position: relative; +} + +.cu-custom .cu-bar .content { + width: calc(100% - 440upx); +} + +/* #ifdef MP-ALIPAY */ +.cu-custom .cu-bar .action .cuIcon-back { + opacity: 0; +} + +/* #endif */ + +.cu-custom .cu-bar .content image { + height: 60upx; + width: 240upx; +} + +.cu-custom .cu-bar { + min-height: 0px; + /* #ifdef MP-WEIXIN */ + padding-right: 220upx; + /* #endif */ + /* #ifdef MP-ALIPAY */ + padding-right: 150upx; + /* #endif */ + box-shadow: 0upx 0upx 0upx; + z-index: 9999; +} + +.cu-custom .cu-bar .border-custom { + position: relative; + background: rgba(0, 0, 0, 0.15); + border-radius: 1000upx; + height: 30px; +} + +.cu-custom .cu-bar .border-custom::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border: 1upx solid #ffffff; + opacity: 0.5; +} + +.cu-custom .cu-bar .border-custom::before { + content: " "; + width: 1upx; + height: 110%; + position: absolute; + top: 22.5%; + left: 0; + right: 0; + margin: auto; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + opacity: 0.6; + background-color: #ffffff; +} + +.cu-custom .cu-bar .border-custom text { + display: block; + flex: 1; + margin: auto !important; + text-align: center; + font-size: 34upx; +} + +/* ================== + 导航栏 + ==================== */ + +.nav { + white-space: nowrap; +} + +::-webkit-scrollbar { + display: none; +} + +.nav .cu-item { + height: 90upx; + display: inline-block; + line-height: 90upx; + margin: 0 10upx; + padding: 0 20upx; +} + +.nav .cu-item.cur { + border-bottom: 4upx solid; +} + +/* ================== + 时间轴 + ==================== */ + +.cu-timeline { + display: block; + background-color: #ffffff; +} + +.cu-timeline .cu-time { + width: 120upx; + text-align: center; + padding: 20upx 0; + font-size: 26upx; + color: #888; + display: block; +} + +.cu-timeline>.cu-item { + padding: 30upx 30upx 30upx 120upx; + position: relative; + display: block; + z-index: 0; +} + +.cu-timeline>.cu-item:not([class*="text-"]) { + color: #ccc; +} + +.cu-timeline>.cu-item::after { + content: ""; + display: block; + position: absolute; + width: 1upx; + background-color: #ddd; + left: 60upx; + height: 100%; + top: 0; + z-index: 8; +} + +.cu-timeline>.cu-item::before { + font-family: "cuIcon"; + display: block; + position: absolute; + top: 36upx; + z-index: 9; + background-color: #ffffff; + width: 50upx; + height: 50upx; + text-align: center; + border: none; + line-height: 50upx; + left: 36upx; +} + +.cu-timeline>.cu-item:not([class*="cuIcon-"])::before { + content: "\e763"; +} + +.cu-timeline>.cu-item[class*="cuIcon-"]::before { + background-color: #ffffff; + width: 50upx; + height: 50upx; + text-align: center; + border: none; + line-height: 50upx; + left: 36upx; +} + +.cu-timeline>.cu-item>.content { + padding: 30upx; + border-radius: 6upx; + display: block; + line-height: 1.6; +} + +.cu-timeline>.cu-item>.content:not([class*="bg-"]) { + background-color: #f1f1f1; + color: #333333; +} + +.cu-timeline>.cu-item>.content+.content { + margin-top: 20upx; +} + +/* ================== + 聊天 + ==================== */ + +.cu-chat { + display: flex; + flex-direction: column; +} + +.cu-chat .cu-item { + display: flex; + padding: 30upx 30upx 70upx; + position: relative; +} + +.cu-chat .cu-item>.cu-avatar { + width: 80upx; + height: 80upx; +} + +.cu-chat .cu-item>.main { + max-width: calc(100% - 260upx); + margin: 0 40upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>image { + height: 320upx; +} + +.cu-chat .cu-item>.main .content { + padding: 20upx; + border-radius: 6upx; + display: inline-flex; + max-width: 100%; + align-items: center; + font-size: 30upx; + position: relative; + min-height: 80upx; + line-height: 40upx; + text-align: left; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"]) { + background-color: #ffffff; + color: #333333; +} + +.cu-chat .cu-item .date { + position: absolute; + font-size: 24upx; + color: #8799a3; + width: calc(100% - 320upx); + bottom: 20upx; + left: 160upx; +} + +.cu-chat .cu-item .action { + padding: 0 30upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>.main .content::after { + content: ""; + top: 27upx; + transform: rotate(45deg); + position: absolute; + z-index: 100; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; +} + +.cu-chat .cu-item.self>.main .content::after { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item>.main .content::before { + content: ""; + top: 30upx; + transform: rotate(45deg); + position: absolute; + z-index: -1; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; + filter: blur(5upx); + opacity: 0.3; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"])::before { + background-color: #333333; + opacity: 0.1; +} + +.cu-chat .cu-item.self>.main .content::before { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item.self { + justify-content: flex-end; + text-align: right; +} + +.cu-chat .cu-info { + display: inline-block; + margin: 20upx auto; + font-size: 24upx; + padding: 8upx 12upx; + background-color: rgba(0, 0, 0, 0.2); + border-radius: 6upx; + color: #ffffff; + max-width: 400upx; + line-height: 1.4; +} + +/* ================== + 卡片 + ==================== */ + +.cu-card { + display: block; + overflow: hidden; +} + +.cu-card>.cu-item { + display: block; + background-color: #ffffff; + overflow: hidden; + border-radius: 10upx; + margin: 30upx; +} + +.cu-card>.cu-item.shadow-blur { + overflow: initial; +} + +.cu-card.no-card>.cu-item { + margin: 0upx; + border-radius: 0upx; +} + +.cu-card .grid.grid-square { + margin-bottom: -20upx; +} + +.cu-card.case .image { + position: relative; +} + +.cu-card.case .image image { + width: 100%; +} + +.cu-card.case .image .cu-tag { + position: absolute; + right: 0; + top: 0; +} + +.cu-card.case .image .cu-bar { + position: absolute; + bottom: 0; + width: 100%; + background-color: transparent; + padding: 0upx 30upx; +} + +.cu-card.case.no-card .image { + margin: 30upx 30upx 0; + overflow: hidden; + border-radius: 10upx; +} + +.cu-card.dynamic { + display: block; +} + +.cu-card.dynamic>.cu-item { + display: block; + background-color: #ffffff; + overflow: hidden; +} + +.cu-card.dynamic>.cu-item>.text-content { + padding: 0 30upx 0; + max-height: 6.4em; + overflow: hidden; + font-size: 30upx; + margin-bottom: 20upx; +} + +.cu-card.dynamic>.cu-item .square-img { + width: 100%; + height: 200upx; + border-radius: 6upx; +} + +.cu-card.dynamic>.cu-item .only-img { + width: 100%; + height: 320upx; + border-radius: 6upx; +} + +/* card.dynamic>.cu-item .comment { + padding: 20upx; + background-color: #f1f1f1; + margin: 0 30upx 30upx; + border-radius: 6upx; +} */ + +.cu-card.article { + display: block; +} + +.cu-card.article>.cu-item { + padding-bottom: 30upx; +} + +.cu-card.article>.cu-item .title { + font-size: 30upx; + font-weight: 900; + color: #333333; + line-height: 100upx; + padding: 0 30upx; +} + +.cu-card.article>.cu-item .content { + display: flex; + padding: 0 30upx; +} + +.cu-card.article>.cu-item .content>image { + width: 240upx; + height: 6.4em; + margin-right: 20upx; + border-radius: 6upx; +} + +.cu-card.article>.cu-item .content .desc { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.cu-card.article>.cu-item .content .text-content { + font-size: 28upx; + color: #888; + height: 4.8em; + overflow: hidden; +} + +/* ================== + 表单 + ==================== */ + +.cu-form-group { + background-color: #ffffff; + padding: 1upx 30upx; + display: flex; + align-items: center; + min-height: 100upx; + justify-content: space-between; +} + +.cu-form-group+.cu-form-group { + border-top: 1upx solid #eee; +} + +.cu-form-group .title { + text-align: justify; + padding-right: 30upx; + font-size: 30upx; + position: relative; + height: 60upx; + line-height: 60upx; +} + +.cu-form-group input { + flex: 1; + font-size: 30upx; + color: #555; + padding-right: 20upx; +} + +.cu-form-group>text[class*="cuIcon-"] { + font-size: 36upx; + padding: 0; + box-sizing: border-box; +} + +.cu-form-group textarea { + margin: 32upx 0 30upx; + height: 4.6em; + width: 100%; + line-height: 1.2em; + flex: 1; + font-size: 28upx; + padding: 0; +} + +.cu-form-group.align-start .title { + height: 1em; + margin-top: 32upx; + line-height: 1em; +} + +.cu-form-group picker { + flex: 1; + padding-right: 40upx; + overflow: hidden; + position: relative; +} + +.cu-form-group picker .picker { + line-height: 100upx; + font-size: 28upx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-align: right; +} + +.cu-form-group picker::after { + font-family: cuIcon; + display: block; + content: "\e6a3"; + position: absolute; + font-size: 34upx; + color: #8799a3; + line-height: 100upx; + width: 60upx; + text-align: center; + top: 0; + bottom: 0; + right: -20upx; + margin: auto; +} + +.cu-form-group textarea[disabled], +.cu-form-group textarea[disabled] .placeholder { + color: transparent; +} + +/* ================== + 模态窗口 + ==================== */ + +.cu-modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1110; + opacity: 0; + outline: 0; + text-align: center; + -ms-transform: scale(1.185); + transform: scale(1.185); + backface-visibility: hidden; + perspective: 2000upx; + background: rgba(0, 0, 0, 0.6); + transition: all 0.3s ease-in-out 0s; + pointer-events: none; +} + +.cu-modal::before { + content: "\200B"; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.cu-modal.show { + opacity: 1; + transition-duration: 0.3s; + -ms-transform: scale(1); + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; + pointer-events: auto; +} + +.cu-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 680upx; + max-width: 100%; + background-color: #f8f8f8; + border-radius: 10upx; + overflow: hidden; +} + +.cu-modal.bottom-modal::before { + vertical-align: bottom; +} + +.cu-modal.bottom-modal .cu-dialog { + width: 100%; + border-radius: 0; +} + +.cu-modal.bottom-modal { + margin-bottom: -1000upx; +} + +.cu-modal.bottom-modal.show { + margin-bottom: 0; +} + +.cu-modal.drawer-modal { + transform: scale(1); + display: flex; +} + +.cu-modal.drawer-modal .cu-dialog { + height: 100%; + min-width: 200upx; + border-radius: 0; + margin: initial; + transition-duration: 0.3s; +} + +.cu-modal.drawer-modal.justify-start .cu-dialog { + transform: translateX(-100%); +} + +.cu-modal.drawer-modal.justify-end .cu-dialog { + transform: translateX(100%); +} + +.cu-modal.drawer-modal.show .cu-dialog { + transform: translateX(0%); +} +.cu-modal .cu-dialog>.cu-bar:first-child .action{ + min-width: 100rpx; + margin-right: 0; + min-height: 100rpx; +} +/* ================== + 轮播 + ==================== */ +swiper .a-swiper-dot { + display: inline-block; + width: 16upx; + height: 16upx; + background: rgba(0, 0, 0, .3); + border-radius: 50%; + vertical-align: middle; +} + +swiper[class*="-dot"] .wx-swiper-dots, +swiper[class*="-dot"] .a-swiper-dots, +swiper[class*="-dot"] .uni-swiper-dots { + display: flex; + align-items: center; + width: 100%; + justify-content: center; +} + +swiper.square-dot .wx-swiper-dot, +swiper.square-dot .a-swiper-dot, +swiper.square-dot .uni-swiper-dot { + background-color: #ffffff; + opacity: 0.4; + width: 10upx; + height: 10upx; + border-radius: 20upx; + margin: 0 8upx !important; +} + +swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active, +swiper.square-dot .a-swiper-dot.a-swiper-dot-active, +swiper.square-dot .uni-swiper-dot.uni-swiper-dot-active { + opacity: 1; + width: 30upx; +} + +swiper.round-dot .wx-swiper-dot, +swiper.round-dot .a-swiper-dot, +swiper.round-dot .uni-swiper-dot { + width: 10upx; + height: 10upx; + position: relative; + margin: 4upx 8upx !important; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after, +swiper.round-dot .a-swiper-dot.a-swiper-dot-active::after, +swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active::after { + content: ""; + position: absolute; + width: 10upx; + height: 10upx; + top: 0upx; + left: 0upx; + right: 0; + bottom: 0; + margin: auto; + background-color: #ffffff; + border-radius: 20upx; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active, +swiper.round-dot .a-swiper-dot.a-swiper-dot-active, +swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active { + width: 18upx; + height: 18upx; +} + +.screen-swiper { + min-height: 375upx; +} + +.screen-swiper image, +.screen-swiper video, +.swiper-item image, +.swiper-item video { + width: 100%; + display: block; + height: 100%; + margin: 0; + pointer-events: none; +} + +.card-swiper { + height: 420upx !important; +} + +.card-swiper swiper-item { + width: 610upx !important; + left: 70upx; + box-sizing: border-box; + padding: 40upx 0upx 70upx; + overflow: initial; +} + +.card-swiper swiper-item .swiper-item { + width: 100%; + display: block; + height: 100%; + border-radius: 10upx; + transform: scale(0.9); + transition: all 0.2s ease-in 0s; + overflow: hidden; +} + +.card-swiper swiper-item.cur .swiper-item { + transform: none; + transition: all 0.2s ease-in 0s; +} + + +.tower-swiper { + height: 420upx; + position: relative; + max-width: 750upx; + overflow: hidden; +} + +.tower-swiper .tower-item { + position: absolute; + width: 300upx; + height: 380upx; + top: 0; + bottom: 0; + left: 50%; + margin: auto; + transition: all 0.2s ease-in 0s; + opacity: 1; +} + +.tower-swiper .tower-item.none { + opacity: 0; +} + +.tower-swiper .tower-item .swiper-item { + width: 100%; + height: 100%; + border-radius: 6upx; + overflow: hidden; +} + +/* ================== + 步骤条 + ==================== */ + +.cu-steps { + display: flex; +} + +scroll-view.cu-steps { + display: block; + white-space: nowrap; +} + +scroll-view.cu-steps .cu-item { + display: inline-block; +} + +.cu-steps .cu-item { + flex: 1; + text-align: center; + position: relative; + min-width: 100upx; +} + +.cu-steps .cu-item:not([class*="text-"]) { + color: #8799a3; +} + +.cu-steps .cu-item [class*="cuIcon-"], +.cu-steps .cu-item .num { + display: block; + font-size: 40upx; + line-height: 80upx; +} + +.cu-steps .cu-item::before, +.cu-steps .cu-item::after, +.cu-steps.steps-arrow .cu-item::before, +.cu-steps.steps-arrow .cu-item::after { + content: ""; + display: block; + position: absolute; + height: 0px; + width: calc(100% - 80upx); + border-bottom: 1px solid #ccc; + left: calc(0px - (100% - 80upx) / 2); + top: 40upx; + z-index: 0; +} + +.cu-steps.steps-arrow .cu-item::before, +.cu-steps.steps-arrow .cu-item::after { + content: "\e6a3"; + font-family: 'cuIcon'; + height: 30upx; + border-bottom-width: 0px; + line-height: 30upx; + top: 0; + bottom: 0; + margin: auto; + color: #ccc; +} + +.cu-steps.steps-bottom .cu-item::before, +.cu-steps.steps-bottom .cu-item::after { + bottom: 40upx; + top: initial; +} + +.cu-steps .cu-item::after { + border-bottom: 1px solid currentColor; + width: 0px; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"]::after { + width: calc(100% - 80upx); + color: currentColor; +} + +.cu-steps .cu-item:first-child::before, +.cu-steps .cu-item:first-child::after { + display: none; +} + +.cu-steps .cu-item .num { + width: 40upx; + height: 40upx; + border-radius: 50%; + line-height: 40upx; + margin: 20upx auto; + font-size: 24upx; + border: 1px solid currentColor; + position: relative; + overflow: hidden; +} + +.cu-steps .cu-item[class*="text-"] .num { + background-color: currentColor; +} + +.cu-steps .cu-item .num::before, +.cu-steps .cu-item .num::after { + content: attr(data-index); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + transition: all 0.3s ease-in-out 0s; + transform: translateY(0upx); +} + +.cu-steps .cu-item[class*="text-"] .num::before { + transform: translateY(-40upx); + color: #ffffff; +} + +.cu-steps .cu-item .num::after { + transform: translateY(40upx); + color: #ffffff; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"] .num::after { + content: "\e645"; + font-family: 'cuIcon'; + color: #ffffff; + transform: translateY(0upx); +} + +.cu-steps .cu-item[class*="text-"] .num.err::after { + content: "\e646"; +} + +/* ================== + 布局 + ==================== */ + +/* -- flex弹性布局 -- */ + +.flex { + display: flex; +} + +.basis-xs { + flex-basis: 20%; +} + +.basis-sm { + flex-basis: 40%; +} + +.basis-df { + flex-basis: 50%; +} + +.basis-lg { + flex-basis: 60%; +} + +.basis-xl { + flex-basis: 80%; +} + +.flex-sub { + flex: 1; +} + +.flex-twice { + flex: 2; +} + +.flex-treble { + flex: 3; +} + +.flex-direction { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.align-start { + align-items: flex-start; +} + +.align-end { + align-items: flex-end; +} + +.align-center { + align-items: center; +} + +.align-stretch { + align-items: stretch; +} + +.self-start { + align-self: flex-start; +} + +.self-center { + align-self: flex-center; +} + +.self-end { + align-self: flex-end; +} + +.self-stretch { + align-self: stretch; +} + +.align-stretch { + align-items: stretch; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + +/* grid布局 */ + +.grid { + display: flex; + flex-wrap: wrap; +} + +.grid.grid-square { + overflow: hidden; +} + +.grid.grid-square .cu-tag { + position: absolute; + right: 0; + top: 0; + border-bottom-left-radius: 6upx; + padding: 6upx 12upx; + height: auto; + background-color: rgba(0, 0, 0, 0.5); +} + +.grid.grid-square>view>text[class*="cuIcon-"] { + font-size: 52upx; + position: absolute; + color: #8799a3; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} + +.grid.grid-square>view { + margin-right: 20upx; + margin-bottom: 20upx; + border-radius: 6upx; + position: relative; + overflow: hidden; +} +.grid.grid-square>view.bg-img image { + width: 100%; + height: 100%; + position: absolute; +} +.grid.col-1.grid-square>view { + padding-bottom: 100%; + height: 0; + margin-right: 0; +} + +.grid.col-2.grid-square>view { + padding-bottom: calc((100% - 20upx)/2); + height: 0; + width: calc((100% - 20upx)/2); +} + +.grid.col-3.grid-square>view { + padding-bottom: calc((100% - 40upx)/3); + height: 0; + width: calc((100% - 40upx)/3); +} + +.grid.col-4.grid-square>view { + padding-bottom: calc((100% - 60upx)/4); + height: 0; + width: calc((100% - 60upx)/4); +} + +.grid.col-5.grid-square>view { + padding-bottom: calc((100% - 80upx)/5); + height: 0; + width: calc((100% - 80upx)/5); +} + +.grid.col-2.grid-square>view:nth-child(2n), +.grid.col-3.grid-square>view:nth-child(3n), +.grid.col-4.grid-square>view:nth-child(4n), +.grid.col-5.grid-square>view:nth-child(5n) { + margin-right: 0; +} + +.grid.col-1>view { + width: 100%; +} + +.grid.col-2>view { + width: 50%; +} + +.grid.col-3>view { + width: 33.33%; +} + +.grid.col-4>view { + width: 25%; +} + +.grid.col-5>view { + width: 20%; +} + +/* -- 内外边距 -- */ + +.margin-0 { + margin: 0; +} + +.margin-xs { + margin: 10upx; +} + +.margin-sm { + margin: 20upx; +} + +.margin { + margin: 30upx; +} + +.margin-lg { + margin: 40upx; +} + +.margin-xl { + margin: 50upx; +} + +.margin-top-xs { + margin-top: 10upx; +} + +.margin-top-sm { + margin-top: 20upx; +} + +.margin-top { + margin-top: 30upx; +} + +.margin-top-lg { + margin-top: 40upx; +} + +.margin-top-xl { + margin-top: 50upx; +} + +.margin-right-xs { + margin-right: 10upx; +} + +.margin-right-sm { + margin-right: 20upx; +} + +.margin-right { + margin-right: 30upx; +} + +.margin-right-lg { + margin-right: 40upx; +} + +.margin-right-xl { + margin-right: 50upx; +} + +.margin-bottom-xs { + margin-bottom: 10upx; +} + +.margin-bottom-sm { + margin-bottom: 20upx; +} + +.margin-bottom { + margin-bottom: 30upx; +} + +.margin-bottom-lg { + margin-bottom: 40upx; +} + +.margin-bottom-xl { + margin-bottom: 50upx; +} + +.margin-left-xs { + margin-left: 10upx; +} + +.margin-left-sm { + margin-left: 20upx; +} + +.margin-left { + margin-left: 30upx; +} + +.margin-left-lg { + margin-left: 40upx; +} + +.margin-left-xl { + margin-left: 50upx; +} + +.margin-lr-xs { + margin-left: 10upx; + margin-right: 10upx; +} + +.margin-lr-sm { + margin-left: 20upx; + margin-right: 20upx; +} + +.margin-lr { + margin-left: 30upx; + margin-right: 30upx; +} + +.margin-lr-lg { + margin-left: 40upx; + margin-right: 40upx; +} + +.margin-lr-xl { + margin-left: 50upx; + margin-right: 50upx; +} + +.margin-tb-xs { + margin-top: 10upx; + margin-bottom: 10upx; +} + +.margin-tb-sm { + margin-top: 20upx; + margin-bottom: 20upx; +} + +.margin-tb { + margin-top: 30upx; + margin-bottom: 30upx; +} + +.margin-tb-lg { + margin-top: 40upx; + margin-bottom: 40upx; +} + +.margin-tb-xl { + margin-top: 50upx; + margin-bottom: 50upx; +} + +.padding-0 { + padding: 0; +} + +.padding-xs { + padding: 10upx; +} + +.padding-sm { + padding: 20upx; +} + +.padding { + padding: 30upx; +} + +.padding-lg { + padding: 40upx; +} + +.padding-xl { + padding: 50upx; +} + +.padding-top-xs { + padding-top: 10upx; +} + +.padding-top-sm { + padding-top: 20upx; +} + +.padding-top { + padding-top: 30upx; +} + +.padding-top-lg { + padding-top: 40upx; +} + +.padding-top-xl { + padding-top: 50upx; +} + +.padding-right-xs { + padding-right: 10upx; +} + +.padding-right-sm { + padding-right: 20upx; +} + +.padding-right { + padding-right: 30upx; +} + +.padding-right-lg { + padding-right: 40upx; +} + +.padding-right-xl { + padding-right: 50upx; +} + +.padding-bottom-xs { + padding-bottom: 10upx; +} + +.padding-bottom-sm { + padding-bottom: 20upx; +} + +.padding-bottom { + padding-bottom: 30upx; +} + +.padding-bottom-lg { + padding-bottom: 40upx; +} + +.padding-bottom-xl { + padding-bottom: 50upx; +} + +.padding-left-xs { + padding-left: 10upx; +} + +.padding-left-sm { + padding-left: 20upx; +} + +.padding-left { + padding-left: 30upx; +} + +.padding-left-lg { + padding-left: 40upx; +} + +.padding-left-xl { + padding-left: 50upx; +} + +.padding-lr-xs { + padding-left: 10upx; + padding-right: 10upx; +} + +.padding-lr-sm { + padding-left: 20upx; + padding-right: 20upx; +} + +.padding-lr { + padding-left: 30upx; + padding-right: 30upx; +} + +.padding-lr-lg { + padding-left: 40upx; + padding-right: 40upx; +} + +.padding-lr-xl { + padding-left: 50upx; + padding-right: 50upx; +} + +.padding-tb-xs { + padding-top: 10upx; + padding-bottom: 10upx; +} + +.padding-tb-sm { + padding-top: 20upx; + padding-bottom: 20upx; +} + +.padding-tb { + padding-top: 30upx; + padding-bottom: 30upx; +} + +.padding-tb-lg { + padding-top: 40upx; + padding-bottom: 40upx; +} + +.padding-tb-xl { + padding-top: 50upx; + padding-bottom: 50upx; +} + +/* -- 浮动 -- */ + +.cf::after, +.cf::before { + content: " "; + display: table; +} + +.cf::after { + clear: both; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +/* ================== + 背景 + ==================== */ + +.line-red::after, +.lines-red::after { + border-color: #e54d42; +} + +.line-orange::after, +.lines-orange::after { + border-color: #f37b1d; +} + +.line-yellow::after, +.lines-yellow::after { + border-color: #fbbd08; +} + +.line-olive::after, +.lines-olive::after { + border-color: #8dc63f; +} + +.line-green::after, +.lines-green::after { + border-color: #39b54a; +} + +.line-cyan::after, +.lines-cyan::after { + border-color: #1cbbb4; +} + +.line-blue::after, +.lines-blue::after { + border-color: #0081ff; +} + +.line-purple::after, +.lines-purple::after { + border-color: #6739b6; +} + +.line-mauve::after, +.lines-mauve::after { + border-color: #9c26b0; +} + +.line-pink::after, +.lines-pink::after { + border-color: #e03997; +} + +.line-brown::after, +.lines-brown::after { + border-color: #a5673f; +} + +.line-grey::after, +.lines-grey::after { + border-color: #8799a3; +} + +.line-gray::after, +.lines-gray::after { + border-color: #aaaaaa; +} + +.line-black::after, +.lines-black::after { + border-color: #333333; +} + +.line-white::after, +.lines-white::after { + border-color: #ffffff; +} + +.bg-red { + background-color: #e54d42; + color: #ffffff; +} + +.bg-orange { + background-color: #f37b1d; + color: #ffffff; +} + +.bg-yellow { + background-color: #fbbd08; + color: #333333; +} + +.bg-olive { + background-color: #8dc63f; + color: #ffffff; +} + +.bg-green { + background-color: #39b54a; + color: #ffffff; +} + +.bg-cyan { + background-color: #1cbbb4; + color: #ffffff; +} + +.bg-blue { + background-color: #0081ff; + color: #ffffff; +} + +.bg-purple { + background-color: #6739b6; + color: #ffffff; +} + +.bg-mauve { + background-color: #9c26b0; + color: #ffffff; +} + +.bg-pink { + background-color: #e03997; + color: #ffffff; +} + +.bg-brown { + background-color: #a5673f; + color: #ffffff; +} + +.bg-grey { + background-color: #8799a3; + color: #ffffff; +} + +.bg-gray { + background-color: #f0f0f0; + color: #333333; +} + +.bg-black { + background-color: #333333; + color: #ffffff; +} + +.bg-white { + background-color: #ffffff; + color: #666666; +} + +.bg-shadeTop { + background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01)); + color: #ffffff; +} + +.bg-shadeBottom { + background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1)); + color: #ffffff; +} + +.bg-red.light { + color: #e54d42; + background-color: #fadbd9; +} + +.bg-orange.light { + color: #f37b1d; + background-color: #fde6d2; +} + +.bg-yellow.light { + color: #fbbd08; + background-color: #fef2ced2; +} + +.bg-olive.light { + color: #8dc63f; + background-color: #e8f4d9; +} + +.bg-green.light { + color: #39b54a; + background-color: #d7f0dbff; +} + +.bg-cyan.light { + color: #1cbbb4; + background-color: #d2f1f0; +} + +.bg-blue.light { + color: #0081ff; + background-color: #cce6ff; +} + +.bg-purple.light { + color: #6739b6; + background-color: #e1d7f0; +} + +.bg-mauve.light { + color: #9c26b0; + background-color: #ebd4ef; +} + +.bg-pink.light { + color: #e03997; + background-color: #f9d7ea; +} + +.bg-brown.light { + color: #a5673f; + background-color: #ede1d9; +} + +.bg-grey.light { + color: #8799a3; + background-color: #e7ebed; +} + +.bg-gradual-red { + background-image: linear-gradient(45deg, #f43f3b, #ec008c); + color: #ffffff; +} + +.bg-gradual-orange { + background-image: linear-gradient(45deg, #ff9700, #ed1c24); + color: #ffffff; +} + +.bg-gradual-green { + background-image: linear-gradient(45deg, #39b54a, #8dc63f); + color: #ffffff; +} + +.bg-gradual-purple { + background-image: linear-gradient(45deg, #9000ff, #5e00ff); + color: #ffffff; +} + +.bg-gradual-pink { + background-image: linear-gradient(45deg, #ec008c, #6739b6); + color: #ffffff; +} + +.bg-gradual-blue { + background-image: linear-gradient(45deg, #0081ff, #1cbbb4); + color: #ffffff; +} + +.shadow[class*="-red"] { + box-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); +} + +.shadow[class*="-orange"] { + box-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); +} + +.shadow[class*="-yellow"] { + box-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); +} + +.shadow[class*="-olive"] { + box-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); +} + +.shadow[class*="-green"] { + box-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); +} + +.shadow[class*="-cyan"] { + box-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); +} + +.shadow[class*="-blue"] { + box-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); +} + +.shadow[class*="-purple"] { + box-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); +} + +.shadow[class*="-mauve"] { + box-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); +} + +.shadow[class*="-pink"] { + box-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); +} + +.shadow[class*="-brown"] { + box-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); +} + +.shadow[class*="-grey"] { + box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.shadow[class*="-gray"] { + box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.shadow[class*="-black"] { + box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.shadow[class*="-white"] { + box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.text-shadow[class*="-red"] { + text-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); +} + +.text-shadow[class*="-orange"] { + text-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); +} + +.text-shadow[class*="-yellow"] { + text-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); +} + +.text-shadow[class*="-olive"] { + text-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); +} + +.text-shadow[class*="-green"] { + text-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); +} + +.text-shadow[class*="-cyan"] { + text-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); +} + +.text-shadow[class*="-blue"] { + text-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); +} + +.text-shadow[class*="-purple"] { + text-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); +} + +.text-shadow[class*="-mauve"] { + text-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); +} + +.text-shadow[class*="-pink"] { + text-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); +} + +.text-shadow[class*="-brown"] { + text-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); +} + +.text-shadow[class*="-grey"] { + text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.text-shadow[class*="-gray"] { + text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.text-shadow[class*="-black"] { + text-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.bg-img { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.bg-mask { + background-color: #333333; + position: relative; +} + +.bg-mask::after { + content: ""; + border-radius: inherit; + width: 100%; + height: 100%; + display: block; + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; +} + +.bg-mask view, +.bg-mask cover-view { + z-index: 5; + position: relative; +} + +.bg-video { + position: relative; +} + +.bg-video video { + display: block; + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + position: absolute; + top: 0; + z-index: 0; + pointer-events: none; +} + +/* ================== + 文本 + ==================== */ + +.text-xs { + font-size: 20upx; +} + +.text-sm { + font-size: 24upx; +} + +.text-df { + font-size: 28upx; +} + +.text-lg { + font-size: 32upx; +} + +.text-xl { + font-size: 36upx; +} + +.text-xxl { + font-size: 44upx; +} + +.text-sl { + font-size: 80upx; +} + +.text-xsl { + font-size: 120upx; +} + +.text-Abc { + text-transform: Capitalize; +} + +.text-ABC { + text-transform: Uppercase; +} + +.text-abc { + text-transform: Lowercase; +} + +.text-price::before { + content: "¥"; + font-size: 80%; + margin-right: 4upx; +} + +.text-cut { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.text-bold { + font-weight: bold; +} + +.text-center { + text-align: center; +} + +.text-content { + line-height: 1.6; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-red, +.line-red, +.lines-red { + color: #e54d42; +} + +.text-orange, +.line-orange, +.lines-orange { + color: #f37b1d; +} + +.text-yellow, +.line-yellow, +.lines-yellow { + color: #fbbd08; +} + +.text-olive, +.line-olive, +.lines-olive { + color: #8dc63f; +} + +.text-green, +.line-green, +.lines-green { + color: #39b54a; +} + +.text-cyan, +.line-cyan, +.lines-cyan { + color: #1cbbb4; +} + +.text-blue, +.line-blue, +.lines-blue { + color: #0081ff; +} + +.text-purple, +.line-purple, +.lines-purple { + color: #6739b6; +} + +.text-mauve, +.line-mauve, +.lines-mauve { + color: #9c26b0; +} + +.text-pink, +.line-pink, +.lines-pink { + color: #e03997; +} + +.text-brown, +.line-brown, +.lines-brown { + color: #a5673f; +} + +.text-grey, +.line-grey, +.lines-grey { + color: #8799a3; +} + +.text-gray, +.line-gray, +.lines-gray { + color: #aaaaaa; +} + +.text-black, +.line-black, +.lines-black { + color: #333333; +} + +.text-white, +.line-white, +.lines-white { + color: #ffffff; +} diff --git a/src/common/Common.ts b/src/common/Common.ts new file mode 100644 index 0000000..934825b --- /dev/null +++ b/src/common/Common.ts @@ -0,0 +1,13 @@ +import {ResultData} from "./Domain/ResultData"; +import {StoreAssist} from "./Unit/StorageAssist"; +import {HttpRequest} from "./Unit/HttpRequest"; +import { StringAssist } from "./Unit/StringAssist"; +import { UploadAssist } from "./Unit/UploadAssist"; + +export { + ResultData, + HttpRequest, + StoreAssist, + StringAssist, + UploadAssist +} \ No newline at end of file diff --git a/src/common/Domain/ResultData.ts b/src/common/Domain/ResultData.ts new file mode 100644 index 0000000..a9886de --- /dev/null +++ b/src/common/Domain/ResultData.ts @@ -0,0 +1,10 @@ +export class ResultData { + public code: number=-1; + public msg: string=""; + public data: any; + constructor(code:number,msg:string,data:any) { + this.code=code; + this.msg = msg; + this.data = data; + } +} \ No newline at end of file diff --git a/src/common/Unit/HttpRequest.ts b/src/common/Unit/HttpRequest.ts new file mode 100644 index 0000000..b8e58b4 --- /dev/null +++ b/src/common/Unit/HttpRequest.ts @@ -0,0 +1,64 @@ +export class HttpRequest { + + /***普通请求方法***/ + static Request(url: string, method: "GET" | "POST" | "PUT" | undefined, data: object | any) { + return new Promise(function(resolve, reject) { + let header = { + 'content-type': method == 'POST' || method == 'PUT' ? 'application/x-www-form-urlencoded' : 'application/json; charset=utf-8', + 'Access-Control-Allow-Origin': '*' + }; + uni.request({ + url: url, + method: method, + data: data, + header: header, + success(res: any) { + if (res.statusCode == "200") { + resolve(res.data); + } + else + { + resolve(res); + } + }, + fail(err) { + //请求失败 + uni.showToast({ + title: '无法连接到服务器', + icon: 'none' + }) + reject(err) + } + }) + }) + }; + + /***带Token的请求方法***/ + static RequestWithToken(url: string, method: "GET" | "POST" | "PUT" | undefined, token: string, data: object | any) { + return new Promise(function(resolve, reject) { + let header = { + 'content-type': method == 'POST' || method == 'PUT' ? 'application/x-www-form-urlencoded' : 'application/json; charset=utf-8', + 'Authorization': 'Bearer ' + token,//token获取 + 'Access-Control-Allow-Origin': '*' + }; + uni.request({ + url: url, + method: method, + data: data, + header: header, + success(res: any) { + resolve(res); + }, + fail(err) { + //请求失败 + uni.showToast({ + title: '无法连接到服务器', + icon: 'none' + }) + reject(err) + } + }) + }) + + } +} diff --git a/src/common/Unit/StorageAssist.ts b/src/common/Unit/StorageAssist.ts new file mode 100644 index 0000000..ee48a32 --- /dev/null +++ b/src/common/Unit/StorageAssist.ts @@ -0,0 +1,14 @@ +export class StoreAssist{ + static Get(key:string):any + { + return uni.getStorageSync(key); + } + static Set(key:string,value:any):void + { + uni.setStorageSync(key, value); + } + static Delete(key:string):void + { + uni.removeStorageSync(key); + } +} \ No newline at end of file diff --git a/src/common/Unit/StoreAssist.ts b/src/common/Unit/StoreAssist.ts new file mode 100644 index 0000000..8e9b9b4 --- /dev/null +++ b/src/common/Unit/StoreAssist.ts @@ -0,0 +1,13 @@ +// import { createPinia, defineStore } from "pinia"; +// import piniaPluginPersistedstate from "pinia-plugin-persistedstate"; +// export class StoreAssist{ +// private pinia:any=createPinia(); +// constructor() { +// this.pinia.use(piniaPluginPersistedstate); +// } + + + +// } + + diff --git a/src/common/Unit/StringAssist.ts b/src/common/Unit/StringAssist.ts new file mode 100644 index 0000000..59ab6a4 --- /dev/null +++ b/src/common/Unit/StringAssist.ts @@ -0,0 +1,98 @@ +export class StringAssist { + static NoHtml(html: string): string { + return html; + } + + + static PhoneToStr (e:string) { + return e.substring(0,3)+'****'+e.substring((e.length-2),(e.length)) + } + // 数量过万处理 + static NumToStr (sum:number) { + if(sum>=10000){ + return (sum/10000).toFixed('2')+'w' + }else{ + return sum + } + } + + + // 帖子距离现在多久 + static DiffTimeTostring(dateTime: string): string { + let result = 0; + let time = Date.parse(dateTime); + let timestamp = Date.parse(new Date().toString()); + if ((timestamp - time) / 1000 < 60) { + result = (timestamp - time) / 1000; + result = result < 0 ? 0 : result; + return result.toFixed(0) + '秒前'; + } else if ((timestamp - time) / 1000 / 60 < 60) { + return ((timestamp - time) / 1000 / 60).toFixed(0) + '分钟前'; + } else if ((timestamp - time) / 1000 / 60 / 60 < 24) { + return ((timestamp - time) / 1000 / 60 / 60).toFixed(0) + '小时前'; + } else if ((timestamp - time) / 1000 / 60 / 60 / 24 < 31) { + return ((timestamp - time) / 1000 / 60 / 60 / 24).toFixed(0) + '天前'; + } else { + return this.formatDate(time, 1); + } + } + + private static formatDate(time:any,type:number):string + { + const date = new Date(time); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以加1,并用0填充 + const day = String(date.getDate()).padStart(2, '0'); // 用0填充 + const hours = String(date.getHours()).padStart(2, '0'); // 用0填充 + const minutes = String(date.getMinutes()).padStart(2, '0'); // 用0填充 + const seconds = String(date.getSeconds()).padStart(2, '0'); // 用0填充 + if(type==0) + { + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + } + else if(type==1) + { + return `${year}-${month}-${day} ${hours}:${minutes}`; + }else if(type==2) + { + return `${year}-${month}-${day}`; + }else if(type==3){ + return `${month}-${day} ${hours}:${minutes}`; + } + + else{ + return `${hours}:${minutes}`; + } + } + + + + // 聊天时间显示 + static ChatTimeTostring(dateTime: string,upTime:string): string { + let time = Date.parse(dateTime); + let timestamp = Date.parse(upTime); + if (( time - timestamp) / 1000 / 60 < 10) { + return '0'; + } else{ + return this.formatDate(time, 3); + } + } + + + // 去除两侧的空格 + + static trim(str:string){ + const reg = /^\s+|\s+$/g; + return str.replace(reg,''); + } + + // 计算两个时分秒差值 + static timesfm(dateTime: string,upTime:string){ + + let time = Date.parse('2000-01-01 '+dateTime); + let timestamp = Date.parse('2000-01-01 '+upTime); + return ((timestamp - time) / 1000 / 60).toFixed(0) + '分钟'; + } + + +} diff --git a/src/common/Unit/UploadAssist.ts b/src/common/Unit/UploadAssist.ts new file mode 100644 index 0000000..5a7f66e --- /dev/null +++ b/src/common/Unit/UploadAssist.ts @@ -0,0 +1,19 @@ +export class UploadAssist { + static Upload(url: string, path: string, fromData: any) { + return new Promise(function(resolve, reject) { + uni.uploadFile({ + url: url, //仅为示例,非真实的接口地址 + filePath: path, + name: 'file', + formData: fromData, + success: (uploadFileRes) => { + resolve(uploadFileRes); + }, + fail: (err) => { + reject(err); + + }, + }); + }) + } +} \ No newline at end of file diff --git a/src/components/ImageCropper.vue b/src/components/ImageCropper.vue new file mode 100644 index 0000000..d974eb6 --- /dev/null +++ b/src/components/ImageCropper.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/src/components/liy-select/liy-select.vue b/src/components/liy-select/liy-select.vue new file mode 100644 index 0000000..3a482e8 --- /dev/null +++ b/src/components/liy-select/liy-select.vue @@ -0,0 +1,299 @@ + + + + + \ No newline at end of file diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..d27eb5a --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,8 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue' + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..23b085e --- /dev/null +++ b/src/main.ts @@ -0,0 +1,13 @@ +import { createSSRApp } from "vue"; +import App from "./App.vue"; + +import uviewPlus from 'uview-plus' + +export function createApp() { + const app = createSSRApp(App); + + app.use(uviewPlus) + return { + app, + }; +} diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..9bdcbd5 --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,143 @@ +{ + "name" : "科讯代购", + "appid" : "__UNI__06C2D6A", + "description" : "", + "versionName" : "1.0.8", + "versionCode" : 108, + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "compatible" : { + "ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持 + }, + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : false, + "waiting" : false, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : { + "Barcode" : {}, + "Maps" : {}, + "Geolocation" : {} + }, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "minSdkVersion" : 25, + "targetSdkVersion" : 25, + "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ] + }, + /* ios打包配置 */ + "ios" : { + "idfa" : false, + "dSYMs" : false + }, + /* SDK配置 */ + "sdkConfigs" : { + "ad" : {}, + "maps" : { + "amap" : { + "name" : "amapZAvZjTHj", + "appkey_ios" : "3caf9e6f01b0085be1e75e0d0e281fe7", + "appkey_android" : "3caf9e6f01b0085be1e75e0d0e281fe7" + } + }, + "geolocation" : { + "amap" : { + "name" : "amapZAvZjTHj", + "__platform__" : [ "android" ], + "appkey_ios" : "", + "appkey_android" : "3caf9e6f01b0085be1e75e0d0e281fe7" + } + } + }, + "icons" : { + "android" : { + "hdpi" : "unpackage/res/icons/72x72.png", + "xhdpi" : "unpackage/res/icons/96x96.png", + "xxhdpi" : "unpackage/res/icons/144x144.png", + "xxxhdpi" : "unpackage/res/icons/192x192.png" + }, + "ios" : { + "appstore" : "unpackage/res/icons/1024x1024.png", + "ipad" : { + "app" : "unpackage/res/icons/76x76.png", + "app@2x" : "unpackage/res/icons/152x152.png", + "notification" : "unpackage/res/icons/20x20.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "proapp@2x" : "unpackage/res/icons/167x167.png", + "settings" : "unpackage/res/icons/29x29.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "spotlight" : "unpackage/res/icons/40x40.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png" + }, + "iphone" : { + "app@2x" : "unpackage/res/icons/120x120.png", + "app@3x" : "unpackage/res/icons/180x180.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "notification@3x" : "unpackage/res/icons/60x60.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "settings@3x" : "unpackage/res/icons/87x87.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png", + "spotlight@3x" : "unpackage/res/icons/120x120.png" + } + } + } + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3", + "h5" : { + "sdkConfigs" : { + "maps" : { + "qqmap" : { + "key" : "7DIBZ-K4HCJ-ZR2FE-FOOOP-SALFT-RLFYW" + } + } + } + } +} diff --git a/src/package.json b/src/package.json new file mode 100644 index 0000000..122bdc3 --- /dev/null +++ b/src/package.json @@ -0,0 +1,16 @@ +{ + "id": "liy-select", + "name": "可搜索的下拉选择框", + "displayName": "可搜索的下拉选择框", + "version": "1.0.0", + "description": "通过搜索关键字可以进行 下拉筛选", + "keywords": [ + "uni-ui|select" + ], + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ] + } +} \ No newline at end of file diff --git a/src/pages.json b/src/pages.json new file mode 100644 index 0000000..cc237e8 --- /dev/null +++ b/src/pages.json @@ -0,0 +1,53 @@ +{ + "easycom": { + // 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175 + "custom": { + "^u--(.*)": "uview-plus/components/u-$1/u-$1.vue", + "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", + "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue" + } + }, + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + + { + + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "门店运营", + "navigationBarBackgroundColor": "#36394D", + "navigationStyle": "custom", + "backgroundColor": "#F8F8F8" + } + }, + { + "path" : "pages/index/user", + "style" : + { + "navigationBarTitleText" : "我的" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "white", + "navigationBarTitleText": "v派商家", + "navigationBarBackgroundColor": "#F84F28", + "backgroundColor": "#F8F8F8" + }, + "tabBar": { + "color": "#000", + "selectedColor": "#000", + "backgroundColor": "#FFFFFF", + "list": [ { + "pagePath": "pages/index/index", + "iconPath": "static/tab/01.png", + "selectedIconPath": "static/tab/02.png", + "text": "主页" + }, { + "pagePath": "pages/index/user", + "iconPath": "static/tab/01.png", + "selectedIconPath": "static/tab/02.png", + "text": "我的" + } + ] + } +} \ No newline at end of file diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue new file mode 100644 index 0000000..8b845d2 --- /dev/null +++ b/src/pages/index/index.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/src/pages/index/user.vue b/src/pages/index/user.vue new file mode 100644 index 0000000..6a0d16e --- /dev/null +++ b/src/pages/index/user.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/shime-uni.d.ts b/src/shime-uni.d.ts new file mode 100644 index 0000000..5ecbb26 --- /dev/null +++ b/src/shime-uni.d.ts @@ -0,0 +1,6 @@ +export {} + +declare module "vue" { + type Hooks = App.AppInstance & Page.PageInstance; + interface ComponentCustomOptions extends Hooks {} +} \ No newline at end of file diff --git a/src/static/liy-select/images/check_mark.png b/src/static/liy-select/images/check_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc90962c1b7d6bac2d83df7c547e51cf30dfc02 GIT binary patch literal 34093 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
  • b|RE8<1dAudUtH{O>J$9}0R_bkNfIH1^mobI3pPy(WK#z3a6KYb(x;dbw3Du^Lem z;!_q5po+awEspXl`NJ(urb7*JlYhAYU;-g2=lW;P2e@QmFJ!Id1!;n2S)a0UiP5-N(IJ2;6K=+Scw;$)ViB9k-@FPzmXy_6gb*WW?zxlyFaxf^b!@xJx}wSmppS zjg3ZNQL{y^WLIV2v|9p8Z#n4m9pQi1Iu~f=2(UqU>D_9Z_jkX`(Oy*#g%^n|6>s9c0qY2Qch*^kT-X7EkbB1{qu0%eo<}=^Zg%3@LpMk z8eh}~%EFq5c6Z&;{r7D@5db*f(3>T5ZZNdjpE;AY&?=4W=bX&AyavW`@ioWh`5Gnc zig@FC757pa-Tzf}-SJeu?>{H?ITdw|d6IdIBAe`09wRc!ii}WJsjOs=(2<>FWF8|k zNhlc=p&XkO86iYgk|_MHr}6oIe*M*}JdgXi@9VzC`x@_m6}G+rhzU%N@IHCdZZZ+f zs@ln!B~xG@jQ0Pnj=Rd4W0s$A?Q8Yxfzp}s*%j}n|NjNM;RRrX*q~tV)MBUdwarC8 zU?3EwoqE3u=@o2YPDom-1zkKO|6e3Rj9N~FwI+ddHC(KQLv?f5Yw>5gKhI%R_|TZQ zyihF4=XR1ElTirMi=cu;V^w7AKV&zZkXKoCA<8{Dq~GwfX<28EiX~PMSyv?3$9f@E3eB=CCjyV;id zvfPx?31s1r)=A3G=OD7nIHQy1|9SrVy=R3+MRxZso_>=e3cNmUAY?Zzj}6YSPTaKE zM%$uZhu6L%m<%lHl<7S+wnytk=b*IZCzQ4{{D0ZVg405$?~xgD3pu2lQq69A-!z0x z*ZHgtKGk9T6>L!be-|zq>^^^l#l3`0aByABq||6Kt87a?^?ZK|6US=NT4_ z1yA*v?6(z;dO}TuCJ26O>s)4iDEwcXg_fEirt4=)=`QYMiKRaMW*~v$YaYz+wQu8T z;k<3+6Yd3s^mmXnMCNEsZhUgbp<_a6EVq-bNCu^23&5QF-T2Yp_R+MPMz@(6)cZzG zL0UutdUnqS=brsDSrVMtLuh9?I=hOmX2M&^P%a)0nno)3FN(XwR!qO7wEgobkIT{{{=uz z8Yvx`Vv42w1~9t;|AecQngkiGKUUTku*_dtC(g$})@a4umhw-8p@FH>(e1Zf@BPV! zxq4gnY>FN^vQmtWQn+h^X+%pGe{cN;1JsuQj=4eE&)vU@OzaSAvTjkQ?hO38SOKN< zkh+Ju(dB|dZwOG`_9mm={PHOFf8pi&A@E7u3|Gux*kp{O^j$3@jz(BDe5gqW#`w8PdvOCwse>D!+# zY5)=XtI@;Ozxo%>;{;l9vj9gdUx1>ubc0u}QGW+Rq1Frb@i=l>sJq*6C8n_22PPC5 z#LWoU3OT5V4;+D*k2IYW`Qkj|}p(OriI_(XB0tl%pe+W6z_O1IY8S@!ezw{W$6Tv!T~SZt4#{ zOiq@3Yjad2(}xk4Uzs#d`P_Y5AUKBe^+&EROt{#@z?;FroFa~NxK9$V+J7!g^$Iav z%6j^4=$))Y{hIHW_zCF<`@p; zO`yIkZ@1_l7&;7HLGNtaQ)Lf3&0*)ZgaR=+R3_JFtNX>4Pts0T-w{@A5RIPx{JEy! zj&A4wK#*R8%+k^hRs!L1dh)&!`}&n>Z6w;Abt-XXdXHb`Hpl5BXyZjy#iK_*)03+% zPpcSRwH%hQuXY}+FM7zYizd;3%RDW95r`p)Deq$2FU-2fIS=0Jd$Ysrveq_F6&81k z$M=1~Wqd)7}c zSYZySuw3JX=j9}@cIXF6exHHmc@yQx&l?PfYDw=UMMbY5!ijr|E=BJAEAlFtJE=OBhqV#l zJ9atZ-b2bG5;bI^-E6t#G%~j6RH(W~4<6AF z!pdVu_I*1v8_TT(nO3pEqeqDY#IdZy`{&ohY@0qS0)WeykQ(XsN2tI9o}?bD?$?l= zpS?J^**NL?Y<2c9h<05%by3O6-8ncZ>CaIc8ygx^u1~rr zbsJazmFs6snDi+qdesIq6JDL`b&L0DI#k>rN+jNsi7uDC zzr-c{_bp`lLrf88{yBO@j}qXyc57T_BuaM&x3liH9W9d~#7%!ay^e3mCno)gDJ)B! z340F$8T)xt<@`rf?SI`WPA||?x@RY?@Lj`V?ejK+mE~g5A_-Zrf)9_1KF%T&m+aU% z8Ws&Tx$u5Xm2*WlEF3TXf<&1?nBVuNH+$TvKISw#@k>NdP>`O@%cAc(`*z2EZ+o>) z+8z2L3-bB5NRdflr^RW;2?~1qd)^&Iy8uDe2JPI1vJ`vFwWpnQ!rIxn>rI zkq-Dco!+-4sk7Yh?&7zyu&BW33rs3hrzEUxyMlVXGDlH zf8U{*^bFvnrYJUfV^XC(8@Au6v!oH!k>BB*p~whqF)A&aOR|Y33)Evo)JCO%d>e^&puJ?nl1Y)u)l( zYa@d%Wj+TcD_=H!6JyKDeeAC^oRxsv?W~GGeeMt2XpbQ0L91}DNbF^9DhAFJi@k8z zF`QUK{6nKiRc5^GJC{`L|2{pcL;dAgC#5G~tY0=nnMl&kCtyTINk^aYZp z2X4&#QhlL2KV;Yqek0P3A*4Sd)Vqfv;w9U4PW>2*IVQKr8(>cTMj>ly+^nD*Qnd@# z&SJ%sJ|&CXj`7(|{G!wBQpdC^gXj2d={egl5F);NDcNQP#8kHPi~WGX&&|wu^G~`E zYozfiROGeX57qP1NoyBryBD1YE02)qx&8odrw-~LVi;x%%kutQs5tp*HKIi+dR*ba zvJ8Is3^sGy@n;`Dcv*_z+iv;@5M9Ha2g{R9$Jh^#{n_svH4wVma803#AC*Z{HR3c4 z8(`Vkqr6hFmnFbYpt}-2;VPS5TWc{_yTni1{e%qWQ`zlF>VPQrU&l*_0UUt_qN{{N z%w-!w0!^(hviB@0?dGJz9)~5h>_xjy(kSv7Jc1j63-`fSDnVp0#=HB$0tcNlE+gVZC-MTVl>%3_Q5S@$ zl&UeISLPjZ;;dK6O~MN&9O)Hqw! zlmAid_q@+(Vg2FEYfpp^TO>rpv^oze#U-nG1~k@t!PU7dtwq_NJ~gLrC09K)R-F7$SHwFb;`*TzTPu>PaQ%a|Aaln)b~ zsuthCSubo8dFbquuD(R%W40qloi;v4|X*3Ow(@0mld9SXx%1Lls82om8g<5R&c2 zMd{0HKY8pnc_kLIjYg4uDS5KociWV*P2Xex5LfC~1TOrrk7$uDy!7_x&VvJ$ex}O} zD%37GIMo}bq~kO&;el1z|L1pL!OBbuF?1ws@sP(a4jTKUj{aE!k8WmFmFF06E9#M^ zac#HGXdoGl9S&`FCC@*Qw>gSFxHQBZ@lp)1-N9-J$q0+2wHlbM;475a8k+Jl`pTaj zy(|D9Qb+tELF{(?sFl#63^qImY&g{k5o#%rvEbPcTf0bDpY;9)iUrG;_m%<)(F^nQ z?46=lLuh`(AlK3Yr@X9)regPKZeq<_S6DP zg=VTCX-3$Ch-@P2AL|jqfE%gtCQIXNj{PqUIUiwingm_^=#ean1lg25Rx29w{PF>_5c?dUC!)BIiy0C?!VdyKXC>}U4`q?W#JP$hTOAVHKMiO%Y{Y~nvYdL zhuaaFw&=PprQ~^6IuFX#Nfh!|ZCYn<>k8P*-S)??1yc4rHMuJrJD(0nwuy|!6|V=8 z5B@UugxbK#7<0fm!5K}AvD_xqb0`qQ6IE_$+x{^@wl^%4qol0J?ubduIkpR?Z&cfM zZyWz*ZdIyxxCcz!B)!3PiM>55I@G`9P_98GZuaDM)#1yh^Eby_YVsIn;)>mX9I2!A zqbskDo66hY3OWnq_(ufE%*NB6w!wr8DvGVaP8U1=#6Eom2auvbRlN`R$kq_|uqH1B z0QSSdr;l+;-G1zM>_JP-BxELezoKI0n2z-N5a&-B2@Y%1H$5z|+>J?~7s5X^PBQ>W zjuivG!i1D%@czI{xfhfX^D>*4Rac~up8d$Lh1dwk20mri`ff>->#m#&XiPou;iWlP zSIR-n#KqS>p}^K!*~vSp)3^o|2pJ7SxF~yE7P{-C>y&QVQAP`iNlLf_Df}ya&8MkMw@pDL(NN+mqkk76I|p!kx{o30-5=KT5_-1Xjld+Yl*XJSf;{m#;e^&NOwme$XF zXZdVXFuP-ubWfam@x>21wIWFQYRjp>S0Z`o{o_&;pG=#4!U>Jmu&epmpb|9byLgda z%jQdW`}*dDgoGsQI?^{>%Q4R$zhYLQy7g1`l6Tme@1|;)wRu8dVo$=ycto0HUBWm`r8SNXfY1#OcA3nk@22Pynb7zRAydc!iLD59L-$Yq*2?G1nhujwx>C?>?VB_T?zc zZ%wh23jg6)mZ%BR&P(34i>ew@hdSY$rEv-MT{(yuzwcG7!2Q6Nj3xRMzd6aOgbnJF2Rx zPB-4}KYkJ)cUL_5gs0S9KS6$3u6^j1I5O%V*c}bX;6@?_ZGoL~; zHnFF{zg5x#Qequ#{aa2eO_!@GD*P(4vsLFVz(?tT67Dwir>QGb@hY&auxj}l@+v<; zt@j7l>0wc8`UrOjcPFsd(yNL{fE52|2M6c^oMuqc_^^lLD?vh~0$V(HvN8Eub z85h?>pEOcJ@hv=W8lZXhk|x?K5O@cpsHk}6y!if=^yb8h6Qd>9{bjJh`ypfOClK_6 zi#G}l^Ax;}?;Y|OYDijhB|2%JPR}CwmgeSute>JJXIoM?{>sZ@bZ{*nU6WtMACw1j zVPeYL5FCqQ&KZFO-C5Wbr>`p09GE`T;W4I}(%^gG{;8WE(ih4^@^#_?NpjHZr|p)H zFAY_P0;jvxfvyLH-`0f$Y`J<7Eii4~2Ll6w5!7R_z__Vu?Se4sR&4kQCl;sigCnbb z&Mp;8JxSD)YYO-@N7FaClwwP|KMSL!yJE4rK{1C`i6agqJ5L{oR2zk$BDQC7oVxsEzmL@XwQR2OT=Xa~~;>bv2JsGM>`EYS-{E^vWtq-{`_vVL!>&KehrNzW*-LwuchqZm7tvJ=0x)A5e58*DjP7Vl zlV4rMM}~5ti{a7w>jRmP9E9;vI)<*LdXxVUZRDfN1)j?iE2v?okB{c$aq*6o%LBpViHs$=)TDpd}>{a3o86=8{5k zJrf$Kc}XcsM4pJ}1Lf-|k@CVdSL3e%rP& z=p09m8oJ5y5Y-w)+aVR8EaVocfI3PSanrN27rZ{@ChFqx9?j!({IP3?B{=NC2jFi3 zifI+Fl)L$4b@(3cQ>d=yn;Kk8-`l0CZU>o+S;w5FiXT= zmRFWr2MS`&12k61`_^sO@V=QSiS9)?1Zk-@d#0)1~%?#WvJaQnwoRYWZ{5kk;*nW*@oMs(5Z@KyYnW{^bB;RDxRW1LfSqU1F!zot+I{q0xkOj0I}194j4{4ku{2aGTl1XQ-qw%z z@F0||4&Vs;zzk<6vtJ@ykn@3K(4(Kn!q)VjsCeZTYll0mGMvmeI&~jlY4eK? zNn}%vLR{zRv!A+i4WR0-mz|vn@0{x*&=*!`EX1$u^<`qg-Q7K3o>PW1)&aIDJl&FK zRUK4b-EqV|SAVivl!n<8u=QIn-p7fHUZCaAaOc0@rKG%Wg#K-CzO zrXJG@S4VO>B-It--CKE_K@yhIS-$ahQJ^Go+m|pEza6emQpL`{zMcJA zt+@+1_r{aj+51d0Wvb+K+1QyU=J#`Sda(=`S~L&CdD^`w1N;NM3w-fwa`=Lk$>!0<#o%B@ky@%+*`#XT_$7H(7*h%5;7Z? z>ARQ>9wQTX+wOTsj*8>gl&+fTz2}Vy;na^)xqNw{5y}iYZdhL2cO1idT`02qkJ=~>HT>-udnv~N&BNFcH zM~mNhTRF$UC#A}>Gl*gL_qwemQ5qQA%7#dCg;L+uUTe;CZ0`WGGy=dsaMuA16u8lJ zocg(eW~~svxsj%Mh~kA8)5ChUjw8xOp6Y_F)z_1GX^(SjV0n(iIV!d;c%%ld%1J50 zT)jYRg4IL8+50?gimpK_3}BprgCS0Wt$FSEFE5US#ugJ31W`xKM;)5JOEU}FW|utL zr>u$9FC^PC03JU$`(C;l&`5QzU+^od9wI@S9?za8>gZVVkyD)qwYzUix`wK7qlm#V zM!!5=73A%54Mh2F$zF-QRE8Og97(2%c^_bPH z`*}4>nOzv8Kj7|nL3{z(cBD{V^YZm!NUfzFK~rm=cvU8G`SqZU*YA=wu=?O(8$;e$ z)&iNtcQJ7moF2W5eBIL^dY=ub?sK0$^~oQ*BLisVHJx8sVpi5vT|^^M`5Q*h2x9`( z9O?iDWfVDu#zPD2O%yh442kCyl|w65boaBfZ*thBhaOojk}`}@eE*u#kMHUO1k}o7 zpTjn|H~DQ;H*VaB5nyI@%7}J8b=$x8RPAA!1~gmQ%dUZb^iH^2jyS>UP)MUeOp%u7 zn0}Zzv-A&ZHvKh2({!&C+sWm@fq^?$-Q8*Ko!S0Q zHPZ`?;_YMNxE50atGQoLwyxVhKHzzh)B@&YAASg0Su9W|Im;zG%N~2t60mO2R=~l{ zi7!w-#`<8*SjP4?1`1-eWF)WuEA7Y5-Uj4`LzpPbK+L8tzW+`Faj&Y@rlWp7G&eUF zGpcxNW}C~^j~J)&Za_@zanwH!go%O2I27e+JiNV~H8)T|p*=&=vHKTbL%XKH7&G3SigH>6e*|$}8k3?wHw~A=l0PI1;=snB9V`sU8zF4aK$lq}g zL57C(V~jq8E|Koj;k~pN*(;r`Si53T$2i^4CI*q73{k)1(kgfi+K7^se_?jtm|=_L0t zm*~?vsb)G;9mv;w0j(FJ=37qyFW6OMLRaKfc!;o4*YuLvs^$WYx`*VDLONkH zNLG?{ubg7Q1d+`5L+=%w?uH-3b{i<9%v1tlm>DNoa^eaCz3UX>Us0IiyeKt(IoE9; zIPKUxhUk%6;%CaO33{-01cJ@tf#@s#emekLo`-Va>&c$lO4{l!YZ9vXJ68|p9^79HRsy6T>wjPmEwGfUzg#^j4Qsc2xq2U8}N0UWq`nsQW z!291rNw3?`(9m{Aq(GzHDSYq*U%4M4tWag-C^Fnmk*DjrN_==gV&PPbOQ(iAX6B`9 zgD6vpS%uRYn!?hM7FUOK>kJAa43nq#VRRrW2`F{t5`TJ}>+IVmY<~TsQY&RUk*u^% z+d!acxbjRiGU!ynqs?+i6G+*8|Nhm?pSnzlrr}kX^$Di9SCrzbJ1?79C3@}}2_hMG z1!?4tNqAJKyI!{@D5j;Q)#q1mKLX5aj0+qu_T|7sochuz?@hh)=eK2P#BLpA@J)%W zd(QR1fw>K%6)s|_`0{$G^iP;w-yj-!1a|M6qDM5TSdwPks7KPu;)(0WB8U-9wCVak zo(4jV$3j)_U5hxel`z}yOiJF91XBJ-hbo&%p}u~icsi-lda{4x#}^;n*$#Um`~XffPDMCTB2PEX8-bQ5(ei5fTgOkXYeFjrDe+mY(~+VRe9PGv zrHa@&(9kspfm^7>$KrTwGzv2lY6%$|wTGu)GxtNL4i^_#J?K*4n4%=L7^%tHpu!o3 zMxiqN*j<>DyYqGW!3RE#Oo}d-A-!}TzZ0NVLNoN)9MTH``Tc1K$hFj(G=VtpngQx$ zpq8Yc+S|wH;NE@vGKz1}0HmDc8 zB6%R+utl9HTjX5MUaDPyNZzHth9JV+`xX@ zMk`Y@7-O_lQAw}BY0#tVx(Bm(ZRpi( zaGlztJMe4C)`Whj47hHY#SL5xDkktr)$OcfVS!Dc7U!V^MvO?_O;_KwH6?tt zF(!-jzLnBX*HuyJyro+-jTeOd!NOzVN$NaQRDL^PTAPgji;!J65+dTV!}BdhF5+aV zZTJ@jBt{Mq`zs$kGXGuXvY$5?^vNl1xZXz$q7W`z0M*K{W|sc70H~Z2U(Q0@x8b9r z0wzc}Oc@;(nNT8DCnsN?Sy-t5NB&l`lRu7z`jiMfypjlI{WzY|BaSd%^E(1;5W&N`xU2&BcJ6EM8|df%IW!6q-wDq}&iI zH=9`2Ww>F@=Kpd5M2*SjGPom@b4NL+A#Nfs&N^`E?7{pbg7(%q>RIZUx7ka zR#r^H9y+7jH5nwz&V3Q{T)2wB0q383g`*IZv_qs$EXgOG>C2AUY!~Nk3 z<)JB+=c17tY7^OrWEx2+#8WdxNeFw^9aE2w^GRAWLEP^-4{i}Gq#e-Nn4JFb?3naH z5`;bZ@qq)$e%(38duSToCMK`)5?9KY@#kkGsjGva^lxUq$rjWMOTAUCLi($7?Co~t z+!a?NzoFkShQizTC9Xe)C4^z~nFoPMy1XMS7(onO9%`%ZRK17$zJ+lbSFYICyg~83 zObA<*jV|A<{|mc8!(pBBD06U6bs$k*6-DyRH^1%s!1o^YkGN6q0wWbgsodRBKdy5= z9+7PG5p10)tuR3KIcMfmP-;W=xFxu}wD^{(WqGmXVM+}L-cJR|6I;F=MiZtR&$)Pu zq~JtoQbpXQC6s$nz?g?8jP)1vbOzL0ty&jUO#lqKa?9rl&I_{eTtuIIFxz{HEb(s} zcfQn*BD;(#hT<>%C}f7>t#U^NRUyX?^t$7|Yv9`vU36yn}N z(}8e+@xq<_n38ArqMixZK_)q!k9;tE8k~2N2GMk=^8A@CWy%TDz_!6eX1HJDuZ}vv z#TKXTmFI)ub2cfH!l*reN+JoIFw7z=HSuyAI6wSeULAi@SlrNM$(<0UcV0aC9xNvF z?~76Zbn9{-!%4vxu|g<+Pkgz(@X*P_t_k(S;iNpeE*|25u4ppvgVZt99ik6yOaQ9(_S6^|PA{w!oVv^ce{=v#wcXn;8wFtc|Xf*_G<5 z=-0-R@yj8r(hA-$SbSRkW*jdpv z>_j}}V^Pcymq4lcQ0_fq)6idfv!%5#334oJ4hf>adrA?0{SFTClTA@D+w9l*pdto; zr3F3iAmjKq_4)h%s?pu@n8f|3`+OU?@F=EMDY8aoXFj`Sz1{J-^aNP literal 0 HcmV?d00001 diff --git a/src/static/liy-select/images/loading.png b/src/static/liy-select/images/loading.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4e8a6f107ee6207c141a6123cf13d49c1c17e3 GIT binary patch literal 24454 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�B5$-P%#kdTqY(tn@>OC^?fH;G-cW&wN4 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 b5GlhM-Xwe6JXQnpNpVU^T`^7G_|E?YJDG~P literal 0 HcmV?d00001 diff --git a/src/static/liy-select/images/search.png b/src/static/liy-select/images/search.png new file mode 100644 index 0000000000000000000000000000000000000000..48ff045b527ed0c02385f2f3fb3b0227f605be97 GIT binary patch literal 40266 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�O~bWm)WG%JLg`JFVvyf zpVu)z``?i&pc7nL8VKl|cM1W=<_IeBr!{66j&kAUqYCSm>hFc;pO@%(GXOV4{90M!sp>|lL z`1iM3@H5}KX8&>km$)34?(`NtjBWV+OY<3Sblf5!b$W#OXC^>guLZnzMj*$@U26EZ z*+5{Zka8*UKNCYmq6@N<`H2ub(EgZX@DLCiQRUpW`X{FNC_Vre#sAYFU|8M&&)1k6 zeS82DFMUWjaQ#S%$btW8B?$s)&i|42*P8qv*Zxn|{;Jjg4;nggbehrN>Z3fq^yjC* OKjm8*H$N%dfBHX&n_H3q literal 0 HcmV?d00001 diff --git a/src/static/liy-select/images/void.png b/src/static/liy-select/images/void.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8ab05543617fcd4dcaba4093deb28bb9b27d45 GIT binary patch literal 53985 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 ALjV8( literal 0 HcmV?d00001 diff --git a/src/static/tab/01.png b/src/static/tab/01.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0395acf5fe281c7e2f55c107287b5bdc3612ff GIT binary patch literal 5508 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 Qz_BWDL(dphq2mz!Kf@|RrT_o{ literal 0 HcmV?d00001 diff --git a/src/static/tab/02.png b/src/static/tab/02.png new file mode 100644 index 0000000000000000000000000000000000000000..4c26cca97db16364d66466f7a30cc7b38fc52ba4 GIT binary patch literal 5737 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 literal 0 HcmV?d00001 diff --git a/src/static/tab/03.png b/src/static/tab/03.png new file mode 100644 index 0000000000000000000000000000000000000000..acf428962aadbdeeb3a67b2f082910b2c588ae9a GIT binary patch literal 8650 zcmc&)hf@<@v|fq|QVfU`rGx;|1w}f7!O%icf`WwJYv>?dia;pRi*!K(A_kO>KtPEg zNReJblP(BI@9_3FZ{FYVcINKR&fHCIIp;gy`Ob}gqN7H4_2yLo0O&N-5h(Eaj%vQo~%nR=X^LWyZE#EVFy^udeqAO2}(Zu z$(>4ul3BHtf%t%fK2!zbM(Lgq_2|D>3VJdL%E?X6xmA_oFY{AZNelJxYQiHto*~M&NXWM#Nydu1nq3AL5g!UjUnHof5GDkljI!iUcPqSX^5E;UQWpmLf zdkp@=pOgrn!TbM>>;HyR?OsqeygD7QUNb78i5nn83Z9SWUt9{Iz+x|2HaFV13o&`i zK?ztwpVFeo(Meld+d;MaSkP1&k9z!1uE^gEdCMHyh{p!V2S$Q>w3<_AmjS}fj;&FJ zzLVPwQ=wR;N^4SPW;i&8?;RF9OFchpU8el+F>LjDrlO(@@3*9uRtVwBDMHo)XIiWT zEe=k+z-bq?Ip~&()0!2f%4NO;%yE}e47DeT)`DqBgNF6zQUV-s+AY#2i#9SG>JK|0 zqanC=|B-}W*;y9$jsenylkzLx?}a|%Bp&+h8D76^dUh6ieclAI%Uj^j|GfeT`583R zLP!Z;sUdK{DTRw`f~!!gIo2oNxTYSA1LpJb9P+(pEx~7f0UqQS&T1a@tF7+@)KIbH7sZFsoWPmV^Qw5Q*t>C)ca(W@FB=*BEFb1m{ z2Bq5BC}H_4A6Bie;dFKbH&o?;uD(S!`(b>1ysW*wJva%MAWqArE0m@KEzHkwA-m)?3$@flr#p?Y32ZLHzMLPBjybeLIn_8J~A=u#Qrr_O>(y z&{$-Lk>=wXsrmi;x0tP@wcbldN5@5QLnFuSx|62}yc%YVyfLuzHMyj%uSb4suiY(F zIeNCYz^X)n> z?IQxs?0Q-~Lw^!zSZW`~tiX<3x1%}o?8W~EWcMspf#zJty0ZTYSwM}d7)^+qe^aNL z^YzIPb_IVnw~w!}^$^$4nz)Uq_GWV!cv&tNaT_~wyqSh7(O{qqxpquwQT;Ibb6b}w zR~gYX#VFmklV@7`)aAPHeu%OKb@K1F(~-=~OsleC$4QDcJ8vwT;)EESSoM*y&^V|WQ_?7Jf+5=qQk4`weM_lmZnbZwLJ<>dlt`JGmF55K?_ZG){cBgLJ@oTBX{tva&uhgYyb8Z^5b=oJKH%Rb z_R#Nl6DqbYu#S+5{(W(Y=7?F47hWiUevDYAVL95t{| z3;OMyZ*p)*`Xy%kRitf;)oKd4^}3zG%F1fSq%xe7QGgwe-h$*zoeFfy0j(g+&4~0H zB5Tq3JGa=`6)IHd{n+47BD(l=jMsLyM}u>Lfa343MXdlUHgC#@)m zjR8Z9JT2(k+S*D3Vb2mbq{&B-)J5LJ5zrp_Aq@)D4r z_>mT%Jt6dcMPz1=WGNA)ZKYDb0s#B+iK0Pvdr38czUV1n^j_j^(>xOlZ+O06W z>0ls00=}=!#f=#5?qwUB*R2;uaI4S3wknW<8kWm1Rfr;6f8<$yek08j7JfIzVhL&W zZzq)z+Mr7e9E&d{SSe;oV7MLs&5hI z^csyf0r8EK^XKTJqlHSs17MbY=78nF-T=DAOmMF*a(?06njLgbns)EShhfJWHUGSW z5Mt!|;C+o5DH|GiVrOS((9PHFaS+ztO|N%PmM!K6FjMS{W%DwMLDtrNAg;5#zB);dSJMXeXQ~!FP41(-E(POZ9(*mPg#@q=Xksdrc6wQ-vwv-^3Me z0E*en0zPa9LHT+fH|wIKqm>+`vW;+;!HeFs&V_@e@2(?yEg%(@kRc$Q-NSF&BjuVX z^`{CeaP%ods}xfi0mY8oOhc6l!^X#aURfOK0Ex$nHj4iE(KUXeyU6P+ojHR)p+_p* z>@2a$i3tL@UZzt+HWkF30f))zk-vYsI4c}TAkHIY$?=l>iNVh%;!{LoxRi-n-YhjE zP0e!{{Rtm_*!CsI$907egcmXURb}~3kdmJMzBsKISx6m?{tWtI`mVJwHP4ceK?Nkv z`&vKft}LLPwaa2iVc00#jSc+<0xuQAnKy)ztG7}>1NK*#v7>32{FWqw{l*V50im-c z6w>D0N%8Joci*b<(>(Lj1D?W#eG~I9L4{|?#JWrHf1gFfqbv^n02yxlYnk{N@q70y zzh}C8cx)%CzWaKh=s*g`)|;V!A1&1T+M{Y#rO9u}L+)xa2f+=FqWAgWsVG+j@v&WK z%?#DRRj%`9pvn-DN?fGUs(V~5Ms4{Hg=)ckzRk~n;ClZi<7iU1D}KM<{CD1QGBj_w zxd~Nzs+WFgr7mF?jrV!K?8lDJteuL*mYTdAxQVGVHe;j&OczehTdc_%XX5>g{Nh{E zm?eP2g3XhhjrS!+EsP6vgiX6+^9@|AGVC}TN>yB?P>Sz*YV5_2X{2Bn7j7sq;-+GZ zED-1s0OF1aN_jSm{++|GuzBp1p$k}_Yxa&c6VZ9gQ_$AGPS`_{&_IJ2<}eVrl8VIb zRO}!V4vKkmXv8Qdjtb#;4H;aOi5b== zuW2_n@*fiG)Q_d{$ts8xIK;ZNr{41o+UfR{6y9ePAwLd+_LJ8B=re^Wyq@}TNqCC~ z5t#fi*t9>6OiyWFVY3^F+m86&p2S<|TZVG{Rz&sWXL(xvi9n2tJ>QfLO?K=Rjo7Et z9)p8}CoVID2haZLI*Htc+3LWij(=uJTC^z%;ba!}_d`QNjcPF@=4-UH>~w%yhkN(< z>}#iF&t#{WgQNAV20lTPmx)DQ+GlEfN2Y$NIMk8+QQOHE!NiN4|&vohcfGtOfw)XI(RRQ)wn9#uhey<^K~<>}19 zW+gmPAVxJ>z#GYj8#_KR#vZqmtui@GU3wJQg2b0>1x(fhmN$=@Blb|KMP#O@rFitt9C zkiB^IQDRTFbVjZ7c%_NpGaZ`xWj`^a)i;uOyotwU*Lw~uG+m@gsf|^H(^)0&qjx_( z5AJhuIst5~LbPz-4YX6QCtm~5orADY>`tMeC>N?(Ig9*?7R6cCg!Hn9xjA6HHN6#= z4_6Ui{cYmS)hnH8L>h@tZ-$rXHn64>(IbCI`;{ z-MG=QunuLIdM=da(w)ufISu_Q1k*@yD`mCqXxL?mWajduN(B8I6s{R^1^U z9v)st;usslx!{N>^40<{A^cq{=~soh1e_m~do%>D|NAFi!j3VLXc#36p$VLk?m^7d zHfYERvBN>nq|RH`(DMvtWw=0-8~59^iQgA2Im^HbP=8qUXQfd~9Fba6N<+Qmet7W} zRk~}pel9G^YG$NDS1GW4xDh*l_^+CeV?wTgHupv{7;%q*w|w=yeB+kN*)v8`ZmK9RyuG8tARWo)GnA5JJH<&!cExnhTXQ>zgABO9r84pb z?I>(Eq#+lTVlJCjbcIVQ)YR{zr`>5!9NTP0C{ zQ)>=f$o|66&k_cm`x|YBTK>9P`kked5iGekZX5xqu;`no~BN%Me z0&K`I@e(nGHHclZf}X|0Z(wY7~e(=TgrA_;lH)&53^ z%gdkG#7D5u+fl&ESyp%B{Yr6*|m(zM!Gh&%piDa&GGI#ieG z!R`3@N1zH(@Ry#mV=GWafJ+^D_o8Ur`P|LRYj^)Uv$?;&e+7nAJ4Fr*WZk$XfQwf{ z__PRUIpzKfG8FXw)UB54s!3yfUzSmtOT1AyzFmM zR#-FrJ{8TwF^l4>PC<(%Jhn7CEPR%%U^OaUj2>U%yAg=fgLJ;2gQHvNsU_?coGTH# zOHeAAwz;sLPsLYWeqymL8}4EiyA!UBxBy`wtUv4e_3LUNnQ_JDwLXZ*WKY4$r1i(& z*ei#sH=AC}%fweaL)z%D%==9bve0ONR`3)McUKo7>X$u3zNYBXS}hi1^)tllUjeVp zC&&l=T`8qQC6KNAnzeB~UOCXeP=h-e72Ji(tbKF8V=|y~hOy%@g)8q6USHrZA2bhN zZTrW-j>#m}a@mO=P$L$?!HCVI;>rsnjcZA9&o$DvJ8I+JQ99T>S~zB{_$0-Hb9qEm zxlUKTO0#_yd01g0=2}x!!@m5Hn!hbLe)Hr&v|0!4bSJdKuk)i6zeS(FOOx++5qo|2cRn$Z5 zPC%*7x!3D!M(Tuc@fyNnNt)`Fx2eeYyIq{tsNho0V{Q){jBO3J&qVutBw?n4HEb&V zDhO*Y^gz#@nPSr~qNl{nO@4m<{2}}M!O-tYuTN1g#2uX9{P21Ox=(X7mbv-Yb)BVJ zP@lTR#>O!Gd2G02VPWC?wQBg|nsei^O`Wa#T%T|IRIRA5Wo?d(dSiW)H7<`ppngvDk8DB9~!p<+YUUW^>N{wy%d*>Qp1kB!&s>}x2=Lh2BHOJ03 zOI`kXFP_!~R!3RXlL4x9%iC5ke+LNV%-x}xQmOytunLjbb8AKUyk!Q4XAwaQC<>d; zcdK*%BLV%0T?$z8yBm_u20lYj>rMVM1t%?IzNC`mer;$aUf^ux1?zOTbVp?F11vVV?wy77H3KKVE6zRUAJ;o)lJ&&)-P zV(?KPuiyOj>(}DvTNgJr;^z;Gl9H0-CB`6Swe3AzQ^J?J@-;0zP5Bc0cqjBhHQ=-#ss_ETUX;mQu&lEw zkM*^lI6^MUtlk^TrNWHezFxXQM@##UQ`URL z4LE$Wd7{eI&CK%YGGM4^+!Bf%am^?xF4phu?cMf~)C}N)5%^<6KYkHSa5-NI4n!LP zZfTn*6*|KCD&-i;yU~_lu&zl%^3{|*Vumsg4x_6y&xN(u`46s|QHRZr7aupS4X^F- z%*&kXs|IkXAav;xm~{J?a=Q8T@+Ny z`E@zqW#Q=bs8fAJ>eJ?|7jha7)g=@F%V_t&M6hMenEBe?vD2JP`WLDizD{2ws&A%M zIbUH7bQ!y&-k1J}%FLft_S-A?IXnLiPAO?Ltxyt+pa1w>wI%nkjKgN&rKuc?S>RSH z#We-DYk;~AT?K+T^wLecH}I_b!^e-U)n(!=kvB>+X$zavka0zImO5p#kO8 zQ;wwLcOSg{z3pqzQ+dk^+88IitfDe|xqO{c-;SwC=~L7h8K_A7U8q=#(&``$I6>zg zs@`fSRny%)Cc0{_&UwhekQH?GX#)6)=fa|`rFS2v5f2zrEr&83YcCsv0?%~^)mte@Idz8f&kE=N- z8Tg$vW7G*<2SF*Xx-5Z80eigcH_X@WP(e&zc6*ig&u-V(FN&(G632qD0^=mRzrDsL zPCc^ZyrsdM&i8MYZO7g3&INUz;9q)bQ(OCvEob}k3m>a`vm~Rw1ZC+mouy;-t^aOK zph~N4N7vniwbI`$Giwc`SGF{!h+>Jad2r)_M6J131H3fd_a=;~@5##gslV$_EKWLw zzz7mQize`8HMaLMB=!TA%ip*FvykzR8oPw-`jt1t3A>!g27ho>13+X{`oedGy5aVl zpJ~ue#j|ef{5#%OGJ>5>-np{fx&1@voqqf}#PVGyM7M7wFyjl4ATIdXoeTpyI=Zti zs*ilB9(?LdD$q0JFkiO5E`4@4~+$*0UaD zX@chEB)g_3E|d;@?+9x5`gN9+lH)w@8sa58CYCwR>RVYAW3d&VB{Ou!92O53Y2$wm z?q35kK>dwaIqkuN9m#rZCUe(lb;)n~r*IllZL(bN+P#RkBga#n)W13J?g~Dw!hTdE z(izfv#g^|*iwMsDi`v5$GDK6h7!|}H=j1;^Go1N(I=1=MNBquS+^N- z87ax+pE4I_%G3(sJfd%PMLwdxsbps*aTF#PYlX@%2tR{Hc4ahZZJP zYOcxqEBL8oNA;MWsO`(#mz9hNfkz+yld@d|Ny#(IDv4r(xV(HHs0zt+UC|XUX^^y- z!e+!>FD-x@o02zBYp!0)h{}l$FGF<+R4rM~*XbmVh<*|f)nuqMXbcAxmaSCVs#0*O zJ^vm`lD#Et5>E0)h4U^Kdtz>!97!^yQA&Nh5^Bf~?w(Wh3PqTP`)V)YeM8TiYQ^aW zRLYNAtiTx0myHv}(SXg^;u?bKii_uFcX#&(#~L{+nzss6+cp}}6@{)9OGfW$#G3xS z<&gIg*I*WL7#ScHq<*0Tq-urT^YB-GM&=5{^g>~}&n!vq2z_eHWc9aPwFWc~L~<5` z&CO@sdd)NuQ53Dek)<36VrRW82$8i=s>-6>&s#Y@-Ku!~fTCr;!dIcSRqIB4pd#DW zq?QgvB0vHkB2m`31R0|s0}C0>NCIhNJYcig0B_Q`e;_qmjf6O8)C5nOjz6ysuGB3X zp5E}A=1Z0(#qn3FCW6WpKd4;ku15w>n`$sO<=cQTz7NWQXEl)UYdo--?=~(YRE0H5 zjIG93WxUs{_XdW-y}~%u9y*D77@?3Dhg@69O8V*Ba2K#TD7hXoxi2J&(&;5`Ny?s8 zF&bD$K=F>sGbtiClBve8Ro8L-Xa$EmpS7{}PhWW4nb4=QO!jNTR2-iaWb~Rk1*M=? zRmhvUjtDJRf%@74_bO$G!#&Bm=6j|UglG4uxjr$NS;s0j2L%_uInU!SRWpCvVFL4F&hEBeYCT+z6r8!QpWU2`z7*3Pn#1`<3BRk1J&2RnE^#e|afK zD8DtnCN8rg<@`o7@xn*g>}WqeGwRv!-lyj(juzhrpZG6DqO zaw~VA^iUa-s1OV#Fq>&;b%=))>6bN6?^Z{T{0@f8=T{OkFBSrwe^C|TKkTFcsGYYqd*1{CmoRY z;sdXpD`$$g6iqmgF?BBAw^QEPXl+*RnmCp5&a{GS+*!(i0?5#u&cEO*47yt7>;m)S zZas?Ls-heN%2+qFJ}#XDnuZiTo{8sjs`AJ8uEH2Q9BHp3!bKp(C$l= z6vvms6)c*ieg4QzE`OGL2cim!?^CvQ2ctwnsS@7vE4_Z!`u|!D72z1unO$==1&yhx zL1m<)d|%;40AY>exe36)i5S81@V*nVeNPg`@X*u zn^HU%kN5h4r{xoB_gU&ixXhJoaSv1U{f}=Jb(NzIA^sWTwN!pviJ<4*eR}lVfc4?=yjlD^5EeTMr!QvEscNe)SuFP zD5C<4>B1SjoJIwjPO7#jmHXJOkC|+X=j^J1%|;fTB6`dZopa+$Q=N3-rrI|I@7J~u zT*ci40$C7;ID|ImM*T}CGI`B4X7Gkw3u#DDVN&I21RzJU8;D{z_DZ4IuyvxCg^VPX@jFNh# zFU*D zkx&Eis!Zho;@pvlnk@Djj&HJjDXCp~%j46@Q5~T`HiQF8m3>h)>OK~Ke|ws8*I=}( z2HGCd8n-UHmIdJug0xS=0#Is=fVj^i(JRb1q*1hQqDkcYSW%3xf^@#y1oQcjz&fHf zs-MozpY}X~;72O;k!zG?(R~DU+x3b5oh{m3B$Qr{)nK;|M5$R&C;~8DGqrlZ)_Y0gdULI(~S)fmZ}v@=Y(}8vkImB?Db$<)C2)H^sM87u-$&5)Y@(USD}Qh z)+lmaKxbT81iQj7le-<%5s>NsQa&)2DcnA-=SBU=cB(F@!nC)Mw1Sh5crM_;&4|+v znfZBSI%Ma@2Yvc|qm7xzV*0ep7x#4$iS=n=;X(@u)PH=q;Y&NKH#=R?cFZadAIDdc zd^7PRYHZkl&z3SA$RV2bF5g0`qJ``q(ep=Qd@nxXpZwJ9csp{>Y}@Dgbt6-uFiPCj ztxX6rEEmP%NeMS(gQ0H73F~7te{I`m8x$G%rvGZ4Xr%qei}4s@E)g8^xA|XHxIA9M z5%e|3Ov!*rdZk1fa-^#@=pnSUwPmymadQ|B#3n_;nDS$i)y_x}AT+}E`Iyh9zDjR| zN7s2Ui?|ez1cSETl%I*?bW-iy$un_0d0@j=D!kFadx{fky(BU1t}zY%Us-&TZ@{v8 zxYo#MiPA~SzDSYGSg71NPmJy-Rbr9QzwwD3_q2Ks*0XFjV~XMDS}oVtw0)d@QYuaE z4Q~+8sw8j7MxW($K2u`^pXZG}*{b%W3x_Lp;Nr*HY41>@=vx)~y;c={$9E7xn{2#6 zB3`cq?UR`o*{nbIkqNQ(R@x}-VN#>zspmbKYu+*vO|LYU(xKV>l@qdmXi*p=tb@sz zJbxga1O=_|oaYtPqGf(n!yK5B^~EY!qlp{Tz9kG@V{J#Rf3 z<=YP!CghuemTP+K6$>bsj*5^)5?2)eoR#_4UpRx-QEsC6r4CX&24iG;UenK+ruXYE z6ZDT2JE2UK<_p=6KB>pi*`KO)v=s=uyd-S{EQF>t(dIiMywbe+@hj15$fIqhv^tuM zKNA^_V0XrYofK{7+vE%g`m<)*gv%l}9Ngo;aK2u$VRB-wlF{MgAxX+aNIK^&4qbEo zP4pAvxl^>nfq%S9#P`_aRegqh82fUuXFQT2+@^@je6k23-??6sb%1!2*T0&UX6&}f zUK1c79-*pWfwejoa-{Ap>q{5rd}=*rZ|MR2dS-KV!Vn3|@` z5r;Qe{JH=AL@-76PN3xPDemt9@=Lw;$G6@UB&bdAN7tj;((lf-y$Ad9_vFEDL2K4F zi_5W4V*x)D!c|%!!T|dP6-pb)H4kClVSn(3bC0gnfXNkn@9)Aun-tMdf+xr2I>1+_ z-+B@OZ^{amc1t%xo`C5z(il!Hih}FMg3BJyxtyuE-YnNd%@6EwHxsrghGOY~sn(Ub z{TkX-@0AT*_?A=*@I!2_l>fFq*Z>*O0*%U;)|zua_z%kR zptER821YB!W8(Qo=6T*=8oa!(;UWEetNtIomHKQ;(vWoj<)Gr0f1%Qeq$&God-i5K zvR^Oj4mwhquLbZGiQ-Ex0AAwn?CRg2{#MX5=&PgwOu5q7kRu7%RU7VS1wh^~o6{WA z@J2F=Z0aFdK|%XRNXSfvtpN8_QK|36mXP^J4p<5L&1nsi^xF1^hbWbHXWGtEDAaha z{R_rA0pL?s_D_#+pSgkr*uQ_$5iF3x3T9xnOA;<0u@o2kroOc*;n7z!3$u-u#FLQD zuVIbL;1(q9^IvxnvmB3hS8E{Y14R8840u*Vj8V+UNZ%1$7HGYn1zoIRgSZBJx`w9- zgZJ-bIUx*n0`$2vvvg^A$KOLkbXwhG;y8!G0Bt6M_SIkA;F5Heq8P(|g%;9bYv~r{H$`vd{aE>~1=?1g9I*Ep_pgKc2R)#Q z=2rH3X2LKu^HrsWOc)-mOid#7U!TF6tkqsj!E!?zf{>d_nY^oDW_cEy8BhEv9y3RX z^K;mcgeK7_s%&N1m*QW{uVgu@e2!CJxDK{1Vp+y`_#;xW>NDcb04Kd)Of+hJg}G2= zg?GOYn?m8Z=-U5KGIbUSprbu829gyv#5kXl~3|}X?|^95t}pVX4P7uCn0OMgmdpZ zcHSgFk1x$iZ;DK$foOV?sV_da6p6k>JjI!% zJi>lpQywV&2@i~6!d_l9_)ls%7>clxi8w#=S!-cekkPj*$Ede`sgRfQz9}RsBjXKK z#VQ3c44qnjaUA|XUU_z~-Yyz;xY9KZ8Ite@WXk5C4T9WI$Z>nGW_sh2qIlAF&etf) z@*nl%QRsYvFl3zC(8ZU9Aj7)8-SwT644tosvPt!(qU>!1V*-pW2xi8NK z|0TraJ9=f*$LY_~?(3?6M1!worY&;Cn+83;ylOBb`6i_--;b)%6V^HNe5eO>T@qb) zhsm8^)q4@1Dl$c+;^pvv;6@{F`8uhf5RV^#^A;q9B|vpQdH! zZ9EcNluQ2hvEV2HLriU;6BJ;=xP%wYEHZp1;P6chx6o+B7gKznhG^{HdQN87R;`e) z;Ixdv3LFJ6qIda<&VhtjNoBIC)LS~<{edGr){6v#qAHP+5I3eAWLvY}p{^vsUoD3{#lS3xHT` zU`>QB`}#^Ql<7;{H|bT*l$)jS{MUppB1g8M;VCdKOI#E6h(N>#VQtDz3de#Nu(`2B zNHr#)^?Oa0B-*c`myX5L1)ZV6pSCI{GKfCGnKtNFJ*4as2a-Y;P8#sxyfn01Pxx>- zE+!_`=!s!vwf1ypDbId84hoC!4}OI0ku;fkIS^t4#;5Jl`$&_}Bq!_VvSh^(TMTU6&M4*=$|hg_Ca! zaNBhhG%|852++x$=W|V-1v~K`Cw$j?7#zL-V!Rv)-Ep{8r6X7xtb(0MeV#7+;)M}W znU=L!-}YngXT@*fZ5b335>LVjoZv*=H8h?8eXc}*R*)tkRud6iM&S#3(QOlElsDzx z%+MwOJfCC;WlCbp}5x6=gg_^JFH#!ZLtuu8UZDO70q8mgl+ziqu+@|q_T=Jku zq{zpVkJ`SB-kx(5MtCLP5TS>(%GAb5s$Wv&z1k{?aE?1%rCNo<+m^A6RSD!xYX(`brHNZLOV;G>mwl!cT|XXet7dR$ye zd~a;2Q4)3xjO9Hx-S4PBFyJkDiXX-9?B2Ags58=}((KyCa|G8T!IG zqLB=8fw4AeP2A3PV0EeM!fa2e+vxCACk(v_-mc-m_x7!=m7qC_e&nlgdn;=|yDDVT zgcRvon5(iJeyMi$DP>;khF<)MotK$Wlp~4jL09UVmgRCXG=b~LbXP;;^YmC{LbuTN zb9EsB-gf4W+59O)+WhobLWmwQuFZksz4h?OyDC)dUO0()-Ym6R_O!a?_VbR$|cI)KMQZwd!&uayk}C$;32fjuPsxpr2KR9vI!B9Ep|2QLdxFbJ@S$F#`-myV+1D}@4faI=sFPvR z;(A<)Io!uv!CO9+MN{}7GJlfV(Oj$gb8Uj0>y>QZgHM%7bIwz(+Pj8<)tF2VxTW^b zNi{#jc%+n%1McB?r9R^<{RRK#L*Rv&9@(%?C$xJ@+ZuH_DOXDK@>oyd^Y^p`74n&fDz_l zNmJm_`U)l2Sc1{_fnL}cBAbxLmLtS0S#N(s8V)fhrjKV^kQ?6f}a4vR{* z;|N^($>i}J+Kwq8olJ7>hoo!$WO0K?z-~!qB-OFzOq{F5P&sdv-44y28vtEO)D-wd zv^#^l(OhN$K7#-Qa;RYLR@-j&4oGmCF;0#vkK=Ij>(#_k*U-$IC~%V6MM(wSKe;Z8 zaI1!BK&B6aw;j&OqY1bO%g6rZX!JjH&Vt<_+iGpJn`P@!|4uFH8DbFS-;oLFx*d~m z|FG=AAbx}N@=o@Ci|V2SYZRE>W!>)l z9L)Fy4<_l4cI0z=#o!m%@qsu9!(hGyfLYHRH(ilU^$1RCNNMV8;D!cxM~^ zCkQ2<%1#i&yBmBl(2nGfxbf-ZjHqrN2=wa%(|PBzjDD#WaA4BKq4=jST;TLkNAL-A zW3;(91I)c$tJ&k-Rbt$+BTFoP`odJ<`Vl7N(yZq7amTAQJ1K2!!+U#p_&$q_i{f^Y zFTIVI8B=$@+zb@I3KgV&^Tt!TxVNq=hN)@uEZZw=B}REd(1D3!PKW+id!{#@;@{U- zJr5!t2d6bIZOJ#E0C!^lQdQgzLLt9m7I%@YaYWd|ILTc}Z=NB$1Y+;E;6hTV@0s;CWuR8Dbc*z=k6%@& z*=WMWlX}2J*OAQQCePoy%r>(Yg-*k$mHdB1$A+j{f-J%ar1cSUa^gQ<>rG4Daw?O`R12 z4zgZ38b4F#&u~dG%X&wQ-MJoj$9ZieBx_!9-Sdxs*g6mGm7hz3u83K+DHI(|(7l3_ zUCaOQP{9<;^eXhaO|0y&)KRT5dm$ec!0)gplF-^~=ZnGT6ro3?eIM3a4;r0zw6O(I z^p?@Pyx>}G3)N<N3_tWK zKR$r5EH5f6=!x4FDqoTVla!^)p#jOqn5LkvzA~$kdmzx_1Ltag*j_<-lX24Zks^f6 zk0~e?2g~jp&3$!aGSQL3ZMq_X|J`pijEC`BwW*pYKeHh=R+7xtt9yn0xO{`UiRhW< zrm1Xx=XOGho=Anws5|}lrQ>X2x2bd3$NjQR&`SPt>@k)r`|Ia2x&x5!Y9`op5jpFB zbWd~Lt)kwZP(vT?p4UKL&N2(+AL5?vSFz(5w|e3_MsZJk7nTi6j)Uq7BK`yB3|^5j z-4CtZ+F@X!=+eVoUTjP6ZOS^c*@?%)XGW;9^K?$&;4Uok)0x1 z4Sm<$%HZl$*-Gd{X}t>GvVwW?T=1A(;80g+ppLJOLT=iIq4OW@fWR-|J$a?C20xl+O?OX z>9cO{(&0-rz!R$eu5{kxuuHGCRWc@%LV<)S4+d1aU0*%4t#)Czvu6F~NQa zW}|594oPwcYF1pah{}}|1x^UHe%ttIdDn0+7kXsRfeNuj*kUY+y{=}~TBhz*m3%pmi(}V8cxv=GuRri|p%UwvC$wh-O>$}V-94>4 zd*(?`G&fSVS2)fqR7dM)2J%r>;)UD+o$C)^aJOKGc6uMl&=WV=1~r&FSH{gtLM%rY zvtE|ccKWMDaW?=z)Ax+Ut5}SDwWw%EmW?LN*ws|>Z|8`8@$FJSeN1^ zb7n6k1dDY90FfSQ9Nh?6E=fX_Tv{_Ho7iBhziakJ#aF?zwTUvv_Ght5vGfEFrWshbP|ZiRh9YW_g*MsF2TPLZ5jbp~zKf+vZUDu)&FxASd-pnPwnnwpEpxsf5)0 zrJq|? zEaOk)y31vFrxaateECs~3(Dpap&tZXxx&AN;rL!(*ooQj8li|)sKADkI4b6x(#^>0xcwPud3sPyxTJv0}A!OgNw zS?>nr=yeWxWaQonK!Zo& zeD0ORDzqGyS8q8+| zmHy(*`IjbLzCpEUhnCl;R4-_g1|uX#e3Vd230mKb1;+&uG6^b{=5gzWfA?xp${vU% zz1MnY*YRJ29$##GcrFC`VcZZjC_CiZxp{W-*Q@cM`9)~kx=Pg&NL76izY{Z# z5zzBOwwyq?-NWNU<4UDce?(*2>QX{1Dkq|v*b?&-uOck61x5$UAKIK|G~^?Rv7;N8 z{3}2%uDds;hO`J~SOB{gGg{K@Y!PGu8#vD!K>K%XaN;P*j%&4PItq1M7lUp|y^@fo zdP`29X_47xYyy8%CZ1==JDXVm(JcGtG`1?l^elATubn{Ni)rNJhn#@l3pm>KAkNz$ zGZHbbT<)^>4xkJ6OB8fYLX5KbRYmD7&AJ%rZlV<=XoJk}&o5*BhWE^NziRRO8>bZk zOH2;phZn5u>Izi}uy_CToVV?j_9D$`juN1Tzk{8@V zPrm=n@})S|1#j)}lE5zKrPWKQtEDE@>;Cs1rM}vR%>Et{WCjcjGr!KRZznVVl{|k{gz|b?KBa~_oGK9GcB%moD@S_L0FJ8Ui z&(Dol+gE&7b&}V@l_<&9@Bd;r-8HrUR{L6M=nu#z1Qh^4iTZCA;AN!e5A@2bH+Vt+ z+pRo>lwD%qzp@hE{6zBsIJfWlCDR+s6Vg=vB2K?^_X!@%*t*_zX)QYxm-=_I+lE`R z;qxk8pNEuohk)c8UN}nBPQ?uYKJw`LEh``$6NvH@_93N{>{ZFLQ}oj)0HQDjsDchH zL=c6%0Z&S#j|K}qX9dfd1})nR;DpwFgDil8h(b>a3-SrD;0WkS=8Yn^C^0{@s2UQE z3Pdr=T^^Xsp^>>Hqk&h9Vh558@(5W;(n8RH)^Dxbd2Tj}-*EH$k_=maK)EPYL;vPR zgrbHIosONo9C>0Z%Muqu3d@;Be|tCe4AkHin9`Jessb-jj_|`jeUqsGk>NT&Q(K+p zI&t$c{T*Fe2u4uzF#a8tW#9fv0jz^`%YHVCLA^8SqZeq7cl(F_@kP`FZrw$y;mBLm zkla*5r|Vi)`Oo5Bpm1jjQk_F&Jzu-F*Kj%k1K48hie=gT$cTx+B35o}?OakdfhxQk zDlUeuMtc~)bWv0O8ZLm_{fv5U3`Ii0UrAG?l)j2*l5@%Z`4=l|iUX|X-qiZLSuxd^ z<3!_HkU0gZVuQaC9m5PvejbG=+)*z^sbYGbeE1_}aAWu1d%3Rnbw~YYq|3s@!vp{Ti@qKf4_@0&KTvw` zn|iw_3%t7>kk8Z7E(#NEF?yW=41{N49%jM zH15A9CQ|yS6`g%M0zH^ znKKhs^fpXYSnKf9_}8G^ri9L$bw!5*16AECvVKO>57vgw4g%`Tt{$SiZ6REbtx#bx zEJBUYbsic~XgsTq&3Q;FQcaEP^o~Xc$$v&IJg+IX;vI}PEnTsjA4R*b%|*T zvJtY97`Nn@uNB6a$f`KJ$_9?K>hGKA^oL4e`e$1RRzv`iXP}avk;V#+R++e6XaKVz z`s?fZ$qooMLi8hf-2xcF=`OE0dpfFsqgTA`sFyJ|)(HE+z(5}u#30JqCuQHMs0-U1 zIj?l#PL=0mQ;lh+oddsdLRpW-1N{nuIwSB?w^;=Ezz*d9{kcSPP&AWg1m=P5S4Rfe zrLD(6x6tLxeCB(Cx}PKVX$<-Qb@SLq2Pxa0=50` z-@gw!`uF=`Sag6W5VP|@$2>wu`Vp)zgd|QO-;rzye=|&AB8pQqXaNC9TI9NxG7OpX zT#9*wW8?ZP!~{3l+)=50F5GuGo@DV9=IGM!0WXdr;~VJ0)S2AW%_bP3YQhvbF(D@O zQ#iPW0I;6qQ`p5VSk|rK)x+cvGi|xlwfjkVEa^bz&lL)}W64+a+16P>((o}GO699x zxTjWgp@puor>h*#xy|n-cD1I3X)Nf=+(Q2q4h3^c-u_Tdpr+qBUc~yV0erJ%1Z?e1 zsLwm&424QxG1BnZx=*It{Dh^<5_dAG(zI}h>OkPh?AY@B^~l}beOf2Cgbi-S)`t`D z@O*he;|A0x>zqZUg0Bb(@5%vKx~xq|`i=uON#tFobCut*El_dFUm8Gz8Hfye`|e7Q z$jk&(Mnxsq9|l?aKu}!_WxMO{+6rAeA0CEpPiTH<{XLGshp)lY+k5-PJ@@acOPUEK zB_(w{u`MjXhis~y>>_Mun&ujlU}rmL3aj=tw-YtsKkWXdLb|sx7>D@{4gW?wzJI`X zJw@UQ-~d=!>9Fg-Ex!AU<52ZY%rhmyNLC7<%&pAL6>;z3c)COC8UZiD%?(k#?Gy7ED?M?#~oSM(ElgQvc4ZbsBoZnUME)Y^2rVtUYN4IAB zDNwA*z9;rirrq9F3Vw6rt(`~~Bc^=V3yCU|UdDTp@%5jzA3OXIJA*6ms?dbgO;G|! zfibWz%R!gYV8YQkCRqPTNN^;1_hK>C&W=9{^e_bSC-K=Hmi?*ia)_)lf|wT=_a}nf z-w|cZ`JZ`ZE%@s?4GuH-)jAhWhEy?~=DeumSgod*w+Z-R{(##LF9^LN%M_YB-s<>> zoXe{3S#`i9Bt^BkoD+f)QyfC<8+jbgOVXWLBH{U3ulo4V!;RsZmPP)?g!OD-HNAz)ik@DB5k%_@n{SNAldRok?BIRbz)T4edO@qXHN9)8sjjZ>szsS&mw-n} zrkAfMq5aF#v-g$C*L={6nhZzE+I4L9?(XX~u{up6^g~Vf_Q@anrQvifEiGBn%F017 zRDEfH@-h-of&tbO?eRPA9gb-dEr-ato;juZGJHX*;q^3Yw$gnGPHD>EmgSu1t-_(N zCnqNjhl`nJL}%)qDcrN4b__orNmAr!9j%k?qjssJUsYIpJzMo$!Wo}z<#q(*vqzWX zUIrN6OB3U@k~p-V*fKEQQqf<>k9<#F;HGD0VZY1tv@peA#c$q5 z)vPbLuKrWa1!h1@^zp#%yMKMAQZW+XzBwZzA`COBJ#Rs z%Waz?M3Rz{-U!b9PLj&>AQ%=KVW;Kn8Jo7J`z_EZqKG^#rvw?eotV~GW}X6PPrXUe z?B*s5B9E4lP5Zh2MOV%4)W$B#C9Jgg0N`NnGYbuf-o6y(SR|oguf=>@& zXgBX;_e-RhuPh_8|E*sHr#&raW052$p`4M}w|op6bO;0@2dua!FXGUK39Lvk1#c{w zRom$dUFOqn-jd6>{@fvzZ<3?AD(SeK;-3t_@Um9GdPhHcv*|!72Qj&2{_{Q`z-?{MkZRMJ_8!D zR~56>-<)Je@nZMCNikF7lbq%t#do`+uc7bvC*#injn-KV&9tOI5587Mp&smw65SpofqC7aL2PjnVSs=CNn+JDBK40sO z59r-Atf>2l?#SPnT+t1b#Rli(JMv;nm#CGO*Va?F;rBtk;dO7)-j1wAHv9Z} zY zfor;weld=Brwbk$p%*#O0e&U}1TSPxeBS%@>v)_jf`b4~2NzCLug~5!YIUNJw=VfF z+%_#D%WMgIRj~gn<3d?qdZP6CR!@~0A`eN-d#O%ZUIVF2?8i89PU}G19-(-(yQK;g z^GOwJ+))LJw;h5GLwa;x7#9^4wZ2g}#G}p1GxAYaM~C&@&5NQnF&=MUixrADNq#xC zqlS}~etlGK*~C|Zlt^f#$m+KiC#AHlvV>r^{C_4U?2|F1;hpd#jD{pdtx%FyBUXU0 z=0<8mo0#;KK@q}E#A?VWO2&U&+W4ugQ#;;IxP!%tvgHM!FEU+4 z2iOS2^a#7}{*kPtDNE%X^4Fq*{fN#F{K7T{`r^3pMlul{hl!byH z2Izm^XjHG{7$!Vqyo;w>cO3V_mVc3NBvLnW7Rh+gg?Rt%d3y9B6GPCcQ6^MIO|7;X zq*?CT!`iqNdG#j&UzMTxZHvAQWZx}5%Lh1)|Fr@M!ZjE~)Z+OqY0gLjO?I}I$i!n! z6ZVaGl2O6Li%S-!8*6KBOQV*edPZR8*TI3JfaM8Q3c1)jVN1LZ#E~C2FLJ!Gd;}&& z&o|WqafI+yV)bQ@?n0I?FH6kO4l->&$7DX?3)buIZH)c)SPW^C#`vO0!@(p{goi2% z{0fI=rmMtslrIjQ^kp4Nt8q|K+cv}nELcnS z66KtR`DUAlBL>mR&8jC9Kc+iy7IHphYHCSi?j`_IqO(&pN2f@L3+^xBbhUke8K*u1nOn< zMG$SkEKI#qDIV>q-7Lf(x~TH#o8tBD)ttT8QkZDLHdn0L$aCam`rjEj^rCj$?I45` zk^LGBF`I`k_`?NHQTl0bCekY{@rcTNW0>(+Z!@s}MQ zB1wmdX@6);YxN6!gHA>M$n@(jyAb+kXA7Cr(K4HTbn|AjAFrka-QrfBM;x27G}`Qye(IVT28X%8tz~HJ#0rLha<1xz9gnM zxO6x@2oBcx=-8FcFu>!iTWnn{z}8w)ga6ZBeh;=Y_Vg@gz0j6hMcGjY1Wki6WN@Jx zqfoL*g`SS=vJzHePpUs!Wf0c1 zvHR!u*jRux{;Rsp0;U&}>uc?7HkbuO^}a#xs_3H+Htt#b-^V;*=#+iL*J@VnNR^2X z{e~h2F+X(tge@Cv$Q^b6$-=^NQblgekvQ{O zc&;4<1X}No`i=eLu91E-Iv$Q(KJ951GZVQPLHxueJQ0px{PpZ*AIxoh{eIWH=~NIV zUwwDi{C(voDJ@zP_7gEw_qgGW7rm3|wbk(!?GF(1+KA>WJzy{mhG@s;UcUtZQ(;*4wr5^MjW} zpATW51+zb%;o|4F;)Z<2p$MZ(Wq;l6HlG0>xZz$f%|8koGnNgHPG-9t2Relf2F8G} zON{!Rj5Nhh8D-8f%IulskGfxoCtaZrE9miz%WYFrQ9lCxANTk%%?L12X8MLK!}-3` zaQC5ZL;f=_>q__0clGu4j=Tz4`R$OjACS>eo6!%pO^F-hRa<5SH#vEq`mE zDm6M*1*<`c3=+xhfu^mCPRH^fhLs0RXf~_&vwG)Vd9q9k;N0x;FCg;HGS0be|EkQb zu+CafDoK599YL*R@Uj4R`1Mu9rtVT)JluKJAZd>f9%Mu8U_O z&KO|#-;m}SM6_)HEdD zVP7UPcJQZ-2>)HT_h5VH3buFSI;-zvD*{|`MI2J2>&+jr=lQ_Kd696ggAG!?K0NKvX5yb z7y`(_`Yc=P%%MBQE0UW81N364gn$8BLL+2bL#bl80fkx{cnwkjgFO|aS%gw$vig}N zy>5iDnk~Qh8Tb~b=K98f>=wj@njKn|?06()Ar_7dOx|j`Ul~wlSp(PGd|zEV;F*NK zuvvD?9M&wKd<`wbeFRDNIKm)<$e(&Yk2#_j$N3h1upbzK5L<&S5AIG!&}3)eDg#O_ zosh38rZlmw+u|rz8dlBE>`Q_+0B*tU$e|4jIE7pn=kU97=1WA}|$?9n)K!LnuhA0@EA0F}A zoMyg%5uDFo2{p9@4F~_>bDznKnAL;hcBQ!MZw*p>&E10K;FxNE_xhWZX>+)zUh zh2zbOehcbsNZ{KCS5kktUph;^Km#^;b|}>(BaHVMHBK_Obgv?>Xq`_8fT4$a;E@8o{xjD8%^eulP#V!BiF~og`gV~4 z?N6`OS%=EQt+EwCIU|%Q%gy8~kgIBv3YyLw$Vp z@*<%|pY?20Z>L7u3rpx-0w{gy!hEzcsM5B_iu&j-4&%%G5ujjG0c_g>fe%!R5Pj)V z%!-wEO{R*9M6O6O{s(R2N@aH!>b?ft1FYK@{!f4eg&zSF&)tW;TDLg$&>`PTd_~NN z!ooFh;Dtqy;-_8#(lTGtwFoEnbIy)7Upl$4_C(vzxAJ>eTeUc9bmux>BEj04eqZ$) z!SQa$Irt>3b%!%DBEoaG7w(P{IU^(_)Ny_4i)mhx-I$@G`apPO9@zl@F_}OWCsw!g z_`1B(r*%ZxaE+gsx zKJc*6H7_cJ2gZ_jhfy%`7-W9QL2$^SQe5Z)mvS*Qv%32(top&-yK~zF>Q86sAx@=m zLoe_2vohK=EeA^x*F+T|R&`hW>C-mf4!!SASL z)QArF7&G$&>#xHVQKZNuOZ)03M4BqsiYFp(zx=sw>Zn&TD+zZ78e8o54j)TO_*Ph{ z5Dn$8p&g89GN7?8aqXYx8h5`6dYfx9r*PHQ1X&P>hCF|1CuKBW;L& zseS=>401D5j8+(BV#T+#nycV_?X``w!GDCpNET7c9p;mQhZ{bvF#C72;7+rZ;*75~ zCmWuhZW82uz=*D-$9!tVa6qh(-m{9tY`S&d*@T7#Y zOn)!uJ$TO2J|??vh6ayS$T_^^;=ZY)}CN!kQkI^2uW#BLSfKBL6I&&hAwHOq#Qy4B}RG(=@JKIC~2f&P(VN# zx}`&b0jY1i_x=&z4`-j}*=L>goU`{@>wVX|V|2A2&{4Bf0{{RzO$~%T>E8G6q9iAc zSksF4q#N+L{)4-Kif^3j002jmCPK|H0J)tVl*MV3()+R`u((NySAvyNOBa1z+k`?5 zxKbAVTSj_)gG$@a2u>`xJx#|~0jtO_%~97g#C-~%Zye}6mPW5{z@!-jP^jDy7G4Xk zjyEXgj_`!Y!g9yr&5!a)?P$C2MB|_3B_1Iv!N>f+vVwMYXLk)v##??djTJ$4skKT0 zB5ui`hhZ@+x~Nh@9&{oOM9m<7C;8tiRRhY!s=a*MkGU^MbLB>pDP4wCYT< zNtAFdU>zN1JabTj0(IrM50u}7>Y{x5;N|Xr4dB2v?M+Px~EpZc|A2V8V0?jI&p36&i>0r2l~(NJ%B3xB;@jLjEyaQYJe{s;`|K zME+$0kpGbXRahBblwv!@|0|99`LPIE}li6_$oUk2EelxKSnGRUk!6&L{<1P z7_CeghVk+>KI`(mrXy}bk!jZJgf@jYQ@ECd{ZTVT=w2a6e|smD89Hfy;~TfNrFz;I zx@z9GDrO4GoB$h>kfFG@?WSaVUqY3O&n6!LL3b9zuQ`gJMrq=e^iX4OT7=$}htNgx zCkiGH2r)s(+sob_{$ASTcYd7vt_!dTjr;TExH#||18Z%++i$3}WtNCZnqXdL44_M7 zwT*5y;kp__$~_sVRgVeI{&a5fo1h;&E5FLDr7kXrU7#kUm?f}5=GM0@8%UQ3`%pxc zP8O)NE(r^eeUDFd^RP$UFmXjG6z@Y(;La_1u;eq_M=-%{vplIom#b4j=R5J@+f+f= zDIOnu=)LOTj$@)JpbXQ%LFMCs=CYaRjr;VJ|0B1x>u^)8npxuybN<2#G|T)2!P#*l zo1nht#U|7kdqT#^VOLGtD&k@^L@iUS@v#r+_2xA(Zt2;(<%~%wEUHIrzSvk`ecWoa zS-HJkgj0sb%$ELX26$01%m?Gyio{h?38Y$~HGpN;yw9}`Y`;tk%Gu6a`&9)Dcn4{g zS0%qZrgqKtXwH#)3U435*4-bZDF}vevcYQaUXby%)~knwURmu9Y-s%4tuSzh9Flc+ z2gG0jn9nuNa4hzBz^9y=#qe%$P{GW99qv>X)ieQ@5zJE~@sz3>qkG+Qd&_@9ZH3#8 zS>{_K9BI9XKhyW~uHwoX>4=3Q^_8c#G}4hz`GJM*?3UK^OnI?>)`)pA8RPN#wmH8P z%K+-JuhS-M2hMHc4143T_Ah%X+e$6hP-9>3Ie_D$*e34Dm6;HvGXopUj#kREn6M~= zJ{Gv$iDn`y4K+5xwz*#$dZr$7m!eDh&reYBd#Afg+dg>uJF2QLL~^WHJhdXu)eAR$ z%9%EpigbnMjYk!9R_&4ss4qU zQARMcIrqu3ZQzfixRSdcrrlr`ZMt4(TG$N&;Kg!5yMvoe1H1aXlM3?ljHU(L;mD zA8z4~<*Mm88A_aj!Ld3wU5-~?3Z0or5*|=biFL;7wTrO3v@^+nr<@ymbks&JqC1Zo z)3T)kUJ7RjNK4?8w#&$SJ0l1Ed)7}#RK(0R&bg?w!{rX=7zo$mu1QsF(#qEk;QZTGVm97bjThxm@ zzV_9$@u+BR(zWF}$pb)Na=En&kyfWNy?-Az|ApLBFWufdd?ybius}k91+E)`*27>P zliQVid3e(?iJ(gs7!^4wu6D(ToxL8fN=^ByrD;`(nnV)rGgOhDLAs>l+CTx186ukB zvfcxD*bUzY-3(t>5TgHNEVEw1HNw0`}e2c6BbV)8X#a9 zrl*>0i)Sw~;Od~*lcno~?@DEFBz_a3j+ecIGl1a- zU?&?i+pRT=11>XT0t37``z|d@9KXf2Unoy)hW!ZS@->7uk`|(IcLx@aIaPpTxwo$> zu_|jf1Js`6jJ!_JnWREeqsag`Z20SXqY2_HRPgWniiPLaGtwF7>fDf5Crzv~{)@YO zxmi`NqdEQxBx?k~=7x35U1nu%h~VGgI>Qrh1p~zGja9|!qjhb6I)DOl+C>PD7#B7` zb;fxukYVrE^(Ts>JbSI>}tQC|8D8<`(L5+V~XtpKnx>;M}J_;7o>U$ zIE2nM`j`IkfMZsYE&J?Z*Yopks!J!?k!C1N8l*4An#Q<5lOG{J8&Ap8m%Md7G`Qfm z7j=V2*cx-|B!5^Wdo zFM4n^xKOnzF}Mw=@KsZq>7hv;Y45{R(#OtPsik~-ak%7+S?J#z}0)%^Tc7;Xa~0opatmbh(N17}?A z()X3xws&3+-(Yv^eWmBrN&f-RmyHY3%n$u^tDo)jZ5Kk$}_! z$qOI3olB0_M?n(?Lgw3XEhS%0ak>hdoE)mz4+*xbI^@R^1O=}jI>smjZFJ5bX89h) zbzDfqR@cM)7TeWI$nov6Y06)l*H76+a!|1>uy<-@QTzPIX zTOMn=bmO&^fv47|06G>JBZ$vjIpBa0v8O{w6o29FkCGLL)Qxw3dL`C49NN10p`#KI z!+^&Ai6gqOhYH^o>j7YVex;F$OjHc7$$Pot$41m>N)nri!($$Z@ljjQ-p;DsvW<+L z>Wd~Z5KA5Bp@G6JCQF4P!%K{IYcUz8XXN- zP_Yf1>86qCEH?Mc?Y-Am!&Qepdm?cb>uz*~Qn`|ANes>hTE0H2P(u@7=!0sByGJVA zI%BOfTQ`X<(sSFzKL(bwHK#0Upmc0G#%`oF0g{-i!532zX{&^d)N==_(>j?IB6p)n zi;L;TjW%}0AoY;aQjh>2Jh*u>%aDiCU%iqPx>Pu4J)8wCk5qTyZ#KPC*cO!JNnesZ z$GT@FKjQv;ri}674ZTypn&>fUQw{>WJjOO-7&sB39BHRPkf4_3<;7^4*sP^;_y{T7ekW|HKQX zA&SZ;c@0oTXHY5JoqNR|I}n#Y39&B$#4s`NbblC6ovJF+uE-p^Vd+RAzpuVTN)R$T zC*%d?t!@_tMQ^o%I>-IDtLGvvgi(7RngL@V6EAEwmjsE@0OG^_*r6$a0&LCc2zy@8)P`_BMX@1yboF+heAs~ez&XKe81Az`i;XTXK0 zEp|aEthNpRQXYrx=-&k#^u-32aOHxn;@k-x93SjzptVM*EkwUu( zeviMLrHTp=T-eD2s0E{9LzzYXgNg&7MS_33^l+6*kShVb*tn_I z7orgSO6dFQMo}%UGWL8=czY?m#~1J|#gCIku=NkzZ_otD#1AW|3_jB!~5 z1<<}9YAdt!mVgVvkmk>!Fik+A!lsoc@geHUk#f7%!5xdvUrtZ#Bj#AK$8`VDY;_lO zka~6T<6vPeQN0E0=YJv!X9D!CftxV9wx9fkoLATddJfkm8dXGf?|nXKFH1nViWYWsXRH@&@!vkF=Ftu+HU@CB;;YcRqSqWffceet$ZASa#4(I zj1X9+$At)RjecfnUl&iS7(H$ zT(Z<$=_chR9NzrSPiu(^P<@xp*NSpJj&@R`{l3(l2VEQ(C($rRsZm-K(cX$2D0_Dx z&)KvxF($L4V+%LHlffQkmkZDohE2f;v1=DLQF7g8H28K&)=ruNm1}m>I>_3q<+Z%D zKc_@kFTov!cbp&UwotGS(v+l@M}!}RVak*>!gpbnXDoP2%Dr1)j>9_IE@A?0$<-aN zs1IK^gN`SigI9hc@JT3| z>w+(*za2xi#WAVHNYiXC)f2^PK25o+?VW47W??E_*{6UBZTvGL-fAo7Wr(U#giZCP z(RfVOYx6sT_AZofe59%_|4f#Q*<&Vb@SDGFdEl&7KfnoTF*uE#lCAXpyMC&pXnpVm zD5D8rQ&r5e+2#CnlLAGwRIpr%No}O#?(?IYdkof5+4c9P|2o7oI(&Q+~raebYM6iz50cGPXwD{e8 zAbYtz6T{dMD^vW6|6sXsUk+doi$eQDZMzI1;}1OZM}tCjygFMlKzLtIO3(I57!cSxc}i>oj7L6=OJI=VtHA`ul_Zf26KH0k$u1)5YD zQU4WQ9^N1|#V0<6PR-;CSOf4Gntg4b;XHBopAcr4@u}QZ~t+(!m?mw z9MAlC0_RR}KtE9`-hZHRBch+y&G=G*G^QO?;Z(cFF4!dXK>dvCT_{oaijCS^ex9?dq23EcGj6>pvuE}1lrUs))3f+~e)!vUX>thF{AME;; zi(HosP^VX3xP_GN=NpnoCXhJhGm#v@9$vsA*Zt92q@bpa3co?cEZB91Qx#Z~!pw20TxN=wFo;1_zFw{a`z_`@wUHl`0i@mc zV5+@VOLIoQD8B{uHbJe~j0oIT{#s-^iWh4`@9Whi82~+Un#=d^>9^QkWFRZZk>Mho z@c(K#c1jwETaFJ|D*2)tm7azLO21^TUIwc1a`kgj!-j}MvrF>#D(Vq%?@qexeDf3| zE)`X!#?yF=D%*UMfciv@2zFc5c6~BU;5;KE3e>kYbc3+VTTte$S^uFm!Pb4!+#VeO z;gr1v(AAR}X>WV!>Y*wJe?55iz+#Usk?U|!@}H){6FN}z^`E99cC_b9aCgeB9yMNR z!iDl3r!;K=tS_ex>6|-y)Ke+Tc3PT?fAU&&`2&Oz@|mYBa3+8( zk{_|dj)so`8Hcor`{D)G$ekrWV%zIBxpUqG!{N>G+uOB=FXPD z1{J2T^0mGLEMCXerk_Uk9EiUw^s{}=anC%f_Q&j;4d)7X1W5k*kuv2D1fcCv^djxJ zL!@ZK2;0SQ7)Q$>$=f?!~;3(tiZqss{o$dWxwM7njc^4mb3Zqu31|N0%w;GXCKw72}*PuHjM}~e5Y3d&`JPHnQQ50%LalBChuhXx-fYEp43lX< zVMxgqdy&DKzTHXeaI$__r=e9Os+_&-UAI9h_T|mN*LJo-^yqCa&mLo75DR;^*k=C` zlF(a$GWlrx-(!VWE_?SeJ~qG?C%{nG(G-d|2j9AcUm3b-ihZJ%xVnkoo+`S-@1t=W zHdV_yv-Hgru&BtmQIJ7x1}tXLGEGg6+H;t3;eglq7uLaE!Wy2U9zBQN`1<-5@8!1| z5PPLn+yKEoMO8pREKhEd9=+ePc-MUrP0p+}TV<)}@7mw#llNY%Ko`1~dgwIE#FI;H zBeva<@9q0sI8L3R1`8yls7$LWZ__r(Hc{S@uoVQ~*|OQCtl9c3sL@G7<~mFn!5>Q( zSbtOF(a%7a1;MZK>i~=#e}PgWCFwjUhLt=8p-(!167aP%M8@dCfr-)9x|#w;K!}F^ jgZnEf|DTM)E-6BlzJz3$d3+|F=>as=wGkC}t-}8g)cIf^ literal 0 HcmV?d00001 diff --git a/src/static/tab/07.png b/src/static/tab/07.png new file mode 100644 index 0000000000000000000000000000000000000000..21fefa91b402dc3559167e4c126e933364721e25 GIT binary patch literal 6769 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 TMr*b%LNY*IMF&%k#s>cz#c$4p literal 0 HcmV?d00001 diff --git a/src/static/tab/09.png b/src/static/tab/09.png new file mode 100644 index 0000000000000000000000000000000000000000..00400946d69d9bb7069da0222daab6eee33725c3 GIT binary patch literal 6045 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 NwuS+sPTldv{{ruft7`xN literal 0 HcmV?d00001 diff --git a/src/types/uview.d.ts b/src/types/uview.d.ts new file mode 100644 index 0000000..7d68ac3 --- /dev/null +++ b/src/types/uview.d.ts @@ -0,0 +1 @@ +declare module "uview-plus" \ No newline at end of file diff --git a/src/uni.scss b/src/uni.scss new file mode 100644 index 0000000..048d96f --- /dev/null +++ b/src/uni.scss @@ -0,0 +1,78 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +@import 'uview-plus/theme.scss'; + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color: #333; // 基本色 +$uni-text-color-inverse: #fff; // 反色 +$uni-text-color-grey: #999; // 辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable: #c0c0c0; + +/* 背景颜色 */ +$uni-bg-color: #fff; +$uni-bg-color-grey: #f8f8f8; +$uni-bg-color-hover: #f1f1f1; // 点击状态颜色 +$uni-bg-color-mask: rgba(0, 0, 0, 0.4); // 遮罩颜色 + +/* 边框颜色 */ +$uni-border-color: #c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm: 12px; +$uni-font-size-base: 14px; +$uni-font-size-lg: 16; + +/* 图片尺寸 */ +$uni-img-size-sm: 20px; +$uni-img-size-base: 26px; +$uni-img-size-lg: 40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2c405a; // 文章标题颜色 +$uni-font-size-title: 20px; +$uni-color-subtitle: #555; // 二级标题颜色 +$uni-font-size-subtitle: 18px; +$uni-color-paragraph: #3f536e; // 文章段落颜色 +$uni-font-size-paragraph: 15px; \ No newline at end of file diff --git a/src/uni_modules/lime-echart/components/l-echart/canvas.js b/src/uni_modules/lime-echart/components/l-echart/canvas.js new file mode 100644 index 0000000..4affc21 --- /dev/null +++ b/src/uni_modules/lime-echart/components/l-echart/canvas.js @@ -0,0 +1,372 @@ +const cacheChart = {} +const fontSizeReg = /([\d\.]+)px/; +class EventEmit { + constructor() { + this.__events = {}; + } + on(type, listener) { + if (!type || !listener) { + return; + } + const events = this.__events[type] || []; + events.push(listener); + this.__events[type] = events; + } + emit(type, e) { + if (type.constructor === Object) { + e = type; + type = e && e.type; + } + if (!type) { + return; + } + const events = this.__events[type]; + if (!events || !events.length) { + return; + } + events.forEach((listener) => { + listener.call(this, e); + }); + } + off(type, listener) { + const __events = this.__events; + const events = __events[type]; + if (!events || !events.length) { + return; + } + if (!listener) { + delete __events[type]; + return; + } + for (let i = 0, len = events.length; i < len; i++) { + if (events[i] === listener) { + events.splice(i, 1); + i--; + } + } + } +} +class Image { + constructor() { + this.currentSrc = null + this.naturalHeight = 0 + this.naturalWidth = 0 + this.width = 0 + this.height = 0 + this.tagName = 'IMG' + } + set src(src) { + this.currentSrc = src + uni.getImageInfo({ + src, + success: (res) => { + this.naturalWidth = this.width = res.width + this.naturalHeight = this.height = res.height + this.onload() + }, + fail: () => { + this.onerror() + } + }) + } + get src() { + return this.currentSrc + } +} +class OffscreenCanvas { + constructor(ctx, com, canvasId) { + this.tagName = 'canvas' + this.com = com + this.canvasId = canvasId + this.ctx = ctx + } + set width(w) { + this.com.offscreenWidth = w + } + set height(h) { + this.com.offscreenHeight = h + } + get width() { + return this.com.offscreenWidth || 0 + } + get height() { + return this.com.offscreenHeight || 0 + } + getContext(type) { + return this.ctx + } + getImageData() { + return new Promise((resolve, reject) => { + this.com.$nextTick(() => { + uni.canvasGetImageData({ + x:0, + y:0, + width: this.com.offscreenWidth, + height: this.com.offscreenHeight, + canvasId: this.canvasId, + success: (res) => { + resolve(res) + }, + fail: (err) => { + reject(err) + }, + }, this.com) + }) + }) + } +} +export class Canvas { + constructor(ctx, com, isNew, canvasNode={}) { + cacheChart[com.canvasId] = {ctx} + this.canvasId = com.canvasId; + this.chart = null; + this.isNew = isNew + this.tagName = 'canvas' + this.canvasNode = canvasNode; + this.com = com; + if (!isNew) {this._initStyle(ctx)} + this._initEvent(); + this._ee = new EventEmit() + } + getContext(type) { + if (type === '2d') { + return this.ctx; + } + } + setChart(chart) { + this.chart = chart; + } + createOffscreenCanvas(param){ + if(!this.children) { + this.com.isOffscreenCanvas = true + this.com.offscreenWidth = param.width||300 + this.com.offscreenHeight = param.height||300 + const com = this.com + const canvasId = this.com.offscreenCanvasId + const context = uni.createCanvasContext(canvasId, this.com) + this._initStyle(context) + this.children = new OffscreenCanvas(context, com, canvasId) + } + return this.children + } + appendChild(child) { + console.log('child', child) + } + dispatchEvent(type, e) { + if(typeof type == 'object') { + this._ee.emit(type.type, type); + } else { + this._ee.emit(type, e); + } + return true + } + attachEvent() { + } + detachEvent() { + } + addEventListener(type, listener) { + this._ee.on(type, listener) + } + removeEventListener(type, listener) { + this._ee.off(type, listener) + } + _initCanvas(zrender, ctx) { + zrender.util.getContext = function() { + return ctx; + }; + zrender.util.$override('measureText', function(text, font) { + ctx.font = font || '12px sans-serif'; + return ctx.measureText(text, font); + }); + } + _initStyle(ctx, child) { + const styles = [ + 'fillStyle', + 'strokeStyle', + 'fontSize', + 'globalAlpha', + 'opacity', + 'textAlign', + 'textBaseline', + 'shadow', + 'lineWidth', + 'lineCap', + 'lineJoin', + 'lineDash', + 'miterLimit', + 'font' + ]; + const colorReg = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])\b/g; + styles.forEach(style => { + Object.defineProperty(ctx, style, { + set: value => { + if (style === 'font' && fontSizeReg.test(value)) { + const match = fontSizeReg.exec(value); + ctx.setFontSize(match[1]); + return; + } + if (style === 'opacity') { + ctx.setGlobalAlpha(value) + return; + } + if (style !== 'fillStyle' && style !== 'strokeStyle' || value !== 'none' && value !== null) { + // #ifdef H5 || APP-PLUS || MP-BAIDU + if(typeof value == 'object') { + if (value.hasOwnProperty('colorStop') || value.hasOwnProperty('colors')) { + ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value); + } + return + } + // #endif + // #ifdef MP-TOUTIAO + if(colorReg.test(value)) { + value = value.replace(colorReg, '#$1$1$2$2$3$3') + } + // #endif + ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value); + } + } + }); + }); + if(!this.isNew && !child) { + ctx.uniDrawImage = ctx.drawImage + ctx.drawImage = (...a) => { + a[0] = a[0].src + ctx.uniDrawImage(...a) + } + } + if(!ctx.createRadialGradient) { + ctx.createRadialGradient = function() { + return ctx.createCircularGradient(...[...arguments].slice(-3)) + }; + } + // 字节不支持 + if (!ctx.strokeText) { + ctx.strokeText = (...a) => { + ctx.fillText(...a) + } + } + // 钉钉不支持 + if (!ctx.measureText) { + const strLen = (str) => { + let len = 0; + for (let i = 0; i < str.length; i++) { + if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) { + len++; + } else { + len += 2; + } + } + return len; + } + ctx.measureText = (text, font) => { + let fontSize = 12; + if (font) { + fontSize = parseInt(font.match(/([\d\.]+)px/)[1]) + } + fontSize /= 2; + return { + width: strLen(text) * fontSize + }; + } + } + } + + _initEvent(e) { + this.event = {}; + const eventNames = [{ + wxName: 'touchStart', + ecName: 'mousedown' + }, { + wxName: 'touchMove', + ecName: 'mousemove' + }, { + wxName: 'touchEnd', + ecName: 'mouseup' + }, { + wxName: 'touchEnd', + ecName: 'click' + }]; + + eventNames.forEach(name => { + this.event[name.wxName] = e => { + const touch = e.touches[0]; + this.chart.getZr().handler.dispatch(name.ecName, { + zrX: name.wxName === 'tap' ? touch.clientX : touch.x, + zrY: name.wxName === 'tap' ? touch.clientY : touch.y + }); + }; + }); + } + + set width(w) { + this.canvasNode.width = w + } + set height(h) { + this.canvasNode.height = h + } + + get width() { + return this.canvasNode.width || 0 + } + get height() { + return this.canvasNode.height || 0 + } + get ctx() { + return cacheChart[this.canvasId]['ctx'] || null + } + set chart(chart) { + cacheChart[this.canvasId]['chart'] = chart + } + get chart() { + return cacheChart[this.canvasId]['chart'] || null + } +} + +export function dispatch(name, {x,y, wheelDelta}) { + this.dispatch(name, { + zrX: x, + zrY: y, + zrDelta: wheelDelta, + preventDefault: () => {}, + stopPropagation: () =>{} + }); +} +export function setCanvasCreator(echarts, {canvas, node}) { + // echarts.setCanvasCreator(() => canvas); + echarts.registerPreprocessor(option => { + if (option && option.series) { + if (option.series.length > 0) { + option.series.forEach(series => { + series.progressive = 0; + }); + } else if (typeof option.series === 'object') { + option.series.progressive = 0; + } + } + }); + function loadImage(src, onload, onerror) { + let img = null + if(node && node.createImage) { + img = node.createImage() + img.onload = onload.bind(img); + img.onerror = onerror.bind(img); + img.src = src; + return img + } else { + img = new Image() + img.onload = onload.bind(img) + img.onerror = onerror.bind(img); + img.src = src + return img + } + } + if(echarts.setPlatformAPI) { + echarts.setPlatformAPI({ + loadImage: canvas.setChart ? loadImage : null, + createCanvas(){ + return canvas + } + }) + } +} \ No newline at end of file diff --git a/src/uni_modules/lime-echart/components/l-echart/l-echart.vue b/src/uni_modules/lime-echart/components/l-echart/l-echart.vue new file mode 100644 index 0000000..1258d22 --- /dev/null +++ b/src/uni_modules/lime-echart/components/l-echart/l-echart.vue @@ -0,0 +1,517 @@ + + + + diff --git a/src/uni_modules/lime-echart/components/l-echart/utils.js b/src/uni_modules/lime-echart/components/l-echart/utils.js new file mode 100644 index 0000000..5ff66c5 --- /dev/null +++ b/src/uni_modules/lime-echart/components/l-echart/utils.js @@ -0,0 +1,74 @@ +// #ifndef APP-NVUE +// 计算版本 +export function compareVersion(v1, v2) { + v1 = v1.split('.') + v2 = v2.split('.') + const len = Math.max(v1.length, v2.length) + while (v1.length < len) { + v1.push('0') + } + while (v2.length < len) { + v2.push('0') + } + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i], 10) + const num2 = parseInt(v2[i], 10) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 +} + +export function wrapTouch(event) { + for (let i = 0; i < event.touches.length; ++i) { + const touch = event.touches[i]; + touch.offsetX = touch.x; + touch.offsetY = touch.y; + } + return event; +} +export const devicePixelRatio = wx.getSystemInfoSync().pixelRatio +// #endif +// #ifdef APP-NVUE +export function base64ToPath(base64) { + return new Promise((resolve, reject) => { + const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64) || []; + const bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now()) + bitmap.loadBase64Data(base64, () => { + if (!format) { + reject(new Error('ERROR_BASE64SRC_PARSE')) + } + const time = new Date().getTime(); + const filePath = `_doc/uniapp_temp/${time}.${format}` + + bitmap.save(filePath, {}, + () => { + bitmap.clear() + resolve(filePath) + }, + (error) => { + bitmap.clear() + console.error(`${JSON.stringify(error)}`) + reject(error) + }) + }, (error) => { + bitmap.clear() + console.error(`${JSON.stringify(error)}`) + reject(error) + }) + }) +} +// #endif + + +export function sleep(time) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(true) + },time) + }) +} \ No newline at end of file diff --git a/src/uni_modules/lime-echart/components/lime-echart/index.vue b/src/uni_modules/lime-echart/components/lime-echart/index.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/uni_modules/piaoyi-cityPicker/changelog.md b/src/uni_modules/piaoyi-cityPicker/changelog.md new file mode 100644 index 0000000..7554b0a --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/changelog.md @@ -0,0 +1,22 @@ +## 1.1.7(2024-10-29) +修复底部露出部分组件bug +## 1.1.6(2024-08-20) +更新本地数据源为最新数据源 +## 1.1.5(2024-06-12) +使用说明文档优化 +## 1.1.4(2024-06-12) +增加问题反馈描述 +## 1.1.3(2024-02-29) +更新使用文档 +## 1.1.2(2024-01-16) +解决Vue3项目导入导出报错问题 +## 1.1.1(2023-12-06) +defaultValue可以传入defaultValue:['河北省','唐山市','丰南区']数组类型以及defaultValue: '420103'地区编码字符串类型 +## 1.1.0(2023-12-05) +即默认值传入地区编码,也支持传入中文省市区数组 +## 1.0.9(2023-12-04) +优化 +## 1.0.8(2023-10-24) +修复东菀市和中山市下各镇的行政编码错误问题 +## 1.0.4(2023-09-15) +改为uni_modules规范 \ No newline at end of file diff --git a/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js new file mode 100644 index 0000000..cc05c11 --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/cityData.js @@ -0,0 +1,10661 @@ +export const addressList = [{ + "code": "11", + "name": "北京市", + "children": [{ + "code": "1101", + "name": "市辖区", + "children": [{ + "code": "110101", + "name": "东城区" + }, { + "code": "110102", + "name": "西城区" + }, { + "code": "110105", + "name": "朝阳区" + }, { + "code": "110106", + "name": "丰台区" + }, { + "code": "110107", + "name": "石景山区" + }, { + "code": "110108", + "name": "海淀区" + }, { + "code": "110109", + "name": "门头沟区" + }, { + "code": "110111", + "name": "房山区" + }, { + "code": "110112", + "name": "通州区" + }, { + "code": "110113", + "name": "顺义区" + }, { + "code": "110114", + "name": "昌平区" + }, { + "code": "110115", + "name": "大兴区" + }, { + "code": "110116", + "name": "怀柔区" + }, { + "code": "110117", + "name": "平谷区" + }, { + "code": "110118", + "name": "密云区" + }, { + "code": "110119", + "name": "延庆区" + }] + }] +}, { + "code": "12", + "name": "天津市", + "children": [{ + "code": "1201", + "name": "市辖区", + "children": [{ + "code": "120101", + "name": "和平区" + }, { + "code": "120102", + "name": "河东区" + }, { + "code": "120103", + "name": "河西区" + }, { + "code": "120104", + "name": "南开区" + }, { + "code": "120105", + "name": "河北区" + }, { + "code": "120106", + "name": "红桥区" + }, { + "code": "120110", + "name": "东丽区" + }, { + "code": "120111", + "name": "西青区" + }, { + "code": "120112", + "name": "津南区" + }, { + "code": "120113", + "name": "北辰区" + }, { + "code": "120114", + "name": "武清区" + }, { + "code": "120115", + "name": "宝坻区" + }, { + "code": "120116", + "name": "滨海新区" + }, { + "code": "120117", + "name": "宁河区" + }, { + "code": "120118", + "name": "静海区" + }, { + "code": "120119", + "name": "蓟州区" + }] + }] +}, { + "code": "13", + "name": "河北省", + "children": [{ + "code": "1301", + "name": "石家庄市", + "children": [{ + "code": "130102", + "name": "长安区" + }, { + "code": "130104", + "name": "桥西区" + }, { + "code": "130105", + "name": "新华区" + }, { + "code": "130107", + "name": "井陉矿区" + }, { + "code": "130108", + "name": "裕华区" + }, { + "code": "130109", + "name": "藁城区" + }, { + "code": "130110", + "name": "鹿泉区" + }, { + "code": "130111", + "name": "栾城区" + }, { + "code": "130121", + "name": "井陉县" + }, { + "code": "130123", + "name": "正定县" + }, { + "code": "130125", + "name": "行唐县" + }, { + "code": "130126", + "name": "灵寿县" + }, { + "code": "130127", + "name": "高邑县" + }, { + "code": "130128", + "name": "深泽县" + }, { + "code": "130129", + "name": "赞皇县" + }, { + "code": "130130", + "name": "无极县" + }, { + "code": "130131", + "name": "平山县" + }, { + "code": "130132", + "name": "元氏县" + }, { + "code": "130133", + "name": "赵县" + }, { + "code": "130171", + "name": "石家庄高新技术产业开发区" + }, { + "code": "130172", + "name": "石家庄循环化工园区" + }, { + "code": "130181", + "name": "辛集市" + }, { + "code": "130183", + "name": "晋州市" + }, { + "code": "130184", + "name": "新乐市" + }] + }, { + "code": "1302", + "name": "唐山市", + "children": [{ + "code": "130202", + "name": "路南区" + }, { + "code": "130203", + "name": "路北区" + }, { + "code": "130204", + "name": "古冶区" + }, { + "code": "130205", + "name": "开平区" + }, { + "code": "130207", + "name": "丰南区" + }, { + "code": "130208", + "name": "丰润区" + }, { + "code": "130209", + "name": "曹妃甸区" + }, { + "code": "130224", + "name": "滦南县" + }, { + "code": "130225", + "name": "乐亭县" + }, { + "code": "130227", + "name": "迁西县" + }, { + "code": "130229", + "name": "玉田县" + }, { + "code": "130271", + "name": "河北唐山芦台经济开发区" + }, { + "code": "130272", + "name": "唐山市汉沽管理区" + }, { + "code": "130273", + "name": "唐山高新技术产业开发区" + }, { + "code": "130274", + "name": "河北唐山海港经济开发区" + }, { + "code": "130281", + "name": "遵化市" + }, { + "code": "130283", + "name": "迁安市" + }, { + "code": "130284", + "name": "滦州市" + }] + }, { + "code": "1303", + "name": "秦皇岛市", + "children": [{ + "code": "130302", + "name": "海港区" + }, { + "code": "130303", + "name": "山海关区" + }, { + "code": "130304", + "name": "北戴河区" + }, { + "code": "130306", + "name": "抚宁区" + }, { + "code": "130321", + "name": "青龙满族自治县" + }, { + "code": "130322", + "name": "昌黎县" + }, { + "code": "130324", + "name": "卢龙县" + }, { + "code": "130371", + "name": "秦皇岛市经济技术开发区" + }, { + "code": "130372", + "name": "北戴河新区" + }] + }, { + "code": "1304", + "name": "邯郸市", + "children": [{ + "code": "130402", + "name": "邯山区" + }, { + "code": "130403", + "name": "丛台区" + }, { + "code": "130404", + "name": "复兴区" + }, { + "code": "130406", + "name": "峰峰矿区" + }, { + "code": "130407", + "name": "肥乡区" + }, { + "code": "130408", + "name": "永年区" + }, { + "code": "130423", + "name": "临漳县" + }, { + "code": "130424", + "name": "成安县" + }, { + "code": "130425", + "name": "大名县" + }, { + "code": "130426", + "name": "涉县" + }, { + "code": "130427", + "name": "磁县" + }, { + "code": "130430", + "name": "邱县" + }, { + "code": "130431", + "name": "鸡泽县" + }, { + "code": "130432", + "name": "广平县" + }, { + "code": "130433", + "name": "馆陶县" + }, { + "code": "130434", + "name": "魏县" + }, { + "code": "130435", + "name": "曲周县" + }, { + "code": "130471", + "name": "邯郸经济技术开发区" + }, { + "code": "130473", + "name": "邯郸冀南新区" + }, { + "code": "130481", + "name": "武安市" + }] + }, { + "code": "1305", + "name": "邢台市", + "children": [{ + "code": "130502", + "name": "襄都区" + }, { + "code": "130503", + "name": "信都区" + }, { + "code": "130505", + "name": "任泽区" + }, { + "code": "130506", + "name": "南和区" + }, { + "code": "130522", + "name": "临城县" + }, { + "code": "130523", + "name": "内丘县" + }, { + "code": "130524", + "name": "柏乡县" + }, { + "code": "130525", + "name": "隆尧县" + }, { + "code": "130528", + "name": "宁晋县" + }, { + "code": "130529", + "name": "巨鹿县" + }, { + "code": "130530", + "name": "新河县" + }, { + "code": "130531", + "name": "广宗县" + }, { + "code": "130532", + "name": "平乡县" + }, { + "code": "130533", + "name": "威县" + }, { + "code": "130534", + "name": "清河县" + }, { + "code": "130535", + "name": "临西县" + }, { + "code": "130571", + "name": "河北邢台经济开发区" + }, { + "code": "130581", + "name": "南宫市" + }, { + "code": "130582", + "name": "沙河市" + }] + }, { + "code": "1306", + "name": "保定市", + "children": [{ + "code": "130602", + "name": "竞秀区" + }, { + "code": "130606", + "name": "莲池区" + }, { + "code": "130607", + "name": "满城区" + }, { + "code": "130608", + "name": "清苑区" + }, { + "code": "130609", + "name": "徐水区" + }, { + "code": "130623", + "name": "涞水县" + }, { + "code": "130624", + "name": "阜平县" + }, { + "code": "130626", + "name": "定兴县" + }, { + "code": "130627", + "name": "唐县" + }, { + "code": "130628", + "name": "高阳县" + }, { + "code": "130629", + "name": "容城县" + }, { + "code": "130630", + "name": "涞源县" + }, { + "code": "130631", + "name": "望都县" + }, { + "code": "130632", + "name": "安新县" + }, { + "code": "130633", + "name": "易县" + }, { + "code": "130634", + "name": "曲阳县" + }, { + "code": "130635", + "name": "蠡县" + }, { + "code": "130636", + "name": "顺平县" + }, { + "code": "130637", + "name": "博野县" + }, { + "code": "130638", + "name": "雄县" + }, { + "code": "130671", + "name": "保定高新技术产业开发区" + }, { + "code": "130672", + "name": "保定白沟新城" + }, { + "code": "130681", + "name": "涿州市" + }, { + "code": "130682", + "name": "定州市" + }, { + "code": "130683", + "name": "安国市" + }, { + "code": "130684", + "name": "高碑店市" + }] + }, { + "code": "1307", + "name": "张家口市", + "children": [{ + "code": "130702", + "name": "桥东区" + }, { + "code": "130703", + "name": "桥西区" + }, { + "code": "130705", + "name": "宣化区" + }, { + "code": "130706", + "name": "下花园区" + }, { + "code": "130708", + "name": "万全区" + }, { + "code": "130709", + "name": "崇礼区" + }, { + "code": "130722", + "name": "张北县" + }, { + "code": "130723", + "name": "康保县" + }, { + "code": "130724", + "name": "沽源县" + }, { + "code": "130725", + "name": "尚义县" + }, { + "code": "130726", + "name": "蔚县" + }, { + "code": "130727", + "name": "阳原县" + }, { + "code": "130728", + "name": "怀安县" + }, { + "code": "130730", + "name": "怀来县" + }, { + "code": "130731", + "name": "涿鹿县" + }, { + "code": "130732", + "name": "赤城县" + }, { + "code": "130771", + "name": "张家口经济开发区" + }, { + "code": "130772", + "name": "张家口市察北管理区" + }, { + "code": "130773", + "name": "张家口市塞北管理区" + }] + }, { + "code": "1308", + "name": "承德市", + "children": [{ + "code": "130802", + "name": "双桥区" + }, { + "code": "130803", + "name": "双滦区" + }, { + "code": "130804", + "name": "鹰手营子矿区" + }, { + "code": "130821", + "name": "承德县" + }, { + "code": "130822", + "name": "兴隆县" + }, { + "code": "130824", + "name": "滦平县" + }, { + "code": "130825", + "name": "隆化县" + }, { + "code": "130826", + "name": "丰宁满族自治县" + }, { + "code": "130827", + "name": "宽城满族自治县" + }, { + "code": "130828", + "name": "围场满族蒙古族自治县" + }, { + "code": "130871", + "name": "承德高新技术产业开发区" + }, { + "code": "130881", + "name": "平泉市" + }] + }, { + "code": "1309", + "name": "沧州市", + "children": [{ + "code": "130902", + "name": "新华区" + }, { + "code": "130903", + "name": "运河区" + }, { + "code": "130921", + "name": "沧县" + }, { + "code": "130922", + "name": "青县" + }, { + "code": "130923", + "name": "东光县" + }, { + "code": "130924", + "name": "海兴县" + }, { + "code": "130925", + "name": "盐山县" + }, { + "code": "130926", + "name": "肃宁县" + }, { + "code": "130927", + "name": "南皮县" + }, { + "code": "130928", + "name": "吴桥县" + }, { + "code": "130929", + "name": "献县" + }, { + "code": "130930", + "name": "孟村回族自治县" + }, { + "code": "130971", + "name": "河北沧州经济开发区" + }, { + "code": "130972", + "name": "沧州高新技术产业开发区" + }, { + "code": "130973", + "name": "沧州渤海新区" + }, { + "code": "130981", + "name": "泊头市" + }, { + "code": "130982", + "name": "任丘市" + }, { + "code": "130983", + "name": "黄骅市" + }, { + "code": "130984", + "name": "河间市" + }] + }, { + "code": "1310", + "name": "廊坊市", + "children": [{ + "code": "131002", + "name": "安次区" + }, { + "code": "131003", + "name": "广阳区" + }, { + "code": "131022", + "name": "固安县" + }, { + "code": "131023", + "name": "永清县" + }, { + "code": "131024", + "name": "香河县" + }, { + "code": "131025", + "name": "大城县" + }, { + "code": "131026", + "name": "文安县" + }, { + "code": "131028", + "name": "大厂回族自治县" + }, { + "code": "131071", + "name": "廊坊经济技术开发区" + }, { + "code": "131081", + "name": "霸州市" + }, { + "code": "131082", + "name": "三河市" + }] + }, { + "code": "1311", + "name": "衡水市", + "children": [{ + "code": "131102", + "name": "桃城区" + }, { + "code": "131103", + "name": "冀州区" + }, { + "code": "131121", + "name": "枣强县" + }, { + "code": "131122", + "name": "武邑县" + }, { + "code": "131123", + "name": "武强县" + }, { + "code": "131124", + "name": "饶阳县" + }, { + "code": "131125", + "name": "安平县" + }, { + "code": "131126", + "name": "故城县" + }, { + "code": "131127", + "name": "景县" + }, { + "code": "131128", + "name": "阜城县" + }, { + "code": "131171", + "name": "河北衡水高新技术产业开发区" + }, { + "code": "131172", + "name": "衡水滨湖新区" + }, { + "code": "131182", + "name": "深州市" + }] + }] +}, { + "code": "14", + "name": "山西省", + "children": [{ + "code": "1401", + "name": "太原市", + "children": [{ + "code": "140105", + "name": "小店区" + }, { + "code": "140106", + "name": "迎泽区" + }, { + "code": "140107", + "name": "杏花岭区" + }, { + "code": "140108", + "name": "尖草坪区" + }, { + "code": "140109", + "name": "万柏林区" + }, { + "code": "140110", + "name": "晋源区" + }, { + "code": "140121", + "name": "清徐县" + }, { + "code": "140122", + "name": "阳曲县" + }, { + "code": "140123", + "name": "娄烦县" + }, { + "code": "140171", + "name": "山西转型综合改革示范区" + }, { + "code": "140181", + "name": "古交市" + }] + }, { + "code": "1402", + "name": "大同市", + "children": [{ + "code": "140212", + "name": "新荣区" + }, { + "code": "140213", + "name": "平城区" + }, { + "code": "140214", + "name": "云冈区" + }, { + "code": "140215", + "name": "云州区" + }, { + "code": "140221", + "name": "阳高县" + }, { + "code": "140222", + "name": "天镇县" + }, { + "code": "140223", + "name": "广灵县" + }, { + "code": "140224", + "name": "灵丘县" + }, { + "code": "140225", + "name": "浑源县" + }, { + "code": "140226", + "name": "左云县" + }, { + "code": "140271", + "name": "山西大同经济开发区" + }] + }, { + "code": "1403", + "name": "阳泉市", + "children": [{ + "code": "140302", + "name": "城区" + }, { + "code": "140303", + "name": "矿区" + }, { + "code": "140311", + "name": "郊区" + }, { + "code": "140321", + "name": "平定县" + }, { + "code": "140322", + "name": "盂县" + }] + }, { + "code": "1404", + "name": "长治市", + "children": [{ + "code": "140403", + "name": "潞州区" + }, { + "code": "140404", + "name": "上党区" + }, { + "code": "140405", + "name": "屯留区" + }, { + "code": "140406", + "name": "潞城区" + }, { + "code": "140423", + "name": "襄垣县" + }, { + "code": "140425", + "name": "平顺县" + }, { + "code": "140426", + "name": "黎城县" + }, { + "code": "140427", + "name": "壶关县" + }, { + "code": "140428", + "name": "长子县" + }, { + "code": "140429", + "name": "武乡县" + }, { + "code": "140430", + "name": "沁县" + }, { + "code": "140431", + "name": "沁源县" + }] + }, { + "code": "1405", + "name": "晋城市", + "children": [{ + "code": "140502", + "name": "城区" + }, { + "code": "140521", + "name": "沁水县" + }, { + "code": "140522", + "name": "阳城县" + }, { + "code": "140524", + "name": "陵川县" + }, { + "code": "140525", + "name": "泽州县" + }, { + "code": "140581", + "name": "高平市" + }] + }, { + "code": "1406", + "name": "朔州市", + "children": [{ + "code": "140602", + "name": "朔城区" + }, { + "code": "140603", + "name": "平鲁区" + }, { + "code": "140621", + "name": "山阴县" + }, { + "code": "140622", + "name": "应县" + }, { + "code": "140623", + "name": "右玉县" + }, { + "code": "140671", + "name": "山西朔州经济开发区" + }, { + "code": "140681", + "name": "怀仁市" + }] + }, { + "code": "1407", + "name": "晋中市", + "children": [{ + "code": "140702", + "name": "榆次区" + }, { + "code": "140703", + "name": "太谷区" + }, { + "code": "140721", + "name": "榆社县" + }, { + "code": "140722", + "name": "左权县" + }, { + "code": "140723", + "name": "和顺县" + }, { + "code": "140724", + "name": "昔阳县" + }, { + "code": "140725", + "name": "寿阳县" + }, { + "code": "140727", + "name": "祁县" + }, { + "code": "140728", + "name": "平遥县" + }, { + "code": "140729", + "name": "灵石县" + }, { + "code": "140781", + "name": "介休市" + }] + }, { + "code": "1408", + "name": "运城市", + "children": [{ + "code": "140802", + "name": "盐湖区" + }, { + "code": "140821", + "name": "临猗县" + }, { + "code": "140822", + "name": "万荣县" + }, { + "code": "140823", + "name": "闻喜县" + }, { + "code": "140824", + "name": "稷山县" + }, { + "code": "140825", + "name": "新绛县" + }, { + "code": "140826", + "name": "绛县" + }, { + "code": "140827", + "name": "垣曲县" + }, { + "code": "140828", + "name": "夏县" + }, { + "code": "140829", + "name": "平陆县" + }, { + "code": "140830", + "name": "芮城县" + }, { + "code": "140881", + "name": "永济市" + }, { + "code": "140882", + "name": "河津市" + }] + }, { + "code": "1409", + "name": "忻州市", + "children": [{ + "code": "140902", + "name": "忻府区" + }, { + "code": "140921", + "name": "定襄县" + }, { + "code": "140922", + "name": "五台县" + }, { + "code": "140923", + "name": "代县" + }, { + "code": "140924", + "name": "繁峙县" + }, { + "code": "140925", + "name": "宁武县" + }, { + "code": "140926", + "name": "静乐县" + }, { + "code": "140927", + "name": "神池县" + }, { + "code": "140928", + "name": "五寨县" + }, { + "code": "140929", + "name": "岢岚县" + }, { + "code": "140930", + "name": "河曲县" + }, { + "code": "140931", + "name": "保德县" + }, { + "code": "140932", + "name": "偏关县" + }, { + "code": "140971", + "name": "五台山风景名胜区" + }, { + "code": "140981", + "name": "原平市" + }] + }, { + "code": "1410", + "name": "临汾市", + "children": [{ + "code": "141002", + "name": "尧都区" + }, { + "code": "141021", + "name": "曲沃县" + }, { + "code": "141022", + "name": "翼城县" + }, { + "code": "141023", + "name": "襄汾县" + }, { + "code": "141024", + "name": "洪洞县" + }, { + "code": "141025", + "name": "古县" + }, { + "code": "141026", + "name": "安泽县" + }, { + "code": "141027", + "name": "浮山县" + }, { + "code": "141028", + "name": "吉县" + }, { + "code": "141029", + "name": "乡宁县" + }, { + "code": "141030", + "name": "大宁县" + }, { + "code": "141031", + "name": "隰县" + }, { + "code": "141032", + "name": "永和县" + }, { + "code": "141033", + "name": "蒲县" + }, { + "code": "141034", + "name": "汾西县" + }, { + "code": "141081", + "name": "侯马市" + }, { + "code": "141082", + "name": "霍州市" + }] + }, { + "code": "1411", + "name": "吕梁市", + "children": [{ + "code": "141102", + "name": "离石区" + }, { + "code": "141121", + "name": "文水县" + }, { + "code": "141122", + "name": "交城县" + }, { + "code": "141123", + "name": "兴县" + }, { + "code": "141124", + "name": "临县" + }, { + "code": "141125", + "name": "柳林县" + }, { + "code": "141126", + "name": "石楼县" + }, { + "code": "141127", + "name": "岚县" + }, { + "code": "141128", + "name": "方山县" + }, { + "code": "141129", + "name": "中阳县" + }, { + "code": "141130", + "name": "交口县" + }, { + "code": "141181", + "name": "孝义市" + }, { + "code": "141182", + "name": "汾阳市" + }] + }] +}, { + "code": "15", + "name": "内蒙古自治区", + "children": [{ + "code": "1501", + "name": "呼和浩特市", + "children": [{ + "code": "150102", + "name": "新城区" + }, { + "code": "150103", + "name": "回民区" + }, { + "code": "150104", + "name": "玉泉区" + }, { + "code": "150105", + "name": "赛罕区" + }, { + "code": "150121", + "name": "土默特左旗" + }, { + "code": "150122", + "name": "托克托县" + }, { + "code": "150123", + "name": "和林格尔县" + }, { + "code": "150124", + "name": "清水河县" + }, { + "code": "150125", + "name": "武川县" + }, { + "code": "150172", + "name": "呼和浩特经济技术开发区" + }] + }, { + "code": "1502", + "name": "包头市", + "children": [{ + "code": "150202", + "name": "东河区" + }, { + "code": "150203", + "name": "昆都仑区" + }, { + "code": "150204", + "name": "青山区" + }, { + "code": "150205", + "name": "石拐区" + }, { + "code": "150206", + "name": "白云鄂博矿区" + }, { + "code": "150207", + "name": "九原区" + }, { + "code": "150221", + "name": "土默特右旗" + }, { + "code": "150222", + "name": "固阳县" + }, { + "code": "150223", + "name": "达尔罕茂明安联合旗" + }, { + "code": "150271", + "name": "包头稀土高新技术产业开发区" + }] + }, { + "code": "1503", + "name": "乌海市", + "children": [{ + "code": "150302", + "name": "海勃湾区" + }, { + "code": "150303", + "name": "海南区" + }, { + "code": "150304", + "name": "乌达区" + }] + }, { + "code": "1504", + "name": "赤峰市", + "children": [{ + "code": "150402", + "name": "红山区" + }, { + "code": "150403", + "name": "元宝山区" + }, { + "code": "150404", + "name": "松山区" + }, { + "code": "150421", + "name": "阿鲁科尔沁旗" + }, { + "code": "150422", + "name": "巴林左旗" + }, { + "code": "150423", + "name": "巴林右旗" + }, { + "code": "150424", + "name": "林西县" + }, { + "code": "150425", + "name": "克什克腾旗" + }, { + "code": "150426", + "name": "翁牛特旗" + }, { + "code": "150428", + "name": "喀喇沁旗" + }, { + "code": "150429", + "name": "宁城县" + }, { + "code": "150430", + "name": "敖汉旗" + }] + }, { + "code": "1505", + "name": "通辽市", + "children": [{ + "code": "150502", + "name": "科尔沁区" + }, { + "code": "150521", + "name": "科尔沁左翼中旗" + }, { + "code": "150522", + "name": "科尔沁左翼后旗" + }, { + "code": "150523", + "name": "开鲁县" + }, { + "code": "150524", + "name": "库伦旗" + }, { + "code": "150525", + "name": "奈曼旗" + }, { + "code": "150526", + "name": "扎鲁特旗" + }, { + "code": "150571", + "name": "通辽经济技术开发区" + }, { + "code": "150581", + "name": "霍林郭勒市" + }] + }, { + "code": "1506", + "name": "鄂尔多斯市", + "children": [{ + "code": "150602", + "name": "东胜区" + }, { + "code": "150603", + "name": "康巴什区" + }, { + "code": "150621", + "name": "达拉特旗" + }, { + "code": "150622", + "name": "准格尔旗" + }, { + "code": "150623", + "name": "鄂托克前旗" + }, { + "code": "150624", + "name": "鄂托克旗" + }, { + "code": "150625", + "name": "杭锦旗" + }, { + "code": "150626", + "name": "乌审旗" + }, { + "code": "150627", + "name": "伊金霍洛旗" + }] + }, { + "code": "1507", + "name": "呼伦贝尔市", + "children": [{ + "code": "150702", + "name": "海拉尔区" + }, { + "code": "150703", + "name": "扎赉诺尔区" + }, { + "code": "150721", + "name": "阿荣旗" + }, { + "code": "150722", + "name": "莫力达瓦达斡尔族自治旗" + }, { + "code": "150723", + "name": "鄂伦春自治旗" + }, { + "code": "150724", + "name": "鄂温克族自治旗" + }, { + "code": "150725", + "name": "陈巴尔虎旗" + }, { + "code": "150726", + "name": "新巴尔虎左旗" + }, { + "code": "150727", + "name": "新巴尔虎右旗" + }, { + "code": "150781", + "name": "满洲里市" + }, { + "code": "150782", + "name": "牙克石市" + }, { + "code": "150783", + "name": "扎兰屯市" + }, { + "code": "150784", + "name": "额尔古纳市" + }, { + "code": "150785", + "name": "根河市" + }] + }, { + "code": "1508", + "name": "巴彦淖尔市", + "children": [{ + "code": "150802", + "name": "临河区" + }, { + "code": "150821", + "name": "五原县" + }, { + "code": "150822", + "name": "磴口县" + }, { + "code": "150823", + "name": "乌拉特前旗" + }, { + "code": "150824", + "name": "乌拉特中旗" + }, { + "code": "150825", + "name": "乌拉特后旗" + }, { + "code": "150826", + "name": "杭锦后旗" + }] + }, { + "code": "1509", + "name": "乌兰察布市", + "children": [{ + "code": "150902", + "name": "集宁区" + }, { + "code": "150921", + "name": "卓资县" + }, { + "code": "150922", + "name": "化德县" + }, { + "code": "150923", + "name": "商都县" + }, { + "code": "150924", + "name": "兴和县" + }, { + "code": "150925", + "name": "凉城县" + }, { + "code": "150926", + "name": "察哈尔右翼前旗" + }, { + "code": "150927", + "name": "察哈尔右翼中旗" + }, { + "code": "150928", + "name": "察哈尔右翼后旗" + }, { + "code": "150929", + "name": "四子王旗" + }, { + "code": "150981", + "name": "丰镇市" + }] + }, { + "code": "1522", + "name": "兴安盟", + "children": [{ + "code": "152201", + "name": "乌兰浩特市" + }, { + "code": "152202", + "name": "阿尔山市" + }, { + "code": "152221", + "name": "科尔沁右翼前旗" + }, { + "code": "152222", + "name": "科尔沁右翼中旗" + }, { + "code": "152223", + "name": "扎赉特旗" + }, { + "code": "152224", + "name": "突泉县" + }] + }, { + "code": "1525", + "name": "锡林郭勒盟", + "children": [{ + "code": "152501", + "name": "二连浩特市" + }, { + "code": "152502", + "name": "锡林浩特市" + }, { + "code": "152522", + "name": "阿巴嘎旗" + }, { + "code": "152523", + "name": "苏尼特左旗" + }, { + "code": "152524", + "name": "苏尼特右旗" + }, { + "code": "152525", + "name": "东乌珠穆沁旗" + }, { + "code": "152526", + "name": "西乌珠穆沁旗" + }, { + "code": "152527", + "name": "太仆寺旗" + }, { + "code": "152528", + "name": "镶黄旗" + }, { + "code": "152529", + "name": "正镶白旗" + }, { + "code": "152530", + "name": "正蓝旗" + }, { + "code": "152531", + "name": "多伦县" + }, { + "code": "152571", + "name": "乌拉盖管理区管委会" + }] + }, { + "code": "1529", + "name": "阿拉善盟", + "children": [{ + "code": "152921", + "name": "阿拉善左旗" + }, { + "code": "152922", + "name": "阿拉善右旗" + }, { + "code": "152923", + "name": "额济纳旗" + }, { + "code": "152971", + "name": "内蒙古阿拉善高新技术产业开发区" + }] + }] +}, { + "code": "21", + "name": "辽宁省", + "children": [{ + "code": "2101", + "name": "沈阳市", + "children": [{ + "code": "210102", + "name": "和平区" + }, { + "code": "210103", + "name": "沈河区" + }, { + "code": "210104", + "name": "大东区" + }, { + "code": "210105", + "name": "皇姑区" + }, { + "code": "210106", + "name": "铁西区" + }, { + "code": "210111", + "name": "苏家屯区" + }, { + "code": "210112", + "name": "浑南区" + }, { + "code": "210113", + "name": "沈北新区" + }, { + "code": "210114", + "name": "于洪区" + }, { + "code": "210115", + "name": "辽中区" + }, { + "code": "210123", + "name": "康平县" + }, { + "code": "210124", + "name": "法库县" + }, { + "code": "210181", + "name": "新民市" + }] + }, { + "code": "2102", + "name": "大连市", + "children": [{ + "code": "210202", + "name": "中山区" + }, { + "code": "210203", + "name": "西岗区" + }, { + "code": "210204", + "name": "沙河口区" + }, { + "code": "210211", + "name": "甘井子区" + }, { + "code": "210212", + "name": "旅顺口区" + }, { + "code": "210213", + "name": "金州区" + }, { + "code": "210214", + "name": "普兰店区" + }, { + "code": "210224", + "name": "长海县" + }, { + "code": "210281", + "name": "瓦房店市" + }, { + "code": "210283", + "name": "庄河市" + }] + }, { + "code": "2103", + "name": "鞍山市", + "children": [{ + "code": "210302", + "name": "铁东区" + }, { + "code": "210303", + "name": "铁西区" + }, { + "code": "210304", + "name": "立山区" + }, { + "code": "210311", + "name": "千山区" + }, { + "code": "210321", + "name": "台安县" + }, { + "code": "210323", + "name": "岫岩满族自治县" + }, { + "code": "210381", + "name": "海城市" + }] + }, { + "code": "2104", + "name": "抚顺市", + "children": [{ + "code": "210402", + "name": "新抚区" + }, { + "code": "210403", + "name": "东洲区" + }, { + "code": "210404", + "name": "望花区" + }, { + "code": "210411", + "name": "顺城区" + }, { + "code": "210421", + "name": "抚顺县" + }, { + "code": "210422", + "name": "新宾满族自治县" + }, { + "code": "210423", + "name": "清原满族自治县" + }] + }, { + "code": "2105", + "name": "本溪市", + "children": [{ + "code": "210502", + "name": "平山区" + }, { + "code": "210503", + "name": "溪湖区" + }, { + "code": "210504", + "name": "明山区" + }, { + "code": "210505", + "name": "南芬区" + }, { + "code": "210521", + "name": "本溪满族自治县" + }, { + "code": "210522", + "name": "桓仁满族自治县" + }] + }, { + "code": "2106", + "name": "丹东市", + "children": [{ + "code": "210602", + "name": "元宝区" + }, { + "code": "210603", + "name": "振兴区" + }, { + "code": "210604", + "name": "振安区" + }, { + "code": "210624", + "name": "宽甸满族自治县" + }, { + "code": "210681", + "name": "东港市" + }, { + "code": "210682", + "name": "凤城市" + }] + }, { + "code": "2107", + "name": "锦州市", + "children": [{ + "code": "210702", + "name": "古塔区" + }, { + "code": "210703", + "name": "凌河区" + }, { + "code": "210711", + "name": "太和区" + }, { + "code": "210726", + "name": "黑山县" + }, { + "code": "210727", + "name": "义县" + }, { + "code": "210781", + "name": "凌海市" + }, { + "code": "210782", + "name": "北镇市" + }] + }, { + "code": "2108", + "name": "营口市", + "children": [{ + "code": "210802", + "name": "站前区" + }, { + "code": "210803", + "name": "西市区" + }, { + "code": "210804", + "name": "鲅鱼圈区" + }, { + "code": "210811", + "name": "老边区" + }, { + "code": "210881", + "name": "盖州市" + }, { + "code": "210882", + "name": "大石桥市" + }] + }, { + "code": "2109", + "name": "阜新市", + "children": [{ + "code": "210902", + "name": "海州区" + }, { + "code": "210903", + "name": "新邱区" + }, { + "code": "210904", + "name": "太平区" + }, { + "code": "210905", + "name": "清河门区" + }, { + "code": "210911", + "name": "细河区" + }, { + "code": "210921", + "name": "阜新蒙古族自治县" + }, { + "code": "210922", + "name": "彰武县" + }] + }, { + "code": "2110", + "name": "辽阳市", + "children": [{ + "code": "211002", + "name": "白塔区" + }, { + "code": "211003", + "name": "文圣区" + }, { + "code": "211004", + "name": "宏伟区" + }, { + "code": "211005", + "name": "弓长岭区" + }, { + "code": "211011", + "name": "太子河区" + }, { + "code": "211021", + "name": "辽阳县" + }, { + "code": "211081", + "name": "灯塔市" + }] + }, { + "code": "2111", + "name": "盘锦市", + "children": [{ + "code": "211102", + "name": "双台子区" + }, { + "code": "211103", + "name": "兴隆台区" + }, { + "code": "211104", + "name": "大洼区" + }, { + "code": "211122", + "name": "盘山县" + }] + }, { + "code": "2112", + "name": "铁岭市", + "children": [{ + "code": "211202", + "name": "银州区" + }, { + "code": "211204", + "name": "清河区" + }, { + "code": "211221", + "name": "铁岭县" + }, { + "code": "211223", + "name": "西丰县" + }, { + "code": "211224", + "name": "昌图县" + }, { + "code": "211281", + "name": "调兵山市" + }, { + "code": "211282", + "name": "开原市" + }] + }, { + "code": "2113", + "name": "朝阳市", + "children": [{ + "code": "211302", + "name": "双塔区" + }, { + "code": "211303", + "name": "龙城区" + }, { + "code": "211321", + "name": "朝阳县" + }, { + "code": "211322", + "name": "建平县" + }, { + "code": "211324", + "name": "喀喇沁左翼蒙古族自治县" + }, { + "code": "211381", + "name": "北票市" + }, { + "code": "211382", + "name": "凌源市" + }] + }, { + "code": "2114", + "name": "葫芦岛市", + "children": [{ + "code": "211402", + "name": "连山区" + }, { + "code": "211403", + "name": "龙港区" + }, { + "code": "211404", + "name": "南票区" + }, { + "code": "211421", + "name": "绥中县" + }, { + "code": "211422", + "name": "建昌县" + }, { + "code": "211481", + "name": "兴城市" + }] + }] +}, { + "code": "22", + "name": "吉林省", + "children": [{ + "code": "2201", + "name": "长春市", + "children": [{ + "code": "220102", + "name": "南关区" + }, { + "code": "220103", + "name": "宽城区" + }, { + "code": "220104", + "name": "朝阳区" + }, { + "code": "220105", + "name": "二道区" + }, { + "code": "220106", + "name": "绿园区" + }, { + "code": "220112", + "name": "双阳区" + }, { + "code": "220113", + "name": "九台区" + }, { + "code": "220122", + "name": "农安县" + }, { + "code": "220171", + "name": "长春经济技术开发区" + }, { + "code": "220172", + "name": "长春净月高新技术产业开发区" + }, { + "code": "220173", + "name": "长春高新技术产业开发区" + }, { + "code": "220174", + "name": "长春汽车经济技术开发区" + }, { + "code": "220182", + "name": "榆树市" + }, { + "code": "220183", + "name": "德惠市" + }, { + "code": "220184", + "name": "公主岭市" + }] + }, { + "code": "2202", + "name": "吉林市", + "children": [{ + "code": "220202", + "name": "昌邑区" + }, { + "code": "220203", + "name": "龙潭区" + }, { + "code": "220204", + "name": "船营区" + }, { + "code": "220211", + "name": "丰满区" + }, { + "code": "220221", + "name": "永吉县" + }, { + "code": "220271", + "name": "吉林经济开发区" + }, { + "code": "220272", + "name": "吉林高新技术产业开发区" + }, { + "code": "220273", + "name": "吉林中国新加坡食品区" + }, { + "code": "220281", + "name": "蛟河市" + }, { + "code": "220282", + "name": "桦甸市" + }, { + "code": "220283", + "name": "舒兰市" + }, { + "code": "220284", + "name": "磐石市" + }] + }, { + "code": "2203", + "name": "四平市", + "children": [{ + "code": "220302", + "name": "铁西区" + }, { + "code": "220303", + "name": "铁东区" + }, { + "code": "220322", + "name": "梨树县" + }, { + "code": "220323", + "name": "伊通满族自治县" + }, { + "code": "220382", + "name": "双辽市" + }] + }, { + "code": "2204", + "name": "辽源市", + "children": [{ + "code": "220402", + "name": "龙山区" + }, { + "code": "220403", + "name": "西安区" + }, { + "code": "220421", + "name": "东丰县" + }, { + "code": "220422", + "name": "东辽县" + }] + }, { + "code": "2205", + "name": "通化市", + "children": [{ + "code": "220502", + "name": "东昌区" + }, { + "code": "220503", + "name": "二道江区" + }, { + "code": "220521", + "name": "通化县" + }, { + "code": "220523", + "name": "辉南县" + }, { + "code": "220524", + "name": "柳河县" + }, { + "code": "220581", + "name": "梅河口市" + }, { + "code": "220582", + "name": "集安市" + }] + }, { + "code": "2206", + "name": "白山市", + "children": [{ + "code": "220602", + "name": "浑江区" + }, { + "code": "220605", + "name": "江源区" + }, { + "code": "220621", + "name": "抚松县" + }, { + "code": "220622", + "name": "靖宇县" + }, { + "code": "220623", + "name": "长白朝鲜族自治县" + }, { + "code": "220681", + "name": "临江市" + }] + }, { + "code": "2207", + "name": "松原市", + "children": [{ + "code": "220702", + "name": "宁江区" + }, { + "code": "220721", + "name": "前郭尔罗斯蒙古族自治县" + }, { + "code": "220722", + "name": "长岭县" + }, { + "code": "220723", + "name": "乾安县" + }, { + "code": "220771", + "name": "吉林松原经济开发区" + }, { + "code": "220781", + "name": "扶余市" + }] + }, { + "code": "2208", + "name": "白城市", + "children": [{ + "code": "220802", + "name": "洮北区" + }, { + "code": "220821", + "name": "镇赉县" + }, { + "code": "220822", + "name": "通榆县" + }, { + "code": "220871", + "name": "吉林白城经济开发区" + }, { + "code": "220881", + "name": "洮南市" + }, { + "code": "220882", + "name": "大安市" + }] + }, { + "code": "2224", + "name": "延边朝鲜族自治州", + "children": [{ + "code": "222401", + "name": "延吉市" + }, { + "code": "222402", + "name": "图们市" + }, { + "code": "222403", + "name": "敦化市" + }, { + "code": "222404", + "name": "珲春市" + }, { + "code": "222405", + "name": "龙井市" + }, { + "code": "222406", + "name": "和龙市" + }, { + "code": "222424", + "name": "汪清县" + }, { + "code": "222426", + "name": "安图县" + }] + }] +}, { + "code": "23", + "name": "黑龙江省", + "children": [{ + "code": "2301", + "name": "哈尔滨市", + "children": [{ + "code": "230102", + "name": "道里区" + }, { + "code": "230103", + "name": "南岗区" + }, { + "code": "230104", + "name": "道外区" + }, { + "code": "230108", + "name": "平房区" + }, { + "code": "230109", + "name": "松北区" + }, { + "code": "230110", + "name": "香坊区" + }, { + "code": "230111", + "name": "呼兰区" + }, { + "code": "230112", + "name": "阿城区" + }, { + "code": "230113", + "name": "双城区" + }, { + "code": "230123", + "name": "依兰县" + }, { + "code": "230124", + "name": "方正县" + }, { + "code": "230125", + "name": "宾县" + }, { + "code": "230126", + "name": "巴彦县" + }, { + "code": "230127", + "name": "木兰县" + }, { + "code": "230128", + "name": "通河县" + }, { + "code": "230129", + "name": "延寿县" + }, { + "code": "230183", + "name": "尚志市" + }, { + "code": "230184", + "name": "五常市" + }] + }, { + "code": "2302", + "name": "齐齐哈尔市", + "children": [{ + "code": "230202", + "name": "龙沙区" + }, { + "code": "230203", + "name": "建华区" + }, { + "code": "230204", + "name": "铁锋区" + }, { + "code": "230205", + "name": "昂昂溪区" + }, { + "code": "230206", + "name": "富拉尔基区" + }, { + "code": "230207", + "name": "碾子山区" + }, { + "code": "230208", + "name": "梅里斯达斡尔族区" + }, { + "code": "230221", + "name": "龙江县" + }, { + "code": "230223", + "name": "依安县" + }, { + "code": "230224", + "name": "泰来县" + }, { + "code": "230225", + "name": "甘南县" + }, { + "code": "230227", + "name": "富裕县" + }, { + "code": "230229", + "name": "克山县" + }, { + "code": "230230", + "name": "克东县" + }, { + "code": "230231", + "name": "拜泉县" + }, { + "code": "230281", + "name": "讷河市" + }] + }, { + "code": "2303", + "name": "鸡西市", + "children": [{ + "code": "230302", + "name": "鸡冠区" + }, { + "code": "230303", + "name": "恒山区" + }, { + "code": "230304", + "name": "滴道区" + }, { + "code": "230305", + "name": "梨树区" + }, { + "code": "230306", + "name": "城子河区" + }, { + "code": "230307", + "name": "麻山区" + }, { + "code": "230321", + "name": "鸡东县" + }, { + "code": "230381", + "name": "虎林市" + }, { + "code": "230382", + "name": "密山市" + }] + }, { + "code": "2304", + "name": "鹤岗市", + "children": [{ + "code": "230402", + "name": "向阳区" + }, { + "code": "230403", + "name": "工农区" + }, { + "code": "230404", + "name": "南山区" + }, { + "code": "230405", + "name": "兴安区" + }, { + "code": "230406", + "name": "东山区" + }, { + "code": "230407", + "name": "兴山区" + }, { + "code": "230421", + "name": "萝北县" + }, { + "code": "230422", + "name": "绥滨县" + }] + }, { + "code": "2305", + "name": "双鸭山市", + "children": [{ + "code": "230502", + "name": "尖山区" + }, { + "code": "230503", + "name": "岭东区" + }, { + "code": "230505", + "name": "四方台区" + }, { + "code": "230506", + "name": "宝山区" + }, { + "code": "230521", + "name": "集贤县" + }, { + "code": "230522", + "name": "友谊县" + }, { + "code": "230523", + "name": "宝清县" + }, { + "code": "230524", + "name": "饶河县" + }] + }, { + "code": "2306", + "name": "大庆市", + "children": [{ + "code": "230602", + "name": "萨尔图区" + }, { + "code": "230603", + "name": "龙凤区" + }, { + "code": "230604", + "name": "让胡路区" + }, { + "code": "230605", + "name": "红岗区" + }, { + "code": "230606", + "name": "大同区" + }, { + "code": "230621", + "name": "肇州县" + }, { + "code": "230622", + "name": "肇源县" + }, { + "code": "230623", + "name": "林甸县" + }, { + "code": "230624", + "name": "杜尔伯特蒙古族自治县" + }, { + "code": "230671", + "name": "大庆高新技术产业开发区" + }] + }, { + "code": "2307", + "name": "伊春市", + "children": [{ + "code": "230717", + "name": "伊美区" + }, { + "code": "230718", + "name": "乌翠区" + }, { + "code": "230719", + "name": "友好区" + }, { + "code": "230722", + "name": "嘉荫县" + }, { + "code": "230723", + "name": "汤旺县" + }, { + "code": "230724", + "name": "丰林县" + }, { + "code": "230725", + "name": "大箐山县" + }, { + "code": "230726", + "name": "南岔县" + }, { + "code": "230751", + "name": "金林区" + }, { + "code": "230781", + "name": "铁力市" + }] + }, { + "code": "2308", + "name": "佳木斯市", + "children": [{ + "code": "230803", + "name": "向阳区" + }, { + "code": "230804", + "name": "前进区" + }, { + "code": "230805", + "name": "东风区" + }, { + "code": "230811", + "name": "郊区" + }, { + "code": "230822", + "name": "桦南县" + }, { + "code": "230826", + "name": "桦川县" + }, { + "code": "230828", + "name": "汤原县" + }, { + "code": "230881", + "name": "同江市" + }, { + "code": "230882", + "name": "富锦市" + }, { + "code": "230883", + "name": "抚远市" + }] + }, { + "code": "2309", + "name": "七台河市", + "children": [{ + "code": "230902", + "name": "新兴区" + }, { + "code": "230903", + "name": "桃山区" + }, { + "code": "230904", + "name": "茄子河区" + }, { + "code": "230921", + "name": "勃利县" + }] + }, { + "code": "2310", + "name": "牡丹江市", + "children": [{ + "code": "231002", + "name": "东安区" + }, { + "code": "231003", + "name": "阳明区" + }, { + "code": "231004", + "name": "爱民区" + }, { + "code": "231005", + "name": "西安区" + }, { + "code": "231025", + "name": "林口县" + }, { + "code": "231081", + "name": "绥芬河市" + }, { + "code": "231083", + "name": "海林市" + }, { + "code": "231084", + "name": "宁安市" + }, { + "code": "231085", + "name": "穆棱市" + }, { + "code": "231086", + "name": "东宁市" + }] + }, { + "code": "2311", + "name": "黑河市", + "children": [{ + "code": "231102", + "name": "爱辉区" + }, { + "code": "231123", + "name": "逊克县" + }, { + "code": "231124", + "name": "孙吴县" + }, { + "code": "231181", + "name": "北安市" + }, { + "code": "231182", + "name": "五大连池市" + }, { + "code": "231183", + "name": "嫩江市" + }] + }, { + "code": "2312", + "name": "绥化市", + "children": [{ + "code": "231202", + "name": "北林区" + }, { + "code": "231221", + "name": "望奎县" + }, { + "code": "231222", + "name": "兰西县" + }, { + "code": "231223", + "name": "青冈县" + }, { + "code": "231224", + "name": "庆安县" + }, { + "code": "231225", + "name": "明水县" + }, { + "code": "231226", + "name": "绥棱县" + }, { + "code": "231281", + "name": "安达市" + }, { + "code": "231282", + "name": "肇东市" + }, { + "code": "231283", + "name": "海伦市" + }] + }, { + "code": "2327", + "name": "大兴安岭地区", + "children": [{ + "code": "232701", + "name": "漠河市" + }, { + "code": "232721", + "name": "呼玛县" + }, { + "code": "232722", + "name": "塔河县" + }, { + "code": "232761", + "name": "加格达奇区" + }, { + "code": "232762", + "name": "松岭区" + }, { + "code": "232763", + "name": "新林区" + }, { + "code": "232764", + "name": "呼中区" + }] + }] +}, { + "code": "31", + "name": "上海市", + "children": [{ + "code": "3101", + "name": "市辖区", + "children": [{ + "code": "310101", + "name": "黄浦区" + }, { + "code": "310104", + "name": "徐汇区" + }, { + "code": "310105", + "name": "长宁区" + }, { + "code": "310106", + "name": "静安区" + }, { + "code": "310107", + "name": "普陀区" + }, { + "code": "310109", + "name": "虹口区" + }, { + "code": "310110", + "name": "杨浦区" + }, { + "code": "310112", + "name": "闵行区" + }, { + "code": "310113", + "name": "宝山区" + }, { + "code": "310114", + "name": "嘉定区" + }, { + "code": "310115", + "name": "浦东新区" + }, { + "code": "310116", + "name": "金山区" + }, { + "code": "310117", + "name": "松江区" + }, { + "code": "310118", + "name": "青浦区" + }, { + "code": "310120", + "name": "奉贤区" + }, { + "code": "310151", + "name": "崇明区" + }] + }] +}, { + "code": "32", + "name": "江苏省", + "children": [{ + "code": "3201", + "name": "南京市", + "children": [{ + "code": "320102", + "name": "玄武区" + }, { + "code": "320104", + "name": "秦淮区" + }, { + "code": "320105", + "name": "建邺区" + }, { + "code": "320106", + "name": "鼓楼区" + }, { + "code": "320111", + "name": "浦口区" + }, { + "code": "320113", + "name": "栖霞区" + }, { + "code": "320114", + "name": "雨花台区" + }, { + "code": "320115", + "name": "江宁区" + }, { + "code": "320116", + "name": "六合区" + }, { + "code": "320117", + "name": "溧水区" + }, { + "code": "320118", + "name": "高淳区" + }] + }, { + "code": "3202", + "name": "无锡市", + "children": [{ + "code": "320205", + "name": "锡山区" + }, { + "code": "320206", + "name": "惠山区" + }, { + "code": "320211", + "name": "滨湖区" + }, { + "code": "320213", + "name": "梁溪区" + }, { + "code": "320214", + "name": "新吴区" + }, { + "code": "320281", + "name": "江阴市" + }, { + "code": "320282", + "name": "宜兴市" + }] + }, { + "code": "3203", + "name": "徐州市", + "children": [{ + "code": "320302", + "name": "鼓楼区" + }, { + "code": "320303", + "name": "云龙区" + }, { + "code": "320305", + "name": "贾汪区" + }, { + "code": "320311", + "name": "泉山区" + }, { + "code": "320312", + "name": "铜山区" + }, { + "code": "320321", + "name": "丰县" + }, { + "code": "320322", + "name": "沛县" + }, { + "code": "320324", + "name": "睢宁县" + }, { + "code": "320371", + "name": "徐州经济技术开发区" + }, { + "code": "320381", + "name": "新沂市" + }, { + "code": "320382", + "name": "邳州市" + }] + }, { + "code": "3204", + "name": "常州市", + "children": [{ + "code": "320402", + "name": "天宁区" + }, { + "code": "320404", + "name": "钟楼区" + }, { + "code": "320411", + "name": "新北区" + }, { + "code": "320412", + "name": "武进区" + }, { + "code": "320413", + "name": "金坛区" + }, { + "code": "320481", + "name": "溧阳市" + }] + }, { + "code": "3205", + "name": "苏州市", + "children": [{ + "code": "320505", + "name": "虎丘区" + }, { + "code": "320506", + "name": "吴中区" + }, { + "code": "320507", + "name": "相城区" + }, { + "code": "320508", + "name": "姑苏区" + }, { + "code": "320509", + "name": "吴江区" + }, { + "code": "320576", + "name": "苏州工业园区" + }, { + "code": "320581", + "name": "常熟市" + }, { + "code": "320582", + "name": "张家港市" + }, { + "code": "320583", + "name": "昆山市" + }, { + "code": "320585", + "name": "太仓市" + }] + }, { + "code": "3206", + "name": "南通市", + "children": [{ + "code": "320612", + "name": "通州区" + }, { + "code": "320613", + "name": "崇川区" + }, { + "code": "320614", + "name": "海门区" + }, { + "code": "320623", + "name": "如东县" + }, { + "code": "320671", + "name": "南通经济技术开发区" + }, { + "code": "320681", + "name": "启东市" + }, { + "code": "320682", + "name": "如皋市" + }, { + "code": "320685", + "name": "海安市" + }] + }, { + "code": "3207", + "name": "连云港市", + "children": [{ + "code": "320703", + "name": "连云区" + }, { + "code": "320706", + "name": "海州区" + }, { + "code": "320707", + "name": "赣榆区" + }, { + "code": "320722", + "name": "东海县" + }, { + "code": "320723", + "name": "灌云县" + }, { + "code": "320724", + "name": "灌南县" + }, { + "code": "320771", + "name": "连云港经济技术开发区" + }] + }, { + "code": "3208", + "name": "淮安市", + "children": [{ + "code": "320803", + "name": "淮安区" + }, { + "code": "320804", + "name": "淮阴区" + }, { + "code": "320812", + "name": "清江浦区" + }, { + "code": "320813", + "name": "洪泽区" + }, { + "code": "320826", + "name": "涟水县" + }, { + "code": "320830", + "name": "盱眙县" + }, { + "code": "320831", + "name": "金湖县" + }, { + "code": "320871", + "name": "淮安经济技术开发区" + }] + }, { + "code": "3209", + "name": "盐城市", + "children": [{ + "code": "320902", + "name": "亭湖区" + }, { + "code": "320903", + "name": "盐都区" + }, { + "code": "320904", + "name": "大丰区" + }, { + "code": "320921", + "name": "响水县" + }, { + "code": "320922", + "name": "滨海县" + }, { + "code": "320923", + "name": "阜宁县" + }, { + "code": "320924", + "name": "射阳县" + }, { + "code": "320925", + "name": "建湖县" + }, { + "code": "320971", + "name": "盐城经济技术开发区" + }, { + "code": "320981", + "name": "东台市" + }] + }, { + "code": "3210", + "name": "扬州市", + "children": [{ + "code": "321002", + "name": "广陵区" + }, { + "code": "321003", + "name": "邗江区" + }, { + "code": "321012", + "name": "江都区" + }, { + "code": "321023", + "name": "宝应县" + }, { + "code": "321071", + "name": "扬州经济技术开发区" + }, { + "code": "321081", + "name": "仪征市" + }, { + "code": "321084", + "name": "高邮市" + }] + }, { + "code": "3211", + "name": "镇江市", + "children": [{ + "code": "321102", + "name": "京口区" + }, { + "code": "321111", + "name": "润州区" + }, { + "code": "321112", + "name": "丹徒区" + }, { + "code": "321171", + "name": "镇江新区" + }, { + "code": "321181", + "name": "丹阳市" + }, { + "code": "321182", + "name": "扬中市" + }, { + "code": "321183", + "name": "句容市" + }] + }, { + "code": "3212", + "name": "泰州市", + "children": [{ + "code": "321202", + "name": "海陵区" + }, { + "code": "321203", + "name": "高港区" + }, { + "code": "321204", + "name": "姜堰区" + }, { + "code": "321281", + "name": "兴化市" + }, { + "code": "321282", + "name": "靖江市" + }, { + "code": "321283", + "name": "泰兴市" + }] + }, { + "code": "3213", + "name": "宿迁市", + "children": [{ + "code": "321302", + "name": "宿城区" + }, { + "code": "321311", + "name": "宿豫区" + }, { + "code": "321322", + "name": "沭阳县" + }, { + "code": "321323", + "name": "泗阳县" + }, { + "code": "321324", + "name": "泗洪县" + }, { + "code": "321371", + "name": "宿迁经济技术开发区" + }] + }] +}, { + "code": "33", + "name": "浙江省", + "children": [{ + "code": "3301", + "name": "杭州市", + "children": [{ + "code": "330102", + "name": "上城区" + }, { + "code": "330105", + "name": "拱墅区" + }, { + "code": "330106", + "name": "西湖区" + }, { + "code": "330108", + "name": "滨江区" + }, { + "code": "330109", + "name": "萧山区" + }, { + "code": "330110", + "name": "余杭区" + }, { + "code": "330111", + "name": "富阳区" + }, { + "code": "330112", + "name": "临安区" + }, { + "code": "330113", + "name": "临平区" + }, { + "code": "330114", + "name": "钱塘区" + }, { + "code": "330122", + "name": "桐庐县" + }, { + "code": "330127", + "name": "淳安县" + }, { + "code": "330182", + "name": "建德市" + }] + }, { + "code": "3302", + "name": "宁波市", + "children": [{ + "code": "330203", + "name": "海曙区" + }, { + "code": "330205", + "name": "江北区" + }, { + "code": "330206", + "name": "北仑区" + }, { + "code": "330211", + "name": "镇海区" + }, { + "code": "330212", + "name": "鄞州区" + }, { + "code": "330213", + "name": "奉化区" + }, { + "code": "330225", + "name": "象山县" + }, { + "code": "330226", + "name": "宁海县" + }, { + "code": "330281", + "name": "余姚市" + }, { + "code": "330282", + "name": "慈溪市" + }] + }, { + "code": "3303", + "name": "温州市", + "children": [{ + "code": "330302", + "name": "鹿城区" + }, { + "code": "330303", + "name": "龙湾区" + }, { + "code": "330304", + "name": "瓯海区" + }, { + "code": "330305", + "name": "洞头区" + }, { + "code": "330324", + "name": "永嘉县" + }, { + "code": "330326", + "name": "平阳县" + }, { + "code": "330327", + "name": "苍南县" + }, { + "code": "330328", + "name": "文成县" + }, { + "code": "330329", + "name": "泰顺县" + }, { + "code": "330381", + "name": "瑞安市" + }, { + "code": "330382", + "name": "乐清市" + }, { + "code": "330383", + "name": "龙港市" + }] + }, { + "code": "3304", + "name": "嘉兴市", + "children": [{ + "code": "330402", + "name": "南湖区" + }, { + "code": "330411", + "name": "秀洲区" + }, { + "code": "330421", + "name": "嘉善县" + }, { + "code": "330424", + "name": "海盐县" + }, { + "code": "330481", + "name": "海宁市" + }, { + "code": "330482", + "name": "平湖市" + }, { + "code": "330483", + "name": "桐乡市" + }] + }, { + "code": "3305", + "name": "湖州市", + "children": [{ + "code": "330502", + "name": "吴兴区" + }, { + "code": "330503", + "name": "南浔区" + }, { + "code": "330521", + "name": "德清县" + }, { + "code": "330522", + "name": "长兴县" + }, { + "code": "330523", + "name": "安吉县" + }] + }, { + "code": "3306", + "name": "绍兴市", + "children": [{ + "code": "330602", + "name": "越城区" + }, { + "code": "330603", + "name": "柯桥区" + }, { + "code": "330604", + "name": "上虞区" + }, { + "code": "330624", + "name": "新昌县" + }, { + "code": "330681", + "name": "诸暨市" + }, { + "code": "330683", + "name": "嵊州市" + }] + }, { + "code": "3307", + "name": "金华市", + "children": [{ + "code": "330702", + "name": "婺城区" + }, { + "code": "330703", + "name": "金东区" + }, { + "code": "330723", + "name": "武义县" + }, { + "code": "330726", + "name": "浦江县" + }, { + "code": "330727", + "name": "磐安县" + }, { + "code": "330781", + "name": "兰溪市" + }, { + "code": "330782", + "name": "义乌市" + }, { + "code": "330783", + "name": "东阳市" + }, { + "code": "330784", + "name": "永康市" + }] + }, { + "code": "3308", + "name": "衢州市", + "children": [{ + "code": "330802", + "name": "柯城区" + }, { + "code": "330803", + "name": "衢江区" + }, { + "code": "330822", + "name": "常山县" + }, { + "code": "330824", + "name": "开化县" + }, { + "code": "330825", + "name": "龙游县" + }, { + "code": "330881", + "name": "江山市" + }] + }, { + "code": "3309", + "name": "舟山市", + "children": [{ + "code": "330902", + "name": "定海区" + }, { + "code": "330903", + "name": "普陀区" + }, { + "code": "330921", + "name": "岱山县" + }, { + "code": "330922", + "name": "嵊泗县" + }] + }, { + "code": "3310", + "name": "台州市", + "children": [{ + "code": "331002", + "name": "椒江区" + }, { + "code": "331003", + "name": "黄岩区" + }, { + "code": "331004", + "name": "路桥区" + }, { + "code": "331022", + "name": "三门县" + }, { + "code": "331023", + "name": "天台县" + }, { + "code": "331024", + "name": "仙居县" + }, { + "code": "331081", + "name": "温岭市" + }, { + "code": "331082", + "name": "临海市" + }, { + "code": "331083", + "name": "玉环市" + }] + }, { + "code": "3311", + "name": "丽水市", + "children": [{ + "code": "331102", + "name": "莲都区" + }, { + "code": "331121", + "name": "青田县" + }, { + "code": "331122", + "name": "缙云县" + }, { + "code": "331123", + "name": "遂昌县" + }, { + "code": "331124", + "name": "松阳县" + }, { + "code": "331125", + "name": "云和县" + }, { + "code": "331126", + "name": "庆元县" + }, { + "code": "331127", + "name": "景宁畲族自治县" + }, { + "code": "331181", + "name": "龙泉市" + }] + }] +}, { + "code": "34", + "name": "安徽省", + "children": [{ + "code": "3401", + "name": "合肥市", + "children": [{ + "code": "340102", + "name": "瑶海区" + }, { + "code": "340103", + "name": "庐阳区" + }, { + "code": "340104", + "name": "蜀山区" + }, { + "code": "340111", + "name": "包河区" + }, { + "code": "340121", + "name": "长丰县" + }, { + "code": "340122", + "name": "肥东县" + }, { + "code": "340123", + "name": "肥西县" + }, { + "code": "340124", + "name": "庐江县" + }, { + "code": "340176", + "name": "合肥高新技术产业开发区" + }, { + "code": "340177", + "name": "合肥经济技术开发区" + }, { + "code": "340178", + "name": "合肥新站高新技术产业开发区" + }, { + "code": "340181", + "name": "巢湖市" + }] + }, { + "code": "3402", + "name": "芜湖市", + "children": [{ + "code": "340202", + "name": "镜湖区" + }, { + "code": "340207", + "name": "鸠江区" + }, { + "code": "340209", + "name": "弋江区" + }, { + "code": "340210", + "name": "湾沚区" + }, { + "code": "340212", + "name": "繁昌区" + }, { + "code": "340223", + "name": "南陵县" + }, { + "code": "340271", + "name": "芜湖经济技术开发区" + }, { + "code": "340272", + "name": "安徽芜湖三山经济开发区" + }, { + "code": "340281", + "name": "无为市" + }] + }, { + "code": "3403", + "name": "蚌埠市", + "children": [{ + "code": "340302", + "name": "龙子湖区" + }, { + "code": "340303", + "name": "蚌山区" + }, { + "code": "340304", + "name": "禹会区" + }, { + "code": "340311", + "name": "淮上区" + }, { + "code": "340321", + "name": "怀远县" + }, { + "code": "340322", + "name": "五河县" + }, { + "code": "340323", + "name": "固镇县" + }, { + "code": "340371", + "name": "蚌埠市高新技术开发区" + }, { + "code": "340372", + "name": "蚌埠市经济开发区" + }] + }, { + "code": "3404", + "name": "淮南市", + "children": [{ + "code": "340402", + "name": "大通区" + }, { + "code": "340403", + "name": "田家庵区" + }, { + "code": "340404", + "name": "谢家集区" + }, { + "code": "340405", + "name": "八公山区" + }, { + "code": "340406", + "name": "潘集区" + }, { + "code": "340421", + "name": "凤台县" + }, { + "code": "340422", + "name": "寿县" + }] + }, { + "code": "3405", + "name": "马鞍山市", + "children": [{ + "code": "340503", + "name": "花山区" + }, { + "code": "340504", + "name": "雨山区" + }, { + "code": "340506", + "name": "博望区" + }, { + "code": "340521", + "name": "当涂县" + }, { + "code": "340522", + "name": "含山县" + }, { + "code": "340523", + "name": "和县" + }] + }, { + "code": "3406", + "name": "淮北市", + "children": [{ + "code": "340602", + "name": "杜集区" + }, { + "code": "340603", + "name": "相山区" + }, { + "code": "340604", + "name": "烈山区" + }, { + "code": "340621", + "name": "濉溪县" + }] + }, { + "code": "3407", + "name": "铜陵市", + "children": [{ + "code": "340705", + "name": "铜官区" + }, { + "code": "340706", + "name": "义安区" + }, { + "code": "340711", + "name": "郊区" + }, { + "code": "340722", + "name": "枞阳县" + }] + }, { + "code": "3408", + "name": "安庆市", + "children": [{ + "code": "340802", + "name": "迎江区" + }, { + "code": "340803", + "name": "大观区" + }, { + "code": "340811", + "name": "宜秀区" + }, { + "code": "340822", + "name": "怀宁县" + }, { + "code": "340825", + "name": "太湖县" + }, { + "code": "340826", + "name": "宿松县" + }, { + "code": "340827", + "name": "望江县" + }, { + "code": "340828", + "name": "岳西县" + }, { + "code": "340871", + "name": "安徽安庆经济开发区" + }, { + "code": "340881", + "name": "桐城市" + }, { + "code": "340882", + "name": "潜山市" + }] + }, { + "code": "3410", + "name": "黄山市", + "children": [{ + "code": "341002", + "name": "屯溪区" + }, { + "code": "341003", + "name": "黄山区" + }, { + "code": "341004", + "name": "徽州区" + }, { + "code": "341021", + "name": "歙县" + }, { + "code": "341022", + "name": "休宁县" + }, { + "code": "341023", + "name": "黟县" + }, { + "code": "341024", + "name": "祁门县" + }] + }, { + "code": "3411", + "name": "滁州市", + "children": [{ + "code": "341102", + "name": "琅琊区" + }, { + "code": "341103", + "name": "南谯区" + }, { + "code": "341122", + "name": "来安县" + }, { + "code": "341124", + "name": "全椒县" + }, { + "code": "341125", + "name": "定远县" + }, { + "code": "341126", + "name": "凤阳县" + }, { + "code": "341171", + "name": "中新苏滁高新技术产业开发区" + }, { + "code": "341172", + "name": "滁州经济技术开发区" + }, { + "code": "341181", + "name": "天长市" + }, { + "code": "341182", + "name": "明光市" + }] + }, { + "code": "3412", + "name": "阜阳市", + "children": [{ + "code": "341202", + "name": "颍州区" + }, { + "code": "341203", + "name": "颍东区" + }, { + "code": "341204", + "name": "颍泉区" + }, { + "code": "341221", + "name": "临泉县" + }, { + "code": "341222", + "name": "太和县" + }, { + "code": "341225", + "name": "阜南县" + }, { + "code": "341226", + "name": "颍上县" + }, { + "code": "341271", + "name": "阜阳合肥现代产业园区" + }, { + "code": "341272", + "name": "阜阳经济技术开发区" + }, { + "code": "341282", + "name": "界首市" + }] + }, { + "code": "3413", + "name": "宿州市", + "children": [{ + "code": "341302", + "name": "埇桥区" + }, { + "code": "341321", + "name": "砀山县" + }, { + "code": "341322", + "name": "萧县" + }, { + "code": "341323", + "name": "灵璧县" + }, { + "code": "341324", + "name": "泗县" + }, { + "code": "341371", + "name": "宿州马鞍山现代产业园区" + }, { + "code": "341372", + "name": "宿州经济技术开发区" + }] + }, { + "code": "3415", + "name": "六安市", + "children": [{ + "code": "341502", + "name": "金安区" + }, { + "code": "341503", + "name": "裕安区" + }, { + "code": "341504", + "name": "叶集区" + }, { + "code": "341522", + "name": "霍邱县" + }, { + "code": "341523", + "name": "舒城县" + }, { + "code": "341524", + "name": "金寨县" + }, { + "code": "341525", + "name": "霍山县" + }] + }, { + "code": "3416", + "name": "亳州市", + "children": [{ + "code": "341602", + "name": "谯城区" + }, { + "code": "341621", + "name": "涡阳县" + }, { + "code": "341622", + "name": "蒙城县" + }, { + "code": "341623", + "name": "利辛县" + }] + }, { + "code": "3417", + "name": "池州市", + "children": [{ + "code": "341702", + "name": "贵池区" + }, { + "code": "341721", + "name": "东至县" + }, { + "code": "341722", + "name": "石台县" + }, { + "code": "341723", + "name": "青阳县" + }] + }, { + "code": "3418", + "name": "宣城市", + "children": [{ + "code": "341802", + "name": "宣州区" + }, { + "code": "341821", + "name": "郎溪县" + }, { + "code": "341823", + "name": "泾县" + }, { + "code": "341824", + "name": "绩溪县" + }, { + "code": "341825", + "name": "旌德县" + }, { + "code": "341871", + "name": "宣城市经济开发区" + }, { + "code": "341881", + "name": "宁国市" + }, { + "code": "341882", + "name": "广德市" + }] + }] +}, { + "code": "35", + "name": "福建省", + "children": [{ + "code": "3501", + "name": "福州市", + "children": [{ + "code": "350102", + "name": "鼓楼区" + }, { + "code": "350103", + "name": "台江区" + }, { + "code": "350104", + "name": "仓山区" + }, { + "code": "350105", + "name": "马尾区" + }, { + "code": "350111", + "name": "晋安区" + }, { + "code": "350112", + "name": "长乐区" + }, { + "code": "350121", + "name": "闽侯县" + }, { + "code": "350122", + "name": "连江县" + }, { + "code": "350123", + "name": "罗源县" + }, { + "code": "350124", + "name": "闽清县" + }, { + "code": "350125", + "name": "永泰县" + }, { + "code": "350128", + "name": "平潭县" + }, { + "code": "350181", + "name": "福清市" + }] + }, { + "code": "3502", + "name": "厦门市", + "children": [{ + "code": "350203", + "name": "思明区" + }, { + "code": "350205", + "name": "海沧区" + }, { + "code": "350206", + "name": "湖里区" + }, { + "code": "350211", + "name": "集美区" + }, { + "code": "350212", + "name": "同安区" + }, { + "code": "350213", + "name": "翔安区" + }] + }, { + "code": "3503", + "name": "莆田市", + "children": [{ + "code": "350302", + "name": "城厢区" + }, { + "code": "350303", + "name": "涵江区" + }, { + "code": "350304", + "name": "荔城区" + }, { + "code": "350305", + "name": "秀屿区" + }, { + "code": "350322", + "name": "仙游县" + }] + }, { + "code": "3504", + "name": "三明市", + "children": [{ + "code": "350404", + "name": "三元区" + }, { + "code": "350405", + "name": "沙县区" + }, { + "code": "350421", + "name": "明溪县" + }, { + "code": "350423", + "name": "清流县" + }, { + "code": "350424", + "name": "宁化县" + }, { + "code": "350425", + "name": "大田县" + }, { + "code": "350426", + "name": "尤溪县" + }, { + "code": "350428", + "name": "将乐县" + }, { + "code": "350429", + "name": "泰宁县" + }, { + "code": "350430", + "name": "建宁县" + }, { + "code": "350481", + "name": "永安市" + }] + }, { + "code": "3505", + "name": "泉州市", + "children": [{ + "code": "350502", + "name": "鲤城区" + }, { + "code": "350503", + "name": "丰泽区" + }, { + "code": "350504", + "name": "洛江区" + }, { + "code": "350505", + "name": "泉港区" + }, { + "code": "350521", + "name": "惠安县" + }, { + "code": "350524", + "name": "安溪县" + }, { + "code": "350525", + "name": "永春县" + }, { + "code": "350526", + "name": "德化县" + }, { + "code": "350527", + "name": "金门县" + }, { + "code": "350581", + "name": "石狮市" + }, { + "code": "350582", + "name": "晋江市" + }, { + "code": "350583", + "name": "南安市" + }] + }, { + "code": "3506", + "name": "漳州市", + "children": [{ + "code": "350602", + "name": "芗城区" + }, { + "code": "350603", + "name": "龙文区" + }, { + "code": "350604", + "name": "龙海区" + }, { + "code": "350605", + "name": "长泰区" + }, { + "code": "350622", + "name": "云霄县" + }, { + "code": "350623", + "name": "漳浦县" + }, { + "code": "350624", + "name": "诏安县" + }, { + "code": "350626", + "name": "东山县" + }, { + "code": "350627", + "name": "南靖县" + }, { + "code": "350628", + "name": "平和县" + }, { + "code": "350629", + "name": "华安县" + }] + }, { + "code": "3507", + "name": "南平市", + "children": [{ + "code": "350702", + "name": "延平区" + }, { + "code": "350703", + "name": "建阳区" + }, { + "code": "350721", + "name": "顺昌县" + }, { + "code": "350722", + "name": "浦城县" + }, { + "code": "350723", + "name": "光泽县" + }, { + "code": "350724", + "name": "松溪县" + }, { + "code": "350725", + "name": "政和县" + }, { + "code": "350781", + "name": "邵武市" + }, { + "code": "350782", + "name": "武夷山市" + }, { + "code": "350783", + "name": "建瓯市" + }] + }, { + "code": "3508", + "name": "龙岩市", + "children": [{ + "code": "350802", + "name": "新罗区" + }, { + "code": "350803", + "name": "永定区" + }, { + "code": "350821", + "name": "长汀县" + }, { + "code": "350823", + "name": "上杭县" + }, { + "code": "350824", + "name": "武平县" + }, { + "code": "350825", + "name": "连城县" + }, { + "code": "350881", + "name": "漳平市" + }] + }, { + "code": "3509", + "name": "宁德市", + "children": [{ + "code": "350902", + "name": "蕉城区" + }, { + "code": "350921", + "name": "霞浦县" + }, { + "code": "350922", + "name": "古田县" + }, { + "code": "350923", + "name": "屏南县" + }, { + "code": "350924", + "name": "寿宁县" + }, { + "code": "350925", + "name": "周宁县" + }, { + "code": "350926", + "name": "柘荣县" + }, { + "code": "350981", + "name": "福安市" + }, { + "code": "350982", + "name": "福鼎市" + }] + }] +}, { + "code": "36", + "name": "江西省", + "children": [{ + "code": "3601", + "name": "南昌市", + "children": [{ + "code": "360102", + "name": "东湖区" + }, { + "code": "360103", + "name": "西湖区" + }, { + "code": "360104", + "name": "青云谱区" + }, { + "code": "360111", + "name": "青山湖区" + }, { + "code": "360112", + "name": "新建区" + }, { + "code": "360113", + "name": "红谷滩区" + }, { + "code": "360121", + "name": "南昌县" + }, { + "code": "360123", + "name": "安义县" + }, { + "code": "360124", + "name": "进贤县" + }] + }, { + "code": "3602", + "name": "景德镇市", + "children": [{ + "code": "360202", + "name": "昌江区" + }, { + "code": "360203", + "name": "珠山区" + }, { + "code": "360222", + "name": "浮梁县" + }, { + "code": "360281", + "name": "乐平市" + }] + }, { + "code": "3603", + "name": "萍乡市", + "children": [{ + "code": "360302", + "name": "安源区" + }, { + "code": "360313", + "name": "湘东区" + }, { + "code": "360321", + "name": "莲花县" + }, { + "code": "360322", + "name": "上栗县" + }, { + "code": "360323", + "name": "芦溪县" + }] + }, { + "code": "3604", + "name": "九江市", + "children": [{ + "code": "360402", + "name": "濂溪区" + }, { + "code": "360403", + "name": "浔阳区" + }, { + "code": "360404", + "name": "柴桑区" + }, { + "code": "360423", + "name": "武宁县" + }, { + "code": "360424", + "name": "修水县" + }, { + "code": "360425", + "name": "永修县" + }, { + "code": "360426", + "name": "德安县" + }, { + "code": "360428", + "name": "都昌县" + }, { + "code": "360429", + "name": "湖口县" + }, { + "code": "360430", + "name": "彭泽县" + }, { + "code": "360481", + "name": "瑞昌市" + }, { + "code": "360482", + "name": "共青城市" + }, { + "code": "360483", + "name": "庐山市" + }] + }, { + "code": "3605", + "name": "新余市", + "children": [{ + "code": "360502", + "name": "渝水区" + }, { + "code": "360521", + "name": "分宜县" + }] + }, { + "code": "3606", + "name": "鹰潭市", + "children": [{ + "code": "360602", + "name": "月湖区" + }, { + "code": "360603", + "name": "余江区" + }, { + "code": "360681", + "name": "贵溪市" + }] + }, { + "code": "3607", + "name": "赣州市", + "children": [{ + "code": "360702", + "name": "章贡区" + }, { + "code": "360703", + "name": "南康区" + }, { + "code": "360704", + "name": "赣县区" + }, { + "code": "360722", + "name": "信丰县" + }, { + "code": "360723", + "name": "大余县" + }, { + "code": "360724", + "name": "上犹县" + }, { + "code": "360725", + "name": "崇义县" + }, { + "code": "360726", + "name": "安远县" + }, { + "code": "360728", + "name": "定南县" + }, { + "code": "360729", + "name": "全南县" + }, { + "code": "360730", + "name": "宁都县" + }, { + "code": "360731", + "name": "于都县" + }, { + "code": "360732", + "name": "兴国县" + }, { + "code": "360733", + "name": "会昌县" + }, { + "code": "360734", + "name": "寻乌县" + }, { + "code": "360735", + "name": "石城县" + }, { + "code": "360781", + "name": "瑞金市" + }, { + "code": "360783", + "name": "龙南市" + }] + }, { + "code": "3608", + "name": "吉安市", + "children": [{ + "code": "360802", + "name": "吉州区" + }, { + "code": "360803", + "name": "青原区" + }, { + "code": "360821", + "name": "吉安县" + }, { + "code": "360822", + "name": "吉水县" + }, { + "code": "360823", + "name": "峡江县" + }, { + "code": "360824", + "name": "新干县" + }, { + "code": "360825", + "name": "永丰县" + }, { + "code": "360826", + "name": "泰和县" + }, { + "code": "360827", + "name": "遂川县" + }, { + "code": "360828", + "name": "万安县" + }, { + "code": "360829", + "name": "安福县" + }, { + "code": "360830", + "name": "永新县" + }, { + "code": "360881", + "name": "井冈山市" + }] + }, { + "code": "3609", + "name": "宜春市", + "children": [{ + "code": "360902", + "name": "袁州区" + }, { + "code": "360921", + "name": "奉新县" + }, { + "code": "360922", + "name": "万载县" + }, { + "code": "360923", + "name": "上高县" + }, { + "code": "360924", + "name": "宜丰县" + }, { + "code": "360925", + "name": "靖安县" + }, { + "code": "360926", + "name": "铜鼓县" + }, { + "code": "360981", + "name": "丰城市" + }, { + "code": "360982", + "name": "樟树市" + }, { + "code": "360983", + "name": "高安市" + }] + }, { + "code": "3610", + "name": "抚州市", + "children": [{ + "code": "361002", + "name": "临川区" + }, { + "code": "361003", + "name": "东乡区" + }, { + "code": "361021", + "name": "南城县" + }, { + "code": "361022", + "name": "黎川县" + }, { + "code": "361023", + "name": "南丰县" + }, { + "code": "361024", + "name": "崇仁县" + }, { + "code": "361025", + "name": "乐安县" + }, { + "code": "361026", + "name": "宜黄县" + }, { + "code": "361027", + "name": "金溪县" + }, { + "code": "361028", + "name": "资溪县" + }, { + "code": "361030", + "name": "广昌县" + }] + }, { + "code": "3611", + "name": "上饶市", + "children": [{ + "code": "361102", + "name": "信州区" + }, { + "code": "361103", + "name": "广丰区" + }, { + "code": "361104", + "name": "广信区" + }, { + "code": "361123", + "name": "玉山县" + }, { + "code": "361124", + "name": "铅山县" + }, { + "code": "361125", + "name": "横峰县" + }, { + "code": "361126", + "name": "弋阳县" + }, { + "code": "361127", + "name": "余干县" + }, { + "code": "361128", + "name": "鄱阳县" + }, { + "code": "361129", + "name": "万年县" + }, { + "code": "361130", + "name": "婺源县" + }, { + "code": "361181", + "name": "德兴市" + }] + }] +}, { + "code": "37", + "name": "山东省", + "children": [{ + "code": "3701", + "name": "济南市", + "children": [{ + "code": "370102", + "name": "历下区" + }, { + "code": "370103", + "name": "市中区" + }, { + "code": "370104", + "name": "槐荫区" + }, { + "code": "370105", + "name": "天桥区" + }, { + "code": "370112", + "name": "历城区" + }, { + "code": "370113", + "name": "长清区" + }, { + "code": "370114", + "name": "章丘区" + }, { + "code": "370115", + "name": "济阳区" + }, { + "code": "370116", + "name": "莱芜区" + }, { + "code": "370117", + "name": "钢城区" + }, { + "code": "370124", + "name": "平阴县" + }, { + "code": "370126", + "name": "商河县" + }, { + "code": "370176", + "name": "济南高新技术产业开发区" + }] + }, { + "code": "3702", + "name": "青岛市", + "children": [{ + "code": "370202", + "name": "市南区" + }, { + "code": "370203", + "name": "市北区" + }, { + "code": "370211", + "name": "黄岛区" + }, { + "code": "370212", + "name": "崂山区" + }, { + "code": "370213", + "name": "李沧区" + }, { + "code": "370214", + "name": "城阳区" + }, { + "code": "370215", + "name": "即墨区" + }, { + "code": "370281", + "name": "胶州市" + }, { + "code": "370283", + "name": "平度市" + }, { + "code": "370285", + "name": "莱西市" + }] + }, { + "code": "3703", + "name": "淄博市", + "children": [{ + "code": "370302", + "name": "淄川区" + }, { + "code": "370303", + "name": "张店区" + }, { + "code": "370304", + "name": "博山区" + }, { + "code": "370305", + "name": "临淄区" + }, { + "code": "370306", + "name": "周村区" + }, { + "code": "370321", + "name": "桓台县" + }, { + "code": "370322", + "name": "高青县" + }, { + "code": "370323", + "name": "沂源县" + }] + }, { + "code": "3704", + "name": "枣庄市", + "children": [{ + "code": "370402", + "name": "市中区" + }, { + "code": "370403", + "name": "薛城区" + }, { + "code": "370404", + "name": "峄城区" + }, { + "code": "370405", + "name": "台儿庄区" + }, { + "code": "370406", + "name": "山亭区" + }, { + "code": "370481", + "name": "滕州市" + }] + }, { + "code": "3705", + "name": "东营市", + "children": [{ + "code": "370502", + "name": "东营区" + }, { + "code": "370503", + "name": "河口区" + }, { + "code": "370505", + "name": "垦利区" + }, { + "code": "370522", + "name": "利津县" + }, { + "code": "370523", + "name": "广饶县" + }, { + "code": "370571", + "name": "东营经济技术开发区" + }, { + "code": "370572", + "name": "东营港经济开发区" + }] + }, { + "code": "3706", + "name": "烟台市", + "children": [{ + "code": "370602", + "name": "芝罘区" + }, { + "code": "370611", + "name": "福山区" + }, { + "code": "370612", + "name": "牟平区" + }, { + "code": "370613", + "name": "莱山区" + }, { + "code": "370614", + "name": "蓬莱区" + }, { + "code": "370671", + "name": "烟台高新技术产业开发区" + }, { + "code": "370676", + "name": "烟台经济技术开发区" + }, { + "code": "370681", + "name": "龙口市" + }, { + "code": "370682", + "name": "莱阳市" + }, { + "code": "370683", + "name": "莱州市" + }, { + "code": "370685", + "name": "招远市" + }, { + "code": "370686", + "name": "栖霞市" + }, { + "code": "370687", + "name": "海阳市" + }] + }, { + "code": "3707", + "name": "潍坊市", + "children": [{ + "code": "370702", + "name": "潍城区" + }, { + "code": "370703", + "name": "寒亭区" + }, { + "code": "370704", + "name": "坊子区" + }, { + "code": "370705", + "name": "奎文区" + }, { + "code": "370724", + "name": "临朐县" + }, { + "code": "370725", + "name": "昌乐县" + }, { + "code": "370772", + "name": "潍坊滨海经济技术开发区" + }, { + "code": "370781", + "name": "青州市" + }, { + "code": "370782", + "name": "诸城市" + }, { + "code": "370783", + "name": "寿光市" + }, { + "code": "370784", + "name": "安丘市" + }, { + "code": "370785", + "name": "高密市" + }, { + "code": "370786", + "name": "昌邑市" + }] + }, { + "code": "3708", + "name": "济宁市", + "children": [{ + "code": "370811", + "name": "任城区" + }, { + "code": "370812", + "name": "兖州区" + }, { + "code": "370826", + "name": "微山县" + }, { + "code": "370827", + "name": "鱼台县" + }, { + "code": "370828", + "name": "金乡县" + }, { + "code": "370829", + "name": "嘉祥县" + }, { + "code": "370830", + "name": "汶上县" + }, { + "code": "370831", + "name": "泗水县" + }, { + "code": "370832", + "name": "梁山县" + }, { + "code": "370871", + "name": "济宁高新技术产业开发区" + }, { + "code": "370881", + "name": "曲阜市" + }, { + "code": "370883", + "name": "邹城市" + }] + }, { + "code": "3709", + "name": "泰安市", + "children": [{ + "code": "370902", + "name": "泰山区" + }, { + "code": "370911", + "name": "岱岳区" + }, { + "code": "370921", + "name": "宁阳县" + }, { + "code": "370923", + "name": "东平县" + }, { + "code": "370982", + "name": "新泰市" + }, { + "code": "370983", + "name": "肥城市" + }] + }, { + "code": "3710", + "name": "威海市", + "children": [{ + "code": "371002", + "name": "环翠区" + }, { + "code": "371003", + "name": "文登区" + }, { + "code": "371071", + "name": "威海火炬高技术产业开发区" + }, { + "code": "371072", + "name": "威海经济技术开发区" + }, { + "code": "371073", + "name": "威海临港经济技术开发区" + }, { + "code": "371082", + "name": "荣成市" + }, { + "code": "371083", + "name": "乳山市" + }] + }, { + "code": "3711", + "name": "日照市", + "children": [{ + "code": "371102", + "name": "东港区" + }, { + "code": "371103", + "name": "岚山区" + }, { + "code": "371121", + "name": "五莲县" + }, { + "code": "371122", + "name": "莒县" + }, { + "code": "371171", + "name": "日照经济技术开发区" + }] + }, { + "code": "3713", + "name": "临沂市", + "children": [{ + "code": "371302", + "name": "兰山区" + }, { + "code": "371311", + "name": "罗庄区" + }, { + "code": "371312", + "name": "河东区" + }, { + "code": "371321", + "name": "沂南县" + }, { + "code": "371322", + "name": "郯城县" + }, { + "code": "371323", + "name": "沂水县" + }, { + "code": "371324", + "name": "兰陵县" + }, { + "code": "371325", + "name": "费县" + }, { + "code": "371326", + "name": "平邑县" + }, { + "code": "371327", + "name": "莒南县" + }, { + "code": "371328", + "name": "蒙阴县" + }, { + "code": "371329", + "name": "临沭县" + }, { + "code": "371371", + "name": "临沂高新技术产业开发区" + }] + }, { + "code": "3714", + "name": "德州市", + "children": [{ + "code": "371402", + "name": "德城区" + }, { + "code": "371403", + "name": "陵城区" + }, { + "code": "371422", + "name": "宁津县" + }, { + "code": "371423", + "name": "庆云县" + }, { + "code": "371424", + "name": "临邑县" + }, { + "code": "371425", + "name": "齐河县" + }, { + "code": "371426", + "name": "平原县" + }, { + "code": "371427", + "name": "夏津县" + }, { + "code": "371428", + "name": "武城县" + }, { + "code": "371471", + "name": "德州天衢新区" + }, { + "code": "371481", + "name": "乐陵市" + }, { + "code": "371482", + "name": "禹城市" + }] + }, { + "code": "3715", + "name": "聊城市", + "children": [{ + "code": "371502", + "name": "东昌府区" + }, { + "code": "371503", + "name": "茌平区" + }, { + "code": "371521", + "name": "阳谷县" + }, { + "code": "371522", + "name": "莘县" + }, { + "code": "371524", + "name": "东阿县" + }, { + "code": "371525", + "name": "冠县" + }, { + "code": "371526", + "name": "高唐县" + }, { + "code": "371581", + "name": "临清市" + }] + }, { + "code": "3716", + "name": "滨州市", + "children": [{ + "code": "371602", + "name": "滨城区" + }, { + "code": "371603", + "name": "沾化区" + }, { + "code": "371621", + "name": "惠民县" + }, { + "code": "371622", + "name": "阳信县" + }, { + "code": "371623", + "name": "无棣县" + }, { + "code": "371625", + "name": "博兴县" + }, { + "code": "371681", + "name": "邹平市" + }] + }, { + "code": "3717", + "name": "菏泽市", + "children": [{ + "code": "371702", + "name": "牡丹区" + }, { + "code": "371703", + "name": "定陶区" + }, { + "code": "371721", + "name": "曹县" + }, { + "code": "371722", + "name": "单县" + }, { + "code": "371723", + "name": "成武县" + }, { + "code": "371724", + "name": "巨野县" + }, { + "code": "371725", + "name": "郓城县" + }, { + "code": "371726", + "name": "鄄城县" + }, { + "code": "371728", + "name": "东明县" + }, { + "code": "371771", + "name": "菏泽经济技术开发区" + }, { + "code": "371772", + "name": "菏泽高新技术开发区" + }] + }] +}, { + "code": "41", + "name": "河南省", + "children": [{ + "code": "4101", + "name": "郑州市", + "children": [{ + "code": "410102", + "name": "中原区" + }, { + "code": "410103", + "name": "二七区" + }, { + "code": "410104", + "name": "管城回族区" + }, { + "code": "410105", + "name": "金水区" + }, { + "code": "410106", + "name": "上街区" + }, { + "code": "410108", + "name": "惠济区" + }, { + "code": "410122", + "name": "中牟县" + }, { + "code": "410171", + "name": "郑州经济技术开发区" + }, { + "code": "410172", + "name": "郑州高新技术产业开发区" + }, { + "code": "410173", + "name": "郑州航空港经济综合实验区" + }, { + "code": "410181", + "name": "巩义市" + }, { + "code": "410182", + "name": "荥阳市" + }, { + "code": "410183", + "name": "新密市" + }, { + "code": "410184", + "name": "新郑市" + }, { + "code": "410185", + "name": "登封市" + }] + }, { + "code": "4102", + "name": "开封市", + "children": [{ + "code": "410202", + "name": "龙亭区" + }, { + "code": "410203", + "name": "顺河回族区" + }, { + "code": "410204", + "name": "鼓楼区" + }, { + "code": "410205", + "name": "禹王台区" + }, { + "code": "410212", + "name": "祥符区" + }, { + "code": "410221", + "name": "杞县" + }, { + "code": "410222", + "name": "通许县" + }, { + "code": "410223", + "name": "尉氏县" + }, { + "code": "410225", + "name": "兰考县" + }] + }, { + "code": "4103", + "name": "洛阳市", + "children": [{ + "code": "410302", + "name": "老城区" + }, { + "code": "410303", + "name": "西工区" + }, { + "code": "410304", + "name": "瀍河回族区" + }, { + "code": "410305", + "name": "涧西区" + }, { + "code": "410307", + "name": "偃师区" + }, { + "code": "410308", + "name": "孟津区" + }, { + "code": "410311", + "name": "洛龙区" + }, { + "code": "410323", + "name": "新安县" + }, { + "code": "410324", + "name": "栾川县" + }, { + "code": "410325", + "name": "嵩县" + }, { + "code": "410326", + "name": "汝阳县" + }, { + "code": "410327", + "name": "宜阳县" + }, { + "code": "410328", + "name": "洛宁县" + }, { + "code": "410329", + "name": "伊川县" + }, { + "code": "410371", + "name": "洛阳高新技术产业开发区" + }] + }, { + "code": "4104", + "name": "平顶山市", + "children": [{ + "code": "410402", + "name": "新华区" + }, { + "code": "410403", + "name": "卫东区" + }, { + "code": "410404", + "name": "石龙区" + }, { + "code": "410411", + "name": "湛河区" + }, { + "code": "410421", + "name": "宝丰县" + }, { + "code": "410422", + "name": "叶县" + }, { + "code": "410423", + "name": "鲁山县" + }, { + "code": "410425", + "name": "郏县" + }, { + "code": "410471", + "name": "平顶山高新技术产业开发区" + }, { + "code": "410472", + "name": "平顶山市城乡一体化示范区" + }, { + "code": "410481", + "name": "舞钢市" + }, { + "code": "410482", + "name": "汝州市" + }] + }, { + "code": "4105", + "name": "安阳市", + "children": [{ + "code": "410502", + "name": "文峰区" + }, { + "code": "410503", + "name": "北关区" + }, { + "code": "410505", + "name": "殷都区" + }, { + "code": "410506", + "name": "龙安区" + }, { + "code": "410522", + "name": "安阳县" + }, { + "code": "410523", + "name": "汤阴县" + }, { + "code": "410526", + "name": "滑县" + }, { + "code": "410527", + "name": "内黄县" + }, { + "code": "410571", + "name": "安阳高新技术产业开发区" + }, { + "code": "410581", + "name": "林州市" + }] + }, { + "code": "4106", + "name": "鹤壁市", + "children": [{ + "code": "410602", + "name": "鹤山区" + }, { + "code": "410603", + "name": "山城区" + }, { + "code": "410611", + "name": "淇滨区" + }, { + "code": "410621", + "name": "浚县" + }, { + "code": "410622", + "name": "淇县" + }, { + "code": "410671", + "name": "鹤壁经济技术开发区" + }] + }, { + "code": "4107", + "name": "新乡市", + "children": [{ + "code": "410702", + "name": "红旗区" + }, { + "code": "410703", + "name": "卫滨区" + }, { + "code": "410704", + "name": "凤泉区" + }, { + "code": "410711", + "name": "牧野区" + }, { + "code": "410721", + "name": "新乡县" + }, { + "code": "410724", + "name": "获嘉县" + }, { + "code": "410725", + "name": "原阳县" + }, { + "code": "410726", + "name": "延津县" + }, { + "code": "410727", + "name": "封丘县" + }, { + "code": "410771", + "name": "新乡高新技术产业开发区" + }, { + "code": "410772", + "name": "新乡经济技术开发区" + }, { + "code": "410773", + "name": "新乡市平原城乡一体化示范区" + }, { + "code": "410781", + "name": "卫辉市" + }, { + "code": "410782", + "name": "辉县市" + }, { + "code": "410783", + "name": "长垣市" + }] + }, { + "code": "4108", + "name": "焦作市", + "children": [{ + "code": "410802", + "name": "解放区" + }, { + "code": "410803", + "name": "中站区" + }, { + "code": "410804", + "name": "马村区" + }, { + "code": "410811", + "name": "山阳区" + }, { + "code": "410821", + "name": "修武县" + }, { + "code": "410822", + "name": "博爱县" + }, { + "code": "410823", + "name": "武陟县" + }, { + "code": "410825", + "name": "温县" + }, { + "code": "410871", + "name": "焦作城乡一体化示范区" + }, { + "code": "410882", + "name": "沁阳市" + }, { + "code": "410883", + "name": "孟州市" + }] + }, { + "code": "4109", + "name": "濮阳市", + "children": [{ + "code": "410902", + "name": "华龙区" + }, { + "code": "410922", + "name": "清丰县" + }, { + "code": "410923", + "name": "南乐县" + }, { + "code": "410926", + "name": "范县" + }, { + "code": "410927", + "name": "台前县" + }, { + "code": "410928", + "name": "濮阳县" + }, { + "code": "410971", + "name": "河南濮阳工业园区" + }, { + "code": "410972", + "name": "濮阳经济技术开发区" + }] + }, { + "code": "4110", + "name": "许昌市", + "children": [{ + "code": "411002", + "name": "魏都区" + }, { + "code": "411003", + "name": "建安区" + }, { + "code": "411024", + "name": "鄢陵县" + }, { + "code": "411025", + "name": "襄城县" + }, { + "code": "411071", + "name": "许昌经济技术开发区" + }, { + "code": "411081", + "name": "禹州市" + }, { + "code": "411082", + "name": "长葛市" + }] + }, { + "code": "4111", + "name": "漯河市", + "children": [{ + "code": "411102", + "name": "源汇区" + }, { + "code": "411103", + "name": "郾城区" + }, { + "code": "411104", + "name": "召陵区" + }, { + "code": "411121", + "name": "舞阳县" + }, { + "code": "411122", + "name": "临颍县" + }, { + "code": "411171", + "name": "漯河经济技术开发区" + }] + }, { + "code": "4112", + "name": "三门峡市", + "children": [{ + "code": "411202", + "name": "湖滨区" + }, { + "code": "411203", + "name": "陕州区" + }, { + "code": "411221", + "name": "渑池县" + }, { + "code": "411224", + "name": "卢氏县" + }, { + "code": "411271", + "name": "河南三门峡经济开发区" + }, { + "code": "411281", + "name": "义马市" + }, { + "code": "411282", + "name": "灵宝市" + }] + }, { + "code": "4113", + "name": "南阳市", + "children": [{ + "code": "411302", + "name": "宛城区" + }, { + "code": "411303", + "name": "卧龙区" + }, { + "code": "411321", + "name": "南召县" + }, { + "code": "411322", + "name": "方城县" + }, { + "code": "411323", + "name": "西峡县" + }, { + "code": "411324", + "name": "镇平县" + }, { + "code": "411325", + "name": "内乡县" + }, { + "code": "411326", + "name": "淅川县" + }, { + "code": "411327", + "name": "社旗县" + }, { + "code": "411328", + "name": "唐河县" + }, { + "code": "411329", + "name": "新野县" + }, { + "code": "411330", + "name": "桐柏县" + }, { + "code": "411371", + "name": "南阳高新技术产业开发区" + }, { + "code": "411372", + "name": "南阳市城乡一体化示范区" + }, { + "code": "411381", + "name": "邓州市" + }] + }, { + "code": "4114", + "name": "商丘市", + "children": [{ + "code": "411402", + "name": "梁园区" + }, { + "code": "411403", + "name": "睢阳区" + }, { + "code": "411421", + "name": "民权县" + }, { + "code": "411422", + "name": "睢县" + }, { + "code": "411423", + "name": "宁陵县" + }, { + "code": "411424", + "name": "柘城县" + }, { + "code": "411425", + "name": "虞城县" + }, { + "code": "411426", + "name": "夏邑县" + }, { + "code": "411471", + "name": "豫东综合物流产业聚集区" + }, { + "code": "411472", + "name": "河南商丘经济开发区" + }, { + "code": "411481", + "name": "永城市" + }] + }, { + "code": "4115", + "name": "信阳市", + "children": [{ + "code": "411502", + "name": "浉河区" + }, { + "code": "411503", + "name": "平桥区" + }, { + "code": "411521", + "name": "罗山县" + }, { + "code": "411522", + "name": "光山县" + }, { + "code": "411523", + "name": "新县" + }, { + "code": "411524", + "name": "商城县" + }, { + "code": "411525", + "name": "固始县" + }, { + "code": "411526", + "name": "潢川县" + }, { + "code": "411527", + "name": "淮滨县" + }, { + "code": "411528", + "name": "息县" + }, { + "code": "411571", + "name": "信阳高新技术产业开发区" + }] + }, { + "code": "4116", + "name": "周口市", + "children": [{ + "code": "411602", + "name": "川汇区" + }, { + "code": "411603", + "name": "淮阳区" + }, { + "code": "411621", + "name": "扶沟县" + }, { + "code": "411622", + "name": "西华县" + }, { + "code": "411623", + "name": "商水县" + }, { + "code": "411624", + "name": "沈丘县" + }, { + "code": "411625", + "name": "郸城县" + }, { + "code": "411627", + "name": "太康县" + }, { + "code": "411628", + "name": "鹿邑县" + }, { + "code": "411671", + "name": "周口临港开发区" + }, { + "code": "411681", + "name": "项城市" + }] + }, { + "code": "4117", + "name": "驻马店市", + "children": [{ + "code": "411702", + "name": "驿城区" + }, { + "code": "411721", + "name": "西平县" + }, { + "code": "411722", + "name": "上蔡县" + }, { + "code": "411723", + "name": "平舆县" + }, { + "code": "411724", + "name": "正阳县" + }, { + "code": "411725", + "name": "确山县" + }, { + "code": "411726", + "name": "泌阳县" + }, { + "code": "411727", + "name": "汝南县" + }, { + "code": "411728", + "name": "遂平县" + }, { + "code": "411729", + "name": "新蔡县" + }, { + "code": "411771", + "name": "河南驻马店经济开发区" + }] + }, { + "code": "4190", + "name": "省直辖县级行政区划", + "children": [{ + "code": "419001", + "name": "济源市" + }] + }] +}, { + "code": "42", + "name": "湖北省", + "children": [{ + "code": "4201", + "name": "武汉市", + "children": [{ + "code": "420102", + "name": "江岸区" + }, { + "code": "420103", + "name": "江汉区" + }, { + "code": "420104", + "name": "硚口区" + }, { + "code": "420105", + "name": "汉阳区" + }, { + "code": "420106", + "name": "武昌区" + }, { + "code": "420107", + "name": "青山区" + }, { + "code": "420111", + "name": "洪山区" + }, { + "code": "420112", + "name": "东西湖区" + }, { + "code": "420113", + "name": "汉南区" + }, { + "code": "420114", + "name": "蔡甸区" + }, { + "code": "420115", + "name": "江夏区" + }, { + "code": "420116", + "name": "黄陂区" + }, { + "code": "420117", + "name": "新洲区" + }] + }, { + "code": "4202", + "name": "黄石市", + "children": [{ + "code": "420202", + "name": "黄石港区" + }, { + "code": "420203", + "name": "西塞山区" + }, { + "code": "420204", + "name": "下陆区" + }, { + "code": "420205", + "name": "铁山区" + }, { + "code": "420222", + "name": "阳新县" + }, { + "code": "420281", + "name": "大冶市" + }] + }, { + "code": "4203", + "name": "十堰市", + "children": [{ + "code": "420302", + "name": "茅箭区" + }, { + "code": "420303", + "name": "张湾区" + }, { + "code": "420304", + "name": "郧阳区" + }, { + "code": "420322", + "name": "郧西县" + }, { + "code": "420323", + "name": "竹山县" + }, { + "code": "420324", + "name": "竹溪县" + }, { + "code": "420325", + "name": "房县" + }, { + "code": "420381", + "name": "丹江口市" + }] + }, { + "code": "4205", + "name": "宜昌市", + "children": [{ + "code": "420502", + "name": "西陵区" + }, { + "code": "420503", + "name": "伍家岗区" + }, { + "code": "420504", + "name": "点军区" + }, { + "code": "420505", + "name": "猇亭区" + }, { + "code": "420506", + "name": "夷陵区" + }, { + "code": "420525", + "name": "远安县" + }, { + "code": "420526", + "name": "兴山县" + }, { + "code": "420527", + "name": "秭归县" + }, { + "code": "420528", + "name": "长阳土家族自治县" + }, { + "code": "420529", + "name": "五峰土家族自治县" + }, { + "code": "420581", + "name": "宜都市" + }, { + "code": "420582", + "name": "当阳市" + }, { + "code": "420583", + "name": "枝江市" + }] + }, { + "code": "4206", + "name": "襄阳市", + "children": [{ + "code": "420602", + "name": "襄城区" + }, { + "code": "420606", + "name": "樊城区" + }, { + "code": "420607", + "name": "襄州区" + }, { + "code": "420624", + "name": "南漳县" + }, { + "code": "420625", + "name": "谷城县" + }, { + "code": "420626", + "name": "保康县" + }, { + "code": "420682", + "name": "老河口市" + }, { + "code": "420683", + "name": "枣阳市" + }, { + "code": "420684", + "name": "宜城市" + }] + }, { + "code": "4207", + "name": "鄂州市", + "children": [{ + "code": "420702", + "name": "梁子湖区" + }, { + "code": "420703", + "name": "华容区" + }, { + "code": "420704", + "name": "鄂城区" + }] + }, { + "code": "4208", + "name": "荆门市", + "children": [{ + "code": "420802", + "name": "东宝区" + }, { + "code": "420804", + "name": "掇刀区" + }, { + "code": "420822", + "name": "沙洋县" + }, { + "code": "420881", + "name": "钟祥市" + }, { + "code": "420882", + "name": "京山市" + }] + }, { + "code": "4209", + "name": "孝感市", + "children": [{ + "code": "420902", + "name": "孝南区" + }, { + "code": "420921", + "name": "孝昌县" + }, { + "code": "420922", + "name": "大悟县" + }, { + "code": "420923", + "name": "云梦县" + }, { + "code": "420981", + "name": "应城市" + }, { + "code": "420982", + "name": "安陆市" + }, { + "code": "420984", + "name": "汉川市" + }] + }, { + "code": "4210", + "name": "荆州市", + "children": [{ + "code": "421002", + "name": "沙市区" + }, { + "code": "421003", + "name": "荆州区" + }, { + "code": "421022", + "name": "公安县" + }, { + "code": "421024", + "name": "江陵县" + }, { + "code": "421071", + "name": "荆州经济技术开发区" + }, { + "code": "421081", + "name": "石首市" + }, { + "code": "421083", + "name": "洪湖市" + }, { + "code": "421087", + "name": "松滋市" + }, { + "code": "421088", + "name": "监利市" + }] + }, { + "code": "4211", + "name": "黄冈市", + "children": [{ + "code": "421102", + "name": "黄州区" + }, { + "code": "421121", + "name": "团风县" + }, { + "code": "421122", + "name": "红安县" + }, { + "code": "421123", + "name": "罗田县" + }, { + "code": "421124", + "name": "英山县" + }, { + "code": "421125", + "name": "浠水县" + }, { + "code": "421126", + "name": "蕲春县" + }, { + "code": "421127", + "name": "黄梅县" + }, { + "code": "421171", + "name": "龙感湖管理区" + }, { + "code": "421181", + "name": "麻城市" + }, { + "code": "421182", + "name": "武穴市" + }] + }, { + "code": "4212", + "name": "咸宁市", + "children": [{ + "code": "421202", + "name": "咸安区" + }, { + "code": "421221", + "name": "嘉鱼县" + }, { + "code": "421222", + "name": "通城县" + }, { + "code": "421223", + "name": "崇阳县" + }, { + "code": "421224", + "name": "通山县" + }, { + "code": "421281", + "name": "赤壁市" + }] + }, { + "code": "4213", + "name": "随州市", + "children": [{ + "code": "421303", + "name": "曾都区" + }, { + "code": "421321", + "name": "随县" + }, { + "code": "421381", + "name": "广水市" + }] + }, { + "code": "4228", + "name": "恩施土家族苗族自治州", + "children": [{ + "code": "422801", + "name": "恩施市" + }, { + "code": "422802", + "name": "利川市" + }, { + "code": "422822", + "name": "建始县" + }, { + "code": "422823", + "name": "巴东县" + }, { + "code": "422825", + "name": "宣恩县" + }, { + "code": "422826", + "name": "咸丰县" + }, { + "code": "422827", + "name": "来凤县" + }, { + "code": "422828", + "name": "鹤峰县" + }] + }, { + "code": "4290", + "name": "省直辖县级行政区划", + "children": [{ + "code": "429004", + "name": "仙桃市" + }, { + "code": "429005", + "name": "潜江市" + }, { + "code": "429006", + "name": "天门市" + }, { + "code": "429021", + "name": "神农架林区" + }] + }] +}, { + "code": "43", + "name": "湖南省", + "children": [{ + "code": "4301", + "name": "长沙市", + "children": [{ + "code": "430102", + "name": "芙蓉区" + }, { + "code": "430103", + "name": "天心区" + }, { + "code": "430104", + "name": "岳麓区" + }, { + "code": "430105", + "name": "开福区" + }, { + "code": "430111", + "name": "雨花区" + }, { + "code": "430112", + "name": "望城区" + }, { + "code": "430121", + "name": "长沙县" + }, { + "code": "430181", + "name": "浏阳市" + }, { + "code": "430182", + "name": "宁乡市" + }] + }, { + "code": "4302", + "name": "株洲市", + "children": [{ + "code": "430202", + "name": "荷塘区" + }, { + "code": "430203", + "name": "芦淞区" + }, { + "code": "430204", + "name": "石峰区" + }, { + "code": "430211", + "name": "天元区" + }, { + "code": "430212", + "name": "渌口区" + }, { + "code": "430223", + "name": "攸县" + }, { + "code": "430224", + "name": "茶陵县" + }, { + "code": "430225", + "name": "炎陵县" + }, { + "code": "430281", + "name": "醴陵市" + }] + }, { + "code": "4303", + "name": "湘潭市", + "children": [{ + "code": "430302", + "name": "雨湖区" + }, { + "code": "430304", + "name": "岳塘区" + }, { + "code": "430321", + "name": "湘潭县" + }, { + "code": "430371", + "name": "湖南湘潭高新技术产业园区" + }, { + "code": "430372", + "name": "湘潭昭山示范区" + }, { + "code": "430373", + "name": "湘潭九华示范区" + }, { + "code": "430381", + "name": "湘乡市" + }, { + "code": "430382", + "name": "韶山市" + }] + }, { + "code": "4304", + "name": "衡阳市", + "children": [{ + "code": "430405", + "name": "珠晖区" + }, { + "code": "430406", + "name": "雁峰区" + }, { + "code": "430407", + "name": "石鼓区" + }, { + "code": "430408", + "name": "蒸湘区" + }, { + "code": "430412", + "name": "南岳区" + }, { + "code": "430421", + "name": "衡阳县" + }, { + "code": "430422", + "name": "衡南县" + }, { + "code": "430423", + "name": "衡山县" + }, { + "code": "430424", + "name": "衡东县" + }, { + "code": "430426", + "name": "祁东县" + }, { + "code": "430473", + "name": "湖南衡阳松木经济开发区" + }, { + "code": "430476", + "name": "湖南衡阳高新技术产业园区" + }, { + "code": "430481", + "name": "耒阳市" + }, { + "code": "430482", + "name": "常宁市" + }] + }, { + "code": "4305", + "name": "邵阳市", + "children": [{ + "code": "430502", + "name": "双清区" + }, { + "code": "430503", + "name": "大祥区" + }, { + "code": "430511", + "name": "北塔区" + }, { + "code": "430522", + "name": "新邵县" + }, { + "code": "430523", + "name": "邵阳县" + }, { + "code": "430524", + "name": "隆回县" + }, { + "code": "430525", + "name": "洞口县" + }, { + "code": "430527", + "name": "绥宁县" + }, { + "code": "430528", + "name": "新宁县" + }, { + "code": "430529", + "name": "城步苗族自治县" + }, { + "code": "430581", + "name": "武冈市" + }, { + "code": "430582", + "name": "邵东市" + }] + }, { + "code": "4306", + "name": "岳阳市", + "children": [{ + "code": "430602", + "name": "岳阳楼区" + }, { + "code": "430603", + "name": "云溪区" + }, { + "code": "430611", + "name": "君山区" + }, { + "code": "430621", + "name": "岳阳县" + }, { + "code": "430623", + "name": "华容县" + }, { + "code": "430624", + "name": "湘阴县" + }, { + "code": "430626", + "name": "平江县" + }, { + "code": "430671", + "name": "岳阳市屈原管理区" + }, { + "code": "430681", + "name": "汨罗市" + }, { + "code": "430682", + "name": "临湘市" + }] + }, { + "code": "4307", + "name": "常德市", + "children": [{ + "code": "430702", + "name": "武陵区" + }, { + "code": "430703", + "name": "鼎城区" + }, { + "code": "430721", + "name": "安乡县" + }, { + "code": "430722", + "name": "汉寿县" + }, { + "code": "430723", + "name": "澧县" + }, { + "code": "430724", + "name": "临澧县" + }, { + "code": "430725", + "name": "桃源县" + }, { + "code": "430726", + "name": "石门县" + }, { + "code": "430771", + "name": "常德市西洞庭管理区" + }, { + "code": "430781", + "name": "津市市" + }] + }, { + "code": "4308", + "name": "张家界市", + "children": [{ + "code": "430802", + "name": "永定区" + }, { + "code": "430811", + "name": "武陵源区" + }, { + "code": "430821", + "name": "慈利县" + }, { + "code": "430822", + "name": "桑植县" + }] + }, { + "code": "4309", + "name": "益阳市", + "children": [{ + "code": "430902", + "name": "资阳区" + }, { + "code": "430903", + "name": "赫山区" + }, { + "code": "430921", + "name": "南县" + }, { + "code": "430922", + "name": "桃江县" + }, { + "code": "430923", + "name": "安化县" + }, { + "code": "430971", + "name": "益阳市大通湖管理区" + }, { + "code": "430972", + "name": "湖南益阳高新技术产业园区" + }, { + "code": "430981", + "name": "沅江市" + }] + }, { + "code": "4310", + "name": "郴州市", + "children": [{ + "code": "431002", + "name": "北湖区" + }, { + "code": "431003", + "name": "苏仙区" + }, { + "code": "431021", + "name": "桂阳县" + }, { + "code": "431022", + "name": "宜章县" + }, { + "code": "431023", + "name": "永兴县" + }, { + "code": "431024", + "name": "嘉禾县" + }, { + "code": "431025", + "name": "临武县" + }, { + "code": "431026", + "name": "汝城县" + }, { + "code": "431027", + "name": "桂东县" + }, { + "code": "431028", + "name": "安仁县" + }, { + "code": "431081", + "name": "资兴市" + }] + }, { + "code": "4311", + "name": "永州市", + "children": [{ + "code": "431102", + "name": "零陵区" + }, { + "code": "431103", + "name": "冷水滩区" + }, { + "code": "431122", + "name": "东安县" + }, { + "code": "431123", + "name": "双牌县" + }, { + "code": "431124", + "name": "道县" + }, { + "code": "431125", + "name": "江永县" + }, { + "code": "431126", + "name": "宁远县" + }, { + "code": "431127", + "name": "蓝山县" + }, { + "code": "431128", + "name": "新田县" + }, { + "code": "431129", + "name": "江华瑶族自治县" + }, { + "code": "431171", + "name": "永州经济技术开发区" + }, { + "code": "431173", + "name": "永州市回龙圩管理区" + }, { + "code": "431181", + "name": "祁阳市" + }] + }, { + "code": "4312", + "name": "怀化市", + "children": [{ + "code": "431202", + "name": "鹤城区" + }, { + "code": "431221", + "name": "中方县" + }, { + "code": "431222", + "name": "沅陵县" + }, { + "code": "431223", + "name": "辰溪县" + }, { + "code": "431224", + "name": "溆浦县" + }, { + "code": "431225", + "name": "会同县" + }, { + "code": "431226", + "name": "麻阳苗族自治县" + }, { + "code": "431227", + "name": "新晃侗族自治县" + }, { + "code": "431228", + "name": "芷江侗族自治县" + }, { + "code": "431229", + "name": "靖州苗族侗族自治县" + }, { + "code": "431230", + "name": "通道侗族自治县" + }, { + "code": "431271", + "name": "怀化市洪江管理区" + }, { + "code": "431281", + "name": "洪江市" + }] + }, { + "code": "4313", + "name": "娄底市", + "children": [{ + "code": "431302", + "name": "娄星区" + }, { + "code": "431321", + "name": "双峰县" + }, { + "code": "431322", + "name": "新化县" + }, { + "code": "431381", + "name": "冷水江市" + }, { + "code": "431382", + "name": "涟源市" + }] + }, { + "code": "4331", + "name": "湘西土家族苗族自治州", + "children": [{ + "code": "433101", + "name": "吉首市" + }, { + "code": "433122", + "name": "泸溪县" + }, { + "code": "433123", + "name": "凤凰县" + }, { + "code": "433124", + "name": "花垣县" + }, { + "code": "433125", + "name": "保靖县" + }, { + "code": "433126", + "name": "古丈县" + }, { + "code": "433127", + "name": "永顺县" + }, { + "code": "433130", + "name": "龙山县" + }] + }] +}, { + "code": "44", + "name": "广东省", + "children": [{ + "code": "4401", + "name": "广州市", + "children": [{ + "code": "440103", + "name": "荔湾区" + }, { + "code": "440104", + "name": "越秀区" + }, { + "code": "440105", + "name": "海珠区" + }, { + "code": "440106", + "name": "天河区" + }, { + "code": "440111", + "name": "白云区" + }, { + "code": "440112", + "name": "黄埔区" + }, { + "code": "440113", + "name": "番禺区" + }, { + "code": "440114", + "name": "花都区" + }, { + "code": "440115", + "name": "南沙区" + }, { + "code": "440117", + "name": "从化区" + }, { + "code": "440118", + "name": "增城区" + }] + }, { + "code": "4402", + "name": "韶关市", + "children": [{ + "code": "440203", + "name": "武江区" + }, { + "code": "440204", + "name": "浈江区" + }, { + "code": "440205", + "name": "曲江区" + }, { + "code": "440222", + "name": "始兴县" + }, { + "code": "440224", + "name": "仁化县" + }, { + "code": "440229", + "name": "翁源县" + }, { + "code": "440232", + "name": "乳源瑶族自治县" + }, { + "code": "440233", + "name": "新丰县" + }, { + "code": "440281", + "name": "乐昌市" + }, { + "code": "440282", + "name": "南雄市" + }] + }, { + "code": "4403", + "name": "深圳市", + "children": [{ + "code": "440303", + "name": "罗湖区" + }, { + "code": "440304", + "name": "福田区" + }, { + "code": "440305", + "name": "南山区" + }, { + "code": "440306", + "name": "宝安区" + }, { + "code": "440307", + "name": "龙岗区" + }, { + "code": "440308", + "name": "盐田区" + }, { + "code": "440309", + "name": "龙华区" + }, { + "code": "440310", + "name": "坪山区" + }, { + "code": "440311", + "name": "光明区" + }] + }, { + "code": "4404", + "name": "珠海市", + "children": [{ + "code": "440402", + "name": "香洲区" + }, { + "code": "440403", + "name": "斗门区" + }, { + "code": "440404", + "name": "金湾区" + }] + }, { + "code": "4405", + "name": "汕头市", + "children": [{ + "code": "440507", + "name": "龙湖区" + }, { + "code": "440511", + "name": "金平区" + }, { + "code": "440512", + "name": "濠江区" + }, { + "code": "440513", + "name": "潮阳区" + }, { + "code": "440514", + "name": "潮南区" + }, { + "code": "440515", + "name": "澄海区" + }, { + "code": "440523", + "name": "南澳县" + }] + }, { + "code": "4406", + "name": "佛山市", + "children": [{ + "code": "440604", + "name": "禅城区" + }, { + "code": "440605", + "name": "南海区" + }, { + "code": "440606", + "name": "顺德区" + }, { + "code": "440607", + "name": "三水区" + }, { + "code": "440608", + "name": "高明区" + }] + }, { + "code": "4407", + "name": "江门市", + "children": [{ + "code": "440703", + "name": "蓬江区" + }, { + "code": "440704", + "name": "江海区" + }, { + "code": "440705", + "name": "新会区" + }, { + "code": "440781", + "name": "台山市" + }, { + "code": "440783", + "name": "开平市" + }, { + "code": "440784", + "name": "鹤山市" + }, { + "code": "440785", + "name": "恩平市" + }] + }, { + "code": "4408", + "name": "湛江市", + "children": [{ + "code": "440802", + "name": "赤坎区" + }, { + "code": "440803", + "name": "霞山区" + }, { + "code": "440804", + "name": "坡头区" + }, { + "code": "440811", + "name": "麻章区" + }, { + "code": "440823", + "name": "遂溪县" + }, { + "code": "440825", + "name": "徐闻县" + }, { + "code": "440881", + "name": "廉江市" + }, { + "code": "440882", + "name": "雷州市" + }, { + "code": "440883", + "name": "吴川市" + }] + }, { + "code": "4409", + "name": "茂名市", + "children": [{ + "code": "440902", + "name": "茂南区" + }, { + "code": "440904", + "name": "电白区" + }, { + "code": "440981", + "name": "高州市" + }, { + "code": "440982", + "name": "化州市" + }, { + "code": "440983", + "name": "信宜市" + }] + }, { + "code": "4412", + "name": "肇庆市", + "children": [{ + "code": "441202", + "name": "端州区" + }, { + "code": "441203", + "name": "鼎湖区" + }, { + "code": "441204", + "name": "高要区" + }, { + "code": "441223", + "name": "广宁县" + }, { + "code": "441224", + "name": "怀集县" + }, { + "code": "441225", + "name": "封开县" + }, { + "code": "441226", + "name": "德庆县" + }, { + "code": "441284", + "name": "四会市" + }] + }, { + "code": "4413", + "name": "惠州市", + "children": [{ + "code": "441302", + "name": "惠城区" + }, { + "code": "441303", + "name": "惠阳区" + }, { + "code": "441322", + "name": "博罗县" + }, { + "code": "441323", + "name": "惠东县" + }, { + "code": "441324", + "name": "龙门县" + }] + }, { + "code": "4414", + "name": "梅州市", + "children": [{ + "code": "441402", + "name": "梅江区" + }, { + "code": "441403", + "name": "梅县区" + }, { + "code": "441422", + "name": "大埔县" + }, { + "code": "441423", + "name": "丰顺县" + }, { + "code": "441424", + "name": "五华县" + }, { + "code": "441426", + "name": "平远县" + }, { + "code": "441427", + "name": "蕉岭县" + }, { + "code": "441481", + "name": "兴宁市" + }] + }, { + "code": "4415", + "name": "汕尾市", + "children": [{ + "code": "441502", + "name": "城区" + }, { + "code": "441521", + "name": "海丰县" + }, { + "code": "441523", + "name": "陆河县" + }, { + "code": "441581", + "name": "陆丰市" + }] + }, { + "code": "4416", + "name": "河源市", + "children": [{ + "code": "441602", + "name": "源城区" + }, { + "code": "441621", + "name": "紫金县" + }, { + "code": "441622", + "name": "龙川县" + }, { + "code": "441623", + "name": "连平县" + }, { + "code": "441624", + "name": "和平县" + }, { + "code": "441625", + "name": "东源县" + }] + }, { + "code": "4417", + "name": "阳江市", + "children": [{ + "code": "441702", + "name": "江城区" + }, { + "code": "441704", + "name": "阳东区" + }, { + "code": "441721", + "name": "阳西县" + }, { + "code": "441781", + "name": "阳春市" + }] + }, { + "code": "4418", + "name": "清远市", + "children": [{ + "code": "441802", + "name": "清城区" + }, { + "code": "441803", + "name": "清新区" + }, { + "code": "441821", + "name": "佛冈县" + }, { + "code": "441823", + "name": "阳山县" + }, { + "code": "441825", + "name": "连山壮族瑶族自治县" + }, { + "code": "441826", + "name": "连南瑶族自治县" + }, { + "code": "441881", + "name": "英德市" + }, { + "code": "441882", + "name": "连州市" + }] + }, { + "code": "4419", + "name": "东莞市", + "children": [{ + "code": "441900003", + "name": "东城街道" + }, { + "code": "441900004", + "name": "南城街道" + }, { + "code": "441900005", + "name": "万江街道" + }, { + "code": "441900006", + "name": "莞城街道" + }, { + "code": "441900101", + "name": "石碣镇" + }, { + "code": "441900102", + "name": "石龙镇" + }, { + "code": "441900103", + "name": "茶山镇" + }, { + "code": "441900104", + "name": "石排镇" + }, { + "code": "441900105", + "name": "企石镇" + }, { + "code": "441900106", + "name": "横沥镇" + }, { + "code": "441900107", + "name": "桥头镇" + }, { + "code": "441900108", + "name": "谢岗镇" + }, { + "code": "441900109", + "name": "东坑镇" + }, { + "code": "441900110", + "name": "常平镇" + }, { + "code": "441900111", + "name": "寮步镇" + }, { + "code": "441900112", + "name": "樟木头镇" + }, { + "code": "441900113", + "name": "大朗镇" + }, { + "code": "441900114", + "name": "黄江镇" + }, { + "code": "441900115", + "name": "清溪镇" + }, { + "code": "441900116", + "name": "塘厦镇" + }, { + "code": "441900117", + "name": "凤岗镇" + }, { + "code": "441900118", + "name": "大岭山镇" + }, { + "code": "441900119", + "name": "长安镇" + }, { + "code": "441900121", + "name": "虎门镇" + }, { + "code": "441900122", + "name": "厚街镇" + }, { + "code": "441900123", + "name": "沙田镇" + }, { + "code": "441900124", + "name": "道滘镇" + }, { + "code": "441900125", + "name": "洪梅镇" + }, { + "code": "441900126", + "name": "麻涌镇" + }, { + "code": "441900127", + "name": "望牛墩镇" + }, { + "code": "441900128", + "name": "中堂镇" + }, { + "code": "441900129", + "name": "高埗镇" + }, { + "code": "441900401", + "name": "松山湖" + }, { + "code": "441900402", + "name": "东莞港" + }, { + "code": "441900403", + "name": "东莞生态园" + }, { + "code": "441900404", + "name": "东莞滨海湾新区" + }] + }, { + "code": "4420", + "name": "中山市", + "children": [{ + "code": "442000001", + "name": "石岐街道" + }, { + "code": "442000002", + "name": "东区街道" + }, { + "code": "442000003", + "name": "中山港街道" + }, { + "code": "442000004", + "name": "西区街道" + }, { + "code": "442000005", + "name": "南区街道" + }, { + "code": "442000006", + "name": "五桂山街道" + }, { + "code": "442000007", + "name": "民众街道" + }, { + "code": "442000008", + "name": "南朗街道" + }, { + "code": "442000101", + "name": "黄圃镇" + }, { + "code": "442000103", + "name": "东凤镇" + }, { + "code": "442000105", + "name": "古镇镇" + }, { + "code": "442000106", + "name": "沙溪镇" + }, { + "code": "442000107", + "name": "坦洲镇" + }, { + "code": "442000108", + "name": "港口镇" + }, { + "code": "442000109", + "name": "三角镇" + }, { + "code": "442000110", + "name": "横栏镇" + }, { + "code": "442000111", + "name": "南头镇" + }, { + "code": "442000112", + "name": "阜沙镇" + }, { + "code": "442000114", + "name": "三乡镇" + }, { + "code": "442000115", + "name": "板芙镇" + }, { + "code": "442000116", + "name": "大涌镇" + }, { + "code": "442000117", + "name": "神湾镇" + }, { + "code": "442000118", + "name": "小榄镇" + }] + }, { + "code": "4451", + "name": "潮州市", + "children": [{ + "code": "445102", + "name": "湘桥区" + }, { + "code": "445103", + "name": "潮安区" + }, { + "code": "445122", + "name": "饶平县" + }] + }, { + "code": "4452", + "name": "揭阳市", + "children": [{ + "code": "445202", + "name": "榕城区" + }, { + "code": "445203", + "name": "揭东区" + }, { + "code": "445222", + "name": "揭西县" + }, { + "code": "445224", + "name": "惠来县" + }, { + "code": "445281", + "name": "普宁市" + }] + }, { + "code": "4453", + "name": "云浮市", + "children": [{ + "code": "445302", + "name": "云城区" + }, { + "code": "445303", + "name": "云安区" + }, { + "code": "445321", + "name": "新兴县" + }, { + "code": "445322", + "name": "郁南县" + }, { + "code": "445381", + "name": "罗定市" + }] + }] +}, { + "code": "45", + "name": "广西壮族自治区", + "children": [{ + "code": "4501", + "name": "南宁市", + "children": [{ + "code": "450102", + "name": "兴宁区" + }, { + "code": "450103", + "name": "青秀区" + }, { + "code": "450105", + "name": "江南区" + }, { + "code": "450107", + "name": "西乡塘区" + }, { + "code": "450108", + "name": "良庆区" + }, { + "code": "450109", + "name": "邕宁区" + }, { + "code": "450110", + "name": "武鸣区" + }, { + "code": "450123", + "name": "隆安县" + }, { + "code": "450124", + "name": "马山县" + }, { + "code": "450125", + "name": "上林县" + }, { + "code": "450126", + "name": "宾阳县" + }, { + "code": "450181", + "name": "横州市" + }] + }, { + "code": "4502", + "name": "柳州市", + "children": [{ + "code": "450202", + "name": "城中区" + }, { + "code": "450203", + "name": "鱼峰区" + }, { + "code": "450204", + "name": "柳南区" + }, { + "code": "450205", + "name": "柳北区" + }, { + "code": "450206", + "name": "柳江区" + }, { + "code": "450222", + "name": "柳城县" + }, { + "code": "450223", + "name": "鹿寨县" + }, { + "code": "450224", + "name": "融安县" + }, { + "code": "450225", + "name": "融水苗族自治县" + }, { + "code": "450226", + "name": "三江侗族自治县" + }] + }, { + "code": "4503", + "name": "桂林市", + "children": [{ + "code": "450302", + "name": "秀峰区" + }, { + "code": "450303", + "name": "叠彩区" + }, { + "code": "450304", + "name": "象山区" + }, { + "code": "450305", + "name": "七星区" + }, { + "code": "450311", + "name": "雁山区" + }, { + "code": "450312", + "name": "临桂区" + }, { + "code": "450321", + "name": "阳朔县" + }, { + "code": "450323", + "name": "灵川县" + }, { + "code": "450324", + "name": "全州县" + }, { + "code": "450325", + "name": "兴安县" + }, { + "code": "450326", + "name": "永福县" + }, { + "code": "450327", + "name": "灌阳县" + }, { + "code": "450328", + "name": "龙胜各族自治县" + }, { + "code": "450329", + "name": "资源县" + }, { + "code": "450330", + "name": "平乐县" + }, { + "code": "450332", + "name": "恭城瑶族自治县" + }, { + "code": "450381", + "name": "荔浦市" + }] + }, { + "code": "4504", + "name": "梧州市", + "children": [{ + "code": "450403", + "name": "万秀区" + }, { + "code": "450405", + "name": "长洲区" + }, { + "code": "450406", + "name": "龙圩区" + }, { + "code": "450421", + "name": "苍梧县" + }, { + "code": "450422", + "name": "藤县" + }, { + "code": "450423", + "name": "蒙山县" + }, { + "code": "450481", + "name": "岑溪市" + }] + }, { + "code": "4505", + "name": "北海市", + "children": [{ + "code": "450502", + "name": "海城区" + }, { + "code": "450503", + "name": "银海区" + }, { + "code": "450512", + "name": "铁山港区" + }, { + "code": "450521", + "name": "合浦县" + }] + }, { + "code": "4506", + "name": "防城港市", + "children": [{ + "code": "450602", + "name": "港口区" + }, { + "code": "450603", + "name": "防城区" + }, { + "code": "450621", + "name": "上思县" + }, { + "code": "450681", + "name": "东兴市" + }] + }, { + "code": "4507", + "name": "钦州市", + "children": [{ + "code": "450702", + "name": "钦南区" + }, { + "code": "450703", + "name": "钦北区" + }, { + "code": "450721", + "name": "灵山县" + }, { + "code": "450722", + "name": "浦北县" + }] + }, { + "code": "4508", + "name": "贵港市", + "children": [{ + "code": "450802", + "name": "港北区" + }, { + "code": "450803", + "name": "港南区" + }, { + "code": "450804", + "name": "覃塘区" + }, { + "code": "450821", + "name": "平南县" + }, { + "code": "450881", + "name": "桂平市" + }] + }, { + "code": "4509", + "name": "玉林市", + "children": [{ + "code": "450902", + "name": "玉州区" + }, { + "code": "450903", + "name": "福绵区" + }, { + "code": "450921", + "name": "容县" + }, { + "code": "450922", + "name": "陆川县" + }, { + "code": "450923", + "name": "博白县" + }, { + "code": "450924", + "name": "兴业县" + }, { + "code": "450981", + "name": "北流市" + }] + }, { + "code": "4510", + "name": "百色市", + "children": [{ + "code": "451002", + "name": "右江区" + }, { + "code": "451003", + "name": "田阳区" + }, { + "code": "451022", + "name": "田东县" + }, { + "code": "451024", + "name": "德保县" + }, { + "code": "451026", + "name": "那坡县" + }, { + "code": "451027", + "name": "凌云县" + }, { + "code": "451028", + "name": "乐业县" + }, { + "code": "451029", + "name": "田林县" + }, { + "code": "451030", + "name": "西林县" + }, { + "code": "451031", + "name": "隆林各族自治县" + }, { + "code": "451081", + "name": "靖西市" + }, { + "code": "451082", + "name": "平果市" + }] + }, { + "code": "4511", + "name": "贺州市", + "children": [{ + "code": "451102", + "name": "八步区" + }, { + "code": "451103", + "name": "平桂区" + }, { + "code": "451121", + "name": "昭平县" + }, { + "code": "451122", + "name": "钟山县" + }, { + "code": "451123", + "name": "富川瑶族自治县" + }] + }, { + "code": "4512", + "name": "河池市", + "children": [{ + "code": "451202", + "name": "金城江区" + }, { + "code": "451203", + "name": "宜州区" + }, { + "code": "451221", + "name": "南丹县" + }, { + "code": "451222", + "name": "天峨县" + }, { + "code": "451223", + "name": "凤山县" + }, { + "code": "451224", + "name": "东兰县" + }, { + "code": "451225", + "name": "罗城仫佬族自治县" + }, { + "code": "451226", + "name": "环江毛南族自治县" + }, { + "code": "451227", + "name": "巴马瑶族自治县" + }, { + "code": "451228", + "name": "都安瑶族自治县" + }, { + "code": "451229", + "name": "大化瑶族自治县" + }] + }, { + "code": "4513", + "name": "来宾市", + "children": [{ + "code": "451302", + "name": "兴宾区" + }, { + "code": "451321", + "name": "忻城县" + }, { + "code": "451322", + "name": "象州县" + }, { + "code": "451323", + "name": "武宣县" + }, { + "code": "451324", + "name": "金秀瑶族自治县" + }, { + "code": "451381", + "name": "合山市" + }] + }, { + "code": "4514", + "name": "崇左市", + "children": [{ + "code": "451402", + "name": "江州区" + }, { + "code": "451421", + "name": "扶绥县" + }, { + "code": "451422", + "name": "宁明县" + }, { + "code": "451423", + "name": "龙州县" + }, { + "code": "451424", + "name": "大新县" + }, { + "code": "451425", + "name": "天等县" + }, { + "code": "451481", + "name": "凭祥市" + }] + }] +}, { + "code": "46", + "name": "海南省", + "children": [{ + "code": "4601", + "name": "海口市", + "children": [{ + "code": "460105", + "name": "秀英区" + }, { + "code": "460106", + "name": "龙华区" + }, { + "code": "460107", + "name": "琼山区" + }, { + "code": "460108", + "name": "美兰区" + }] + }, { + "code": "4602", + "name": "三亚市", + "children": [{ + "code": "460202", + "name": "海棠区" + }, { + "code": "460203", + "name": "吉阳区" + }, { + "code": "460204", + "name": "天涯区" + }, { + "code": "460205", + "name": "崖州区" + }] + }, { + "code": "4603", + "name": "三沙市", + "children": [{ + "code": "460321", + "name": "西沙群岛" + }, { + "code": "460322", + "name": "南沙群岛" + }, { + "code": "460323", + "name": "中沙群岛的岛礁及其海域" + }] + }, { + "code": "4604", + "name": "儋州市", + "children": [{ + "code": "460400100", + "name": "那大镇" + }, { + "code": "460400101", + "name": "和庆镇" + }, { + "code": "460400102", + "name": "南丰镇" + }, { + "code": "460400103", + "name": "大成镇" + }, { + "code": "460400104", + "name": "雅星镇" + }, { + "code": "460400105", + "name": "兰洋镇" + }, { + "code": "460400106", + "name": "光村镇" + }, { + "code": "460400107", + "name": "木棠镇" + }, { + "code": "460400108", + "name": "海头镇" + }, { + "code": "460400109", + "name": "峨蔓镇" + }, { + "code": "460400111", + "name": "王五镇" + }, { + "code": "460400112", + "name": "白马井镇" + }, { + "code": "460400113", + "name": "中和镇" + }, { + "code": "460400114", + "name": "排浦镇" + }, { + "code": "460400115", + "name": "东成镇" + }, { + "code": "460400116", + "name": "新州镇" + }, { + "code": "460400499", + "name": "洋浦经济开发区" + }, { + "code": "460400500", + "name": "华南热作学院" + }] + }, { + "code": "4690", + "name": "省直辖县级行政区划", + "children": [{ + "code": "469001", + "name": "五指山市" + }, { + "code": "469002", + "name": "琼海市" + }, { + "code": "469005", + "name": "文昌市" + }, { + "code": "469006", + "name": "万宁市" + }, { + "code": "469007", + "name": "东方市" + }, { + "code": "469021", + "name": "定安县" + }, { + "code": "469022", + "name": "屯昌县" + }, { + "code": "469023", + "name": "澄迈县" + }, { + "code": "469024", + "name": "临高县" + }, { + "code": "469025", + "name": "白沙黎族自治县" + }, { + "code": "469026", + "name": "昌江黎族自治县" + }, { + "code": "469027", + "name": "乐东黎族自治县" + }, { + "code": "469028", + "name": "陵水黎族自治县" + }, { + "code": "469029", + "name": "保亭黎族苗族自治县" + }, { + "code": "469030", + "name": "琼中黎族苗族自治县" + }] + }] +}, { + "code": "50", + "name": "重庆市", + "children": [{ + "code": "5001", + "name": "市辖区", + "children": [{ + "code": "500101", + "name": "万州区" + }, { + "code": "500102", + "name": "涪陵区" + }, { + "code": "500103", + "name": "渝中区" + }, { + "code": "500104", + "name": "大渡口区" + }, { + "code": "500105", + "name": "江北区" + }, { + "code": "500106", + "name": "沙坪坝区" + }, { + "code": "500107", + "name": "九龙坡区" + }, { + "code": "500108", + "name": "南岸区" + }, { + "code": "500109", + "name": "北碚区" + }, { + "code": "500110", + "name": "綦江区" + }, { + "code": "500111", + "name": "大足区" + }, { + "code": "500112", + "name": "渝北区" + }, { + "code": "500113", + "name": "巴南区" + }, { + "code": "500114", + "name": "黔江区" + }, { + "code": "500115", + "name": "长寿区" + }, { + "code": "500116", + "name": "江津区" + }, { + "code": "500117", + "name": "合川区" + }, { + "code": "500118", + "name": "永川区" + }, { + "code": "500119", + "name": "南川区" + }, { + "code": "500120", + "name": "璧山区" + }, { + "code": "500151", + "name": "铜梁区" + }, { + "code": "500152", + "name": "潼南区" + }, { + "code": "500153", + "name": "荣昌区" + }, { + "code": "500154", + "name": "开州区" + }, { + "code": "500155", + "name": "梁平区" + }, { + "code": "500156", + "name": "武隆区" + }] + }, { + "code": "5002", + "name": "县", + "children": [{ + "code": "500229", + "name": "城口县" + }, { + "code": "500230", + "name": "丰都县" + }, { + "code": "500231", + "name": "垫江县" + }, { + "code": "500233", + "name": "忠县" + }, { + "code": "500235", + "name": "云阳县" + }, { + "code": "500236", + "name": "奉节县" + }, { + "code": "500237", + "name": "巫山县" + }, { + "code": "500238", + "name": "巫溪县" + }, { + "code": "500240", + "name": "石柱土家族自治县" + }, { + "code": "500241", + "name": "秀山土家族苗族自治县" + }, { + "code": "500242", + "name": "酉阳土家族苗族自治县" + }, { + "code": "500243", + "name": "彭水苗族土家族自治县" + }] + }] +}, { + "code": "51", + "name": "四川省", + "children": [{ + "code": "5101", + "name": "成都市", + "children": [{ + "code": "510104", + "name": "锦江区" + }, { + "code": "510105", + "name": "青羊区" + }, { + "code": "510106", + "name": "金牛区" + }, { + "code": "510107", + "name": "武侯区" + }, { + "code": "510108", + "name": "成华区" + }, { + "code": "510112", + "name": "龙泉驿区" + }, { + "code": "510113", + "name": "青白江区" + }, { + "code": "510114", + "name": "新都区" + }, { + "code": "510115", + "name": "温江区" + }, { + "code": "510116", + "name": "双流区" + }, { + "code": "510117", + "name": "郫都区" + }, { + "code": "510118", + "name": "新津区" + }, { + "code": "510121", + "name": "金堂县" + }, { + "code": "510129", + "name": "大邑县" + }, { + "code": "510131", + "name": "蒲江县" + }, { + "code": "510181", + "name": "都江堰市" + }, { + "code": "510182", + "name": "彭州市" + }, { + "code": "510183", + "name": "邛崃市" + }, { + "code": "510184", + "name": "崇州市" + }, { + "code": "510185", + "name": "简阳市" + }] + }, { + "code": "5103", + "name": "自贡市", + "children": [{ + "code": "510302", + "name": "自流井区" + }, { + "code": "510303", + "name": "贡井区" + }, { + "code": "510304", + "name": "大安区" + }, { + "code": "510311", + "name": "沿滩区" + }, { + "code": "510321", + "name": "荣县" + }, { + "code": "510322", + "name": "富顺县" + }] + }, { + "code": "5104", + "name": "攀枝花市", + "children": [{ + "code": "510402", + "name": "东区" + }, { + "code": "510403", + "name": "西区" + }, { + "code": "510411", + "name": "仁和区" + }, { + "code": "510421", + "name": "米易县" + }, { + "code": "510422", + "name": "盐边县" + }] + }, { + "code": "5105", + "name": "泸州市", + "children": [{ + "code": "510502", + "name": "江阳区" + }, { + "code": "510503", + "name": "纳溪区" + }, { + "code": "510504", + "name": "龙马潭区" + }, { + "code": "510521", + "name": "泸县" + }, { + "code": "510522", + "name": "合江县" + }, { + "code": "510524", + "name": "叙永县" + }, { + "code": "510525", + "name": "古蔺县" + }] + }, { + "code": "5106", + "name": "德阳市", + "children": [{ + "code": "510603", + "name": "旌阳区" + }, { + "code": "510604", + "name": "罗江区" + }, { + "code": "510623", + "name": "中江县" + }, { + "code": "510681", + "name": "广汉市" + }, { + "code": "510682", + "name": "什邡市" + }, { + "code": "510683", + "name": "绵竹市" + }] + }, { + "code": "5107", + "name": "绵阳市", + "children": [{ + "code": "510703", + "name": "涪城区" + }, { + "code": "510704", + "name": "游仙区" + }, { + "code": "510705", + "name": "安州区" + }, { + "code": "510722", + "name": "三台县" + }, { + "code": "510723", + "name": "盐亭县" + }, { + "code": "510725", + "name": "梓潼县" + }, { + "code": "510726", + "name": "北川羌族自治县" + }, { + "code": "510727", + "name": "平武县" + }, { + "code": "510781", + "name": "江油市" + }] + }, { + "code": "5108", + "name": "广元市", + "children": [{ + "code": "510802", + "name": "利州区" + }, { + "code": "510811", + "name": "昭化区" + }, { + "code": "510812", + "name": "朝天区" + }, { + "code": "510821", + "name": "旺苍县" + }, { + "code": "510822", + "name": "青川县" + }, { + "code": "510823", + "name": "剑阁县" + }, { + "code": "510824", + "name": "苍溪县" + }] + }, { + "code": "5109", + "name": "遂宁市", + "children": [{ + "code": "510903", + "name": "船山区" + }, { + "code": "510904", + "name": "安居区" + }, { + "code": "510921", + "name": "蓬溪县" + }, { + "code": "510923", + "name": "大英县" + }, { + "code": "510981", + "name": "射洪市" + }] + }, { + "code": "5110", + "name": "内江市", + "children": [{ + "code": "511002", + "name": "市中区" + }, { + "code": "511011", + "name": "东兴区" + }, { + "code": "511024", + "name": "威远县" + }, { + "code": "511025", + "name": "资中县" + }, { + "code": "511083", + "name": "隆昌市" + }] + }, { + "code": "5111", + "name": "乐山市", + "children": [{ + "code": "511102", + "name": "市中区" + }, { + "code": "511111", + "name": "沙湾区" + }, { + "code": "511112", + "name": "五通桥区" + }, { + "code": "511113", + "name": "金口河区" + }, { + "code": "511123", + "name": "犍为县" + }, { + "code": "511124", + "name": "井研县" + }, { + "code": "511126", + "name": "夹江县" + }, { + "code": "511129", + "name": "沐川县" + }, { + "code": "511132", + "name": "峨边彝族自治县" + }, { + "code": "511133", + "name": "马边彝族自治县" + }, { + "code": "511181", + "name": "峨眉山市" + }] + }, { + "code": "5113", + "name": "南充市", + "children": [{ + "code": "511302", + "name": "顺庆区" + }, { + "code": "511303", + "name": "高坪区" + }, { + "code": "511304", + "name": "嘉陵区" + }, { + "code": "511321", + "name": "南部县" + }, { + "code": "511322", + "name": "营山县" + }, { + "code": "511323", + "name": "蓬安县" + }, { + "code": "511324", + "name": "仪陇县" + }, { + "code": "511325", + "name": "西充县" + }, { + "code": "511381", + "name": "阆中市" + }] + }, { + "code": "5114", + "name": "眉山市", + "children": [{ + "code": "511402", + "name": "东坡区" + }, { + "code": "511403", + "name": "彭山区" + }, { + "code": "511421", + "name": "仁寿县" + }, { + "code": "511423", + "name": "洪雅县" + }, { + "code": "511424", + "name": "丹棱县" + }, { + "code": "511425", + "name": "青神县" + }] + }, { + "code": "5115", + "name": "宜宾市", + "children": [{ + "code": "511502", + "name": "翠屏区" + }, { + "code": "511503", + "name": "南溪区" + }, { + "code": "511504", + "name": "叙州区" + }, { + "code": "511523", + "name": "江安县" + }, { + "code": "511524", + "name": "长宁县" + }, { + "code": "511525", + "name": "高县" + }, { + "code": "511526", + "name": "珙县" + }, { + "code": "511527", + "name": "筠连县" + }, { + "code": "511528", + "name": "兴文县" + }, { + "code": "511529", + "name": "屏山县" + }] + }, { + "code": "5116", + "name": "广安市", + "children": [{ + "code": "511602", + "name": "广安区" + }, { + "code": "511603", + "name": "前锋区" + }, { + "code": "511621", + "name": "岳池县" + }, { + "code": "511622", + "name": "武胜县" + }, { + "code": "511623", + "name": "邻水县" + }, { + "code": "511681", + "name": "华蓥市" + }] + }, { + "code": "5117", + "name": "达州市", + "children": [{ + "code": "511702", + "name": "通川区" + }, { + "code": "511703", + "name": "达川区" + }, { + "code": "511722", + "name": "宣汉县" + }, { + "code": "511723", + "name": "开江县" + }, { + "code": "511724", + "name": "大竹县" + }, { + "code": "511725", + "name": "渠县" + }, { + "code": "511781", + "name": "万源市" + }] + }, { + "code": "5118", + "name": "雅安市", + "children": [{ + "code": "511802", + "name": "雨城区" + }, { + "code": "511803", + "name": "名山区" + }, { + "code": "511822", + "name": "荥经县" + }, { + "code": "511823", + "name": "汉源县" + }, { + "code": "511824", + "name": "石棉县" + }, { + "code": "511825", + "name": "天全县" + }, { + "code": "511826", + "name": "芦山县" + }, { + "code": "511827", + "name": "宝兴县" + }] + }, { + "code": "5119", + "name": "巴中市", + "children": [{ + "code": "511902", + "name": "巴州区" + }, { + "code": "511903", + "name": "恩阳区" + }, { + "code": "511921", + "name": "通江县" + }, { + "code": "511922", + "name": "南江县" + }, { + "code": "511923", + "name": "平昌县" + }] + }, { + "code": "5120", + "name": "资阳市", + "children": [{ + "code": "512002", + "name": "雁江区" + }, { + "code": "512021", + "name": "安岳县" + }, { + "code": "512022", + "name": "乐至县" + }] + }, { + "code": "5132", + "name": "阿坝藏族羌族自治州", + "children": [{ + "code": "513201", + "name": "马尔康市" + }, { + "code": "513221", + "name": "汶川县" + }, { + "code": "513222", + "name": "理县" + }, { + "code": "513223", + "name": "茂县" + }, { + "code": "513224", + "name": "松潘县" + }, { + "code": "513225", + "name": "九寨沟县" + }, { + "code": "513226", + "name": "金川县" + }, { + "code": "513227", + "name": "小金县" + }, { + "code": "513228", + "name": "黑水县" + }, { + "code": "513230", + "name": "壤塘县" + }, { + "code": "513231", + "name": "阿坝县" + }, { + "code": "513232", + "name": "若尔盖县" + }, { + "code": "513233", + "name": "红原县" + }] + }, { + "code": "5133", + "name": "甘孜藏族自治州", + "children": [{ + "code": "513301", + "name": "康定市" + }, { + "code": "513322", + "name": "泸定县" + }, { + "code": "513323", + "name": "丹巴县" + }, { + "code": "513324", + "name": "九龙县" + }, { + "code": "513325", + "name": "雅江县" + }, { + "code": "513326", + "name": "道孚县" + }, { + "code": "513327", + "name": "炉霍县" + }, { + "code": "513328", + "name": "甘孜县" + }, { + "code": "513329", + "name": "新龙县" + }, { + "code": "513330", + "name": "德格县" + }, { + "code": "513331", + "name": "白玉县" + }, { + "code": "513332", + "name": "石渠县" + }, { + "code": "513333", + "name": "色达县" + }, { + "code": "513334", + "name": "理塘县" + }, { + "code": "513335", + "name": "巴塘县" + }, { + "code": "513336", + "name": "乡城县" + }, { + "code": "513337", + "name": "稻城县" + }, { + "code": "513338", + "name": "得荣县" + }] + }, { + "code": "5134", + "name": "凉山彝族自治州", + "children": [{ + "code": "513401", + "name": "西昌市" + }, { + "code": "513402", + "name": "会理市" + }, { + "code": "513422", + "name": "木里藏族自治县" + }, { + "code": "513423", + "name": "盐源县" + }, { + "code": "513424", + "name": "德昌县" + }, { + "code": "513426", + "name": "会东县" + }, { + "code": "513427", + "name": "宁南县" + }, { + "code": "513428", + "name": "普格县" + }, { + "code": "513429", + "name": "布拖县" + }, { + "code": "513430", + "name": "金阳县" + }, { + "code": "513431", + "name": "昭觉县" + }, { + "code": "513432", + "name": "喜德县" + }, { + "code": "513433", + "name": "冕宁县" + }, { + "code": "513434", + "name": "越西县" + }, { + "code": "513435", + "name": "甘洛县" + }, { + "code": "513436", + "name": "美姑县" + }, { + "code": "513437", + "name": "雷波县" + }] + }] +}, { + "code": "52", + "name": "贵州省", + "children": [{ + "code": "5201", + "name": "贵阳市", + "children": [{ + "code": "520102", + "name": "南明区" + }, { + "code": "520103", + "name": "云岩区" + }, { + "code": "520111", + "name": "花溪区" + }, { + "code": "520112", + "name": "乌当区" + }, { + "code": "520113", + "name": "白云区" + }, { + "code": "520115", + "name": "观山湖区" + }, { + "code": "520121", + "name": "开阳县" + }, { + "code": "520122", + "name": "息烽县" + }, { + "code": "520123", + "name": "修文县" + }, { + "code": "520181", + "name": "清镇市" + }] + }, { + "code": "5202", + "name": "六盘水市", + "children": [{ + "code": "520201", + "name": "钟山区" + }, { + "code": "520203", + "name": "六枝特区" + }, { + "code": "520204", + "name": "水城区" + }, { + "code": "520281", + "name": "盘州市" + }] + }, { + "code": "5203", + "name": "遵义市", + "children": [{ + "code": "520302", + "name": "红花岗区" + }, { + "code": "520303", + "name": "汇川区" + }, { + "code": "520304", + "name": "播州区" + }, { + "code": "520322", + "name": "桐梓县" + }, { + "code": "520323", + "name": "绥阳县" + }, { + "code": "520324", + "name": "正安县" + }, { + "code": "520325", + "name": "道真仡佬族苗族自治县" + }, { + "code": "520326", + "name": "务川仡佬族苗族自治县" + }, { + "code": "520327", + "name": "凤冈县" + }, { + "code": "520328", + "name": "湄潭县" + }, { + "code": "520329", + "name": "余庆县" + }, { + "code": "520330", + "name": "习水县" + }, { + "code": "520381", + "name": "赤水市" + }, { + "code": "520382", + "name": "仁怀市" + }] + }, { + "code": "5204", + "name": "安顺市", + "children": [{ + "code": "520402", + "name": "西秀区" + }, { + "code": "520403", + "name": "平坝区" + }, { + "code": "520422", + "name": "普定县" + }, { + "code": "520423", + "name": "镇宁布依族苗族自治县" + }, { + "code": "520424", + "name": "关岭布依族苗族自治县" + }, { + "code": "520425", + "name": "紫云苗族布依族自治县" + }] + }, { + "code": "5205", + "name": "毕节市", + "children": [{ + "code": "520502", + "name": "七星关区" + }, { + "code": "520521", + "name": "大方县" + }, { + "code": "520523", + "name": "金沙县" + }, { + "code": "520524", + "name": "织金县" + }, { + "code": "520525", + "name": "纳雍县" + }, { + "code": "520526", + "name": "威宁彝族回族苗族自治县" + }, { + "code": "520527", + "name": "赫章县" + }, { + "code": "520581", + "name": "黔西市" + }] + }, { + "code": "5206", + "name": "铜仁市", + "children": [{ + "code": "520602", + "name": "碧江区" + }, { + "code": "520603", + "name": "万山区" + }, { + "code": "520621", + "name": "江口县" + }, { + "code": "520622", + "name": "玉屏侗族自治县" + }, { + "code": "520623", + "name": "石阡县" + }, { + "code": "520624", + "name": "思南县" + }, { + "code": "520625", + "name": "印江土家族苗族自治县" + }, { + "code": "520626", + "name": "德江县" + }, { + "code": "520627", + "name": "沿河土家族自治县" + }, { + "code": "520628", + "name": "松桃苗族自治县" + }] + }, { + "code": "5223", + "name": "黔西南布依族苗族自治州", + "children": [{ + "code": "522301", + "name": "兴义市" + }, { + "code": "522302", + "name": "兴仁市" + }, { + "code": "522323", + "name": "普安县" + }, { + "code": "522324", + "name": "晴隆县" + }, { + "code": "522325", + "name": "贞丰县" + }, { + "code": "522326", + "name": "望谟县" + }, { + "code": "522327", + "name": "册亨县" + }, { + "code": "522328", + "name": "安龙县" + }] + }, { + "code": "5226", + "name": "黔东南苗族侗族自治州", + "children": [{ + "code": "522601", + "name": "凯里市" + }, { + "code": "522622", + "name": "黄平县" + }, { + "code": "522623", + "name": "施秉县" + }, { + "code": "522624", + "name": "三穗县" + }, { + "code": "522625", + "name": "镇远县" + }, { + "code": "522626", + "name": "岑巩县" + }, { + "code": "522627", + "name": "天柱县" + }, { + "code": "522628", + "name": "锦屏县" + }, { + "code": "522629", + "name": "剑河县" + }, { + "code": "522630", + "name": "台江县" + }, { + "code": "522631", + "name": "黎平县" + }, { + "code": "522632", + "name": "榕江县" + }, { + "code": "522633", + "name": "从江县" + }, { + "code": "522634", + "name": "雷山县" + }, { + "code": "522635", + "name": "麻江县" + }, { + "code": "522636", + "name": "丹寨县" + }] + }, { + "code": "5227", + "name": "黔南布依族苗族自治州", + "children": [{ + "code": "522701", + "name": "都匀市" + }, { + "code": "522702", + "name": "福泉市" + }, { + "code": "522722", + "name": "荔波县" + }, { + "code": "522723", + "name": "贵定县" + }, { + "code": "522725", + "name": "瓮安县" + }, { + "code": "522726", + "name": "独山县" + }, { + "code": "522727", + "name": "平塘县" + }, { + "code": "522728", + "name": "罗甸县" + }, { + "code": "522729", + "name": "长顺县" + }, { + "code": "522730", + "name": "龙里县" + }, { + "code": "522731", + "name": "惠水县" + }, { + "code": "522732", + "name": "三都水族自治县" + }] + }] +}, { + "code": "53", + "name": "云南省", + "children": [{ + "code": "5301", + "name": "昆明市", + "children": [{ + "code": "530102", + "name": "五华区" + }, { + "code": "530103", + "name": "盘龙区" + }, { + "code": "530111", + "name": "官渡区" + }, { + "code": "530112", + "name": "西山区" + }, { + "code": "530113", + "name": "东川区" + }, { + "code": "530114", + "name": "呈贡区" + }, { + "code": "530115", + "name": "晋宁区" + }, { + "code": "530124", + "name": "富民县" + }, { + "code": "530125", + "name": "宜良县" + }, { + "code": "530126", + "name": "石林彝族自治县" + }, { + "code": "530127", + "name": "嵩明县" + }, { + "code": "530128", + "name": "禄劝彝族苗族自治县" + }, { + "code": "530129", + "name": "寻甸回族彝族自治县" + }, { + "code": "530181", + "name": "安宁市" + }] + }, { + "code": "5303", + "name": "曲靖市", + "children": [{ + "code": "530302", + "name": "麒麟区" + }, { + "code": "530303", + "name": "沾益区" + }, { + "code": "530304", + "name": "马龙区" + }, { + "code": "530322", + "name": "陆良县" + }, { + "code": "530323", + "name": "师宗县" + }, { + "code": "530324", + "name": "罗平县" + }, { + "code": "530325", + "name": "富源县" + }, { + "code": "530326", + "name": "会泽县" + }, { + "code": "530381", + "name": "宣威市" + }] + }, { + "code": "5304", + "name": "玉溪市", + "children": [{ + "code": "530402", + "name": "红塔区" + }, { + "code": "530403", + "name": "江川区" + }, { + "code": "530423", + "name": "通海县" + }, { + "code": "530424", + "name": "华宁县" + }, { + "code": "530425", + "name": "易门县" + }, { + "code": "530426", + "name": "峨山彝族自治县" + }, { + "code": "530427", + "name": "新平彝族傣族自治县" + }, { + "code": "530428", + "name": "元江哈尼族彝族傣族自治县" + }, { + "code": "530481", + "name": "澄江市" + }] + }, { + "code": "5305", + "name": "保山市", + "children": [{ + "code": "530502", + "name": "隆阳区" + }, { + "code": "530521", + "name": "施甸县" + }, { + "code": "530523", + "name": "龙陵县" + }, { + "code": "530524", + "name": "昌宁县" + }, { + "code": "530581", + "name": "腾冲市" + }] + }, { + "code": "5306", + "name": "昭通市", + "children": [{ + "code": "530602", + "name": "昭阳区" + }, { + "code": "530621", + "name": "鲁甸县" + }, { + "code": "530622", + "name": "巧家县" + }, { + "code": "530623", + "name": "盐津县" + }, { + "code": "530624", + "name": "大关县" + }, { + "code": "530625", + "name": "永善县" + }, { + "code": "530626", + "name": "绥江县" + }, { + "code": "530627", + "name": "镇雄县" + }, { + "code": "530628", + "name": "彝良县" + }, { + "code": "530629", + "name": "威信县" + }, { + "code": "530681", + "name": "水富市" + }] + }, { + "code": "5307", + "name": "丽江市", + "children": [{ + "code": "530702", + "name": "古城区" + }, { + "code": "530721", + "name": "玉龙纳西族自治县" + }, { + "code": "530722", + "name": "永胜县" + }, { + "code": "530723", + "name": "华坪县" + }, { + "code": "530724", + "name": "宁蒗彝族自治县" + }] + }, { + "code": "5308", + "name": "普洱市", + "children": [{ + "code": "530802", + "name": "思茅区" + }, { + "code": "530821", + "name": "宁洱哈尼族彝族自治县" + }, { + "code": "530822", + "name": "墨江哈尼族自治县" + }, { + "code": "530823", + "name": "景东彝族自治县" + }, { + "code": "530824", + "name": "景谷傣族彝族自治县" + }, { + "code": "530825", + "name": "镇沅彝族哈尼族拉祜族自治县" + }, { + "code": "530826", + "name": "江城哈尼族彝族自治县" + }, { + "code": "530827", + "name": "孟连傣族拉祜族佤族自治县" + }, { + "code": "530828", + "name": "澜沧拉祜族自治县" + }, { + "code": "530829", + "name": "西盟佤族自治县" + }] + }, { + "code": "5309", + "name": "临沧市", + "children": [{ + "code": "530902", + "name": "临翔区" + }, { + "code": "530921", + "name": "凤庆县" + }, { + "code": "530922", + "name": "云县" + }, { + "code": "530923", + "name": "永德县" + }, { + "code": "530924", + "name": "镇康县" + }, { + "code": "530925", + "name": "双江拉祜族佤族布朗族傣族自治县" + }, { + "code": "530926", + "name": "耿马傣族佤族自治县" + }, { + "code": "530927", + "name": "沧源佤族自治县" + }] + }, { + "code": "5323", + "name": "楚雄彝族自治州", + "children": [{ + "code": "532301", + "name": "楚雄市" + }, { + "code": "532302", + "name": "禄丰市" + }, { + "code": "532322", + "name": "双柏县" + }, { + "code": "532323", + "name": "牟定县" + }, { + "code": "532324", + "name": "南华县" + }, { + "code": "532325", + "name": "姚安县" + }, { + "code": "532326", + "name": "大姚县" + }, { + "code": "532327", + "name": "永仁县" + }, { + "code": "532328", + "name": "元谋县" + }, { + "code": "532329", + "name": "武定县" + }] + }, { + "code": "5325", + "name": "红河哈尼族彝族自治州", + "children": [{ + "code": "532501", + "name": "个旧市" + }, { + "code": "532502", + "name": "开远市" + }, { + "code": "532503", + "name": "蒙自市" + }, { + "code": "532504", + "name": "弥勒市" + }, { + "code": "532523", + "name": "屏边苗族自治县" + }, { + "code": "532524", + "name": "建水县" + }, { + "code": "532525", + "name": "石屏县" + }, { + "code": "532527", + "name": "泸西县" + }, { + "code": "532528", + "name": "元阳县" + }, { + "code": "532529", + "name": "红河县" + }, { + "code": "532530", + "name": "金平苗族瑶族傣族自治县" + }, { + "code": "532531", + "name": "绿春县" + }, { + "code": "532532", + "name": "河口瑶族自治县" + }] + }, { + "code": "5326", + "name": "文山壮族苗族自治州", + "children": [{ + "code": "532601", + "name": "文山市" + }, { + "code": "532622", + "name": "砚山县" + }, { + "code": "532623", + "name": "西畴县" + }, { + "code": "532624", + "name": "麻栗坡县" + }, { + "code": "532625", + "name": "马关县" + }, { + "code": "532626", + "name": "丘北县" + }, { + "code": "532627", + "name": "广南县" + }, { + "code": "532628", + "name": "富宁县" + }] + }, { + "code": "5328", + "name": "西双版纳傣族自治州", + "children": [{ + "code": "532801", + "name": "景洪市" + }, { + "code": "532822", + "name": "勐海县" + }, { + "code": "532823", + "name": "勐腊县" + }] + }, { + "code": "5329", + "name": "大理白族自治州", + "children": [{ + "code": "532901", + "name": "大理市" + }, { + "code": "532922", + "name": "漾濞彝族自治县" + }, { + "code": "532923", + "name": "祥云县" + }, { + "code": "532924", + "name": "宾川县" + }, { + "code": "532925", + "name": "弥渡县" + }, { + "code": "532926", + "name": "南涧彝族自治县" + }, { + "code": "532927", + "name": "巍山彝族回族自治县" + }, { + "code": "532928", + "name": "永平县" + }, { + "code": "532929", + "name": "云龙县" + }, { + "code": "532930", + "name": "洱源县" + }, { + "code": "532931", + "name": "剑川县" + }, { + "code": "532932", + "name": "鹤庆县" + }] + }, { + "code": "5331", + "name": "德宏傣族景颇族自治州", + "children": [{ + "code": "533102", + "name": "瑞丽市" + }, { + "code": "533103", + "name": "芒市" + }, { + "code": "533122", + "name": "梁河县" + }, { + "code": "533123", + "name": "盈江县" + }, { + "code": "533124", + "name": "陇川县" + }] + }, { + "code": "5333", + "name": "怒江傈僳族自治州", + "children": [{ + "code": "533301", + "name": "泸水市" + }, { + "code": "533323", + "name": "福贡县" + }, { + "code": "533324", + "name": "贡山独龙族怒族自治县" + }, { + "code": "533325", + "name": "兰坪白族普米族自治县" + }] + }, { + "code": "5334", + "name": "迪庆藏族自治州", + "children": [{ + "code": "533401", + "name": "香格里拉市" + }, { + "code": "533422", + "name": "德钦县" + }, { + "code": "533423", + "name": "维西傈僳族自治县" + }] + }] +}, { + "code": "54", + "name": "西藏自治区", + "children": [{ + "code": "5401", + "name": "拉萨市", + "children": [{ + "code": "540102", + "name": "城关区" + }, { + "code": "540103", + "name": "堆龙德庆区" + }, { + "code": "540104", + "name": "达孜区" + }, { + "code": "540121", + "name": "林周县" + }, { + "code": "540122", + "name": "当雄县" + }, { + "code": "540123", + "name": "尼木县" + }, { + "code": "540124", + "name": "曲水县" + }, { + "code": "540127", + "name": "墨竹工卡县" + }, { + "code": "540171", + "name": "格尔木藏青工业园区" + }, { + "code": "540172", + "name": "拉萨经济技术开发区" + }, { + "code": "540173", + "name": "西藏文化旅游创意园区" + }, { + "code": "540174", + "name": "达孜工业园区" + }] + }, { + "code": "5402", + "name": "日喀则市", + "children": [{ + "code": "540202", + "name": "桑珠孜区" + }, { + "code": "540221", + "name": "南木林县" + }, { + "code": "540222", + "name": "江孜县" + }, { + "code": "540223", + "name": "定日县" + }, { + "code": "540224", + "name": "萨迦县" + }, { + "code": "540225", + "name": "拉孜县" + }, { + "code": "540226", + "name": "昂仁县" + }, { + "code": "540227", + "name": "谢通门县" + }, { + "code": "540228", + "name": "白朗县" + }, { + "code": "540229", + "name": "仁布县" + }, { + "code": "540230", + "name": "康马县" + }, { + "code": "540231", + "name": "定结县" + }, { + "code": "540232", + "name": "仲巴县" + }, { + "code": "540233", + "name": "亚东县" + }, { + "code": "540234", + "name": "吉隆县" + }, { + "code": "540235", + "name": "聂拉木县" + }, { + "code": "540236", + "name": "萨嘎县" + }, { + "code": "540237", + "name": "岗巴县" + }] + }, { + "code": "5403", + "name": "昌都市", + "children": [{ + "code": "540302", + "name": "卡若区" + }, { + "code": "540321", + "name": "江达县" + }, { + "code": "540322", + "name": "贡觉县" + }, { + "code": "540323", + "name": "类乌齐县" + }, { + "code": "540324", + "name": "丁青县" + }, { + "code": "540325", + "name": "察雅县" + }, { + "code": "540326", + "name": "八宿县" + }, { + "code": "540327", + "name": "左贡县" + }, { + "code": "540328", + "name": "芒康县" + }, { + "code": "540329", + "name": "洛隆县" + }, { + "code": "540330", + "name": "边坝县" + }] + }, { + "code": "5404", + "name": "林芝市", + "children": [{ + "code": "540402", + "name": "巴宜区" + }, { + "code": "540421", + "name": "工布江达县" + }, { + "code": "540423", + "name": "墨脱县" + }, { + "code": "540424", + "name": "波密县" + }, { + "code": "540425", + "name": "察隅县" + }, { + "code": "540426", + "name": "朗县" + }, { + "code": "540481", + "name": "米林市" + }] + }, { + "code": "5405", + "name": "山南市", + "children": [{ + "code": "540502", + "name": "乃东区" + }, { + "code": "540521", + "name": "扎囊县" + }, { + "code": "540522", + "name": "贡嘎县" + }, { + "code": "540523", + "name": "桑日县" + }, { + "code": "540524", + "name": "琼结县" + }, { + "code": "540525", + "name": "曲松县" + }, { + "code": "540526", + "name": "措美县" + }, { + "code": "540527", + "name": "洛扎县" + }, { + "code": "540528", + "name": "加查县" + }, { + "code": "540529", + "name": "隆子县" + }, { + "code": "540531", + "name": "浪卡子县" + }, { + "code": "540581", + "name": "错那市" + }] + }, { + "code": "5406", + "name": "那曲市", + "children": [{ + "code": "540602", + "name": "色尼区" + }, { + "code": "540621", + "name": "嘉黎县" + }, { + "code": "540622", + "name": "比如县" + }, { + "code": "540623", + "name": "聂荣县" + }, { + "code": "540624", + "name": "安多县" + }, { + "code": "540625", + "name": "申扎县" + }, { + "code": "540626", + "name": "索县" + }, { + "code": "540627", + "name": "班戈县" + }, { + "code": "540628", + "name": "巴青县" + }, { + "code": "540629", + "name": "尼玛县" + }, { + "code": "540630", + "name": "双湖县" + }] + }, { + "code": "5425", + "name": "阿里地区", + "children": [{ + "code": "542521", + "name": "普兰县" + }, { + "code": "542522", + "name": "札达县" + }, { + "code": "542523", + "name": "噶尔县" + }, { + "code": "542524", + "name": "日土县" + }, { + "code": "542525", + "name": "革吉县" + }, { + "code": "542526", + "name": "改则县" + }, { + "code": "542527", + "name": "措勤县" + }] + }] +}, { + "code": "61", + "name": "陕西省", + "children": [{ + "code": "6101", + "name": "西安市", + "children": [{ + "code": "610102", + "name": "新城区" + }, { + "code": "610103", + "name": "碑林区" + }, { + "code": "610104", + "name": "莲湖区" + }, { + "code": "610111", + "name": "灞桥区" + }, { + "code": "610112", + "name": "未央区" + }, { + "code": "610113", + "name": "雁塔区" + }, { + "code": "610114", + "name": "阎良区" + }, { + "code": "610115", + "name": "临潼区" + }, { + "code": "610116", + "name": "长安区" + }, { + "code": "610117", + "name": "高陵区" + }, { + "code": "610118", + "name": "鄠邑区" + }, { + "code": "610122", + "name": "蓝田县" + }, { + "code": "610124", + "name": "周至县" + }] + }, { + "code": "6102", + "name": "铜川市", + "children": [{ + "code": "610202", + "name": "王益区" + }, { + "code": "610203", + "name": "印台区" + }, { + "code": "610204", + "name": "耀州区" + }, { + "code": "610222", + "name": "宜君县" + }] + }, { + "code": "6103", + "name": "宝鸡市", + "children": [{ + "code": "610302", + "name": "渭滨区" + }, { + "code": "610303", + "name": "金台区" + }, { + "code": "610304", + "name": "陈仓区" + }, { + "code": "610305", + "name": "凤翔区" + }, { + "code": "610323", + "name": "岐山县" + }, { + "code": "610324", + "name": "扶风县" + }, { + "code": "610326", + "name": "眉县" + }, { + "code": "610327", + "name": "陇县" + }, { + "code": "610328", + "name": "千阳县" + }, { + "code": "610329", + "name": "麟游县" + }, { + "code": "610330", + "name": "凤县" + }, { + "code": "610331", + "name": "太白县" + }] + }, { + "code": "6104", + "name": "咸阳市", + "children": [{ + "code": "610402", + "name": "秦都区" + }, { + "code": "610403", + "name": "杨陵区" + }, { + "code": "610404", + "name": "渭城区" + }, { + "code": "610422", + "name": "三原县" + }, { + "code": "610423", + "name": "泾阳县" + }, { + "code": "610424", + "name": "乾县" + }, { + "code": "610425", + "name": "礼泉县" + }, { + "code": "610426", + "name": "永寿县" + }, { + "code": "610428", + "name": "长武县" + }, { + "code": "610429", + "name": "旬邑县" + }, { + "code": "610430", + "name": "淳化县" + }, { + "code": "610431", + "name": "武功县" + }, { + "code": "610481", + "name": "兴平市" + }, { + "code": "610482", + "name": "彬州市" + }] + }, { + "code": "6105", + "name": "渭南市", + "children": [{ + "code": "610502", + "name": "临渭区" + }, { + "code": "610503", + "name": "华州区" + }, { + "code": "610522", + "name": "潼关县" + }, { + "code": "610523", + "name": "大荔县" + }, { + "code": "610524", + "name": "合阳县" + }, { + "code": "610525", + "name": "澄城县" + }, { + "code": "610526", + "name": "蒲城县" + }, { + "code": "610527", + "name": "白水县" + }, { + "code": "610528", + "name": "富平县" + }, { + "code": "610581", + "name": "韩城市" + }, { + "code": "610582", + "name": "华阴市" + }] + }, { + "code": "6106", + "name": "延安市", + "children": [{ + "code": "610602", + "name": "宝塔区" + }, { + "code": "610603", + "name": "安塞区" + }, { + "code": "610621", + "name": "延长县" + }, { + "code": "610622", + "name": "延川县" + }, { + "code": "610625", + "name": "志丹县" + }, { + "code": "610626", + "name": "吴起县" + }, { + "code": "610627", + "name": "甘泉县" + }, { + "code": "610628", + "name": "富县" + }, { + "code": "610629", + "name": "洛川县" + }, { + "code": "610630", + "name": "宜川县" + }, { + "code": "610631", + "name": "黄龙县" + }, { + "code": "610632", + "name": "黄陵县" + }, { + "code": "610681", + "name": "子长市" + }] + }, { + "code": "6107", + "name": "汉中市", + "children": [{ + "code": "610702", + "name": "汉台区" + }, { + "code": "610703", + "name": "南郑区" + }, { + "code": "610722", + "name": "城固县" + }, { + "code": "610723", + "name": "洋县" + }, { + "code": "610724", + "name": "西乡县" + }, { + "code": "610725", + "name": "勉县" + }, { + "code": "610726", + "name": "宁强县" + }, { + "code": "610727", + "name": "略阳县" + }, { + "code": "610728", + "name": "镇巴县" + }, { + "code": "610729", + "name": "留坝县" + }, { + "code": "610730", + "name": "佛坪县" + }] + }, { + "code": "6108", + "name": "榆林市", + "children": [{ + "code": "610802", + "name": "榆阳区" + }, { + "code": "610803", + "name": "横山区" + }, { + "code": "610822", + "name": "府谷县" + }, { + "code": "610824", + "name": "靖边县" + }, { + "code": "610825", + "name": "定边县" + }, { + "code": "610826", + "name": "绥德县" + }, { + "code": "610827", + "name": "米脂县" + }, { + "code": "610828", + "name": "佳县" + }, { + "code": "610829", + "name": "吴堡县" + }, { + "code": "610830", + "name": "清涧县" + }, { + "code": "610831", + "name": "子洲县" + }, { + "code": "610881", + "name": "神木市" + }] + }, { + "code": "6109", + "name": "安康市", + "children": [{ + "code": "610902", + "name": "汉滨区" + }, { + "code": "610921", + "name": "汉阴县" + }, { + "code": "610922", + "name": "石泉县" + }, { + "code": "610923", + "name": "宁陕县" + }, { + "code": "610924", + "name": "紫阳县" + }, { + "code": "610925", + "name": "岚皋县" + }, { + "code": "610926", + "name": "平利县" + }, { + "code": "610927", + "name": "镇坪县" + }, { + "code": "610929", + "name": "白河县" + }, { + "code": "610981", + "name": "旬阳市" + }] + }, { + "code": "6110", + "name": "商洛市", + "children": [{ + "code": "611002", + "name": "商州区" + }, { + "code": "611021", + "name": "洛南县" + }, { + "code": "611022", + "name": "丹凤县" + }, { + "code": "611023", + "name": "商南县" + }, { + "code": "611024", + "name": "山阳县" + }, { + "code": "611025", + "name": "镇安县" + }, { + "code": "611026", + "name": "柞水县" + }] + }] +}, { + "code": "62", + "name": "甘肃省", + "children": [{ + "code": "6201", + "name": "兰州市", + "children": [{ + "code": "620102", + "name": "城关区" + }, { + "code": "620103", + "name": "七里河区" + }, { + "code": "620104", + "name": "西固区" + }, { + "code": "620105", + "name": "安宁区" + }, { + "code": "620111", + "name": "红古区" + }, { + "code": "620121", + "name": "永登县" + }, { + "code": "620122", + "name": "皋兰县" + }, { + "code": "620123", + "name": "榆中县" + }, { + "code": "620171", + "name": "兰州新区" + }] + }, { + "code": "6202", + "name": "嘉峪关市", + "children": [{ + "code": "620201001", + "name": "雄关街道" + }, { + "code": "620201002", + "name": "钢城街道" + }, { + "code": "620201100", + "name": "新城镇" + }, { + "code": "620201101", + "name": "峪泉镇" + }, { + "code": "620201102", + "name": "文殊镇" + }] + }, { + "code": "6203", + "name": "金昌市", + "children": [{ + "code": "620302", + "name": "金川区" + }, { + "code": "620321", + "name": "永昌县" + }] + }, { + "code": "6204", + "name": "白银市", + "children": [{ + "code": "620402", + "name": "白银区" + }, { + "code": "620403", + "name": "平川区" + }, { + "code": "620421", + "name": "靖远县" + }, { + "code": "620422", + "name": "会宁县" + }, { + "code": "620423", + "name": "景泰县" + }] + }, { + "code": "6205", + "name": "天水市", + "children": [{ + "code": "620502", + "name": "秦州区" + }, { + "code": "620503", + "name": "麦积区" + }, { + "code": "620521", + "name": "清水县" + }, { + "code": "620522", + "name": "秦安县" + }, { + "code": "620523", + "name": "甘谷县" + }, { + "code": "620524", + "name": "武山县" + }, { + "code": "620525", + "name": "张家川回族自治县" + }] + }, { + "code": "6206", + "name": "武威市", + "children": [{ + "code": "620602", + "name": "凉州区" + }, { + "code": "620621", + "name": "民勤县" + }, { + "code": "620622", + "name": "古浪县" + }, { + "code": "620623", + "name": "天祝藏族自治县" + }] + }, { + "code": "6207", + "name": "张掖市", + "children": [{ + "code": "620702", + "name": "甘州区" + }, { + "code": "620721", + "name": "肃南裕固族自治县" + }, { + "code": "620722", + "name": "民乐县" + }, { + "code": "620723", + "name": "临泽县" + }, { + "code": "620724", + "name": "高台县" + }, { + "code": "620725", + "name": "山丹县" + }] + }, { + "code": "6208", + "name": "平凉市", + "children": [{ + "code": "620802", + "name": "崆峒区" + }, { + "code": "620821", + "name": "泾川县" + }, { + "code": "620822", + "name": "灵台县" + }, { + "code": "620823", + "name": "崇信县" + }, { + "code": "620825", + "name": "庄浪县" + }, { + "code": "620826", + "name": "静宁县" + }, { + "code": "620881", + "name": "华亭市" + }] + }, { + "code": "6209", + "name": "酒泉市", + "children": [{ + "code": "620902", + "name": "肃州区" + }, { + "code": "620921", + "name": "金塔县" + }, { + "code": "620922", + "name": "瓜州县" + }, { + "code": "620923", + "name": "肃北蒙古族自治县" + }, { + "code": "620924", + "name": "阿克塞哈萨克族自治县" + }, { + "code": "620981", + "name": "玉门市" + }, { + "code": "620982", + "name": "敦煌市" + }] + }, { + "code": "6210", + "name": "庆阳市", + "children": [{ + "code": "621002", + "name": "西峰区" + }, { + "code": "621021", + "name": "庆城县" + }, { + "code": "621022", + "name": "环县" + }, { + "code": "621023", + "name": "华池县" + }, { + "code": "621024", + "name": "合水县" + }, { + "code": "621025", + "name": "正宁县" + }, { + "code": "621026", + "name": "宁县" + }, { + "code": "621027", + "name": "镇原县" + }] + }, { + "code": "6211", + "name": "定西市", + "children": [{ + "code": "621102", + "name": "安定区" + }, { + "code": "621121", + "name": "通渭县" + }, { + "code": "621122", + "name": "陇西县" + }, { + "code": "621123", + "name": "渭源县" + }, { + "code": "621124", + "name": "临洮县" + }, { + "code": "621125", + "name": "漳县" + }, { + "code": "621126", + "name": "岷县" + }] + }, { + "code": "6212", + "name": "陇南市", + "children": [{ + "code": "621202", + "name": "武都区" + }, { + "code": "621221", + "name": "成县" + }, { + "code": "621222", + "name": "文县" + }, { + "code": "621223", + "name": "宕昌县" + }, { + "code": "621224", + "name": "康县" + }, { + "code": "621225", + "name": "西和县" + }, { + "code": "621226", + "name": "礼县" + }, { + "code": "621227", + "name": "徽县" + }, { + "code": "621228", + "name": "两当县" + }] + }, { + "code": "6229", + "name": "临夏回族自治州", + "children": [{ + "code": "622901", + "name": "临夏市" + }, { + "code": "622921", + "name": "临夏县" + }, { + "code": "622922", + "name": "康乐县" + }, { + "code": "622923", + "name": "永靖县" + }, { + "code": "622924", + "name": "广河县" + }, { + "code": "622925", + "name": "和政县" + }, { + "code": "622926", + "name": "东乡族自治县" + }, { + "code": "622927", + "name": "积石山保安族东乡族撒拉族自治县" + }] + }, { + "code": "6230", + "name": "甘南藏族自治州", + "children": [{ + "code": "623001", + "name": "合作市" + }, { + "code": "623021", + "name": "临潭县" + }, { + "code": "623022", + "name": "卓尼县" + }, { + "code": "623023", + "name": "舟曲县" + }, { + "code": "623024", + "name": "迭部县" + }, { + "code": "623025", + "name": "玛曲县" + }, { + "code": "623026", + "name": "碌曲县" + }, { + "code": "623027", + "name": "夏河县" + }] + }] +}, { + "code": "63", + "name": "青海省", + "children": [{ + "code": "6301", + "name": "西宁市", + "children": [{ + "code": "630102", + "name": "城东区" + }, { + "code": "630103", + "name": "城中区" + }, { + "code": "630104", + "name": "城西区" + }, { + "code": "630105", + "name": "城北区" + }, { + "code": "630106", + "name": "湟中区" + }, { + "code": "630121", + "name": "大通回族土族自治县" + }, { + "code": "630123", + "name": "湟源县" + }] + }, { + "code": "6302", + "name": "海东市", + "children": [{ + "code": "630202", + "name": "乐都区" + }, { + "code": "630203", + "name": "平安区" + }, { + "code": "630222", + "name": "民和回族土族自治县" + }, { + "code": "630223", + "name": "互助土族自治县" + }, { + "code": "630224", + "name": "化隆回族自治县" + }, { + "code": "630225", + "name": "循化撒拉族自治县" + }] + }, { + "code": "6322", + "name": "海北藏族自治州", + "children": [{ + "code": "632221", + "name": "门源回族自治县" + }, { + "code": "632222", + "name": "祁连县" + }, { + "code": "632223", + "name": "海晏县" + }, { + "code": "632224", + "name": "刚察县" + }] + }, { + "code": "6323", + "name": "黄南藏族自治州", + "children": [{ + "code": "632301", + "name": "同仁市" + }, { + "code": "632322", + "name": "尖扎县" + }, { + "code": "632323", + "name": "泽库县" + }, { + "code": "632324", + "name": "河南蒙古族自治县" + }] + }, { + "code": "6325", + "name": "海南藏族自治州", + "children": [{ + "code": "632521", + "name": "共和县" + }, { + "code": "632522", + "name": "同德县" + }, { + "code": "632523", + "name": "贵德县" + }, { + "code": "632524", + "name": "兴海县" + }, { + "code": "632525", + "name": "贵南县" + }] + }, { + "code": "6326", + "name": "果洛藏族自治州", + "children": [{ + "code": "632621", + "name": "玛沁县" + }, { + "code": "632622", + "name": "班玛县" + }, { + "code": "632623", + "name": "甘德县" + }, { + "code": "632624", + "name": "达日县" + }, { + "code": "632625", + "name": "久治县" + }, { + "code": "632626", + "name": "玛多县" + }] + }, { + "code": "6327", + "name": "玉树藏族自治州", + "children": [{ + "code": "632701", + "name": "玉树市" + }, { + "code": "632722", + "name": "杂多县" + }, { + "code": "632723", + "name": "称多县" + }, { + "code": "632724", + "name": "治多县" + }, { + "code": "632725", + "name": "囊谦县" + }, { + "code": "632726", + "name": "曲麻莱县" + }] + }, { + "code": "6328", + "name": "海西蒙古族藏族自治州", + "children": [{ + "code": "632801", + "name": "格尔木市" + }, { + "code": "632802", + "name": "德令哈市" + }, { + "code": "632803", + "name": "茫崖市" + }, { + "code": "632821", + "name": "乌兰县" + }, { + "code": "632822", + "name": "都兰县" + }, { + "code": "632823", + "name": "天峻县" + }, { + "code": "632857", + "name": "大柴旦行政委员会" + }] + }] +}, { + "code": "64", + "name": "宁夏回族自治区", + "children": [{ + "code": "6401", + "name": "银川市", + "children": [{ + "code": "640104", + "name": "兴庆区" + }, { + "code": "640105", + "name": "西夏区" + }, { + "code": "640106", + "name": "金凤区" + }, { + "code": "640121", + "name": "永宁县" + }, { + "code": "640122", + "name": "贺兰县" + }, { + "code": "640181", + "name": "灵武市" + }] + }, { + "code": "6402", + "name": "石嘴山市", + "children": [{ + "code": "640202", + "name": "大武口区" + }, { + "code": "640205", + "name": "惠农区" + }, { + "code": "640221", + "name": "平罗县" + }] + }, { + "code": "6403", + "name": "吴忠市", + "children": [{ + "code": "640302", + "name": "利通区" + }, { + "code": "640303", + "name": "红寺堡区" + }, { + "code": "640323", + "name": "盐池县" + }, { + "code": "640324", + "name": "同心县" + }, { + "code": "640381", + "name": "青铜峡市" + }] + }, { + "code": "6404", + "name": "固原市", + "children": [{ + "code": "640402", + "name": "原州区" + }, { + "code": "640422", + "name": "西吉县" + }, { + "code": "640423", + "name": "隆德县" + }, { + "code": "640424", + "name": "泾源县" + }, { + "code": "640425", + "name": "彭阳县" + }] + }, { + "code": "6405", + "name": "中卫市", + "children": [{ + "code": "640502", + "name": "沙坡头区" + }, { + "code": "640521", + "name": "中宁县" + }, { + "code": "640522", + "name": "海原县" + }] + }] +}, { + "code": "65", + "name": "新疆维吾尔自治区", + "children": [{ + "code": "6501", + "name": "乌鲁木齐市", + "children": [{ + "code": "650102", + "name": "天山区" + }, { + "code": "650103", + "name": "沙依巴克区" + }, { + "code": "650104", + "name": "新市区" + }, { + "code": "650105", + "name": "水磨沟区" + }, { + "code": "650106", + "name": "头屯河区" + }, { + "code": "650107", + "name": "达坂城区" + }, { + "code": "650109", + "name": "米东区" + }, { + "code": "650121", + "name": "乌鲁木齐县" + }] + }, { + "code": "6502", + "name": "克拉玛依市", + "children": [{ + "code": "650202", + "name": "独山子区" + }, { + "code": "650203", + "name": "克拉玛依区" + }, { + "code": "650204", + "name": "白碱滩区" + }, { + "code": "650205", + "name": "乌尔禾区" + }] + }, { + "code": "6504", + "name": "吐鲁番市", + "children": [{ + "code": "650402", + "name": "高昌区" + }, { + "code": "650421", + "name": "鄯善县" + }, { + "code": "650422", + "name": "托克逊县" + }] + }, { + "code": "6505", + "name": "哈密市", + "children": [{ + "code": "650502", + "name": "伊州区" + }, { + "code": "650521", + "name": "巴里坤哈萨克自治县" + }, { + "code": "650522", + "name": "伊吾县" + }] + }, { + "code": "6523", + "name": "昌吉回族自治州", + "children": [{ + "code": "652301", + "name": "昌吉市" + }, { + "code": "652302", + "name": "阜康市" + }, { + "code": "652323", + "name": "呼图壁县" + }, { + "code": "652324", + "name": "玛纳斯县" + }, { + "code": "652325", + "name": "奇台县" + }, { + "code": "652327", + "name": "吉木萨尔县" + }, { + "code": "652328", + "name": "木垒哈萨克自治县" + }] + }, { + "code": "6527", + "name": "博尔塔拉蒙古自治州", + "children": [{ + "code": "652701", + "name": "博乐市" + }, { + "code": "652702", + "name": "阿拉山口市" + }, { + "code": "652722", + "name": "精河县" + }, { + "code": "652723", + "name": "温泉县" + }] + }, { + "code": "6528", + "name": "巴音郭楞蒙古自治州", + "children": [{ + "code": "652801", + "name": "库尔勒市" + }, { + "code": "652822", + "name": "轮台县" + }, { + "code": "652823", + "name": "尉犁县" + }, { + "code": "652824", + "name": "若羌县" + }, { + "code": "652825", + "name": "且末县" + }, { + "code": "652826", + "name": "焉耆回族自治县" + }, { + "code": "652827", + "name": "和静县" + }, { + "code": "652828", + "name": "和硕县" + }, { + "code": "652829", + "name": "博湖县" + }] + }, { + "code": "6529", + "name": "阿克苏地区", + "children": [{ + "code": "652901", + "name": "阿克苏市" + }, { + "code": "652902", + "name": "库车市" + }, { + "code": "652922", + "name": "温宿县" + }, { + "code": "652924", + "name": "沙雅县" + }, { + "code": "652925", + "name": "新和县" + }, { + "code": "652926", + "name": "拜城县" + }, { + "code": "652927", + "name": "乌什县" + }, { + "code": "652928", + "name": "阿瓦提县" + }, { + "code": "652929", + "name": "柯坪县" + }] + }, { + "code": "6530", + "name": "克孜勒苏柯尔克孜自治州", + "children": [{ + "code": "653001", + "name": "阿图什市" + }, { + "code": "653022", + "name": "阿克陶县" + }, { + "code": "653023", + "name": "阿合奇县" + }, { + "code": "653024", + "name": "乌恰县" + }] + }, { + "code": "6531", + "name": "喀什地区", + "children": [{ + "code": "653101", + "name": "喀什市" + }, { + "code": "653121", + "name": "疏附县" + }, { + "code": "653122", + "name": "疏勒县" + }, { + "code": "653123", + "name": "英吉沙县" + }, { + "code": "653124", + "name": "泽普县" + }, { + "code": "653125", + "name": "莎车县" + }, { + "code": "653126", + "name": "叶城县" + }, { + "code": "653127", + "name": "麦盖提县" + }, { + "code": "653128", + "name": "岳普湖县" + }, { + "code": "653129", + "name": "伽师县" + }, { + "code": "653130", + "name": "巴楚县" + }, { + "code": "653131", + "name": "塔什库尔干塔吉克自治县" + }] + }, { + "code": "6532", + "name": "和田地区", + "children": [{ + "code": "653201", + "name": "和田市" + }, { + "code": "653221", + "name": "和田县" + }, { + "code": "653222", + "name": "墨玉县" + }, { + "code": "653223", + "name": "皮山县" + }, { + "code": "653224", + "name": "洛浦县" + }, { + "code": "653225", + "name": "策勒县" + }, { + "code": "653226", + "name": "于田县" + }, { + "code": "653227", + "name": "民丰县" + }] + }, { + "code": "6540", + "name": "伊犁哈萨克自治州", + "children": [{ + "code": "654002", + "name": "伊宁市" + }, { + "code": "654003", + "name": "奎屯市" + }, { + "code": "654004", + "name": "霍尔果斯市" + }, { + "code": "654021", + "name": "伊宁县" + }, { + "code": "654022", + "name": "察布查尔锡伯自治县" + }, { + "code": "654023", + "name": "霍城县" + }, { + "code": "654024", + "name": "巩留县" + }, { + "code": "654025", + "name": "新源县" + }, { + "code": "654026", + "name": "昭苏县" + }, { + "code": "654027", + "name": "特克斯县" + }, { + "code": "654028", + "name": "尼勒克县" + }] + }, { + "code": "6542", + "name": "塔城地区", + "children": [{ + "code": "654201", + "name": "塔城市" + }, { + "code": "654202", + "name": "乌苏市" + }, { + "code": "654203", + "name": "沙湾市" + }, { + "code": "654221", + "name": "额敏县" + }, { + "code": "654224", + "name": "托里县" + }, { + "code": "654225", + "name": "裕民县" + }, { + "code": "654226", + "name": "和布克赛尔蒙古自治县" + }] + }, { + "code": "6543", + "name": "阿勒泰地区", + "children": [{ + "code": "654301", + "name": "阿勒泰市" + }, { + "code": "654321", + "name": "布尔津县" + }, { + "code": "654322", + "name": "富蕴县" + }, { + "code": "654323", + "name": "福海县" + }, { + "code": "654324", + "name": "哈巴河县" + }, { + "code": "654325", + "name": "青河县" + }, { + "code": "654326", + "name": "吉木乃县" + }] + }, { + "code": "6590", + "name": "自治区直辖县级行政区划", + "children": [{ + "code": "659001", + "name": "石河子市" + }, { + "code": "659002", + "name": "阿拉尔市" + }, { + "code": "659003", + "name": "图木舒克市" + }, { + "code": "659004", + "name": "五家渠市" + }, { + "code": "659005", + "name": "北屯市" + }, { + "code": "659006", + "name": "铁门关市" + }, { + "code": "659007", + "name": "双河市" + }, { + "code": "659008", + "name": "可克达拉市" + }, { + "code": "659009", + "name": "昆玉市" + }, { + "code": "659010", + "name": "胡杨河市" + }, { + "code": "659011", + "name": "新星市" + }, { + "code": "659012", + "name": "白杨市" + }] + }] +}] \ No newline at end of file diff --git a/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue new file mode 100644 index 0000000..20faead --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/components/piaoyi-cityPicker/piaoyi-cityPicker.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/uni_modules/piaoyi-cityPicker/package.json b/src/uni_modules/piaoyi-cityPicker/package.json new file mode 100644 index 0000000..7165c44 --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/package.json @@ -0,0 +1,17 @@ +{ + "id": "piaoyi-cityPicker", + "name": " data-cityPicker省市区地址选择器", + "displayName": " data-cityPicker省市区地址选择器(兼容vue3)", + "version": "1.1.7", + "description": "常用省市区选择器,可反选,自定义模态框、兼容vue3", + "keywords": [ + "省市区", + "选择器", + "可反选", + "自定义模态框和弹框", + "兼容vue3" + ], + "dcloudext": { + "type": "component-vue" + } +} \ No newline at end of file diff --git a/src/uni_modules/piaoyi-cityPicker/readme.md b/src/uni_modules/piaoyi-cityPicker/readme.md new file mode 100644 index 0000000..445a149 --- /dev/null +++ b/src/uni_modules/piaoyi-cityPicker/readme.md @@ -0,0 +1,106 @@ +## 1.0.7(2023-09-15) +改为uni_modules规范 +### cityPicker 省市区选择器(兼容vue3) + +**使用方法:** + +``` + + + + + + +``` + +### 注:近期收到使用用户反馈,存在以下一个问题(如有好的建议,期待私信,谢谢) + +1、之前只支持默认值传入地区编码,已更新可以支持传入中文省市区数组 + +defaultValue可以传入defaultValue:['河北省','唐山市','丰南区']数组类型以及defaultValue: '420103'地区编码字符串类型 + +可以使用const reg =/([\u4e00-\u9fa5]+省|自治区|[\u4e00-\u9fa5]+市|[\u4e00-\u9fa5]+区)/g;将自己的省市区数据进行处理为数组再传入 + +2、有些用户反馈vue3下watch监听有问题 + +我自己创建一个vue项目,导入插件后,按照示例原封不动进行测试,没有发现问题; 发现有问题的朋友可以提供一下可以复现的demo给我,我这边看看具体什么情况 + +3、有些用户返回无法关闭弹框 + +不要把插件放到scroll-view里面,请务必放到最外层进行使用 + +#### 事件说明 + +| 事件名 | 返回值 | 描述 | +| :---------: | :----: | :------------: | +| @confirm | 对象(code,完整地区名称) | 点击确定的回调 | +| @cancel | 无 | 点击取消的回调 | + +#### Prop + +| 参数名称 | 描述 | +| -------- | ------------------------------ | +| visible | 控制选择器显示和隐藏 | +| column | 可选值2和3,2是省市两列选择;3是省市区三列选择 | +| maskCloseAble | 点击模态框是否关闭弹框 | +| defaultValue | 初始地区编码(例:420102或者['河北省','唐山市','丰南区']) | + +### 数据来源:[点击查看省市区数据来源](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca-code.json) +### 可接定制化组件开发 +### 右侧有本人代表作小程序二维码,可以扫码体验 +### 如使用过程中有问题或有一些好的建议,欢迎加QQ群互相学习交流:120594820 \ No newline at end of file diff --git a/src/uni_modules/qf-image-cropper/changelog.md b/src/uni_modules/qf-image-cropper/changelog.md new file mode 100644 index 0000000..0fa6898 --- /dev/null +++ b/src/uni_modules/qf-image-cropper/changelog.md @@ -0,0 +1,72 @@ +## 2.2.5(2024-07-30) +* 修复 当 checkRange=true 时,拖动四个伸缩角放大图片时还可能会超出或未到边界的问题 +* 修复 当 checkRange=false 时,图片旋转时会放大图片适应裁剪尺寸的问题 +* 修复 当 checkRange=true 时,图片旋转 90° 或 270° 进行缩放可能会无法拖动图片的问题 +## 2.2.4(2024-06-21) +* 新增 reverseRotatable 属性,是否支持逆向翻转 +* 修复 `2.1.7` 版本导致旋转后图片没有自动适配裁剪框的问题 + +## 2.2.3(2024-06-21) +* 新增 gpu 属性,是否开启硬件加速,图片缩放过程中如果出现元素的“留影”或“重影”效果,可通过该方式解决或减轻这一问题 +* 修复 组件使用 `v-if` 并设置 `src` 属性时可能会出现图片渲染位置存在偏差的问题 + +## 2.2.2(2024-06-21) +* 优化 组件实例 chooseImage 方法支持传参 +* 修复 组件使用 `v-if` 时组件无非正常渲染的问题 + +## 2.2.1(2024-06-15) +* 修复 H5平台不支持手势拖动图片的问题 + +## 2.2.0(2024-05-31) +* 修复 APP平台 `vue2` 项目因 `2.1.9` 版本修复 `vue3` 项目bug而引发的问题 + +## 2.1.9(2024-05-29) +* 修复 APP平台 `vue3` 项目因 uniapp `renderjs` 中未支持条件编译,导致运行了H5平台代码报错的问题 + +## 2.1.8(2024-05-29) +* 新增 zIndex 属性,调整组件层级 +* 新增 组件内容插槽 +* 优化 微信小程序平台动态修改元素style时的多余内容 + +## 2.1.7(2024-05-28) +* 新增 checkRange 属性,当 checkRange=false 时允许图片位置超出裁剪边界 +* 新增 minScale 属性,图片最小缩放倍数,当 minScale<0 时可使图片宽高不再受裁剪区域宽高限制 +* 新增 backgroundColor 属性,生成图片背景色,如果裁剪区域没有完全包含在图片中时,不设置该属性生成图片存在一定的透明块 +* 优化 动态修改图片宽高但没有传入src时,尺寸适应问题 +* 修复 APP平台通过 `this.$ownerInstance` 获取组件实例时机过早,其值为 `undefined` 导致报错界面没有正常渲染的问题 + +## 2.1.6(2023-04-16) +* 修复 组件使用 v-show 指令会导致选择图片后初始位置严重偏位的问题 + +## 2.1.5(2023-04-15) +* 新增 兼容APP平台 + +## 2.1.4(2023-03-13) +* 新增 fileType 属性,用于指定生成文件的类型,只支持 'jpg' 或 'png',默认为 'png' +* 新增 delay 属性,微信小程序平台使用 `Canvas 2D` 绘制时控制图片从绘制到生成所需时间 +* 优化 当生成图片的尺寸宽/高超过 Canvas 2D 最大限制(1365*1365)则将画布尺寸缩放在限制范围内绘制完成后输出目标尺寸 +* 优化 旋转图标指示方向与实际旋转方向不符 + +## 2.1.3(2023-02-06) +* 优化 vue3支持 + +## 2.1.2(2023-02-03) +* 新增 navigation 属性,H5平台当 showAngle 为 true 时,使用插件的页面在 `page.json` 中配置了 "navigationStyle": "custom" 时,必须将此值设为 false ,否则四个可拉伸角的触发位置会有偏差 +* 修复 H5平台部分设备(已知iPhone11以下机型)拍照的图片缩放时会闪动的问题 + +## 2.1.1(2022-12-06) +* 修复 横屏适配问题 + +## 2.1.0(2022-12-06) +* 新增 兼容H5平台,使用 renderjs 响应手势事件 + +## 2.0.0(2022-12-05) +* 重构 插件,使用 WXS 响应手势事件 +* 新增 图片翻转 +* 新增 拉伸裁剪框放大图片 +* 新增 监听PC鼠标滚轮触发缩放 +* 新增 圆形、圆角矩形的图片裁剪 +* 优化 图片缩放,移动端以双指触摸中心点为缩放中心点,PC端以鼠标所在点为缩放中心点 +* 优化 裁剪框样式 +* 优化 图片位置拖动 支持边界回弹效果(滑动时可滑出边界,释放时回弹到边界) +* 优化 生成图片使用新版 Canvas 2D 接口 diff --git a/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.render.js b/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.render.js new file mode 100644 index 0000000..becac19 --- /dev/null +++ b/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.render.js @@ -0,0 +1,855 @@ +/** + * 图片编辑器-手势监听 + * 1. 支持编译到app-vue(uni-app 2.5.5及以上版本)、H5上 + */ +/** 图片偏移量 */ +var offset = { x: 0, y: 0 }; +/** 图片缩放比例 */ +var scale = 1; +/** 图片最小缩放比例 */ +var minScale = 1; +/** 图片旋转角度 */ +var rotate = 0; +/** 触摸点 */ +var touches = []; +/** 图片布局信息 */ +var img = {}; +/** 系统信息 */ +var sys = {}; +/** 裁剪区域布局信息 */ +var area = {}; +/** 触摸行为类型 */ +var touchType = ''; +/** 操作角的位置 */ +var activeAngle = 0; +/** 裁剪区域布局信息偏移量 */ +var areaOffset = { left: 0, right: 0, top: 0, bottom: 0 }; +/** 元素ID */ +var elIds = { + 'imageStyles': 'crop-image', + 'maskStylesList': 'crop-mask-block', + 'borderStyles': 'crop-border', + 'circleBoxStyles': 'crop-circle-box', + 'circleStyles': 'crop-circle', + 'gridStylesList': 'crop-grid', + 'angleStylesList': 'crop-angle', +} +/** 记录上次初始化时间戳,排除APP重复更新 */ +var timestamp = 0; +/** vue3 renderjs 条件编译无效,以此方式区别 APP 和 H5 */ +// #ifdef H5 +var platform = 'H5'; +// #endif +// #ifdef APP +var platform = 'APP'; +// #endif +/** 容错值 */ +var fault = 0.000001; +/** + * 获取a、b两数中的最小正数 + * @param a + * @param b + */ +function minimum(a, b) { + if (a > 0 && b < 0) return a; + if (a < 0 && b > 0) return b; + if (a > 0 && b > 0) return Math.min(a, b); + return 0; +} +/** + * 在容错访问内获取n近似值 + * @param n + */ +function num(n) { + var m = parseFloat((n).toFixed(6)); + return m === fault || m === -fault ? 0 : m; +} +/** + * 比较a值在容错值范围内是否等于b值 + * @param a + * @param b + */ +function equalsByFault(a, b) { + return Math.abs(a - b) <= fault; +} +/** + * 比较a值在容错值范围内是否小于b值 + * @param a + * @param b + */ +function lessThanByFault(a, b) { + var c = a - b; + return c < 0 ? c < -fault : c < fault; +} +/** + * 验证并获取有效最大值 + * @param v + * @param max + * @param isInclude + * @param x + * @param y + * @param rate + * @returns + */ +function validMax(v, max, isInclude, x, y, rate) { + if(typeof max === 'number') { + if(isInclude && equalsByFault(max, y)) { // 宽高不等时,x轴用y轴值要做等比例转换 + var n = num(max * rate); + if (n <= x) return n; // 转化后值在x轴最大值范围内 + return x; // 转化后值超出x轴最大值范围则用最大值 + } + return max; + } + return v; +} +/** + * 样式对象转字符串 + * @param {Object} style 样式对象 + */ +function styleToString(style) { + if(typeof style === 'string') return style; + var str = ''; + for (let k in style) { + str += k + ':' + style[k] + ';'; + } + return str; +} +/** + * + * @param {Object} instance 页面实例对象 + * @param {Object} key 要修改样式的key + * @param {Object|Array} style 样式 + */ +function setStyle(instance, key, style) { + // console.log('setStyle', instance, key, JSON.stringify(style)) + // #ifdef APP-PLUS + if(platform === 'APP') { + if(Object.prototype.toString.call(style) === '[object Array]') { + for (var i = 0, len = style.length; i < len; i++) { + var el = window.document.getElementById(elIds[key] + '-' + (i + 1)); + el && (el.style = styleToString(style[i])); + } + } else { + var el = window.document.getElementById(elIds[key]); + el && (el.style = styleToString(style)); + } + } + // #endif + // #ifdef H5 + if(platform === 'H5') instance[key] = style; + // #endif +} +/** + * 触发页面实例指定方法 + * @param {Object} instance 页面实例对象 + * @param {Object} name 方法名称 + * @param {Object} obj 传递参数 + */ +function callMethod(instance, name, obj) { + // #ifdef APP-PLUS + if(platform === 'APP') instance.callMethod(name, obj); + // #endif + // #ifdef H5 + if(platform === 'H5') instance[name](obj); + // #endif +} +/** + * 计算两点间距 + * @param {Object} touches 触摸点信息 + */ +function getDistanceByTouches(touches) { + // 根据勾股定理求两点间距离 + var a = touches[1].pageX - touches[0].pageX; + var b = touches[1].pageY - touches[0].pageY; + var c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); + // 求两点间的中点坐标 + // 1. a、b可能为负值 + // 2. 在求a、b时,如用touches[1]减touches[0],则求中点坐标也得用touches[1]减a/2、b/2 + // 3. 同理,在求a、b时,也可用touches[0]减touches[1],则求中点坐标也得用touches[0]减a/2、b/2 + var x = touches[1].pageX - a / 2; + var y = touches[1].pageY - b / 2; + return { c, x, y }; +}; + +/** + * 修正取值 + * @param {Object} a + * @param {Object} b + * @param {Object} c + * @param {Object} reverse 是否反向 + */ +function correctValue(a, b, c, reverse) { + return num(reverse ? Math.max(Math.min(a, b), c) : Math.min(Math.max(a, b), c)); +} + +/** + * 旋转90°或270°时检查边界:限制 x、y 拖动范围,禁止滑出边界 + * @param {Object} e 点坐标 + * @param {Object} xReverse x是否反向 + * @param {Object} yReverse y是否反向 + */ +function checkRotateRange(e, xReverse, yReverse) { + var o = num((img.height - img.width) / 2); // 宽高差值一半 + return { + x: correctValue(e.x, -img.height + o + area.width + area.left, area.left + o, xReverse), + y: correctValue(e.y, -img.width - o + area.height + area.top, area.top - o, yReverse) + }; +} + +/** + * 检查边界:限制 x、y 拖动范围,禁止滑出边界 + * @param {Object} e 点坐标 + */ +function checkRange(e) { + var r = rotate / 90 % 2; + if(r === 1) { // 因图片宽高可能不等,翻转 90° 或 270° 后图片宽高需反着计算,且左右和上下边界要根据差值做偏移 + if (area.width === area.height) { + return checkRotateRange(e, img.height < area.height, img.width < area.width); + } + var isInclude = img.height < area.width && img.width < area.height; // 图片是否包含在裁剪区域内 + if (img.width < area.height || img.height < area.width) { + if (area.width < area.height && img.width < img.height) { + return isInclude + ? checkRotateRange(e, area.width < area.height, area.width < area.height) + : checkRotateRange(e, false, true); + } + if (area.height < area.width && img.height < img.width) { + return isInclude + ? checkRotateRange(e, area.height < area.width, area.height < area.width) + : checkRotateRange(e, true, false); + } + } + if (img.height >= area.width && img.width >= area.height) { + return checkRotateRange(e, false, false); + } + if (isInclude) { + return area.height < area.width + ? checkRotateRange(e, true, true) + : checkRotateRange(e, area.width < area.height, area.width < area.height); + } + if (img.height < area.width && !img.width < area.height) { + return checkRotateRange(e, true, false); + } + if (!img.height < area.width && img.width < area.height) { + return checkRotateRange(e, false, true); + } + return checkRotateRange(e, img.height < area.height, img.width < area.width); + } + return { + x: correctValue(e.x, -img.width + area.width + area.left, area.left, img.width < area.width), + y: correctValue(e.y, -img.height + area.height + area.top, area.top, img.height < area.height) + } +}; +/** + * 变更图片布局信息 + * @param {Object} e 布局信息 + */ +function changeImageRect(e) { + // console.log('changeImageRect', e) + offset.x += e.x || 0; + offset.y += e.y || 0; + if(e.check && area.checkRange) { // 检查边界 + var point = checkRange(offset); + if(offset.x !== point.x || offset.y !== point.y) { + offset = point; + } + } + + // 因频繁修改 width/height 会造成大量的内存消耗,改为scale + // e.instance.imageStyles = { + // width: img.width + 'px', + // height: img.height + 'px', + // transform: 'translate(' + (offset.x + ox) + 'px, ' + (offset.y + ox) + 'px) rotate(' + rotate +'deg)' + // }; + var ox = (img.width - img.oldWidth) / 2; + var oy = (img.height - img.oldHeight) / 2; + // e.instance.imageStyles = { + // width: img.oldWidth + 'px', + // height: img.oldHeight + 'px', + // transform: 'translate(' + (offset.x + ox) + 'px, ' + (offset.y + oy) + 'px) rotate(' + rotate +'deg) scale(' + scale + ')' + // }; + setStyle(e.instance, 'imageStyles', { + width: img.oldWidth + 'px', + height: img.oldHeight + 'px', + transform: (img.gpu ? 'translateZ(0) ' : '') + 'translate(' + (offset.x + ox) + 'px, ' + (offset.y + oy) + 'px' + ') rotate(' + rotate +'deg) scale(' + scale + ')' + }); + callMethod(e.instance, 'dataChange', { + width: img.width, + height: img.height, + x: offset.x, + y: offset.y, + rotate: rotate + }); +}; +/** + * 变更裁剪区域布局信息 + * @param {Object} e 布局信息 + */ +function changeAreaRect(e) { + // console.log('changeAreaRect', e) + // 变更蒙版样式 + setStyle(e.instance, 'maskStylesList', [ + { + left: 0, + width: (area.left + areaOffset.left) + 'px', + top: 0, + bottom: 0, + 'z-index': area.zIndex + 2 + }, + { + left: (area.right + areaOffset.right) + 'px', + right: 0, + top: 0, + bottom: 0, + 'z-index': area.zIndex + 2 + }, + { + left: (area.left + areaOffset.left) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + top: 0, + height: (area.top + areaOffset.top) + 'px', + 'z-index': area.zIndex + 2 + }, + { + left: (area.left + areaOffset.left) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + top: (area.bottom + areaOffset.bottom) + 'px', + // height: (area.top - areaOffset.bottom + sys.offsetBottom) + 'px', + bottom: 0, + 'z-index': area.zIndex + 2 + } + ]); + // 变更边框样式 + if(area.showBorder) { + setStyle(e.instance, 'borderStyles', { + left: (area.left + areaOffset.left) + 'px', + top: (area.top + areaOffset.top) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + }); + } + + // 变更参考线样式 + if(area.showGrid) { + setStyle(e.instance, 'gridStylesList', [ + { + 'border-width': '1px 0 0 0', + left: (area.left + areaOffset.left) + 'px', + right: (area.right + areaOffset.right) + 'px', + top: (area.top + areaOffset.top + (area.height + areaOffset.bottom - areaOffset.top) / 3 - 0.5) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '1px 0 0 0', + left: (area.left + areaOffset.left) + 'px', + right: (area.right + areaOffset.right) + 'px', + top: (area.top + areaOffset.top + (area.height + areaOffset.bottom - areaOffset.top) * 2 / 3 - 0.5) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 1px 0 0', + top: (area.top + areaOffset.top) + 'px', + bottom: (area.bottom + areaOffset.bottom) + 'px', + left: (area.left + areaOffset.left + (area.width + areaOffset.right - areaOffset.left) / 3 - 0.5) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 1px 0 0', + top: (area.top + areaOffset.top) + 'px', + bottom: (area.bottom + areaOffset.bottom) + 'px', + left: (area.left + areaOffset.left + (area.width + areaOffset.right - areaOffset.left) * 2 / 3 - 0.5) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + } + ]); + } + + // 变更四个伸缩角样式 + if(area.showAngle) { + setStyle(e.instance, 'angleStylesList', [ + { + 'border-width': area.angleBorderWidth + 'px 0 0 ' + area.angleBorderWidth + 'px', + left: (area.left + areaOffset.left - area.angleBorderWidth) + 'px', + top: (area.top + areaOffset.top - area.angleBorderWidth) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px 0 0', + left: (area.right + areaOffset.right - area.angleSize) + 'px', + top: (area.top + areaOffset.top - area.angleBorderWidth) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 0 ' + area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px', + left: (area.left + areaOffset.left - area.angleBorderWidth) + 'px', + top: (area.bottom + areaOffset.bottom - area.angleSize) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 ' + area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px 0', + left: (area.right + areaOffset.right - area.angleSize) + 'px', + top: (area.bottom + areaOffset.bottom - area.angleSize) + 'px', + 'z-index': area.zIndex + 3 + } + ]); + } + + // 变更圆角样式 + if(area.radius > 0) { + var radius = area.radius; + if(area.width === area.height && area.radius >= area.width / 2) { // 圆形 + radius = (area.width / 2); + } else { // 圆角矩形 + if(area.width !== area.height) { // 限制圆角半径不能超过短边的一半 + radius = Math.min(area.width / 2, area.height / 2, radius); + } + } + setStyle(e.instance, 'circleBoxStyles', { + left: (area.left + areaOffset.left) + 'px', + top: (area.top + areaOffset.top) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 2 + }); + setStyle(e.instance, 'circleStyles', { + 'box-shadow': '0 0 0 ' + Math.max(area.width, area.height) + 'px rgba(51, 51, 51, 0.8)', + 'border-radius': radius + 'px' + }); + } +}; +/** + * 缩放图片 + * @param {Object} e 布局信息 + */ +function scaleImage(e) { + // console.log('scaleImage', e) + var last = scale; + scale = Math.min(Math.max(e.scale + scale, minScale), img.maxScale); + if(last !== scale) { + img.width = num(img.oldWidth * scale); + img.height = num(img.oldHeight * scale); + // 参考问题:有一个长4000px、宽4000px的四方形ABCD,A点的坐标固定在(-2000,-2000), + // 该四边形上有一个点E,坐标为(-100,-300),将该四方形复制一份并缩小到90%后, + // 新四边形的A点坐标为多少时可使新四边形的E点与原四边形的E点重合? + // 预期效果:从图中选取某点(参照物)为中心点进行缩放,缩放时无论图像怎么变化,该点位置始终固定不变 + // 计算方法:以相同起点先计算缩放前后两点间的距离,再加上原图像偏移量即可 + e.x = num((e.x - offset.x) * (1 - scale / last)); + e.y = num((e.y - offset.y) * (1 - scale / last)); + changeImageRect(e); + return true; + } + return false; +}; +/** + * 获取触摸点在哪个角 + * @param {number} x 触摸点x轴坐标 + * @param {number} y 触摸点y轴坐标 + * @return {number} 角的位置:0=无;1=左上;2=右上;3=左下;4=右下; + */ +function getToucheAngle(x, y) { + // console.log('getToucheAngle', x, y, JSON.stringify(area)) + var o = area.angleBorderWidth; // 需扩大触发范围则把 o 值加大即可 + var oy = sys.navigation ? 0 : sys.windowTop; + if(y >= area.top - o + oy && y <= area.top + area.angleSize + o + oy) { + if(x >= area.left - o && x <= area.left + area.angleSize + o) { + return 1; // 左上角 + } else if(x >= area.right - area.angleSize - o && x <= area.right + o) { + return 2; // 右上角 + } + } else if(y >= area.bottom - area.angleSize - o + oy && y <= area.bottom + o + oy) { + if(x >= area.left - o && x <= area.left + area.angleSize + o) { + return 3; // 左下角 + } else if(x >= area.right - area.angleSize - o && x <= area.right + o) { + return 4; // 右下角 + } + } + return 0; // 无触摸到角 +}; +/** + * 重置数据 + */ +function resetData() { + offset = { x: 0, y: 0 }; + scale = 1; + minScale = img.minScale; + rotate = 0; +}; +function getTouchs(touches) { + var result = []; + var len = touches ? touches.length : 0 + for (var i = 0; i < len; i++) { + result[i] = { + pageX: touches[i].pageX, + // h5无标题栏时,窗口顶部距离仍为标题栏高度,且触摸点y轴坐标还是有标题栏的值,即减去标题栏高度的值 + pageY: touches[i].pageY + sys.windowTop + }; + } + return result; +}; +var mouseEvent = false; +export default { + data() { + return { + imageStyles: {}, + maskStylesList: [{}, {}, {}, {}], + borderStyles: {}, + gridStylesList: [{}, {}, {}, {}], + angleStylesList: [{}, {}, {}, {}], + circleBoxStyles: {}, + circleStyles: {} + } + }, + created() { + // 监听 PC 端鼠标滚轮 + // #ifdef H5 + platform === 'H5' && window.addEventListener('mousewheel', async (e) => { + var touchs = getTouchs([e]) + img.src && scaleImage({ + instance: await this.getInstance(), + check: true, + // 鼠标向上滚动时,deltaY 固定 -100,鼠标向下滚动时,deltaY 固定 100 + scale: e.deltaY > 0 ? -0.05 : 0.05, + x: touchs[0].pageX, + y: touchs[0].pageY + }); + }); + // #endif + }, + // #ifdef H5 + mounted() { + platform === 'H5' && this.initH5Events(); + }, + // #endif + setPlatform(p) { + platform = p; + }, + methods: { + // #ifdef H5 + getTouchEvent(e) { + e.touches = [ + { pageX: e.pageX, pageY: e.pageY } + ]; + return e; + }, + initH5Events() { + const preview = document.getElementById('pic-preview'); + preview?.addEventListener('mousedown', (e, ev) => { + mouseEvent = true; + this.touchstart(this.getTouchEvent(e)); + }); + preview?.addEventListener('mousemove', (e) => { + if (!mouseEvent) return; + this.touchmove(this.getTouchEvent(e)); + }); + preview?.addEventListener('mouseup', (e) => { + mouseEvent = false; + this.touchend(this.getTouchEvent(e)) + }); + preview?.addEventListener('mouseleave', (e) => { + mouseEvent = false; + this.touchend(this.getTouchEvent(e)) + }); + }, + // #endif + async getInstance() { + // #ifdef APP-PLUS + if(platform === 'APP') + return this.$ownerInstance + ? Promise.resolve(this.$ownerInstance) + : new Promise((resolve) => { + setTimeout(async () => { + resolve(await this.getInstance()); + }); + }); + // #endif + // #ifdef H5 + if(platform === 'H5') + return Promise.resolve(this); + // #endif + }, + /** + * 初始化:观察数据变更 + * @param {Object} newVal 新数据 + * @param {Object} oldVal 旧数据 + * @param {Object} o 组件实例对象 + */ + initObserver: async function(newVal, oldVal, o, i) { + // console.log('initObserver', newVal, oldVal, o, i) + if(newVal && (!img.src || timestamp !== newVal.timestamp)) { + timestamp = newVal.timestamp; + img = newVal.img; + sys = newVal.sys; + area = newVal.area; + minScale = img.minScale; + resetData(); + const instance = await this.getInstance() + img.src && changeImageRect({ + instance, + x: (sys.windowWidth - img.width) / 2, + y: (sys.windowHeight + sys.windowTop - sys.offsetBottom - img.height) / 2 + }); + changeAreaRect({ + instance + }); + } + }, + /** + * 鼠标滚轮滚动 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + mousewheel: function(e, o) { + // h5平台 wheel 事件无法判断滚轮滑动方向,需使用 mousewheel + }, + /** + * 触摸开始 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchstart: function(e, o) { + if(!img.src) return; + touches = getTouchs(e.touches); + activeAngle = area.showAngle ? getToucheAngle(touches[0].pageX, touches[0].pageY) : 0; + if(touches.length === 1 && activeAngle !== 0) { + touchType = 'stretch'; // 伸缩裁剪区域 + } else { + touchType = ''; + } + // console.log('touchstart', e, activeAngle) + }, + /** + * 触摸移动 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchmove: async function(e, o) { + if(!img.src) return; + // console.log('touchmove', e, o) + e.touches = getTouchs(e.touches); + if(touchType === 'stretch') { // 触摸四个角进行拉伸 + var point = e.touches[0]; + var start = touches[0]; + var x = point.pageX - start.pageX; + var y = point.pageY - start.pageY; + if(x !== 0 || y !== 0) { + var maxX = num(area.width * (1 - area.minScale)); + var maxY = num(area.height * (1 - area.minScale)); + // console.log(x, y, maxX, maxY, offset, area) + touches[0] = point; + var r = rotate / 90 % 2; + var m = r === 1 ? num((img.height - img.width) / 2) : 0; // 宽高差值一半 + var xCompare = r === 1 ? lessThanByFault(img.height, area.width) : lessThanByFault(img.width, area.width); + var yCompare = r === 1 ? lessThanByFault(img.width, area.height) : lessThanByFault(img.height, area.height) + var isInclude = xCompare && yCompare; + var isIntersect = area.checkRange && (xCompare || yCompare); // 图片是否包含在裁剪区域内 + var isReverse = !isInclude || num((offset.x - area.left) / area.width) <= num((offset.y - area.top) / area.height) || (area.width > area.height && img.width < img.height && r === 1); + switch(activeAngle) { + case 1: // 左上角 + x = num(x + areaOffset.left); + y = num(y + areaOffset.top); + if(x >= 0 && y >= 0) { // 有效滑动 + var t = num(offset.y + m - area.top); + var l = num(offset.x - m - area.left); + // && (offset.x + img.width < area.right || offset.y + img.height < area.bottom) + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(x > y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(x > maxX) x = maxX; + y = num(x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(y > maxY) y = maxY; + x = num(y * area.width / area.height); + } + areaOffset.left = x; + areaOffset.top = y; + } + break; + case 2: // 右上角 + x = num(x + areaOffset.right); + y = num(y + areaOffset.top); + if(x <= 0 && y >= 0) { // 有效滑动 + var w = (r === 1 ? img.height : img.width); + var t = num(offset.y + m - area.top); + var l = num(area.right + m - offset.x - w); + var max = isIntersect && ((t >= 0) || (l >= 0)) + ? minimum(t, l) + : false; + if(-x > y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(-x > maxX) x = -maxX; + y = num(-x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(y > maxY) y = maxY; + x = num(-y * area.width / area.height); + } + areaOffset.right = x; + areaOffset.top = y; + } + break; + case 3: // 左下角 + x += num(x + areaOffset.left); + y += num(y + areaOffset.bottom); + if(x >= 0 && y <= 0) { // 有效滑动 + var w = (r === 1 ? img.width : img.height); + var t = num(area.bottom - m - offset.y - w); + var l = num(offset.x - m - area.left); + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(x > -y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(x > maxX) x = maxX; + y = num(-x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(-y > maxY) y = -maxY; + x = num(-y * area.width / area.height); + } + areaOffset.left = x; + areaOffset.bottom = y; + } + break; + case 4: // 右下角 + x = num(x + areaOffset.right); + y = num(y + areaOffset.bottom); + if(x <= 0 && y <= 0) { // 有效滑动 + var w = (r === 1 ? img.height : img.width); + var h = (r === 1 ? img.width : img.height); + var t = num(area.bottom - offset.y - h - m); + var l = num(area.right + m - offset.x - w); + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(-x > -y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(-x > maxX) x = -maxX; + y = num(x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(-y > maxY) y = -maxY; + x = num(y * area.width / area.height); + } + areaOffset.right = x; + areaOffset.bottom = y; + } + break; + } + // console.log(x, y, JSON.stringify(areaOffset)) + changeAreaRect({ + instance: await this.getInstance(), + }); + // this.draw(); + } + } else if (e.touches.length == 2) { // 双点触摸缩放 + var start = getDistanceByTouches(touches); + var end = getDistanceByTouches(e.touches); + scaleImage({ + instance: await this.getInstance(), + check: !area.bounce, + scale: (end.c - start.c) / 100, + x: end.x, + y: end.y + }); + touchType = 'scale'; + } else if(touchType === 'scale') {// 从双点触摸变成单点触摸 / 从缩放变成拖动 + touchType = 'move'; + } else { + changeImageRect({ + instance: await this.getInstance(), + check: !area.bounce, + x: e.touches[0].pageX - touches[0].pageX, + y: e.touches[0].pageY - touches[0].pageY + }); + touchType = 'move'; + } + touches = e.touches; + }, + /** + * 触摸结束 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchend: async function(e, o) { + if(!img.src) return; + if(touchType === 'stretch') { // 拉伸裁剪区域的四个角缩放 + // 裁剪区域宽度被缩放到多少 + var left = areaOffset.left; + var right = areaOffset.right; + var top = areaOffset.top; + var bottom = areaOffset.bottom; + var w = area.width + right - left; + var h = area.height + bottom - top; + // 图像放大倍数 + var p = scale * (area.width / w) - scale; + // 复原裁剪区域 + areaOffset = { left: 0, right: 0, top: 0, bottom: 0 }; + changeAreaRect({ + instance: await this.getInstance(), + }); + scaleImage({ + instance: await this.getInstance(), + scale: p, + x: area.left + left + (1 === activeAngle || 3 === activeAngle ? w : 0), + y: area.top + top + (1 === activeAngle || 2 === activeAngle ? h : 0) + }); + } else if (area.bounce) { // 检查边界并矫正,实现拖动到边界时有回弹效果 + changeImageRect({ + instance: await this.getInstance(), + check: true + }); + } + }, + /** + * 顺时针翻转图片90° + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + rotateImage: async function(r) { + rotate = (rotate + (r || 90)) % 360; + + if(img.minScale >= 1 && area.checkRange) { + // 因图片宽高可能不等,翻转后图片宽高需足够填满裁剪区域 + minScale = 1; + if(img.width < area.height) { + minScale = area.height / img.oldWidth; + } else if(img.height < area.width) { + minScale = area.width / img.oldHeight; + } + if(minScale !== 1) { + scaleImage({ + instance: await this.getInstance(), + scale: minScale - scale, + x: sys.windowWidth / 2, + y: (sys.windowHeight - sys.offsetBottom) / 2 + }); + } + } + + // 由于拖动画布后会导致图片位置偏移,翻转时的旋转中心点需是图片区域+偏移区域的中心点 + // 翻转x轴中心点 = (超出裁剪区域右侧的图片宽度 - 超出裁剪区域左侧的图片宽度) / 2 + // 翻转y轴中心点 = (超出裁剪区域下方的图片宽度 - 超出裁剪区域上方的图片宽度) / 2 + var ox = ((offset.x + img.width - area.right) - (area.left - offset.x)) / 2; + var oy = ((offset.y + img.height - area.bottom) - (area.top - offset.y)) / 2; + changeImageRect({ + instance: await this.getInstance(), + check: true, + x: -ox - oy, + y: -oy + ox + }); + }, + rotateImage90: function() { + this.rotateImage(90) + }, + rotateImage270: function() { + this.rotateImage(270) + }, + } +} \ No newline at end of file diff --git a/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue b/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue new file mode 100644 index 0000000..bfb34fb --- /dev/null +++ b/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue @@ -0,0 +1,743 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxs b/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxs new file mode 100644 index 0000000..98a5116 --- /dev/null +++ b/src/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxs @@ -0,0 +1,727 @@ +/** + * 图片编辑器-手势监听 + * 1. wxs 暂不支持 es6 语法 + * 2. 支持编译到微信小程序、QQ小程序、app-vue、H5上(uni-app 2.2.5及以上版本) + */ +/** 图片偏移量 */ +var offset = { x: 0, y: 0 }; +/** 图片缩放比例 */ +var scale = 1; +/** 图片最小缩放比例 */ +var minScale = 1; +/** 图片旋转角度 */ +var rotate = 0; +/** 触摸点 */ +var touches = []; +/** 图片布局信息 */ +var img = {}; +/** 系统信息 */ +var sys = {}; +/** 裁剪区域布局信息 */ +var area = {}; +/** 触摸行为类型 */ +var touchType = ''; +/** 操作角的位置 */ +var activeAngle = 0; +/** 裁剪区域布局信息偏移量 */ +var areaOffset = { left: 0, right: 0, top: 0, bottom: 0 }; +/** 容错值 */ +var fault = 0.000001; +/** + * 获取a、b两数中的最小正数 + * @param a + * @param b + */ +function minimum(a, b) { + if (a > 0 && b < 0) return a; + if (a < 0 && b > 0) return b; + if (a > 0 && b > 0) return Math.min(a, b); + return 0; +} +/** + * 在容错访问内获取n近似值 + * @param n + */ +function num(n) { + var m = parseFloat((n).toFixed(6)); + return m === fault || m === -fault ? 0 : m; +} +/** + * 比较a值在容错值范围内是否等于b值 + * @param a + * @param b + */ +function equalsByFault(a, b) { + return Math.abs(a - b) <= fault; +} +/** + * 比较a值在容错值范围内是否小于b值 + * @param a + * @param b + */ +function lessThanByFault(a, b) { + var c = a - b; + return c < 0 ? c < -fault : c < fault; +} +/** + * 验证并获取有效最大值 + * @param v + * @param max + * @param isInclude + * @param x + * @param y + * @param rate + * @returns + */ +function validMax(v, max, isInclude, x, y, rate) { + if(typeof max === 'number') { + if(isInclude && equalsByFault(max, y)) { // 宽高不等时,x轴用y轴值要做等比例转换 + var n = num(max * rate); + if (n <= x) return n; // 转化后值在x轴最大值范围内 + return x; // 转化后值超出x轴最大值范围则用最大值 + } + return max; + } + return v; +} +/** + * 计算两点间距 + * @param {Object} touches 触摸点信息 + */ +function getDistanceByTouches(touches) { + // 根据勾股定理求两点间距离 + var a = touches[1].pageX - touches[0].pageX; + var b = touches[1].pageY - touches[0].pageY; + var c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); + // 求两点间的中点坐标 + // 1. a、b可能为负值 + // 2. 在求a、b时,如用touches[1]减touches[0],则求中点坐标也得用touches[1]减a/2、b/2 + // 3. 同理,在求a、b时,也可用touches[0]减touches[1],则求中点坐标也得用touches[0]减a/2、b/2 + var x = touches[1].pageX - a / 2; + var y = touches[1].pageY - b / 2; + return { c, x, y }; +}; +/** + * 修正取值 + * @param {Object} a + * @param {Object} b + * @param {Object} c + * @param {Object} reverse 是否反向 + */ +function correctValue(a, b, c, reverse) { + return num(reverse ? Math.max(Math.min(a, b), c) : Math.min(Math.max(a, b), c)); +} + +/** + * 旋转90°或270°时检查边界:限制 x、y 拖动范围,禁止滑出边界 + * @param {Object} e 点坐标 + * @param {Object} xReverse x是否反向 + * @param {Object} yReverse y是否反向 + */ +function checkRotateRange(e, xReverse, yReverse) { + var o = num((img.height - img.width) / 2); // 宽高差值一半 + return { + x: correctValue(e.x, -img.height + o + area.width + area.left, area.left + o, xReverse), + y: correctValue(e.y, -img.width - o + area.height + area.top, area.top - o, yReverse) + }; +} + +/** + * 检查边界:限制 x、y 拖动范围,禁止滑出边界 + * @param {Object} e 点坐标 + */ +function checkRange(e) { + var r = rotate / 90 % 2; + if(r === 1) { // 因图片宽高可能不等,翻转 90° 或 270° 后图片宽高需反着计算,且左右和上下边界要根据差值做偏移 + if (area.width === area.height) { + return checkRotateRange(e, img.height < area.height, img.width < area.width); + } + var isInclude = img.height < area.width && img.width < area.height; // 图片是否包含在裁剪区域内 + if (img.width < area.height || img.height < area.width) { + if (area.width < area.height && img.width < img.height) { + return isInclude + ? checkRotateRange(e, area.width < area.height, area.width < area.height) + : checkRotateRange(e, false, true); + } + if (area.height < area.width && img.height < img.width) { + return isInclude + ? checkRotateRange(e, area.height < area.width, area.height < area.width) + : checkRotateRange(e, true, false); + } + } + if (img.height >= area.width && img.width >= area.height) { + return checkRotateRange(e, false, false); + } + if (isInclude) { + return area.height < area.width + ? checkRotateRange(e, true, true) + : checkRotateRange(e, area.width < area.height, area.width < area.height); + } + if (img.height < area.width && !img.width < area.height) { + return checkRotateRange(e, true, false); + } + if (!img.height < area.width && img.width < area.height) { + return checkRotateRange(e, false, true); + } + return checkRotateRange(e, img.height < area.height, img.width < area.width); + } + return { + x: correctValue(e.x, -img.width + area.width + area.left, area.left, img.width < area.width), + y: correctValue(e.y, -img.height + area.height + area.top, area.top, img.height < area.height) + }; +}; +/** + * 变更图片布局信息 + * @param {Object} e 布局信息 + */ +function changeImageRect(e) { + offset.x += e.x || 0; + offset.y += e.y || 0; + var image = e.instance.selectComponent('.crop-image'); + if(e.check && area.checkRange) { // 检查边界 + var point = checkRange(offset); + if(offset.x !== point.x || offset.y !== point.y) { + offset = point; + } + } + // image.setStyle({ + // width: img.width + 'px', + // height: img.height + 'px', + // transform: 'translate(' + offset.x + 'px, ' + offset.y + 'px) rotate(' + rotate +'deg)' + // }); + var ox = (img.width - img.oldWidth) / 2; + var oy = (img.height - img.oldHeight) / 2; + image.setStyle({ + width: img.oldWidth + 'px', + height: img.oldHeight + 'px', + transform: (img.gpu ? 'translateZ(0) ' : '') + 'translate(' + (offset.x + ox) + 'px, ' + (offset.y + oy) + 'px) rotate(' + rotate +'deg) scale(' + scale + ')' + }); + + e.instance.callMethod('dataChange', { + width: img.width, + height: img.height, + x: offset.x, + y: offset.y, + rotate: rotate + }); +}; +/** + * 变更裁剪区域布局信息 + * @param {Object} e 布局信息 + */ +function changeAreaRect(e) { + // 变更蒙版样式 + var masks = e.instance.selectAllComponents('.crop-mask-block'); + var maskStyles = [ + { + left: 0, + width: (area.left + areaOffset.left) + 'px', + top: 0, + bottom: 0, + 'z-index': area.zIndex + 2 + }, + { + left: (area.right + areaOffset.right) + 'px', + right: 0, + top: 0, + bottom: 0, + 'z-index': area.zIndex + 2 + }, + { + left: (area.left + areaOffset.left) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + top: 0, + height: (area.top + areaOffset.top) + 'px', + 'z-index': area.zIndex + 2 + }, + { + left: (area.left + areaOffset.left) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + top: (area.bottom + areaOffset.bottom) + 'px', + // height: (area.top - areaOffset.bottom + sys.offsetBottom) + 'px', + bottom: 0, + 'z-index': area.zIndex + 2 + } + ]; + var len = masks.length; + for (var i = 0; i < len; i++) { + masks[i].setStyle(maskStyles[i]); + } + + // 变更边框样式 + if(area.showBorder) { + var border = e.instance.selectComponent('.crop-border'); + border.setStyle({ + left: (area.left + areaOffset.left) + 'px', + top: (area.top + areaOffset.top) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + }); + } + + // 变更参考线样式 + if(area.showGrid) { + var grids = e.instance.selectAllComponents('.crop-grid'); + var gridStyles = [ + { + 'border-width': '1px 0 0 0', + left: (area.left + areaOffset.left) + 'px', + right: (area.right + areaOffset.right) + 'px', + top: (area.top + areaOffset.top + (area.height + areaOffset.bottom - areaOffset.top) / 3 - 0.5) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '1px 0 0 0', + left: (area.left + areaOffset.left) + 'px', + right: (area.right + areaOffset.right) + 'px', + top: (area.top + areaOffset.top + (area.height + areaOffset.bottom - areaOffset.top) * 2 / 3 - 0.5) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 1px 0 0', + top: (area.top + areaOffset.top) + 'px', + bottom: (area.bottom + areaOffset.bottom) + 'px', + left: (area.left + areaOffset.left + (area.width + areaOffset.right - areaOffset.left) / 3 - 0.5) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 1px 0 0', + top: (area.top + areaOffset.top) + 'px', + bottom: (area.bottom + areaOffset.bottom) + 'px', + left: (area.left + areaOffset.left + (area.width + areaOffset.right - areaOffset.left) * 2 / 3 - 0.5) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + } + ]; + var len = grids.length; + for (var i = 0; i < len; i++) { + grids[i].setStyle(gridStyles[i]); + } + } + + // 变更四个伸缩角样式 + if(area.showAngle) { + var angles = e.instance.selectAllComponents('.crop-angle'); + var angleStyles = [ + { + 'border-width': area.angleBorderWidth + 'px 0 0 ' + area.angleBorderWidth + 'px', + left: (area.left + areaOffset.left - area.angleBorderWidth) + 'px', + top: (area.top + areaOffset.top - area.angleBorderWidth) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px 0 0', + left: (area.right + areaOffset.right - area.angleSize) + 'px', + top: (area.top + areaOffset.top - area.angleBorderWidth) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 0 ' + area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px', + left: (area.left + areaOffset.left - area.angleBorderWidth) + 'px', + top: (area.bottom + areaOffset.bottom - area.angleSize) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 ' + area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px 0', + left: (area.right + areaOffset.right - area.angleSize) + 'px', + top: (area.bottom + areaOffset.bottom - area.angleSize) + 'px', + 'z-index': area.zIndex + 3 + } + ]; + var len = angles.length; + for (var i = 0; i < len; i++) { + angles[i].setStyle(angleStyles[i]); + } + } + + // 变更圆角样式 + if(area.radius > 0) { + var circleBox = e.instance.selectComponent('.crop-circle-box'); + var circle = e.instance.selectComponent('.crop-circle'); + var radius = area.radius; + if(area.width === area.height && area.radius >= area.width / 2) { // 圆形 + radius = (area.width / 2); + } else { // 圆角矩形 + if(area.width !== area.height) { // 限制圆角半径不能超过短边的一半 + radius = Math.min(area.width / 2, area.height / 2, radius); + } + } + circleBox.setStyle({ + left: (area.left + areaOffset.left) + 'px', + top: (area.top + areaOffset.top) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 2 + }); + circle.setStyle({ + 'box-shadow': '0 0 0 ' + Math.max(area.width, area.height) + 'px rgba(51, 51, 51, 0.8)', + 'border-radius': radius + 'px' + }); + } +}; +/** + * 缩放图片 + * @param {Object} e 布局信息 + */ +function scaleImage(e) { + var last = scale; + scale = Math.min(Math.max(e.scale + scale, minScale), img.maxScale); + if(last !== scale) { + img.width = num(img.oldWidth * scale); + img.height = num(img.oldHeight * scale); + // 参考问题:有一个长4000px、宽4000px的四方形ABCD,A点的坐标固定在(-2000,-2000), + // 该四边形上有一个点E,坐标为(-100,-300),将该四方形复制一份并缩小到90%后, + // 新四边形的A点坐标为多少时可使新四边形的E点与原四边形的E点重合? + // 预期效果:从图中选取某点(参照物)为中心点进行缩放,缩放时无论图像怎么变化,该点位置始终固定不变 + // 计算方法:以相同起点先计算缩放前后两点间的距离,再加上原图像偏移量即可 + e.x = num((e.x - offset.x) * (1 - scale / last)); + e.y = num((e.y - offset.y) * (1 - scale / last)); + changeImageRect(e); + return true; + } + return false; +}; +/** + * 获取触摸点在哪个角 + * @param {number} x 触摸点x轴坐标 + * @param {number} y 触摸点y轴坐标 + * @return {number} 角的位置:0=无;1=左上;2=右上;3=左下;4=右下; + */ +function getToucheAngle(x, y) { + // console.log('getToucheAngle', x, y, JSON.stringify(area)) + var o = area.angleBorderWidth; // 需扩大触发范围则把 o 值加大即可 + if(y >= area.top - o && y <= area.top + area.angleSize + o) { + if(x >= area.left - o && x <= area.left + area.angleSize + o) { + return 1; // 左上角 + } else if(x >= area.right - area.angleSize - o && x <= area.right + o) { + return 2; // 右上角 + } + } else if(y >= area.bottom - area.angleSize - o && y <= area.bottom + o) { + if(x >= area.left - o && x <= area.left + area.angleSize + o) { + return 3; // 左下角 + } else if(x >= area.right - area.angleSize - o && x <= area.right + o) { + return 4; // 右下角 + } + } + return 0; // 无触摸到角 +}; +/** + * 重置数据 + */ +function resetData() { + offset = { x: 0, y: 0 }; + scale = 1; + minScale = img.minScale; + rotate = 0; +}; +/** +* 顺时针翻转图片90° +* @param {Object} e 事件对象 +* @param {Object} o 组件实例对象 +*/ +function rotateImage(e, o, r) { + rotate = (rotate + r) % 360; + if(img.minScale >= 1 && area.checkRange) { + // 因图片宽高可能不等,翻转后图片宽高需足够填满裁剪区域 + minScale = 1; + if(img.width < area.height) { + minScale = area.height / img.oldWidth; + } else if(img.height < area.width) { + minScale = area.width / img.oldHeight; + } + if(minScale !== 1) { + scaleImage({ + instance: o, + scale: minScale - scale, + x: sys.windowWidth / 2, + y: (sys.windowHeight - sys.offsetBottom) / 2 + }); + } + } + + // 由于拖动画布后会导致图片位置偏移,翻转时的旋转中心点需是图片区域+偏移区域的中心点 + // 翻转x轴中心点 = (超出裁剪区域右侧的图片宽度 - 超出裁剪区域左侧的图片宽度) / 2 + // 翻转y轴中心点 = (超出裁剪区域下方的图片宽度 - 超出裁剪区域上方的图片宽度) / 2 + var ox = ((offset.x + img.width - area.right) - (area.left - offset.x)) / 2; + var oy = ((offset.y + img.height - area.bottom) - (area.top - offset.y)) / 2; + changeImageRect({ + instance: o, + check: true, + x: -ox - oy, + y: -oy + ox + }); +}; +module.exports = { + /** + * 初始化:观察数据变更 + * @param {Object} newVal 新数据 + * @param {Object} oldVal 旧数据 + * @param {Object} o 组件实例对象 + */ + initObserver: function(newVal, oldVal, o, i) { + if(newVal) { + img = newVal.img; + sys = newVal.sys; + area = newVal.area; + minScale = img.minScale; + resetData(); + img.src && changeImageRect({ + instance: o, + x: (sys.windowWidth - img.width) / 2, + y: (sys.windowHeight - sys.offsetBottom - img.height) / 2 + }); + changeAreaRect({ + instance: o + }); + // console.log('initRect', JSON.stringify(newVal)) + } + }, + /** + * 鼠标滚轮滚动 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + mousewheel: function(e, o) { + if(!img.src) return; + scaleImage({ + instance: o, + check: true, + // 鼠标向上滚动时,deltaY 固定 -100,鼠标向下滚动时,deltaY 固定 100 + scale: e.detail.deltaY > 0 ? -0.05 : 0.05, + x: e.touches[0].pageX, + y: e.touches[0].pageY + }); + }, + /** + * 触摸开始 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchstart: function(e, o) { + if(!img.src) return; + touches = e.touches; + activeAngle = area.showAngle ? getToucheAngle(touches[0].pageX, touches[0].pageY) : 0; + if(touches.length === 1 && activeAngle !== 0) { + touchType = 'stretch'; // 伸缩裁剪区域 + } else { + touchType = ''; + } + // console.log('touchstart', JSON.stringify(e), activeAngle) + }, + /** + * 触摸移动 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchmove: function(e, o) { + if(!img.src) return; + // console.log('touchmove', JSON.stringify(e), JSON.stringify(o)) + if(touchType === 'stretch') { // 触摸四个角进行拉伸 + var point = e.touches[0]; + var start = touches[0]; + var x = point.pageX - start.pageX; + var y = point.pageY - start.pageY; + if(x !== 0 || y !== 0) { + var maxX = num(area.width * (1 - area.minScale)); + var maxY = num(area.height * (1 - area.minScale)); + // console.log(x, y, maxX, maxY, offset, area) + touches[0] = point; + var r = rotate / 90 % 2; + var m = r === 1 ? num((img.height - img.width) / 2) : 0; // 宽高差值一半 + var xCompare = r === 1 ? lessThanByFault(img.height, area.width) : lessThanByFault(img.width, area.width); + var yCompare = r === 1 ? lessThanByFault(img.width, area.height) : lessThanByFault(img.height, area.height) + var isInclude = xCompare && yCompare; + var isIntersect = area.checkRange && (xCompare || yCompare); // 图片是否包含在裁剪区域内 + var isReverse = !isInclude || num((offset.x - area.left) / area.width) <= num((offset.y - area.top) / area.height) || (area.width > area.height && img.width < img.height && r === 1); + switch(activeAngle) { + case 1: // 左上角 + x = num(x + areaOffset.left); + y = num(y + areaOffset.top); + if(x >= 0 && y >= 0) { // 有效滑动 + var t = num(offset.y + m - area.top); + var l = num(offset.x - m - area.left); + // && (offset.x + img.width < area.right || offset.y + img.height < area.bottom) + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(x > y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(x > maxX) x = maxX; + y = num(x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(y > maxY) y = maxY; + x = num(y * area.width / area.height); + } + areaOffset.left = x; + areaOffset.top = y; + } + break; + case 2: // 右上角 + x = num(x + areaOffset.right); + y = num(y + areaOffset.top); + if(x <= 0 && y >= 0) { // 有效滑动 + var w = (r === 1 ? img.height : img.width); + var t = num(offset.y + m - area.top); + var l = num(area.right + m - offset.x - w); + var max = isIntersect && ((t >= 0) || (l >= 0)) + ? minimum(t, l) + : false; + // var max = isInclude && ((offset.x > 0 && offset.x + img.width <= area.right) || (offset.y > 0 && offset.y >= area.top)) + // ? minimum(offset.y - area.top, area.right - offset.x - img.width) + // : false; + // console.log(offset.x, offset.y, img.width, img.height, area.top, area.right, m, max) + // console.log(offset.y + m - area.top, area.right + m - offset.x - w) + if(-x > y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(-x > maxX) x = -maxX; + y = num(-x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(y > maxY) y = maxY; + x = num(-y * area.width / area.height); + } + areaOffset.right = x; + areaOffset.top = y; + } + break; + case 3: // 左下角 + x += num(x + areaOffset.left); + y += num(y + areaOffset.bottom); + if(x >= 0 && y <= 0) { // 有效滑动 + var w = (r === 1 ? img.width : img.height); + var t = num(area.bottom - m - offset.y - w); + var l = num(offset.x - m - area.left); + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(x > -y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(x > maxX) x = maxX; + y = num(-x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(-y > maxY) y = -maxY; + x = num(-y * area.width / area.height); + } + areaOffset.left = x; + areaOffset.bottom = y; + } + break; + case 4: // 右下角 + x = num(x + areaOffset.right); + y = num(y + areaOffset.bottom); + if(x <= 0 && y <= 0) { // 有效滑动 + var w = (r === 1 ? img.height : img.width); + var h = (r === 1 ? img.width : img.height); + var t = num(area.bottom - offset.y - h - m); + var l = num(area.right + m - offset.x - w); + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(-x > -y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(-x > maxX) x = -maxX; + y = num(x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(-y > maxY) y = -maxY; + x = num(y * area.width / area.height); + } + areaOffset.right = x; + areaOffset.bottom = y; + } + break; + } + // console.log(x, y, JSON.stringify(areaOffset)) + changeAreaRect({ + instance: o, + }); + // this.draw(); + } + } else if (e.touches.length == 2) { // 双点触摸缩放 + var start = getDistanceByTouches(touches); + var end = getDistanceByTouches(e.touches); + scaleImage({ + instance: o, + check: !area.bounce, + scale: (end.c - start.c) / 100, + x: end.x, + y: end.y + }); + touchType = 'scale'; + } else if(touchType === 'scale') {// 从双点触摸变成单点触摸 / 从缩放变成拖动 + touchType = 'move'; + } else { + changeImageRect({ + instance: o, + check: !area.bounce, + x: e.touches[0].pageX - touches[0].pageX, + y: e.touches[0].pageY - touches[0].pageY + }); + touchType = 'move'; + } + touches = e.touches; + }, + /** + * 触摸结束 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchend: function(e, o) { + if(!img.src) return; + if(touchType === 'stretch') { // 拉伸裁剪区域的四个角缩放 + // 裁剪区域宽度被缩放到多少 + var left = areaOffset.left; + var right = areaOffset.right; + var top = areaOffset.top; + var bottom = areaOffset.bottom; + var w = area.width + right - left; + var h = area.height + bottom - top; + // 图像放大倍数 + var p = scale * (area.width / w) - scale; + // 复原裁剪区域 + areaOffset = { left: 0, right: 0, top: 0, bottom: 0 }; + changeAreaRect({ + instance: o, + }); + scaleImage({ + instance: o, + scale: p, + x: area.left + left + (1 === activeAngle || 3 === activeAngle ? w : 0), + y: area.top + top + (1 === activeAngle || 2 === activeAngle ? h : 0) + }); + } else if (area.bounce) { // 检查边界并矫正,实现拖动到边界时有回弹效果 + changeImageRect({ + instance: o, + check: true + }); + } + }, + /** + * 顺时针翻转图片90° + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + rotateImage: function(e, o) { + rotateImage(e, o, 90); + }, + rotateImage90: function(e, o) { + rotateImage(e, o, 90) + }, + rotateImage270: function(e, o) { + rotateImage(e, o, 270) + }, + // 此处只用于对齐其他平台端的样式参数,防止异常,无作用 + imageStyles: '', + maskStylesList: ['', '', '', ''], + borderStyles: '', + gridStylesList: ['', '', '', ''], + angleStylesList: ['', '', '', ''], + circleBoxStyles: '', + circleStyles: '', +} \ No newline at end of file diff --git a/src/uni_modules/qf-image-cropper/package.json b/src/uni_modules/qf-image-cropper/package.json new file mode 100644 index 0000000..f101c5b --- /dev/null +++ b/src/uni_modules/qf-image-cropper/package.json @@ -0,0 +1,81 @@ +{ + "id": "qf-image-cropper", + "displayName": "图片裁剪插件", + "version": "2.2.5", + "description": "图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、定制样式,功能多性能高体验好注释全。", + "keywords": [ + "qf-image-cropper", + "图片裁剪", + "图片编辑", + "头像裁剪", + "小程序" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, +"dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "u" + }, + "H5-pc": { + "Chrome": "u", + "IE": "u", + "Edge": "u", + "Firefox": "u", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "n", + "百度": "n", + "字节跳动": "n", + "QQ": "u", + "钉钉": "n", + "快手": "n", + "飞书": "n", + "京东": "n" + }, + "快应用": { + "华为": "n", + "联盟": "n" + } + } + } + } +} \ No newline at end of file diff --git a/src/uni_modules/qf-image-cropper/readme.md b/src/uni_modules/qf-image-cropper/readme.md new file mode 100644 index 0000000..f39f645 --- /dev/null +++ b/src/uni_modules/qf-image-cropper/readme.md @@ -0,0 +1,97 @@ +# qf-image-cropper +## 图片裁剪插件 +uniapp微信小程序图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、定制样式,功能多性能高体验好注释全。 + +### 平台支持: +1. 支持微信小程序:移动端、PC端、开发者工具 +2. 支持H5平台(2.1.0版本起) +3. 支持APP平台(2.1.5版本起):Android、IOS +4. 其他平台暂未测试兼容性未知 + +### 支持功能: +1. 自定义裁剪尺寸 +2. 定点等比例缩放:移动端以双指触摸中心点为缩放中心点,PC端以鼠标所在点为缩放中心点 +3. 自由拖动:支持限制滑出边界,也支持回弹效果(滑动时可滑出边界,释放时回弹到边界) +4. 图片翻转:在裁剪尺寸非 1:1 的情况下,翻转时宽高无法铺满裁剪区域时,图片会自动放大到合适尺寸 +5. 裁剪生成新图片 +6. 本地选择图片 +7. 可定制样式:可自由选择是否渲染裁剪边框、可伸缩裁剪顶角、参考线 +8. 裁剪圆角图片:圆形、圆角矩形 + +### 属性说明 +| 属性名 | 类型 | 默认值 | 说明 | +|:---|:---|:---|:---| +| src | String | | 图片资源地址 | +| width | Number | 300 | 裁剪宽度 | +| height | Number | 300 | 裁剪高度 | +| showBorder | Boolean | true | 是否绘制裁剪区域边框 | +| showGrid | Boolean | true | 是否绘制裁剪区域网格参考线 | +| showAngle | Boolean | true | 是否展示四个支持伸缩的角 | +| areaScale | Number | 0.3 | 裁剪区域最小缩放倍数 | +| minScale | Number | 1 | 图片最小缩放倍数 | +| maxScale | Number | 5 | 图片最大缩放倍数 | +| checkRange | Boolean | true | 检查图片位置是否超出裁剪边界,如果超出则会矫正位置 | +| backgroundColor | String | | 生成图片背景色:如果裁剪区域没有完全包含在图片中时,不设置该属性则生成图片存在一定的透明块 | +| bounce | Boolean | true | 是否有回弹效果:当 checkRange 为 true 时有效,拖动时可以拖出边界,释放时会弹回边界 | +| rotatable | Boolean | true | 是否支持翻转 | +| reverseRotatable | Boolean | false | 是否支持逆向翻转 | +| choosable | Boolean | true | 是否支持从本地选择素材 | +| gpu | Boolean | false | 是否开启硬件加速,图片缩放过程中如果出现元素的“留影”或“重影”效果,可通过该方式解决或减轻这一问题 | +| angleSize | Number | 20 | 四个角尺寸,单位px | +| angleBorderWidth | Number | 2 | 四个角边框宽度,单位px | +| zIndex | Number/String | | 调整组件层级 | +| radius | Number | | 裁剪图片圆角半径,单位px | +| fileType | String | png | 生成文件的类型,只支持 'jpg' 或 'png'。默认为 'png' | +| delay | Number | 1000 | 图片从绘制到生成所需时间,单位ms
    微信小程序平台使用 `Canvas 2D` 绘制时有效
    如绘制大图或出现裁剪图片空白等情况应适当调大该值,因 `Canvas 2d` 采用同步绘制,需自己把控绘制完成时间 | +| navigation | Boolean | true | 页面是否是原生标题栏:
    H5平台当 showAngle 为 true 时,使用插件的页面在 `page.json` 中配置了 `"navigationStyle": "custom"` 时,必须将此值设为 false ,否则四个可拉伸角的触发位置会有偏差。
    注:因H5平台的窗口高度是包含标题栏的,而屏幕触摸点的坐标是不包含的 | +| @crop | EventHandle | | 剪裁完成后触发,event = { tempFilePath }。在H5平台下,tempFilePath 为 base64 | + +### 基本用法 +``` + + + +``` +通过ref组件实例可在进入页面后直接打开相册选择图片 +``` +mounted() { + this.$refs.qfImageCropper.chooseImage({ sourceType: ['album'] }); +} +``` +### 使用说明 +1.建议在`pages.json`中将引用插件的页面添加一下配置禁止下拉刷新和禁止页面滑动,防止出现性能或页面抖动等问题。 +``` +{ + "enablePullDownRefresh": false, + "disableScroll": true +} +``` +2.建议使用本插件不要设置过大宽高的目标图片尺寸,建议1365x1365以内,否则可能会导致如下问题: +``` +1.界面卡顿,内存占用过高 +2.生成图片失真(模糊) +3.确定裁剪后一直显示 `裁剪中...`,该问题是由 `uni.canvasToTempFilePath` 无法回调导致,不同平台不同设备限制可能有所不同。 +``` +3.如裁剪后的图片存在偏移的问题,请检查是否受自己项目中父组件或全局样式影响。 +4.src属性设置网络图片时,图片资源必须是能触发 `getImageInfo` API 的 success 回调才可用于插件裁剪。因此小程序平台获取网络图片信息需先配置download域名白名单才能生效。 +5.如果组件无法正常渲染且使用了 `v-if` 时,可尝试将 `v-if` 替换为 `v-show` +6.如果App端导入组件后无法正常渲染,请尝试重新运行 \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..11fffd2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@vue/tsconfig/tsconfig.json", + "compilerOptions": { + "sourceMap": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "lib": ["esnext", "dom"], + "types": ["@dcloudio/types"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/unpackage/res/icons/1024x1024.png b/unpackage/res/icons/1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..2d585496ab22ef802372f96cc16be6eedf35414d GIT binary patch literal 24874 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 Io&4kf0MWe&K>z>% literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/120x120.png b/unpackage/res/icons/120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..09ec7dba700e10e220beab49f368b9e7bf92aed0 GIT binary patch literal 2805 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 Ef1yWck^lez literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/144x144.png b/unpackage/res/icons/144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..de311366f436adc2ea51419ae37bca3fd37e680d GIT binary patch literal 3376 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 NSen|H)ERp}_%C^kL0$j= literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/152x152.png b/unpackage/res/icons/152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc29a1d8159f9f3c1d8134e9acd412d30bffaae GIT binary patch literal 3538 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/167x167.png b/unpackage/res/icons/167x167.png new file mode 100644 index 0000000000000000000000000000000000000000..06ff85d7f805eb79179171b3db92c10f4c24bdb7 GIT binary patch literal 3622 zcmdT{_ct317fz4{rE1h_(N;^^kH)lK}d8(9{v2m)W%d84Au{E>*S0$#~U0iOtZ ztjj?cj%SSd7*$&FiyIS@R%2XNr}GSX|JfS7G16bX!X)?h7e@b&g>=keS1lP?Ep8@q zbxrWhkH7rq2IO;4klXU~qqu}k=i^{mulTm1b3=UKW=}d)wDp`a5IEBxC@WU&W_KxU zB_FEr!%$5JCX;?CCS~QtZ~=@<^vPuc?APO$9JNMRP09Zk*tZxR40y#V>&Il2(jDxs zOuvWRF;yW@&%0~V+si?OWfTO!T_N@8&FQ75MTwKEYFf_@C|ki-0%<}X39y$mhuv6-~K}4i}FdG#gp8dRSj_~{=nnV4EcfOihtE`i$zW?proQ2l0ybb1uvcOYMH=+ zOOmyanE>{cGi#g8l}O)1mxk6os!#pz5gz$v!wV7uiy3K$AS;P!byU+fp<6c1(U5WvN8~lkglyR9LZt0n?GO!Kyf`e?`y5=oR{^vqAf*^qBxt-d+NfZ9l9o#AO_+Pdn z{qwS+(gEGJ)_GKgHl?{blw(AARZ|40Uz^(y9 zt<7a4WJl1XRS2l>1*ymYyyifU*qHG0(v#b_`|%qjw}HXDv|sbK9S!ul5qn)IZ=*b| z^ppTi*aW)=byt?}>G8%M3(=RlkbA#a!g-uI9HOMnurA@mM8o2OIw@uTYdI`adn4pF z$r*sY5FfF;6v!cbI`7Tz@0?k$y)9~xrrM9cjuxw3s_^aulBe1!|Yl`&Id=m>!!d)XzNl!k^sn0H|TcrQ>AKlZ)zSc?5ny~thJkWOevisp7 z?2l`sEEmH!&i$pktR3>GTR2Y)G@hWFFeu)Uqm&Tz0*ltQDt46JKI=O;^sCJfeY7)% zbeWRe@}g@GCABx^PuPjQg;9=^gy`#4Z$q|p7u>5xsGQ5QfT0;y6Uzr$m7M(66-x)I z=?z(Ib*f-8t*O~s1|_vPMZn`#1lm#B8@;sKm_5s^nP?&H8`!*&OmzL3tC?xa2t$9E z)flYarM|avYeOce)qE;09?l>s+G4uw=lX{<=b$*=191^E7bdmm85^LIF9X~8BWXfhK%R$TlYyY9?p&ux4wm;hC>jp)6P`i-e-Gw^M> zP*5`iIhfEIsOFJIO^WgAv|ecDB2HMhSeP1K$oksoflTimDv0Ck_j*a$cIDc*7+;6{q(P++Mj&~rtI4FJ~ z^<*np=@?!p?x9R7(c^sLPg+GIqjXH`8a_I_gX zGn@SRf~)4HvVG(c@+`C8^-~lh$_b~Z(-S=8dt={)O82959`*eh=)A<(T2XTQas~c4E_@49EgW`-=rFs6 z3!)m2YE+Nxg=1vBr*3r3lOpFXfls7X8;UxZ8q#UswwY($qemU& zl7(F+p27~JdsGA*I*l2_#>$b-2Mb(OT!zQP^-*wqXol0SG`v#Q1ffjxDeT=x0*QjD ze;_xr6ezaHQ~K@2L$pa7LS^AvaxZ5N*fr@4hlT9Xd%hfUj>6a|*0C<(e++a4J$Zr+1U-L(eQbBPXM>Dr)TRF`kl^ zUjMo=T%K9!%|re&Xwz5sZ(8eOv-Z5LlxMuaNt7@66P;!JiF3F2soaW8y)QA(-d{6U0JY433gK)9+*VyjuP1_Ek^MJH_^i9eSY~vB-uGRd6NpeFUDY z)-dla(CIyw#q;=jWB2z$7+ct_EVpd(fZ@?yu^b6=Lr5)lCuaCx-f*=e=v;y(HkmDI z)Y+Yufk+9qMID&0vE2Qa0*2n1FqXm&oJ-WUU&Ht!7%zY0K^4D!`l3%6^0%G*!ZqJA z)yT+@w_6UXdYQe#AUMTZo%fUUj@B--=ij_raV1V{NNjeB@;kj{t@|T+ZjJvON?*-1eB}ae?eySyS+C@Zhw}eB82dR$7S@3`JKWBtw2{SAzu9^}PNtb8F zSh3=tcS35M4Ev)BX82l_AX${w>ah}*!jSqij)4~D>eE!c=P6PHjAkn=ch|IMM2Zs2 z%=A#9;$)FHZ7uuNKdKKo2ShBg4>fOKf_~>`>Nh)Lc77EuDy)V)6gAG3<;t-R9E&!WgC9tBXWQ+IOzd-O3KQ?uG4bgFm2cxSLUKd|5)Wr$u(zlMSK} z^!NkY8FY!+%vb%Mt7jvDXYTz&F|-*ns_#C7$Z68LGScwG34lKi@iI{51aFcnVg57^am3MU$2ZmPDY zf@3w1Er=z*%xywt23`3$;|*WlJi$oEjD1ca6a^FcbtfSo(Xdno^Ye)SP<^Gt8P3!w zf7xl?37guAb04!^%@oTup&P~F+=h?8#G)4T6v5)&5rJ39o2g`ZFTJ~AShQ4zgMc)r zbK$y6Z|+9zS^6N+j=k*ZGbrOm8 zC00~r5DW2(2!-S5tm)@gy%knnKhe7Ku`J$KjIbQ0uKn%=(Oi?1;4Eo-TRbE)MdjmE zQtsnnr<8xS>nkac*O&jA=0jAUX|+%4y=gj{`gV=5+?m(b#dtsM)v*47^`%R% z(Hc$t(!03`k!gN1SDGHJbb?O<&t><=thddSkzgTJ>x0L{01Gp`0p?=f5xOIvr9|U? zc}>Lq7CIh!K?glZg6(^AG&qhIaev#@}5B+cT7r2 x`23y!M`#J_1jq@e^yu%UTus*C;5(tcvHH9Yh9T5@E*?JsOv^yC^095`{{Tf~1kL~e literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/180x180.png b/unpackage/res/icons/180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..62e19e0026923a490c09acef42c6eefc974dd23d GIT binary patch literal 4094 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/20x20.png b/unpackage/res/icons/20x20.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7dd570cfd0aedb672e17ae6ea431047abdb98e GIT binary patch literal 471 zcmV;|0Vw{7P)z85CSnkT5)u)V3M2|l6Bo6p zO+wTvXc4`G@GbNXav4G3#@Yozkkq0lY79or${rk;nWlMYZ2Y&lkr1;`m_^auoO{ka ze1GSj!@W^_c`(+h702 zngHL;2it#);nRFt;_3Ym`?1EO*-&|+gKC-ebrxUH(@$}=32-?R6bDYwmf+rW@L_P2 zqZ4#?1;17%|C!8_Ah5E~q=(gSJe(o5o3%P~vl|m08l|wx_bR1)xbCjKL7+WJ`XEcM zK(wjP;qW;5FGLYL5}|MPD#cuAQT92x4_g3kVg3D2?_U7MaVv+?_z5Y{gEf)`4KmQ7C+Q51%s(yILuim{O>pfT8@CZ<}Al8Au?8Vw6I zK^Ml2iT(gx`UBj#c3~omx-xO0E=X!(f~GN1t5_*mTA-BD7Q%-}g;MQxacG7KmIat5 z#-3y{@0__a&%EcJJ2M7#%d047D5a{(3Is414CRLc6=((e??O!*zH;wDXuT}@*#kIn z4y<-C+reT3vkfeE**?4kzwZxFqY1ih!&Wm)jzLei1~`2Y_8$SI;K_Yh%7V2TS})0Y zzYi|l0J{UmBQQS$iwiK5ma)-KC7k~H345Brbqp5fH0btPxN--!S)i|1ZUQhj2@^5V zb^8QZD8P${QU!+-cGSt^2*V-myvqxoHW+*du|CO-hGiOxp%i@X zg?vtj(RXj+tEL;8q2rn~0_a@=B%_dy%Y!wzB{vb1l763+Qt#XicYRRfTnCztL+*!Y zw-?&4ijEIJ_^lqAUxtwo^ar4^S#sHVFd88_1gT-k`F$`HTnDNOkXV@`mv@!RZavUe z1D!XarBlW@oN{gPfinrMP5p+az?8@&9~fD$ok_FF}%E9RL6T M07*qoM6N<$g6tq6cmMzZ literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/40x40.png b/unpackage/res/icons/40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb9a263200febebb52ec877a1f5f6a5f4354faf GIT binary patch literal 966 zcmV;%13CPOP)7j?9px!Ddq79=BqLi{ME7BHeQCrAuveI&C8kf=O;mmO6dT$%I zXoCBP;eOxw&N=hDXZ!BGN@&yU5HYLJu;pJP{8)-5#sR?uG%6F&s7yekG69V$<^gSg zyvH~@DB=4a3W{H}EEcfYA<+r(2{6h54ksie!mG#7-SL+Jw;qDY`NFO|3zcVJV<|Ys zfFnuVfX%Mowsg(U02Nrh4U*l$?GM1wUFs_F4p_GntXAPS)x(t|GXAAY+M}J&-3jSa z#HbDh;q!a&_duXm^dInpzf0KdO&aDAfFZEjpkT2qDmwr@ozh>l3g#@8e)VN_7rmdO z0A1jnCa3(_T{yf0oa4YX9-MA)rhv->9xvn-K~4FO0D-0#YCkg>c50N7sdM1Q*DK&NDJ6pul6%?Bw*1>7@aI*SC0Wv&%3h< zVfA)l4-dhvl~7nB;~hRNTuURII{;lD;A87A0Jgn`!G4H~7k*~0xW?IG$r@SjV=Fwk zs%|^b4=HKVcO*eZuJi+6G=E2u3!dMDi8CM=)P%L?;Lsqvdn^6S9C2M(A~z4fwc}!x zq7}XV0Nfei$&|6^-5WW6lHE{x0XFZ0(69za|Cnj6mtZMrVlgk@AmcrqP<=_;uG0tS z4@%$V0Y#C0y3=K>p%$jk3*X2DcyV7BML&}?J(sp(fmK`8qgQ?cf&z0P_P(g zEKpB(O9PD05cWWydU-s$4*R$K2H?nzGIyD@{oQb@Ot%^HSBPW9J58K_6SCEPMn>>M zGrWExV;(Pr^j|LZ0b3ijDJr6yWzgr>mXAt=nT67?t$_5Y(r;;yfE_*o8CkPwlSHQZ zWx(Jdw7=Ds5A;FB34QQcgrDnnU-EtHaMW)9Q`hG4x zxfjNI)MecrVv6-Nr&!u`Rbt^=!`(NBM=!ErQnTPwyVw}{i$qy=9@O3X4ZxQVzZ=rX zVg&_w7S15I&xU{W76&&@gYS*VK)yGSk_x$VMIA-IYbCZnef$RxtR|pQnSe%R o0veSGXjCSkQCW0f1Y$>lZ=DAKeb$*vMF0Q*07*qoM6N<$g3~F!nE(I) literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/58x58.png b/unpackage/res/icons/58x58.png new file mode 100644 index 0000000000000000000000000000000000000000..f237fdf9a428890656f93f2f981121bbbb6a9ea1 GIT binary patch literal 1362 zcmV-Y1+DstP)P`b{H4_n%C1^FQDH&iUVSzVCeJWUTns>NxJllNa>n-3Cvn z+u#Xx8$6+IgD2E&@PxVzGe&6U4e51WB?NL+F4zLmDU}Q4LLeKm^B|`H0y&UZ2>t*R z6hT%tRjzn}Wzfe9_d6mka{vG;zATj{a zsC=||OoYW_FnnI@hR&PEbroizu_&~h(1lj6G<&fu*ifVMf9->CNartxb*^|Wl+K5| zSt|ei$I#mb8Geb!!V1bcTRxNx7u*QS?M+unA`(6dTxhY7&wWmzSmPFoXup}|&| zoB)58%2%vVh2FkSPag3&9QfMockL7KvhA))5yw-2lZ5sZBj=#-*O&RxETvnv`?m7cy3vGu;$xR87mUHdn+-i)|q-|&A zeXw|y+8&R?fv@a+8Z&N@3_8D9<$Ic7&H{U1i&x9E%^Y zAf%#pm!nID`l0@i%7xnXI1jZ$Zh@44*U)+rmQ_PmK=(V?>)37j8I8x(^>10Q@D_ON z1>L^49Zvn`=#r^P+3%7O4#Bgps9aZr?BmI^9BPN$d{}Z@f{TP@HV^;k*sZhBi7^Ou z=;h$Lr(x+D-M)6Gd>AJ@z6Bn9M&&--CLb>u!B#y!2ZB<}BnutthdrM<_sMjQX{P17 zYONldgCRJ&KTU5LaK}R`7a5f7URTbY_P&*)$uwAHJXS*Bl|VH^BELN8u`BYV@^-T8>l9X}wYWirlnO4cn+ z5;`#^h5blG+LK{QiYZ7hG}t0>;e@(fFfriwR7K0=iohd1?msl*PGEO9R4A#8ToFYEr6B1zt@1f} zvMRb8Y`ecsS1A_wv!Ur|f*QRndu4eQv>aE>d)p-L4t*!_7;Ke2^wLnmrv9LM?^HAg zx*bL^L;ijBgG)NSyDx(%LCx4{$YHh4na22ZHl;0bjbd_bDZSXUtYFP@fq Ut?!z|_5c6?07*qoM6N<$f>oNEF8}}l literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/60x60.png b/unpackage/res/icons/60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f50dc90aef388fc9305cc9a0ca48def8398602 GIT binary patch literal 1433 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≫%M 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 L%&zL9&*Ogp?#dq? literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/96x96.png b/unpackage/res/icons/96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..2b194681cc212944ae333489cb4ba7070b0c5576 GIT binary patch literal 2236 zcmb`J`9Bkk1IOnIn_Ce*j^y|<3?rr7*T^wPR#v7^l3R`mbB2m7k7KS7p_SuXqQVf` zl#FsVGefzJ9K(#K=YM#9cz@on_kZxogge;^17(2#06^FdX65?F-v1(S?9a~NqtE@3 zU?}Wr1OOn?^DkU^V3AV*fIzUFmAQLN$!h7RXxoRX}SCGgyx$Z(Wgnou&PEDVGdtYHCl^OboVR zH6|;X?S+yz!Pc)1oR9d`%$N>OaMkxIgF`u%DrLAGQQQ4=;5;j4h z(}FPz;H4cXCN-aK8705+1Kjb**W54uwey6?9e(ma+V3J?WP+}5u&x5-<0~}EM1Wfp zV(#+(1MR-O^sS1G;B)IE)C*7jqiffS>HL~ncvk!&LI;Xwf8y3T?gV%vGdL{7iua=5 zMvG^gN-oW;ToBq;7-gY3&V!LIG?U4frbL3t`!baB(G)~#{)P(igDL+Rj!vl7uzEl5 z0#OKcI22nmOL|eMV-OJaa|Rf*!oG>U>@bxoX=-?(?4j1(0aPoJ7Lp)k1R)qBe?l%D+9 zp_VB5?b|4(QMI4aIhh+49l;eW!b|rbk?We*Mej?`PyeJBWr5{W%8XxNM+yqc8;?IU zU<5RsBCfYjmn&uLO^#_`EVzHJt z3O{fP)&3rU&nL2}NvRjjs;_kj7#IA^R9H*v<;#eo{c;#5i!(hyjm%43&Y0ypy3wkd z1Kpz%k?b8CC|4}Cml3RG(5g)~Ca#yDF?Mc@B1&QhFt6%;|xwlOj^-^++0N z)^cXO<#PIk=&1VsqD8^op6*5#ZjRsCSYk<^@v>qlxE=5$P|&tjTLsg?3|;?Dp8}T7 zcW3!2EAFd%Mh+UWnS~=dBIC1UNR`BLTIY~%F%JH(CsqW4IiWB?$V(a;NwPhlO3zok<(ooZme0UdH7ieyRZA=8 zsEB{$DXRHCJ3JJ+ao|bZ)Ldyp&<-a>{b=UaOv2s^4}9$eGG`*n3l3VR6fi`ci?hbk zhx3&k|JqJTmQ@b%CFmuJo@vvs~SsN3M<2o=oFqUahxHK z#&J7YnD8?B&H5JTwFANP`4@8P1MDKHPBD^e)QO_gw(S~fha?$`E>Vwmo&}znSf(FM z!r;OJ({F6ODG6k7j>@I$|JSiL#qGCNJc=0H5mkq!G5RxeA%Y8EMLVfAen_vE+K@?E zNn7Dtmj@Sh1y9yrhok6QSvcXgmVyY(9*uP`#(&AQ$`EX6>}r&lxZ82&4#jblt1Z-B zT9EeE*1_eXR27&*|D)U z$XyjgI5I770>a!{u(p3g%WJP)C*WoC@?JLS?{ReC`~V<}7dHW64fEC%~8gHmZ2IF!xAdY*^DFzfPMgvJ F{{bTTJOcm# literal 0 HcmV?d00001 diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..46e36fe --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import uni from "@dcloudio/vite-plugin-uni"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [uni()], +});