From 3cd9c972c3a9336194b18f5518c10fa1a6125055 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 02 Apr 2025 19:47:19 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard
---
src/option/system/dictbiz.js | 416
src/utils/cesium/frustum/CreateFrustum.js | 486
src/router/avue-router.js | 324
src/utils/rem.js | 7
src/views/Home/Footer.vue | 178
src/websocket/index.js | 110
src/utils/cesium/compressImage.js | 74
src/api/system/menu.js | 172
src/components/global/publicTitle.vue | 33
src/utils/staticData/device.js | 466
src/store/modules/user.js | 788
src/api/base/region.js | 84
src/store/index.js | 38
src/utils/module.js | 60
src/api/system/scope.js | 154
src/api/work/process.js | 46
src/api/work/work.js | 130
src/views/Home/components/HomeLeft/InspectionRaskDetails.vue | 387
src/views/Home/useEventOperate/useEventOperate.js | 381
src/api/system/client.js | 78
src/utils/cesium/use-kmz-tsa.js | 1316 +-
src/utils/cesium/kmz.js | 359
src/api/report/report.js | 38
src/mixins/index.js | 86
src/option/tool/formsetting.js | 188
src/api/resource/attach.js | 78
src/mockProdServer.js | 12
src/config/website.js | 154
src/router/views/index.js | 102
src/utils/store.js | 158
src/components/index.js | 33
src/api/home/machineNest.js | 85
src/api/home/index.js | 173
src/utils/cesium/mapUtil.js | 537
src/utils/util.js | 604
src/api/home/aggregation.js | 35
src/utils/date.js | 82
src/api/tool/code.js | 124
src/views/Home/Home.vue | 2
src/api/common.js | 16
src/router/page/index.js | 137
src/views/Home/useUavHome/useUavHome.js | 273
src/api/system/user.js | 240
src/utils/crypto.js | 170
src/error.js | 46
src/api/resource/oss.js | 94
src/views/Home/useEventOperate/EventPopUpBox.vue | 55
src/option/job/jobinfo.js | 1000
src/api/job/jobserver.js | 90
src/api/logs.js | 104
src/mixins/crud.js | 430
src/store/modules/home.js | 59
src/lang/index.js | 46
src/views/Home/useUavHome/DevicePopUpBox.vue | 0
src/directive/selectLoad.js | 18
src/utils/formatter.js | 65
src/utils/websocket/connect-websocket.js | 12
src/utils/staticData/enums.js | 172
src/utils/cesium/AmapMercatorTilingScheme/index.js | 66
src/utils/http/config.js | 101
src/option/tool/codesetting.js | 456
src/utils/auth.js | 26
src/utils/cesium/ImageTrailMaterial.js | 144
src/option/system/dict.js | 414
src/api/system/dept.js | 128
pnpm-lock.yaml | 6793 +++++-------
src/api/system/tenantdatasource.js | 78
src/utils/http/enums.js | 26
src/store/getters.js | 74
src/store/modules/tags.js | 72
src/websocket/util/config.js | 17
src/api/resource/sms.js | 114
src/lang/zh.js | 270
src/permission.js | 110
src/api/system/param.js | 78
src/components/basic-video/plugin.js | 162
src/api/system/tenantpackage.js | 78
src/api/user.js | 290
src/utils/cesium/AmapMercatorTilingScheme/CoordTransform.js | 302
src/api/tool/model.js | 176
src/config/iconList.js | 758
src/option/tool/code.js | 1322 +-
src/router/index.js | 52
src/utils/flow.js | 10
src/utils/websocket/drone-ws-control.js | 249
src/option/user/info.js | 166
src/lang/en.js | 270
src/main.js | 134
src/api/system/dict.js | 142
src/utils/cesium/common.js | 307
src/api/system/role.js | 154
src/api/tool/codesetting.js | 140
src/api/system/topmenu.js | 122
src/debug.js | 50
src/option/job/jobserver.js | 154
src/store/modules/common.js | 182
src/utils/cesium-tsa.js | 1958 +-
src/utils/sm2.js | 14
src/utils/func.js | 556
src/api/flow/flow.js | 196
src/const/tool/model.js | 662
src/axios.js | 390
src/api/tool/datasource.js | 78
src/directive/drag.js | 67
src/api/desk/notice.js | 98
src/api/system/dictbiz.js | 142
src/utils/cesium/compressImage2.js | 60
src/utils/sensitive.js | 144
src/utils/validate.js | 356
src/config/env.js | 4
src/store/modules/dict.js | 64
src/api/system/post.js | 94
package.json | 6
.prettierrc.json | 23
src/api/system/tenant.js | 196
src/store/modules/logs.js | 92
src/api/job/jobinfo.js | 124
117 files changed, 15,262 insertions(+), 15,854 deletions(-)
diff --git a/.prettierrc.json b/.prettierrc.json
index 53cd5bc..aaa321c 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -1,9 +1,24 @@
{
- "printWidth": 120,
+ "printWidth": 100,
"tabWidth": 2,
- "semi": true,
+ "semi": false,
"singleAttributePerLine": false,
"bracketSpacing": true,
"singleQuote": true,
- "arrowParens": "avoid"
-}
+ "arrowParens": "avoid",
+ "endOfLine": "crlf",
+ "bracketSameLine": false,
+ "proseWrap": "preserve",
+ "useTabs": true,
+ "trailingComma": "es5",
+ "overrides": [
+ {
+ "files": "*.scss",
+ "options": {
+ "parser": "scss",
+ "tabWidth": 4,
+ "singleQuote": false
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 0a13a79..de29db4 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,8 @@
"prod": "vite --mode production",
"build:dev": "vite build --mode development",
"build:prod": "vite build --mode production",
- "serve": "vite preview --host"
+ "serve": "vite preview --host",
+ "format": "prettier --write \"src/**/*.+(js|ts|jsx|tsx)\""
},
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
@@ -16,7 +17,6 @@
"@smallwei/avue": "^3.6.2",
"animate.css": "^4.1.1",
"avue-plugin-ueditor": "^1.0.4",
- "@turf/turf": "^6.5.0",
"axios": "^1.8.3",
"cesium": "^1.126.0",
"codemirror": "^5.65.16",
@@ -52,4 +52,4 @@
"vite-plugin-svg-icons": "^2.0.1",
"vite-plugin-vue-setup-extend": "^0.4.0"
}
-}
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2eaf77a..1017b5c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,2913 +1,185 @@
-lockfileVersion: '9.0'
+lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
-importers:
+dependencies:
+ '@element-plus/icons-vue':
+ specifier: ^2.3.1
+ version: 2.3.1(vue@3.5.13)
+ '@saber/nf-design-base-elp':
+ specifier: ^1.3.0
+ version: 1.3.0
+ '@saber/nf-form-design-elp':
+ specifier: ^1.4.1
+ version: 1.4.1(vue@3.5.13)
+ '@saber/nf-form-elp':
+ specifier: ^1.4.4
+ version: 1.4.4
+ '@smallwei/avue':
+ specifier: ^3.6.2
+ version: 3.6.2(element-plus@2.9.3)(vue@3.5.13)
+ '@turf/turf':
+ specifier: ^6.5.0
+ version: 6.5.0
+ animate.css:
+ specifier: ^4.1.1
+ version: 4.1.1
+ avue-plugin-ueditor:
+ specifier: ^1.0.4
+ version: 1.0.4(axios@1.8.3)(vue@3.5.13)
+ axios:
+ specifier: ^1.8.3
+ version: 1.8.3
+ cesium:
+ specifier: ^1.126.0
+ version: 1.126.0
+ codemirror:
+ specifier: ^5.65.16
+ version: 5.65.16
+ crypto-js:
+ specifier: ^4.1.1
+ version: 4.1.1
+ dayjs:
+ specifier: ^1.10.6
+ version: 1.10.6
+ disable-devtool:
+ specifier: ^0.3.8
+ version: 0.3.8
+ echarts:
+ specifier: ^5.6.0
+ version: 5.6.0
+ element-plus:
+ specifier: ^2.9.3
+ version: 2.9.3(vue@3.5.13)
+ highlight.js:
+ specifier: ^11.9.0
+ version: 11.9.0
+ js-base64:
+ specifier: ^3.7.4
+ version: 3.7.4
+ js-cookie:
+ specifier: ^3.0.0
+ version: 3.0.0
+ js-md5:
+ specifier: ^0.7.3
+ version: 0.7.3
+ lodash:
+ specifier: ^4.17.21
+ version: 4.17.21
+ nprogress:
+ specifier: ^0.2.0
+ version: 0.2.0
+ postcss-pxtorem:
+ specifier: ^6.1.0
+ version: 6.1.0(postcss@8.5.3)
+ reconnecting-websocket:
+ specifier: ^4.4.0
+ version: 4.4.0
+ sm-crypto:
+ specifier: ^0.3.13
+ version: 0.3.13
+ vue:
+ specifier: ^3.5.13
+ version: 3.5.13
+ vue-i18n:
+ specifier: ^9.1.9
+ version: 9.1.9(vue@3.5.13)
+ vue-router:
+ specifier: ^4.3.2
+ version: 4.3.2(vue@3.5.13)
+ vue3-clipboard:
+ specifier: ^1.0.0
+ version: 1.0.0(vue@3.5.13)
+ vuex:
+ specifier: ^4.1.0
+ version: 4.1.0(vue@3.5.13)
- .:
- dependencies:
- '@element-plus/icons-vue':
- specifier: ^2.3.1
- version: 2.3.1(vue@3.5.13)
- '@saber/nf-design-base-elp':
- specifier: ^1.3.0
- version: 1.3.0
- '@saber/nf-form-design-elp':
- specifier: ^1.4.1
- version: 1.4.1(vue@3.5.13)
- '@saber/nf-form-elp':
- specifier: ^1.4.4
- version: 1.4.7
- '@smallwei/avue':
- specifier: ^3.6.2
- version: 3.6.3(element-plus@2.9.7(vue@3.5.13))(vue@3.5.13)
- '@turf/turf':
- specifier: ^6.5.0
- version: 6.5.0
- animate.css:
- specifier: ^4.1.1
- version: 4.1.1
- avue-plugin-ueditor:
- specifier: ^1.0.4
- version: 1.0.4(axios@1.8.4)(vue@3.5.13)
- axios:
- specifier: ^1.8.3
- version: 1.8.4
- cesium:
- specifier: ^1.126.0
- version: 1.127.0
- codemirror:
- specifier: ^5.65.16
- version: 5.65.19
- crypto-js:
- specifier: ^4.1.1
- version: 4.2.0
- dayjs:
- specifier: ^1.10.6
- version: 1.11.13
- disable-devtool:
- specifier: ^0.3.8
- version: 0.3.8
- echarts:
- specifier: ^5.6.0
- version: 5.6.0
- element-plus:
- specifier: ^2.9.3
- version: 2.9.7(vue@3.5.13)
- highlight.js:
- specifier: ^11.9.0
- version: 11.11.1
- js-base64:
- specifier: ^3.7.4
- version: 3.7.7
- js-cookie:
- specifier: ^3.0.0
- version: 3.0.5
- js-md5:
- specifier: ^0.7.3
- version: 0.7.3
- lodash:
- specifier: ^4.17.21
- version: 4.17.21
- nprogress:
- specifier: ^0.2.0
- version: 0.2.0
- postcss-pxtorem:
- specifier: ^6.1.0
- version: 6.1.0(postcss@5.2.18)
- sm-crypto:
- specifier: ^0.3.13
- version: 0.3.13
- vue:
- specifier: ^3.5.13
- version: 3.5.13
- vue-i18n:
- specifier: ^9.1.9
- version: 9.14.3(vue@3.5.13)
- vue-router:
- specifier: ^4.3.2
- version: 4.5.0(vue@3.5.13)
- vue3-clipboard:
- specifier: ^1.0.0
- version: 1.0.0(vue@3.5.13)
- vuex:
- specifier: ^4.1.0
- version: 4.1.0(vue@3.5.13)
- devDependencies:
- '@vitejs/plugin-vue':
- specifier: ^5.0.4
- version: 5.2.3(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0))(vue@3.5.13)
- '@vue/compiler-sfc':
- specifier: ^3.4.27
- version: 3.5.13
- prettier:
- specifier: ^2.8.7
- version: 2.8.8
- sass:
- specifier: ^1.85.1
- version: 1.86.0
- terser:
- specifier: ^5.31.1
- version: 5.39.0
- unplugin-auto-import:
- specifier: ^0.11.2
- version: 0.11.5(@vueuse/core@9.13.0(vue@3.5.13))(rollup@4.37.0)
- vite:
- specifier: ^5.2.12
- version: 5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)
- vite-plugin-compression:
- specifier: ^0.5.1
- version: 0.5.1(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0))
- vite-plugin-svg-icons:
- specifier: ^2.0.1
- version: 2.0.1(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0))
- vite-plugin-vue-setup-extend:
- specifier: ^0.4.0
- version: 0.4.0(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0))
+devDependencies:
+ '@vitejs/plugin-vue':
+ specifier: ^5.0.4
+ version: 5.0.4(vite@5.2.12)(vue@3.5.13)
+ '@vue/compiler-sfc':
+ specifier: ^3.4.27
+ version: 3.4.27
+ prettier:
+ specifier: ^2.8.7
+ version: 2.8.7
+ sass:
+ specifier: ^1.85.1
+ version: 1.85.1
+ terser:
+ specifier: ^5.31.1
+ version: 5.31.1
+ unplugin-auto-import:
+ specifier: ^0.11.2
+ version: 0.11.2
+ vite:
+ specifier: ^5.2.12
+ version: 5.2.12(sass@1.85.1)(terser@5.31.1)
+ vite-plugin-compression:
+ specifier: ^0.5.1
+ version: 0.5.1(vite@5.2.12)
+ vite-plugin-svg-icons:
+ specifier: ^2.0.1
+ version: 2.0.1(vite@5.2.12)
+ vite-plugin-vue-setup-extend:
+ specifier: ^0.4.0
+ version: 0.4.0(vite@5.2.12)
packages:
- '@amap/amap-jsapi-loader@1.0.1':
+ /@amap/amap-jsapi-loader@1.0.1:
resolution: {integrity: sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==}
+ dev: false
- '@antfu/utils@0.7.10':
- resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
+ /@antfu/utils@0.5.2:
+ resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==}
+ dev: true
- '@babel/helper-string-parser@7.25.9':
+ /@babel/helper-string-parser@7.25.9:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.25.9':
+ /@babel/helper-validator-identifier@7.25.9:
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.27.0':
+ /@babel/parser@7.27.0:
resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
engines: {node: '>=6.0.0'}
hasBin: true
-
- '@babel/runtime@7.27.0':
- resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.27.0':
- resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
- engines: {node: '>=6.9.0'}
-
- '@bpmn-io/diagram-js-ui@0.2.3':
- resolution: {integrity: sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==}
-
- '@cesium/engine@15.0.0':
- resolution: {integrity: sha512-jimj7khIf/mBkejsMZ+n6Y9PPvXh4QmWKkz2ekFz59icDCeGj8ZJrzl5p0caqiK/372mnHOwmYFWYEwThEw2ew==}
- engines: {node: '>=14.0.0'}
-
- '@cesium/widgets@11.0.0':
- resolution: {integrity: sha512-4ELgFuU2uwkvD6NI9MHIWNFKjmyI9wlDzZ9NuoPFSnUhf9XfVBI8sJekGx5dijxjK2S3aCuxB3dtUkdDZEsQmA==}
- engines: {node: '>=14.0.0'}
-
- '@ctrl/tinycolor@3.6.1':
- resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
- engines: {node: '>=10'}
-
- '@element-plus/icons-vue@2.3.1':
- resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==}
- peerDependencies:
- vue: ^3.2.0
-
- '@esbuild/aix-ppc64@0.21.5':
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.21.5':
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.21.5':
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.21.5':
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.21.5':
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.21.5':
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.21.5':
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.21.5':
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.21.5':
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.21.5':
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.21.5':
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.21.5':
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.21.5':
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.21.5':
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.21.5':
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.21.5':
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.21.5':
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-x64@0.21.5':
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-x64@0.21.5':
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/sunos-x64@0.21.5':
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.21.5':
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.21.5':
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.21.5':
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
- '@floating-ui/core@1.6.9':
- resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
-
- '@floating-ui/dom@1.6.13':
- resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
-
- '@floating-ui/utils@0.2.9':
- resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
-
- '@intlify/core-base@9.14.3':
- resolution: {integrity: sha512-nbJ7pKTlXFnaXPblyfiH6awAx1C0PWNNuqXAR74yRwgi5A/Re/8/5fErLY0pv4R8+EHj3ZaThMHdnuC/5OBa6g==}
- engines: {node: '>= 16'}
-
- '@intlify/message-compiler@9.14.3':
- resolution: {integrity: sha512-ANwC226BQdd+MpJ36rOYkChSESfPwu3Ss2Faw0RHTOknYLoHTX6V6e/JjIKVDMbzs0/H/df/rO6yU0SPiWHqNg==}
- engines: {node: '>= 16'}
-
- '@intlify/shared@9.14.3':
- resolution: {integrity: sha512-hJXz9LA5VG7qNE00t50bdzDv8Z4q9fpcL81wj4y4duKavrv0KM8YNLTwXNEFINHjTsfrG9TXvPuEjVaAvZ7yWg==}
- engines: {node: '>= 16'}
-
- '@jridgewell/gen-mapping@0.3.8':
- resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/set-array@1.2.1':
- resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/source-map@0.3.6':
- resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
-
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
- '@jridgewell/trace-mapping@0.3.25':
- resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
-
- '@nodelib/fs.scandir@2.1.5':
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.stat@2.0.5':
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.walk@1.2.8':
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
-
- '@parcel/watcher-android-arm64@2.5.1':
- resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm64]
- os: [android]
-
- '@parcel/watcher-darwin-arm64@2.5.1':
- resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm64]
- os: [darwin]
-
- '@parcel/watcher-darwin-x64@2.5.1':
- resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
- engines: {node: '>= 10.0.0'}
- cpu: [x64]
- os: [darwin]
-
- '@parcel/watcher-freebsd-x64@2.5.1':
- resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
- engines: {node: '>= 10.0.0'}
- cpu: [x64]
- os: [freebsd]
-
- '@parcel/watcher-linux-arm-glibc@2.5.1':
- resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm]
- os: [linux]
- libc: [glibc]
-
- '@parcel/watcher-linux-arm-musl@2.5.1':
- resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm]
- os: [linux]
- libc: [musl]
-
- '@parcel/watcher-linux-arm64-glibc@2.5.1':
- resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
-
- '@parcel/watcher-linux-arm64-musl@2.5.1':
- resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm64]
- os: [linux]
- libc: [musl]
-
- '@parcel/watcher-linux-x64-glibc@2.5.1':
- resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
- engines: {node: '>= 10.0.0'}
- cpu: [x64]
- os: [linux]
- libc: [glibc]
-
- '@parcel/watcher-linux-x64-musl@2.5.1':
- resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
- engines: {node: '>= 10.0.0'}
- cpu: [x64]
- os: [linux]
- libc: [musl]
-
- '@parcel/watcher-win32-arm64@2.5.1':
- resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
- engines: {node: '>= 10.0.0'}
- cpu: [arm64]
- os: [win32]
-
- '@parcel/watcher-win32-ia32@2.5.1':
- resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
- engines: {node: '>= 10.0.0'}
- cpu: [ia32]
- os: [win32]
-
- '@parcel/watcher-win32-x64@2.5.1':
- resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
- engines: {node: '>= 10.0.0'}
- cpu: [x64]
- os: [win32]
-
- '@parcel/watcher@2.5.1':
- resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
- engines: {node: '>= 10.0.0'}
-
- '@protobufjs/aspromise@1.1.2':
- resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
-
- '@protobufjs/base64@1.1.2':
- resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
-
- '@protobufjs/codegen@2.0.4':
- resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
-
- '@protobufjs/eventemitter@1.1.0':
- resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
-
- '@protobufjs/fetch@1.1.0':
- resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
-
- '@protobufjs/float@1.0.2':
- resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
-
- '@protobufjs/inquire@1.1.0':
- resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
-
- '@protobufjs/path@1.1.2':
- resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
-
- '@protobufjs/pool@1.1.0':
- resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
-
- '@protobufjs/utf8@1.1.0':
- resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
-
- '@rollup/pluginutils@5.1.4':
- resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/rollup-android-arm-eabi@4.37.0':
- resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==}
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.37.0':
- resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==}
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-darwin-arm64@4.37.0':
- resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==}
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.37.0':
- resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==}
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-freebsd-arm64@4.37.0':
- resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.37.0':
- resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==}
- cpu: [x64]
- os: [freebsd]
-
- '@rollup/rollup-linux-arm-gnueabihf@4.37.0':
- resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==}
- cpu: [arm]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-arm-musleabihf@4.37.0':
- resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==}
- cpu: [arm]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-arm64-gnu@4.37.0':
- resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==}
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-arm64-musl@4.37.0':
- resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==}
- cpu: [arm64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-loongarch64-gnu@4.37.0':
- resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==}
- cpu: [loong64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
- resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==}
- cpu: [ppc64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-riscv64-gnu@4.37.0':
- resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==}
- cpu: [riscv64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-riscv64-musl@4.37.0':
- resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==}
- cpu: [riscv64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-linux-s390x-gnu@4.37.0':
- resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==}
- cpu: [s390x]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-x64-gnu@4.37.0':
- resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==}
- cpu: [x64]
- os: [linux]
- libc: [glibc]
-
- '@rollup/rollup-linux-x64-musl@4.37.0':
- resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==}
- cpu: [x64]
- os: [linux]
- libc: [musl]
-
- '@rollup/rollup-win32-arm64-msvc@4.37.0':
- resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==}
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.37.0':
- resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==}
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.37.0':
- resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==}
- cpu: [x64]
- os: [win32]
-
- '@saber/nf-design-base-elp@1.3.0':
- resolution: {integrity: sha512-sKUkhErjggUjH+hoBTVpcUC7j38KAkGUloIVXIRl6YP1WT14QXvtf3iu8iCIOBO8iPKHgrBiq4h80UW9+qqbjQ==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-design-base-elp/-/1.3.0/nf-design-base-elp-1.3.0.tgz}
-
- '@saber/nf-form-design-elp@1.4.1':
- resolution: {integrity: sha512-O4/ZkOIyxqOplHsRlP/LfDlhCbHNtIrS6n+8+N+0JLYb76a/14X07abAHlpsAg2p0yY62OuuRBu8mpIvh6C40Q==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-form-design-elp/-/1.4.1/nf-form-design-elp-1.4.1.tgz}
- engines: {node: ^18.0.0 || >=20.0.0}
-
- '@saber/nf-form-elp@1.4.7':
- resolution: {integrity: sha512-7//t1GSlUg3BUAQcfdN6Icd1GLhdDHDCpefPcF7lqrUTV96K6m6n9h7z4t7bS9wwcGh6AJFGY3Rolv9oTXiqjg==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-form-elp/-/1.4.7/nf-form-elp-1.4.7.tgz}
- engines: {node: ^18.0.0 || >=20.0.0}
-
- '@smallwei/avue@3.6.3':
- resolution: {integrity: sha512-d0OiyA0i7W8PM4KhrSq+7TsrtWXghl+9MyB2oPEUYvDL4oWQqKOqXUyzK2bRgEnVktfXRv+Jrj1KLflb92gxGA==}
- peerDependencies:
- element-plus: '>=2.2.0'
- vue: '>=3.2.0'
-
- '@sxzz/popperjs-es@2.11.7':
- resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
-
- '@transloadit/prettier-bytes@0.0.7':
- resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
-
- '@trysound/sax@0.2.0':
- resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
- engines: {node: '>=10.13.0'}
-
- '@turf/along@6.5.0':
- resolution: {integrity: sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==}
-
- '@turf/angle@6.5.0':
- resolution: {integrity: sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==}
-
- '@turf/area@6.5.0':
- resolution: {integrity: sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==}
-
- '@turf/bbox-clip@6.5.0':
- resolution: {integrity: sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==}
-
- '@turf/bbox-polygon@6.5.0':
- resolution: {integrity: sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==}
-
- '@turf/bbox@6.5.0':
- resolution: {integrity: sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==}
-
- '@turf/bearing@6.5.0':
- resolution: {integrity: sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==}
-
- '@turf/bezier-spline@6.5.0':
- resolution: {integrity: sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==}
-
- '@turf/boolean-clockwise@6.5.0':
- resolution: {integrity: sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==}
-
- '@turf/boolean-contains@6.5.0':
- resolution: {integrity: sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==}
-
- '@turf/boolean-crosses@6.5.0':
- resolution: {integrity: sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==}
-
- '@turf/boolean-disjoint@6.5.0':
- resolution: {integrity: sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==}
-
- '@turf/boolean-equal@6.5.0':
- resolution: {integrity: sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==}
-
- '@turf/boolean-intersects@6.5.0':
- resolution: {integrity: sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==}
-
- '@turf/boolean-overlap@6.5.0':
- resolution: {integrity: sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==}
-
- '@turf/boolean-parallel@6.5.0':
- resolution: {integrity: sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==}
-
- '@turf/boolean-point-in-polygon@6.5.0':
- resolution: {integrity: sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==}
-
- '@turf/boolean-point-on-line@6.5.0':
- resolution: {integrity: sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==}
-
- '@turf/boolean-within@6.5.0':
- resolution: {integrity: sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==}
-
- '@turf/buffer@6.5.0':
- resolution: {integrity: sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==}
-
- '@turf/center-mean@6.5.0':
- resolution: {integrity: sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==}
-
- '@turf/center-median@6.5.0':
- resolution: {integrity: sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==}
-
- '@turf/center-of-mass@6.5.0':
- resolution: {integrity: sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==}
-
- '@turf/center@6.5.0':
- resolution: {integrity: sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==}
-
- '@turf/centroid@6.5.0':
- resolution: {integrity: sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==}
-
- '@turf/circle@6.5.0':
- resolution: {integrity: sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==}
-
- '@turf/clean-coords@6.5.0':
- resolution: {integrity: sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==}
-
- '@turf/clone@6.5.0':
- resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==}
-
- '@turf/clusters-dbscan@6.5.0':
- resolution: {integrity: sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==}
-
- '@turf/clusters-kmeans@6.5.0':
- resolution: {integrity: sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==}
-
- '@turf/clusters@6.5.0':
- resolution: {integrity: sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==}
-
- '@turf/collect@6.5.0':
- resolution: {integrity: sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==}
-
- '@turf/combine@6.5.0':
- resolution: {integrity: sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==}
-
- '@turf/concave@6.5.0':
- resolution: {integrity: sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==}
-
- '@turf/convex@6.5.0':
- resolution: {integrity: sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==}
-
- '@turf/destination@6.5.0':
- resolution: {integrity: sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==}
-
- '@turf/difference@6.5.0':
- resolution: {integrity: sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==}
-
- '@turf/dissolve@6.5.0':
- resolution: {integrity: sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==}
-
- '@turf/distance-weight@6.5.0':
- resolution: {integrity: sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==}
-
- '@turf/distance@6.5.0':
- resolution: {integrity: sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==}
-
- '@turf/ellipse@6.5.0':
- resolution: {integrity: sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==}
-
- '@turf/envelope@6.5.0':
- resolution: {integrity: sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==}
-
- '@turf/explode@6.5.0':
- resolution: {integrity: sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==}
-
- '@turf/flatten@6.5.0':
- resolution: {integrity: sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==}
-
- '@turf/flip@6.5.0':
- resolution: {integrity: sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==}
-
- '@turf/great-circle@6.5.0':
- resolution: {integrity: sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==}
-
- '@turf/helpers@6.5.0':
- resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==}
-
- '@turf/hex-grid@6.5.0':
- resolution: {integrity: sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==}
-
- '@turf/interpolate@6.5.0':
- resolution: {integrity: sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==}
-
- '@turf/intersect@6.5.0':
- resolution: {integrity: sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==}
-
- '@turf/invariant@6.5.0':
- resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==}
-
- '@turf/isobands@6.5.0':
- resolution: {integrity: sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==}
-
- '@turf/isolines@6.5.0':
- resolution: {integrity: sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==}
-
- '@turf/kinks@6.5.0':
- resolution: {integrity: sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==}
-
- '@turf/length@6.5.0':
- resolution: {integrity: sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==}
-
- '@turf/line-arc@6.5.0':
- resolution: {integrity: sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==}
-
- '@turf/line-chunk@6.5.0':
- resolution: {integrity: sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==}
-
- '@turf/line-intersect@6.5.0':
- resolution: {integrity: sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==}
-
- '@turf/line-offset@6.5.0':
- resolution: {integrity: sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==}
-
- '@turf/line-overlap@6.5.0':
- resolution: {integrity: sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==}
-
- '@turf/line-segment@6.5.0':
- resolution: {integrity: sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==}
-
- '@turf/line-slice-along@6.5.0':
- resolution: {integrity: sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==}
-
- '@turf/line-slice@6.5.0':
- resolution: {integrity: sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==}
-
- '@turf/line-split@6.5.0':
- resolution: {integrity: sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==}
-
- '@turf/line-to-polygon@6.5.0':
- resolution: {integrity: sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==}
-
- '@turf/mask@6.5.0':
- resolution: {integrity: sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==}
-
- '@turf/meta@6.5.0':
- resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==}
-
- '@turf/midpoint@6.5.0':
- resolution: {integrity: sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==}
-
- '@turf/moran-index@6.5.0':
- resolution: {integrity: sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==}
-
- '@turf/nearest-point-on-line@6.5.0':
- resolution: {integrity: sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==}
-
- '@turf/nearest-point-to-line@6.5.0':
- resolution: {integrity: sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==}
-
- '@turf/nearest-point@6.5.0':
- resolution: {integrity: sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==}
-
- '@turf/planepoint@6.5.0':
- resolution: {integrity: sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==}
-
- '@turf/point-grid@6.5.0':
- resolution: {integrity: sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==}
-
- '@turf/point-on-feature@6.5.0':
- resolution: {integrity: sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==}
-
- '@turf/point-to-line-distance@6.5.0':
- resolution: {integrity: sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==}
-
- '@turf/points-within-polygon@6.5.0':
- resolution: {integrity: sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==}
-
- '@turf/polygon-smooth@6.5.0':
- resolution: {integrity: sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==}
-
- '@turf/polygon-tangents@6.5.0':
- resolution: {integrity: sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==}
-
- '@turf/polygon-to-line@6.5.0':
- resolution: {integrity: sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==}
-
- '@turf/polygonize@6.5.0':
- resolution: {integrity: sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==}
-
- '@turf/projection@6.5.0':
- resolution: {integrity: sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==}
-
- '@turf/random@6.5.0':
- resolution: {integrity: sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==}
-
- '@turf/rectangle-grid@6.5.0':
- resolution: {integrity: sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==}
-
- '@turf/rewind@6.5.0':
- resolution: {integrity: sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==}
-
- '@turf/rhumb-bearing@6.5.0':
- resolution: {integrity: sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==}
-
- '@turf/rhumb-destination@6.5.0':
- resolution: {integrity: sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==}
-
- '@turf/rhumb-distance@6.5.0':
- resolution: {integrity: sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==}
-
- '@turf/sample@6.5.0':
- resolution: {integrity: sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==}
-
- '@turf/sector@6.5.0':
- resolution: {integrity: sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==}
-
- '@turf/shortest-path@6.5.0':
- resolution: {integrity: sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==}
-
- '@turf/simplify@6.5.0':
- resolution: {integrity: sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==}
-
- '@turf/square-grid@6.5.0':
- resolution: {integrity: sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==}
-
- '@turf/square@6.5.0':
- resolution: {integrity: sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==}
-
- '@turf/standard-deviational-ellipse@6.5.0':
- resolution: {integrity: sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==}
-
- '@turf/tag@6.5.0':
- resolution: {integrity: sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==}
-
- '@turf/tesselate@6.5.0':
- resolution: {integrity: sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==}
-
- '@turf/tin@6.5.0':
- resolution: {integrity: sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==}
-
- '@turf/transform-rotate@6.5.0':
- resolution: {integrity: sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==}
-
- '@turf/transform-scale@6.5.0':
- resolution: {integrity: sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==}
-
- '@turf/transform-translate@6.5.0':
- resolution: {integrity: sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==}
-
- '@turf/triangle-grid@6.5.0':
- resolution: {integrity: sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==}
-
- '@turf/truncate@6.5.0':
- resolution: {integrity: sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==}
-
- '@turf/turf@6.5.0':
- resolution: {integrity: sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==}
-
- '@turf/union@6.5.0':
- resolution: {integrity: sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==}
-
- '@turf/unkink-polygon@6.5.0':
- resolution: {integrity: sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==}
-
- '@turf/voronoi@6.5.0':
- resolution: {integrity: sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==}
-
- '@tweenjs/tween.js@25.0.0':
- resolution: {integrity: sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==}
-
- '@types/estree@1.0.6':
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
-
- '@types/event-emitter@0.3.5':
- resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==}
-
- '@types/geojson@7946.0.8':
- resolution: {integrity: sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==}
-
- '@types/lodash-es@4.17.12':
- resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
-
- '@types/lodash@4.17.16':
- resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==}
-
- '@types/node@22.13.13':
- resolution: {integrity: sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==}
-
- '@types/svgo@2.6.4':
- resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
-
- '@types/trusted-types@2.0.7':
- resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
-
- '@types/web-bluetooth@0.0.16':
- resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
-
- '@uppy/companion-client@2.2.2':
- resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==}
-
- '@uppy/core@2.3.4':
- resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==}
-
- '@uppy/store-default@2.1.1':
- resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==}
-
- '@uppy/utils@4.1.3':
- resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==}
-
- '@uppy/xhr-upload@2.1.3':
- resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==}
- peerDependencies:
- '@uppy/core': ^2.3.3
-
- '@vitejs/plugin-vue@5.2.3':
- resolution: {integrity: sha512-IYSLEQj4LgZZuoVpdSUCw3dIynTWQgPlaRP6iAvMle4My0HdYwr5g5wQAfwOeHQBmYwEkqF70nRpSilr6PoUDg==}
- engines: {node: ^18.0.0 || >=20.0.0}
- peerDependencies:
- vite: ^5.0.0 || ^6.0.0
- vue: ^3.2.25
-
- '@vue/compiler-core@3.5.13':
- resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
-
- '@vue/compiler-dom@3.5.13':
- resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
-
- '@vue/compiler-sfc@3.5.13':
- resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==}
-
- '@vue/compiler-ssr@3.5.13':
- resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
-
- '@vue/devtools-api@6.6.4':
- resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
-
- '@vue/reactivity@3.5.13':
- resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
-
- '@vue/runtime-core@3.5.13':
- resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
-
- '@vue/runtime-dom@3.5.13':
- resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
-
- '@vue/server-renderer@3.5.13':
- resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
- peerDependencies:
- vue: 3.5.13
-
- '@vue/shared@3.5.13':
- resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
-
- '@vueuse/core@9.13.0':
- resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
-
- '@vueuse/metadata@9.13.0':
- resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
-
- '@vueuse/shared@9.13.0':
- resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
-
- '@wangeditor/basic-modules@1.1.7':
- resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==}
- peerDependencies:
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- lodash.throttle: ^4.1.1
- nanoid: ^3.2.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@wangeditor/code-highlight@1.0.3':
- resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==}
- peerDependencies:
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@wangeditor/core@1.1.19':
- resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==}
- peerDependencies:
- '@uppy/core': ^2.1.1
- '@uppy/xhr-upload': ^2.0.3
- dom7: ^3.0.0
- is-hotkey: ^0.2.0
- lodash.camelcase: ^4.3.0
- lodash.clonedeep: ^4.5.0
- lodash.debounce: ^4.0.8
- lodash.foreach: ^4.5.0
- lodash.isequal: ^4.5.0
- lodash.throttle: ^4.1.1
- lodash.toarray: ^4.4.0
- nanoid: ^3.2.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@wangeditor/editor-for-vue@5.1.12':
- resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==}
- peerDependencies:
- '@wangeditor/editor': '>=5.1.0'
- vue: ^3.0.5
-
- '@wangeditor/editor@5.1.23':
- resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==}
-
- '@wangeditor/list-module@1.0.5':
- resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==}
- peerDependencies:
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@wangeditor/table-module@1.1.4':
- resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==}
- peerDependencies:
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- lodash.isequal: ^4.5.0
- lodash.throttle: ^4.1.1
- nanoid: ^3.2.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@wangeditor/upload-image-module@1.0.2':
- resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==}
- peerDependencies:
- '@uppy/core': ^2.0.3
- '@uppy/xhr-upload': ^2.0.3
- '@wangeditor/basic-modules': 1.x
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- lodash.foreach: ^4.5.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@wangeditor/video-module@1.1.4':
- resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==}
- peerDependencies:
- '@uppy/core': ^2.1.4
- '@uppy/xhr-upload': ^2.0.7
- '@wangeditor/core': 1.x
- dom7: ^3.0.0
- nanoid: ^3.2.0
- slate: ^0.72.0
- snabbdom: ^3.1.0
-
- '@zip.js/zip.js@2.7.57':
- resolution: {integrity: sha512-BtonQ1/jDnGiMed6OkV6rZYW78gLmLswkHOzyMrMb+CAR7CZO8phOHO6c2qw6qb1g1betN7kwEHhhZk30dv+NA==}
- engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'}
-
- acorn@8.14.1:
- resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- animate.css@4.1.1:
- resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==}
-
- ansi-regex@2.1.1:
- resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
- engines: {node: '>=0.10.0'}
-
- ansi-styles@2.2.1:
- resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
- engines: {node: '>=0.10.0'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- arr-diff@4.0.0:
- resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
- engines: {node: '>=0.10.0'}
-
- arr-flatten@1.1.0:
- resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
- engines: {node: '>=0.10.0'}
-
- arr-union@3.1.0:
- resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
- engines: {node: '>=0.10.0'}
-
- array-buffer-byte-length@1.0.2:
- resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
- engines: {node: '>= 0.4'}
-
- array-unique@0.3.2:
- resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
- engines: {node: '>=0.10.0'}
-
- arraybuffer.prototype.slice@1.0.4:
- resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
- engines: {node: '>= 0.4'}
-
- assign-symbols@1.0.0:
- resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
- engines: {node: '>=0.10.0'}
-
- async-function@1.0.0:
- resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
- engines: {node: '>= 0.4'}
-
- async-validator@4.2.5:
- resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
-
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
- atob@2.1.2:
- resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
- engines: {node: '>= 4.5.0'}
- hasBin: true
-
- autolinker@4.1.0:
- resolution: {integrity: sha512-mYzdZMei1zIXcHVS/LjnuCJG+C/hNi8O+5m0R8YWtrIBWGrjL8CVzEZXxOfH0l1kioEXHNpUJRkgZdyL4GgIHQ==}
-
- available-typed-arrays@1.0.7:
- resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
- engines: {node: '>= 0.4'}
-
- avue-plugin-ueditor@1.0.4:
- resolution: {integrity: sha512-fFOFsduZI9yK3LE7FpLMqqLJoWp4xGTDj08wmSS2CkBL6H1+P8+7u9lEcvRejnvytUBhv87xKNhHdMuWru1Umg==}
- peerDependencies:
- axios: '>=0.18.0'
- vue: '>=3.2.0'
-
- axios@1.8.4:
- resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==}
-
- base@0.11.2:
- resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
- engines: {node: '>=0.10.0'}
-
- big.js@5.2.2:
- resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
-
- bitmap-sdf@1.0.4:
- resolution: {integrity: sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==}
-
- bluebird@3.7.2:
- resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
-
- boolbase@1.0.0:
- resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
-
- bpmn-js@11.5.0:
- resolution: {integrity: sha512-Bdj53UvfiDtGE1wmiBmpgjl5RMLhCGV/C841dyC+t4kBHj7vApAeeHs2Qiycj390HO4B2U8UDROLT7yjdXEEUA==}
-
- bpmn-moddle@8.1.0:
- resolution: {integrity: sha512-yI5OAFfYVJwViKTsTsonVfCBPtB3MlefADUORwNIxxBOMp21vnoxuxsdgUWlPH/dvAEZh/+mr8UtqOBNu8NC5Q==}
-
- braces@2.3.2:
- resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
- engines: {node: '>=0.10.0'}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
- cache-base@1.0.1:
- resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
- engines: {node: '>=0.10.0'}
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bind@1.0.8:
- resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.4:
- resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
- engines: {node: '>= 0.4'}
-
- cesium@1.127.0:
- resolution: {integrity: sha512-MRGkPb3ClEkAI9viZxxdD3LCu7ydOzOKdJ6/iPtBx1GUsPCZNbgB0IH7wmhwgbxA5sjv4/a90+mvR9CoLP1PWQ==}
- engines: {node: '>=18.18.0'}
-
- chalk@1.1.3:
- resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
- engines: {node: '>=0.10.0'}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- chokidar@4.0.3:
- resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
- engines: {node: '>= 14.16.0'}
-
- class-utils@0.3.6:
- resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
- engines: {node: '>=0.10.0'}
-
- clipboard@2.0.11:
- resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==}
-
- clone@2.1.2:
- resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
- engines: {node: '>=0.8'}
-
- clsx@1.2.1:
- resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
- engines: {node: '>=6'}
-
- codemirror@5.65.19:
- resolution: {integrity: sha512-+aFkvqhaAVr1gferNMuN8vkTSrWIFvzlMV9I2KBLCWS2WpZ2+UAkZjlMZmEuT+gcXTi6RrGQCkWq1/bDtGqhIA==}
-
- collection-visit@1.0.0:
- resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
- engines: {node: '>=0.10.0'}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
- commander@2.20.3:
- resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
-
- commander@7.2.0:
- resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
- engines: {node: '>= 10'}
-
- component-emitter@1.3.1:
- resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
-
- component-event@0.2.1:
- resolution: {integrity: sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==}
-
- compute-scroll-into-view@1.0.20:
- resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
-
- concaveman@1.2.1:
- resolution: {integrity: sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==}
-
- confbox@0.1.8:
- resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
-
- copy-descriptor@0.1.1:
- resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
- engines: {node: '>=0.10.0'}
-
- cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
- engines: {node: '>= 0.10'}
-
- countup.js@1.9.3:
- resolution: {integrity: sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==}
-
- countup.js@2.8.0:
- resolution: {integrity: sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==}
-
- crypto-js@4.2.0:
- resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
-
- css-select@4.3.0:
- resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
-
- css-tree@1.1.3:
- resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
- engines: {node: '>=8.0.0'}
-
- css-what@6.1.0:
- resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
- engines: {node: '>= 6'}
-
- csso@4.2.0:
- resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
- engines: {node: '>=8.0.0'}
-
- csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
-
- d3-array@1.2.4:
- resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==}
-
- d3-geo@1.7.1:
- resolution: {integrity: sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==}
-
- d3-voronoi@1.1.2:
- resolution: {integrity: sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==}
-
- d@1.0.2:
- resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
- engines: {node: '>=0.12'}
-
- data-view-buffer@1.0.2:
- resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-length@1.0.2:
- resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-offset@1.0.1:
- resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
- engines: {node: '>= 0.4'}
-
- dayjs@1.11.13:
- resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
-
- debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.4.0:
- resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- decode-uri-component@0.2.2:
- resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
- engines: {node: '>=0.10'}
-
- deep-equal@1.1.2:
- resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==}
- engines: {node: '>= 0.4'}
-
- define-data-property@1.1.4:
- resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
- engines: {node: '>= 0.4'}
-
- define-properties@1.2.1:
- resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
- engines: {node: '>= 0.4'}
-
- define-property@0.2.5:
- resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
- engines: {node: '>=0.10.0'}
-
- define-property@1.0.0:
- resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
- engines: {node: '>=0.10.0'}
-
- define-property@2.0.2:
- resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
- engines: {node: '>=0.10.0'}
-
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
- delegate@3.2.0:
- resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==}
-
- density-clustering@1.3.0:
- resolution: {integrity: sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==}
-
- detect-libc@1.0.3:
- resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
- engines: {node: '>=0.10'}
- hasBin: true
-
- diagram-js-direct-editing@2.1.2:
- resolution: {integrity: sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==}
- peerDependencies:
- diagram-js: '*'
-
- diagram-js@11.13.1:
- resolution: {integrity: sha512-6kO0rBN6aBIQiMELfv1oX2Ohes/brlIPuOVZUYAioeWM0EyuazhAXgHeq8iKFt29daU9NGRr4n78esGx8QjtjQ==}
-
- didi@9.0.2:
- resolution: {integrity: sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==}
-
- disable-devtool@0.3.8:
- resolution: {integrity: sha512-spwifiBbcgDTVEdzoWyH3NjZ1he/OgJmUNXvMgEffJ8Fh2B6mEJjCCEV25wlJSyNXEdGyzKFFRXh4kVDRK/wCg==}
-
- dom-serializer@0.2.2:
- resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}
-
- dom-serializer@1.4.1:
- resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
-
- dom7@3.0.0:
- resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
-
- domelementtype@1.3.1:
- resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
-
- domelementtype@2.3.0:
- resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
-
- domhandler@2.4.2:
- resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
-
- domhandler@4.3.1:
- resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
- engines: {node: '>= 4'}
-
- domify@1.4.2:
- resolution: {integrity: sha512-m4yreHcUWHBncGVV7U+yQzc12vIlq0jMrtHZ5mW6dQMiL/7skSYNVX9wqKwOtyO9SGCgevrAFEgOCAHmamHTUA==}
-
- dompurify@3.2.4:
- resolution: {integrity: sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==}
-
- domutils@1.7.0:
- resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
-
- domutils@2.8.0:
- resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
-
- draco3d@1.5.7:
- resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==}
-
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- earcut@2.2.4:
- resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==}
-
- earcut@3.0.1:
- resolution: {integrity: sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==}
-
- echarts@5.6.0:
- resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==}
-
- element-plus@2.9.7:
- resolution: {integrity: sha512-6vjZh5SXBncLhUwJGTVKS5oDljfgGMh6J4zVTeAZK3YdMUN76FgpvHkwwFXocpJpMbii6rDYU3sgie64FyPerQ==}
- peerDependencies:
- vue: ^3.2.0
-
- emojis-list@3.0.0:
- resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
- engines: {node: '>= 4'}
-
- entities@1.1.2:
- resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
-
- entities@2.2.0:
- resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
-
- entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
-
- es-abstract@1.23.9:
- resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
- engines: {node: '>= 0.4'}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
- engines: {node: '>= 0.4'}
-
- es5-ext@0.10.64:
- resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==}
- engines: {node: '>=0.10'}
-
- es6-iterator@2.0.3:
- resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
-
- es6-symbol@3.1.4:
- resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==}
- engines: {node: '>=0.12'}
-
- esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
- hasBin: true
-
- escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
-
- escape-string-regexp@1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
-
- escape-string-regexp@5.0.0:
- resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
- engines: {node: '>=12'}
-
- esniff@2.0.1:
- resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==}
- engines: {node: '>=0.10'}
-
- estree-walker@2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
-
- etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
-
- event-emitter@0.3.5:
- resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
-
- expand-brackets@2.1.4:
- resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
- engines: {node: '>=0.10.0'}
-
- ext@1.7.0:
- resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
-
- extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
-
- extend-shallow@3.0.2:
- resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
- engines: {node: '>=0.10.0'}
-
- extglob@2.0.4:
- resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
- engines: {node: '>=0.10.0'}
-
- fast-glob@3.3.3:
- resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
- engines: {node: '>=8.6.0'}
-
- fastq@1.19.1:
- resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
-
- fill-range@4.0.0:
- resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
- engines: {node: '>=0.10.0'}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- follow-redirects@1.15.9:
- resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
-
- for-each@0.3.5:
- resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
- engines: {node: '>= 0.4'}
-
- for-in@1.0.2:
- resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
- engines: {node: '>=0.10.0'}
-
- form-data@4.0.2:
- resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
- engines: {node: '>= 6'}
-
- fragment-cache@0.2.1:
- resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
- engines: {node: '>=0.10.0'}
-
- fs-extra@10.1.0:
- resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
- engines: {node: '>=12'}
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- function.prototype.name@1.1.8:
- resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
- engines: {node: '>= 0.4'}
-
- functions-have-names@1.2.3:
- resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-
- geojson-equality@0.1.6:
- resolution: {integrity: sha512-TqG8YbqizP3EfwP5Uw4aLu6pKkg6JQK9uq/XZ1lXQntvTHD1BBKJWhNpJ2M0ax6TuWMP3oyx6Oq7FCIfznrgpQ==}
-
- geojson-rbush@3.2.0:
- resolution: {integrity: sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- get-symbol-description@1.1.0:
- resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
- engines: {node: '>= 0.4'}
-
- get-value@2.0.6:
- resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
- engines: {node: '>=0.10.0'}
-
- glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
-
- globalthis@1.0.4:
- resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
- engines: {node: '>= 0.4'}
-
- good-listener@1.2.2:
- resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- grapheme-splitter@1.0.4:
- resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
-
- hammerjs@2.0.8:
- resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==}
- engines: {node: '>=0.8.0'}
-
- has-ansi@2.0.0:
- resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
- engines: {node: '>=0.10.0'}
-
- has-bigints@1.1.0:
- resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
- engines: {node: '>= 0.4'}
-
- has-flag@1.0.0:
- resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==}
- engines: {node: '>=0.10.0'}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- has-property-descriptors@1.0.2:
- resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
-
- has-proto@1.2.0:
- resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
- engines: {node: '>= 0.4'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
-
- has-value@0.3.1:
- resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
- engines: {node: '>=0.10.0'}
-
- has-value@1.0.0:
- resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
- engines: {node: '>=0.10.0'}
-
- has-values@0.1.4:
- resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
- engines: {node: '>=0.10.0'}
-
- has-values@1.0.0:
- resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
- engines: {node: '>=0.10.0'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- he@1.2.0:
- resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
- hasBin: true
-
- highlight.js@11.11.1:
- resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
- engines: {node: '>=12.0.0'}
-
- htm@3.1.1:
- resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
-
- html-void-elements@2.0.1:
- resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
-
- htmlparser2@3.10.1:
- resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
-
- i18next@20.6.1:
- resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
-
- ids@1.0.5:
- resolution: {integrity: sha512-XQ0yom/4KWTL29sLG+tyuycy7UmeaM/79GRtSJq6IG9cJGIPeBz5kwDCguie3TwxaMNIc3WtPi0cTa1XYHicpw==}
-
- image-size@0.5.5:
- resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
- engines: {node: '>=0.10.0'}
- hasBin: true
-
- immer@9.0.21:
- resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
-
- immutable@5.1.1:
- resolution: {integrity: sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==}
-
- inherits-browser@0.1.0:
- resolution: {integrity: sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==}
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- internal-slot@1.1.0:
- resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
- engines: {node: '>= 0.4'}
-
- is-accessor-descriptor@1.0.1:
- resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
- engines: {node: '>= 0.10'}
-
- is-arguments@1.2.0:
- resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
- engines: {node: '>= 0.4'}
-
- is-array-buffer@3.0.5:
- resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
- engines: {node: '>= 0.4'}
-
- is-async-function@2.1.1:
- resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
- engines: {node: '>= 0.4'}
-
- is-bigint@1.1.0:
- resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
- engines: {node: '>= 0.4'}
-
- is-boolean-object@1.2.2:
- resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
- engines: {node: '>= 0.4'}
-
- is-buffer@1.1.6:
- resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
-
- is-callable@1.2.7:
- resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
- engines: {node: '>= 0.4'}
-
- is-data-descriptor@1.0.1:
- resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
- engines: {node: '>= 0.4'}
-
- is-data-view@1.0.2:
- resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
- engines: {node: '>= 0.4'}
-
- is-date-object@1.1.0:
- resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
- engines: {node: '>= 0.4'}
-
- is-descriptor@0.1.7:
- resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
- engines: {node: '>= 0.4'}
-
- is-descriptor@1.0.3:
- resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
- engines: {node: '>= 0.4'}
-
- is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
-
- is-extendable@1.0.1:
- resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
- engines: {node: '>=0.10.0'}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-finalizationregistry@1.1.1:
- resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
- engines: {node: '>= 0.4'}
-
- is-generator-function@1.1.0:
- resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
- engines: {node: '>= 0.4'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-hotkey@0.2.0:
- resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==}
-
- is-map@2.0.3:
- resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
- engines: {node: '>= 0.4'}
-
- is-number-object@1.1.1:
- resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
- engines: {node: '>= 0.4'}
-
- is-number@3.0.0:
- resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
- engines: {node: '>=0.10.0'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-plain-obj@1.1.0:
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
- engines: {node: '>=0.10.0'}
-
- is-plain-object@2.0.4:
- resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
- engines: {node: '>=0.10.0'}
-
- is-plain-object@5.0.0:
- resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
- engines: {node: '>=0.10.0'}
-
- is-regex@1.2.1:
- resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
- engines: {node: '>= 0.4'}
-
- is-set@2.0.3:
- resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
- engines: {node: '>= 0.4'}
-
- is-shared-array-buffer@1.0.4:
- resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
- engines: {node: '>= 0.4'}
-
- is-string@1.1.1:
- resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
- engines: {node: '>= 0.4'}
-
- is-symbol@1.1.1:
- resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
- engines: {node: '>= 0.4'}
-
- is-typed-array@1.1.15:
- resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
- engines: {node: '>= 0.4'}
-
- is-url@1.2.4:
- resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
-
- is-weakmap@2.0.2:
- resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
- engines: {node: '>= 0.4'}
-
- is-weakref@1.1.1:
- resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
- engines: {node: '>= 0.4'}
-
- is-weakset@2.0.4:
- resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
- engines: {node: '>= 0.4'}
-
- is-windows@1.0.2:
- resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
- engines: {node: '>=0.10.0'}
-
- isarray@1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
-
- isarray@2.0.5:
- resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
-
- isobject@2.1.0:
- resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
- engines: {node: '>=0.10.0'}
-
- isobject@3.0.1:
- resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
- engines: {node: '>=0.10.0'}
-
- js-base64@2.6.4:
- resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
-
- js-base64@3.7.7:
- resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
-
- js-cookie@3.0.5:
- resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
- engines: {node: '>=14'}
-
- js-md5@0.7.3:
- resolution: {integrity: sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==}
-
- jsbn@1.1.0:
- resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
-
- jsep@1.4.0:
- resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==}
- engines: {node: '>= 10.16.0'}
-
- json5@1.0.2:
- resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
- hasBin: true
-
- jsonfile@6.1.0:
- resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
-
- kdbush@4.0.2:
- resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==}
-
- kind-of@3.2.2:
- resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
- engines: {node: '>=0.10.0'}
-
- kind-of@4.0.0:
- resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
- engines: {node: '>=0.10.0'}
-
- kind-of@5.1.0:
- resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
- engines: {node: '>=0.10.0'}
-
- kind-of@6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- engines: {node: '>=0.10.0'}
-
- ktx-parse@1.0.0:
- resolution: {integrity: sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg==}
-
- lerc@2.0.0:
- resolution: {integrity: sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==}
-
- loader-utils@1.4.2:
- resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
- engines: {node: '>=4.0.0'}
-
- local-pkg@0.4.3:
- resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
- engines: {node: '>=14'}
-
- lodash-es@4.17.21:
- resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
-
- lodash-unified@1.0.3:
- resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
- peerDependencies:
- '@types/lodash-es': '*'
- lodash: '*'
- lodash-es: '*'
-
- lodash.camelcase@4.3.0:
- resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
-
- lodash.clonedeep@4.5.0:
- resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
-
- lodash.debounce@4.0.8:
- resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
-
- lodash.foreach@4.5.0:
- resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
-
- lodash.isequal@4.5.0:
- resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
- deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
-
- lodash.throttle@4.1.1:
- resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
-
- lodash.toarray@4.4.0:
- resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==}
-
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- long@5.3.1:
- resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==}
-
- magic-string@0.25.9:
- resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
-
- magic-string@0.26.7:
- resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
- engines: {node: '>=12'}
-
- magic-string@0.27.0:
- resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
- engines: {node: '>=12'}
-
- magic-string@0.30.17:
- resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
-
- map-cache@0.2.2:
- resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
- engines: {node: '>=0.10.0'}
-
- map-visit@1.0.0:
- resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
- engines: {node: '>=0.10.0'}
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- mdn-data@2.0.14:
- resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
-
- memoize-one@6.0.0:
- resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
-
- merge-options@1.0.1:
- resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==}
- engines: {node: '>=4'}
-
- merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
-
- mersenne-twister@1.1.0:
- resolution: {integrity: sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==}
-
- meshoptimizer@0.22.0:
- resolution: {integrity: sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==}
-
- micromatch@3.1.0:
- resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}
- engines: {node: '>=0.10.0'}
-
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-match@1.0.2:
- resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
- min-dash@4.2.3:
- resolution: {integrity: sha512-VLMYQI5+FcD9Ad24VcB08uA83B07OhueAlZ88jBK6PyupTvEJwllTMUqMy0wPGYs7pZUEtEEMWdHB63m3LtEcg==}
-
- min-dom@4.2.1:
- resolution: {integrity: sha512-TMoL8SEEIhUWYgkj7XMSgxmwSyGI+4fP2KFFGnN3FbHfbGHVdsLYSz8LoIsgPhz4dWRmLvxWWSMgzZMJW5sZuA==}
-
- minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
- mixin-deep@1.3.2:
- resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
- engines: {node: '>=0.10.0'}
-
- mlly@1.7.4:
- resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
-
- moddle-xml@10.1.0:
- resolution: {integrity: sha512-erWckwLt+dYskewKXJso9u+aAZ5172lOiYxSOqKCPTy7L/xmqH1PoeoA7eVC7oJTt3PqF5TkZzUmbjGH6soQBg==}
-
- moddle@6.2.3:
- resolution: {integrity: sha512-bLVN+ZHL3aKnhxc19XtjUfvdJsS3EsiEJC7bT6YPD11qYmTzvsxrGgyYz1Ouof7TZuGw0lDJ1OLmEnxcpQWk3Q==}
-
- ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- namespace-emitter@2.0.1:
- resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
-
- nanoid@3.3.11:
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- nanomatch@1.2.13:
- resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
- engines: {node: '>=0.10.0'}
-
- next-tick@1.1.0:
- resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
-
- node-addon-api@7.1.1:
- resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
-
- normalize-wheel-es@1.2.0:
- resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
-
- nosleep.js@0.12.0:
- resolution: {integrity: sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==}
-
- nprogress@0.2.0:
- resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
-
- nth-check@2.1.1:
- resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
-
- object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- engines: {node: '>=0.10.0'}
-
- object-copy@0.1.0:
- resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
- engines: {node: '>=0.10.0'}
-
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- object-is@1.1.6:
- resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
- engines: {node: '>= 0.4'}
-
- object-keys@1.1.1:
- resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
- engines: {node: '>= 0.4'}
-
- object-refs@0.3.0:
- resolution: {integrity: sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==}
-
- object-visit@1.0.1:
- resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
- engines: {node: '>=0.10.0'}
-
- object.assign@4.1.7:
- resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
- engines: {node: '>= 0.4'}
-
- object.pick@1.3.0:
- resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
- engines: {node: '>=0.10.0'}
-
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
- engines: {node: '>= 0.4'}
-
- pako@2.1.0:
- resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
-
- pascalcase@0.1.1:
- resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
- engines: {node: '>=0.10.0'}
-
- path-intersection@2.2.1:
- resolution: {integrity: sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==}
-
- pathe@0.2.0:
- resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
-
- pathe@1.1.2:
- resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
-
- pathe@2.0.3:
- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
-
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- picomatch@4.0.2:
- resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
- engines: {node: '>=12'}
-
- pkg-types@1.3.1:
- resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
-
- point-in-polygon@1.1.0:
- resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==}
-
- polygon-clipping@0.15.7:
- resolution: {integrity: sha512-nhfdr83ECBg6xtqOAJab1tbksbBAOMUltN60bU+llHVOL0e5Onm1WpAXXWXVB39L8AJFssoIhEVuy/S90MmotA==}
-
- posix-character-classes@0.1.1:
- resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
- engines: {node: '>=0.10.0'}
-
- possible-typed-array-names@1.1.0:
- resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
- engines: {node: '>= 0.4'}
-
- postcss-prefix-selector@1.16.1:
- resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==}
- peerDependencies:
- postcss: '>4 <9'
-
- postcss-pxtorem@6.1.0:
- resolution: {integrity: sha512-ROODSNci9ADal3zUcPHOF/K83TiCgNSPXQFSbwyPHNV8ioHIE4SaC+FPOufd8jsr5jV2uIz29v1Uqy1c4ov42g==}
- peerDependencies:
- postcss: ^8.0.0
-
- postcss@5.2.18:
- resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}
- engines: {node: '>=0.12'}
-
- postcss@8.5.3:
- resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
- engines: {node: ^10 || ^12 || >=14}
-
- posthtml-parser@0.2.1:
- resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==}
-
- posthtml-rename-id@1.0.12:
- resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==}
-
- posthtml-render@1.4.0:
- resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==}
- engines: {node: '>=10'}
-
- posthtml-svg-mode@1.0.3:
- resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==}
-
- posthtml@0.9.2:
- resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==}
- engines: {node: '>=0.10.0'}
-
- preact@10.26.4:
- resolution: {integrity: sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==}
-
- prettier@2.8.8:
- resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
- engines: {node: '>=10.13.0'}
- hasBin: true
-
- prismjs@1.30.0:
- resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
- engines: {node: '>=6'}
-
- protobufjs@7.4.0:
- resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==}
- engines: {node: '>=12.0.0'}
-
- proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
-
- query-string@4.3.4:
- resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
- engines: {node: '>=0.10.0'}
-
- queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-
- quickselect@1.1.1:
- resolution: {integrity: sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==}
-
- quickselect@2.0.0:
- resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==}
-
- randomcolor@0.6.2:
- resolution: {integrity: sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==}
-
- rbush@2.0.2:
- resolution: {integrity: sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==}
-
- rbush@3.0.1:
- resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==}
-
- readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
-
- readdirp@4.1.2:
- resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
- engines: {node: '>= 14.18.0'}
-
- reflect.getprototypeof@1.0.10:
- resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
- engines: {node: '>= 0.4'}
-
- regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
-
- regex-not@1.0.2:
- resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
- engines: {node: '>=0.10.0'}
-
- regexp.prototype.flags@1.5.4:
- resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
- engines: {node: '>= 0.4'}
-
- repeat-element@1.1.4:
- resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
- engines: {node: '>=0.10.0'}
-
- repeat-string@1.6.1:
- resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
- engines: {node: '>=0.10'}
-
- resolve-url@0.2.1:
- resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
- deprecated: https://github.com/lydell/resolve-url#deprecated
-
- ret@0.1.15:
- resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
- engines: {node: '>=0.12'}
-
- reusify@1.1.0:
- resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-
- robust-predicates@2.0.4:
- resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==}
-
- robust-predicates@3.0.2:
- resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
-
- rollup@4.37.0:
- resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
- run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-
- safe-array-concat@1.1.3:
- resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
- engines: {node: '>=0.4'}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
- safe-push-apply@1.0.0:
- resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
- engines: {node: '>= 0.4'}
-
- safe-regex-test@1.1.0:
- resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
- engines: {node: '>= 0.4'}
-
- safe-regex@1.1.0:
- resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
-
- sass@1.86.0:
- resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==}
- engines: {node: '>=14.0.0'}
- hasBin: true
-
- saxen@8.1.2:
- resolution: {integrity: sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==}
-
- scroll-into-view-if-needed@2.2.31:
- resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
-
- scule@1.3.0:
- resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
-
- select@1.1.2:
- resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
-
- set-function-length@1.2.2:
- resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
- engines: {node: '>= 0.4'}
-
- set-function-name@2.0.2:
- resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
- engines: {node: '>= 0.4'}
-
- set-proto@1.0.0:
- resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
- engines: {node: '>= 0.4'}
-
- set-value@2.0.1:
- resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
- engines: {node: '>=0.10.0'}
-
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
- signature_pad@5.0.7:
- resolution: {integrity: sha512-j2C6NTZ3c99G3hvFTsg6oOWy/tmftgwIXrvsr3+99+5SuPW6OdSpo++ZUzLVNfNHYmp2Z2Al76YV/3RhS/nDJg==}
-
- skmeans@0.9.7:
- resolution: {integrity: sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==}
-
- slate-history@0.66.0:
- resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==}
- peerDependencies:
- slate: '>=0.65.3'
-
- slate@0.72.8:
- resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==}
-
- sm-crypto@0.3.13:
- resolution: {integrity: sha512-ztNF+pZq6viCPMA1A6KKu3bgpkmYti5avykRHbcFIdSipFdkVmfUw2CnpM2kBJyppIalqvczLNM3wR8OQ0pT5w==}
-
- snabbdom@3.6.2:
- resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==}
- engines: {node: '>=12.17.0'}
-
- snapdragon-node@2.1.1:
- resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
- engines: {node: '>=0.10.0'}
-
- snapdragon-util@3.0.1:
- resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
- engines: {node: '>=0.10.0'}
-
- snapdragon@0.8.2:
- resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
- engines: {node: '>=0.10.0'}
-
- sortablejs@1.14.0:
- resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==}
-
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
- engines: {node: '>=0.10.0'}
-
- source-map-resolve@0.5.3:
- resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
- deprecated: See https://github.com/lydell/source-map-resolve#deprecated
-
- source-map-support@0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
-
- source-map-url@0.4.1:
- resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
-
- source-map@0.5.7:
- resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
- engines: {node: '>=0.10.0'}
-
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
-
- sourcemap-codec@1.4.8:
- resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
- deprecated: Please use @jridgewell/sourcemap-codec instead
-
- splaytree@3.1.2:
- resolution: {integrity: sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==}
-
- split-string@3.1.0:
- resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
- engines: {node: '>=0.10.0'}
-
- ssr-window@3.0.0:
- resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}
-
- stable@0.1.8:
- resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
- deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
-
- static-extend@0.1.2:
- resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
- engines: {node: '>=0.10.0'}
-
- strict-uri-encode@1.1.0:
- resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==}
- engines: {node: '>=0.10.0'}
-
- string.prototype.trim@1.2.10:
- resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimend@1.0.9:
- resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimstart@1.0.8:
- resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
- engines: {node: '>= 0.4'}
-
- string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
-
- strip-ansi@3.0.1:
- resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
- engines: {node: '>=0.10.0'}
-
- strip-literal@1.3.0:
- resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
-
- supports-color@2.0.0:
- resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
- engines: {node: '>=0.8.0'}
-
- supports-color@3.2.3:
- resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==}
- engines: {node: '>=0.8.0'}
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- svg-baker@1.7.0:
- resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==}
-
- svgo@2.8.0:
- resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
- engines: {node: '>=10.13.0'}
- hasBin: true
-
- terser@5.39.0:
- resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==}
- engines: {node: '>=10'}
- hasBin: true
-
- tiny-emitter@2.1.0:
- resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==}
-
- tiny-svg@3.1.3:
- resolution: {integrity: sha512-9mwnPqXInRsBmH/DO6NMxBE++9LsqpVXQSSTZGc5bomoKKvL5OX/Hlotw7XVXP6XLRcHWIzZpxfovGqWKgCypQ==}
-
- tiny-warning@1.0.3:
- resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
-
- tinyqueue@2.0.3:
- resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==}
-
- to-object-path@0.3.0:
- resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
- engines: {node: '>=0.10.0'}
-
- to-regex-range@2.1.1:
- resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
- engines: {node: '>=0.10.0'}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- to-regex@3.0.2:
- resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
- engines: {node: '>=0.10.0'}
-
- topojson-client@3.1.0:
- resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==}
- hasBin: true
-
- topojson-server@3.0.1:
- resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==}
- hasBin: true
-
- traverse@0.6.11:
- resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
- engines: {node: '>= 0.4'}
-
- tslib@2.3.0:
- resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- turf-jsts@1.2.3:
- resolution: {integrity: sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==}
-
- type@2.7.3:
- resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==}
-
- typed-array-buffer@1.0.3:
- resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-length@1.0.3:
- resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
- engines: {node: '>= 0.4'}
-
- typed-array-length@1.0.7:
- resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
- engines: {node: '>= 0.4'}
-
- typedarray.prototype.slice@1.0.5:
- resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==}
- engines: {node: '>= 0.4'}
-
- ufo@1.5.4:
- resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
-
- unbox-primitive@1.1.0:
- resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
- engines: {node: '>= 0.4'}
-
- undici-types@6.20.0:
- resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
-
- unimport@1.3.0:
- resolution: {integrity: sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==}
-
- union-value@1.0.1:
- resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
- engines: {node: '>=0.10.0'}
-
- universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
-
- unplugin-auto-import@0.11.5:
- resolution: {integrity: sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw==}
- engines: {node: '>=14'}
- peerDependencies:
- '@vueuse/core': '*'
- peerDependenciesMeta:
- '@vueuse/core':
- optional: true
-
- unplugin@1.16.1:
- resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==}
- engines: {node: '>=14.0.0'}
-
- unset-value@1.0.0:
- resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
- engines: {node: '>=0.10.0'}
-
- urijs@1.19.11:
- resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
-
- urix@0.1.0:
- resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
- deprecated: Please see https://github.com/lydell/urix#deprecated
-
- use@3.1.1:
- resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
- engines: {node: '>=0.10.0'}
-
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
-
- vite-plugin-compression@0.5.1:
- resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
- peerDependencies:
- vite: '>=2.0.0'
-
- vite-plugin-svg-icons@2.0.1:
- resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
- peerDependencies:
- vite: '>=2.0.0'
-
- vite-plugin-vue-setup-extend@0.4.0:
- resolution: {integrity: sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==}
- peerDependencies:
- vite: '>=2.0.0'
-
- vite@5.4.15:
- resolution: {integrity: sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- sass-embedded: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- sass-embedded:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
- vue-demi@0.14.10:
- resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
- engines: {node: '>=12'}
- hasBin: true
- peerDependencies:
- '@vue/composition-api': ^1.0.0-rc.1
- vue: ^3.0.0-0 || ^2.6.0
- peerDependenciesMeta:
- '@vue/composition-api':
- optional: true
-
- vue-i18n@9.14.3:
- resolution: {integrity: sha512-C+E0KE8ihKjdYCQx8oUkXX+8tBItrYNMnGJuzEPevBARQFUN2tKez6ZVOvBrWH0+KT5wEk3vOWjNk7ygb2u9ig==}
- engines: {node: '>= 16'}
- peerDependencies:
- vue: ^3.0.0
-
- vue-router@4.5.0:
- resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==}
- peerDependencies:
- vue: ^3.2.0
-
- vue3-clipboard@1.0.0:
- resolution: {integrity: sha512-GUqKh1oO79xDpq0z+cCv/NDVTpcJGNDzeNgT3PmTdTp/WJh3gcTrDqIYKycKhzMFOtIFJ7hO/+usgyWtT+fNhA==}
- peerDependencies:
- vue: ^3.0.0
-
- vue@3.5.13:
- resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- vuedraggable@4.1.0:
- resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
- peerDependencies:
- vue: ^3.0.1
-
- vuex@4.1.0:
- resolution: {integrity: sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==}
- peerDependencies:
- vue: ^3.2.0
-
- webpack-virtual-modules@0.6.2:
- resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
-
- which-boxed-primitive@1.1.1:
- resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
- engines: {node: '>= 0.4'}
-
- which-builtin-type@1.2.1:
- resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
- engines: {node: '>= 0.4'}
-
- which-collection@1.0.2:
- resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
- engines: {node: '>= 0.4'}
-
- which-typed-array@1.1.19:
- resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
- engines: {node: '>= 0.4'}
-
- wildcard@1.1.2:
- resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
-
- zrender@5.6.1:
- resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==}
-
-snapshots:
-
- '@amap/amap-jsapi-loader@1.0.1': {}
-
- '@antfu/utils@0.7.10': {}
-
- '@babel/helper-string-parser@7.25.9': {}
-
- '@babel/helper-validator-identifier@7.25.9': {}
-
- '@babel/parser@7.27.0':
dependencies:
'@babel/types': 7.27.0
- '@babel/runtime@7.27.0':
+ /@babel/runtime@7.27.0:
+ resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==}
+ engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
+ dev: false
- '@babel/types@7.27.0':
+ /@babel/types@7.27.0:
+ resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
+ engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
- '@bpmn-io/diagram-js-ui@0.2.3':
+ /@bpmn-io/diagram-js-ui@0.2.3:
+ resolution: {integrity: sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==}
dependencies:
htm: 3.1.1
preact: 10.26.4
+ dev: false
- '@cesium/engine@15.0.0':
+ /@cesium/engine@14.0.0:
+ resolution: {integrity: sha512-nmW0uQCyg4CRqi3a8o30gU9S9bFm3TLh2fRO74iv+6a8FFArvZ1xF7IqG2tyRjSXkyH4c5vpavNRT3R51R8NyQ==}
+ engines: {node: '>=14.0.0'}
dependencies:
'@tweenjs/tween.js': 25.0.0
- '@zip.js/zip.js': 2.7.57
+ '@zip.js/zip.js': 2.7.60
autolinker: 4.1.0
bitmap-sdf: 1.0.4
dompurify: 3.2.4
@@ -2916,7 +188,7 @@
grapheme-splitter: 1.0.4
jsep: 1.4.0
kdbush: 4.0.2
- ktx-parse: 1.0.0
+ ktx-parse: 0.7.1
lerc: 2.0.0
mersenne-twister: 1.1.0
meshoptimizer: 0.22.0
@@ -2925,184 +197,493 @@
rbush: 3.0.1
topojson-client: 3.1.0
urijs: 1.19.11
+ dev: false
- '@cesium/widgets@11.0.0':
+ /@cesium/widgets@10.2.0:
+ resolution: {integrity: sha512-f0Wrp3MG02P2KSAopVESHWOhF+2eK9cQR9prEYGWuPM3iF6YktKrZqXzNnsOxCw1KPup0aSXsCrFl2asT5jF9g==}
+ engines: {node: '>=14.0.0'}
dependencies:
- '@cesium/engine': 15.0.0
+ '@cesium/engine': 14.0.0
nosleep.js: 0.12.0
+ dev: false
- '@ctrl/tinycolor@3.6.1': {}
+ /@ctrl/tinycolor@3.6.1:
+ resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
+ engines: {node: '>=10'}
+ dev: false
- '@element-plus/icons-vue@2.3.1(vue@3.5.13)':
+ /@element-plus/icons-vue@2.3.1(vue@3.5.13):
+ resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==}
+ peerDependencies:
+ vue: ^3.2.0
dependencies:
vue: 3.5.13
+ dev: false
- '@esbuild/aix-ppc64@0.21.5':
+ /@esbuild/aix-ppc64@0.20.2:
+ resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/android-arm64@0.21.5':
+ /@esbuild/android-arm64@0.20.2:
+ resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/android-arm@0.21.5':
+ /@esbuild/android-arm@0.20.2:
+ resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/android-x64@0.21.5':
+ /@esbuild/android-x64@0.20.2:
+ resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/darwin-arm64@0.21.5':
+ /@esbuild/darwin-arm64@0.20.2:
+ resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/darwin-x64@0.21.5':
+ /@esbuild/darwin-x64@0.20.2:
+ resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/freebsd-arm64@0.21.5':
+ /@esbuild/freebsd-arm64@0.20.2:
+ resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/freebsd-x64@0.21.5':
+ /@esbuild/freebsd-x64@0.20.2:
+ resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-arm64@0.21.5':
+ /@esbuild/linux-arm64@0.20.2:
+ resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-arm@0.21.5':
+ /@esbuild/linux-arm@0.20.2:
+ resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-ia32@0.21.5':
+ /@esbuild/linux-ia32@0.20.2:
+ resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-loong64@0.21.5':
+ /@esbuild/linux-loong64@0.20.2:
+ resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-mips64el@0.21.5':
+ /@esbuild/linux-mips64el@0.20.2:
+ resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-ppc64@0.21.5':
+ /@esbuild/linux-ppc64@0.20.2:
+ resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-riscv64@0.21.5':
+ /@esbuild/linux-riscv64@0.20.2:
+ resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-s390x@0.21.5':
+ /@esbuild/linux-s390x@0.20.2:
+ resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/linux-x64@0.21.5':
+ /@esbuild/linux-x64@0.20.2:
+ resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/netbsd-x64@0.21.5':
+ /@esbuild/netbsd-x64@0.20.2:
+ resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/openbsd-x64@0.21.5':
+ /@esbuild/openbsd-x64@0.20.2:
+ resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/sunos-x64@0.21.5':
+ /@esbuild/sunos-x64@0.20.2:
+ resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/win32-arm64@0.21.5':
+ /@esbuild/win32-arm64@0.20.2:
+ resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/win32-ia32@0.21.5':
+ /@esbuild/win32-ia32@0.20.2:
+ resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@esbuild/win32-x64@0.21.5':
+ /@esbuild/win32-x64@0.20.2:
+ resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@floating-ui/core@1.6.9':
+ /@floating-ui/core@1.6.9:
+ resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
dependencies:
'@floating-ui/utils': 0.2.9
+ dev: false
- '@floating-ui/dom@1.6.13':
+ /@floating-ui/dom@1.6.13:
+ resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
dependencies:
'@floating-ui/core': 1.6.9
'@floating-ui/utils': 0.2.9
+ dev: false
- '@floating-ui/utils@0.2.9': {}
+ /@floating-ui/utils@0.2.9:
+ resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
+ dev: false
- '@intlify/core-base@9.14.3':
+ /@intlify/core-base@9.1.9:
+ resolution: {integrity: sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==}
+ engines: {node: '>= 10'}
dependencies:
- '@intlify/message-compiler': 9.14.3
- '@intlify/shared': 9.14.3
+ '@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
+ dev: false
- '@intlify/message-compiler@9.14.3':
+ /@intlify/devtools-if@9.1.9:
+ resolution: {integrity: sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==}
+ engines: {node: '>= 10'}
dependencies:
- '@intlify/shared': 9.14.3
- source-map-js: 1.2.1
+ '@intlify/shared': 9.1.9
+ dev: false
- '@intlify/shared@9.14.3': {}
+ /@intlify/message-compiler@9.1.9:
+ resolution: {integrity: sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/shared': 9.1.9
+ source-map: 0.6.1
+ dev: false
- '@jridgewell/gen-mapping@0.3.8':
+ /@intlify/message-resolver@9.1.9:
+ resolution: {integrity: sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==}
+ engines: {node: '>= 10'}
+ dev: false
+
+ /@intlify/runtime@9.1.9:
+ resolution: {integrity: sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@intlify/message-compiler': 9.1.9
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/shared': 9.1.9
+ dev: false
+
+ /@intlify/shared@9.1.9:
+ resolution: {integrity: sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==}
+ engines: {node: '>= 10'}
+ dev: false
+
+ /@intlify/vue-devtools@9.1.9:
+ resolution: {integrity: sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@intlify/message-resolver': 9.1.9
+ '@intlify/runtime': 9.1.9
+ '@intlify/shared': 9.1.9
+ dev: false
+
+ /@jridgewell/gen-mapping@0.3.8:
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+ engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
+ dev: true
- '@jridgewell/resolve-uri@3.1.2': {}
+ /@jridgewell/resolve-uri@3.1.2:
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+ dev: true
- '@jridgewell/set-array@1.2.1': {}
+ /@jridgewell/set-array@1.2.1:
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+ dev: true
- '@jridgewell/source-map@0.3.6':
+ /@jridgewell/source-map@0.3.6:
+ resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
dependencies:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
+ dev: true
- '@jridgewell/sourcemap-codec@1.5.0': {}
+ /@jridgewell/sourcemap-codec@1.5.0:
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
- '@jridgewell/trace-mapping@0.3.25':
+ /@jridgewell/trace-mapping@0.3.25:
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
+ dev: true
- '@nodelib/fs.scandir@2.1.5':
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
+ dev: true
- '@nodelib/fs.stat@2.0.5': {}
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
- '@nodelib/fs.walk@1.2.8':
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
+ dev: true
- '@parcel/watcher-android-arm64@2.5.1':
+ /@parcel/watcher-android-arm64@2.5.1:
+ resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-darwin-arm64@2.5.1':
+ /@parcel/watcher-darwin-arm64@2.5.1:
+ resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-darwin-x64@2.5.1':
+ /@parcel/watcher-darwin-x64@2.5.1:
+ resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-freebsd-x64@2.5.1':
+ /@parcel/watcher-freebsd-x64@2.5.1:
+ resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-linux-arm-glibc@2.5.1':
+ /@parcel/watcher-linux-arm-glibc@2.5.1:
+ resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-linux-arm-musl@2.5.1':
+ /@parcel/watcher-linux-arm-musl@2.5.1:
+ resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ /@parcel/watcher-linux-arm64-glibc@2.5.1:
+ resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-linux-arm64-musl@2.5.1':
+ /@parcel/watcher-linux-arm64-musl@2.5.1:
+ resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-linux-x64-glibc@2.5.1':
+ /@parcel/watcher-linux-x64-glibc@2.5.1:
+ resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-linux-x64-musl@2.5.1':
+ /@parcel/watcher-linux-x64-musl@2.5.1:
+ resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-win32-arm64@2.5.1':
+ /@parcel/watcher-win32-arm64@2.5.1:
+ resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-win32-ia32@2.5.1':
+ /@parcel/watcher-win32-ia32@2.5.1:
+ resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher-win32-x64@2.5.1':
+ /@parcel/watcher-win32-x64@2.5.1:
+ resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@parcel/watcher@2.5.1':
+ /@parcel/watcher@2.5.1:
+ resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
+ engines: {node: '>= 10.0.0'}
+ requiresBuild: true
dependencies:
detect-libc: 1.0.3
is-glob: 4.0.3
@@ -3122,221 +703,402 @@
'@parcel/watcher-win32-arm64': 2.5.1
'@parcel/watcher-win32-ia32': 2.5.1
'@parcel/watcher-win32-x64': 2.5.1
+ dev: true
optional: true
- '@protobufjs/aspromise@1.1.2': {}
+ /@protobufjs/aspromise@1.1.2:
+ resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
+ dev: false
- '@protobufjs/base64@1.1.2': {}
+ /@protobufjs/base64@1.1.2:
+ resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
+ dev: false
- '@protobufjs/codegen@2.0.4': {}
+ /@protobufjs/codegen@2.0.4:
+ resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
+ dev: false
- '@protobufjs/eventemitter@1.1.0': {}
+ /@protobufjs/eventemitter@1.1.0:
+ resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
+ dev: false
- '@protobufjs/fetch@1.1.0':
+ /@protobufjs/fetch@1.1.0:
+ resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
dependencies:
'@protobufjs/aspromise': 1.1.2
'@protobufjs/inquire': 1.1.0
+ dev: false
- '@protobufjs/float@1.0.2': {}
+ /@protobufjs/float@1.0.2:
+ resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
+ dev: false
- '@protobufjs/inquire@1.1.0': {}
+ /@protobufjs/inquire@1.1.0:
+ resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
+ dev: false
- '@protobufjs/path@1.1.2': {}
+ /@protobufjs/path@1.1.2:
+ resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
+ dev: false
- '@protobufjs/pool@1.1.0': {}
+ /@protobufjs/pool@1.1.0:
+ resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
+ dev: false
- '@protobufjs/utf8@1.1.0': {}
+ /@protobufjs/utf8@1.1.0:
+ resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
+ dev: false
- '@rollup/pluginutils@5.1.4(rollup@4.37.0)':
+ /@rollup/pluginutils@4.2.1:
+ resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
+ engines: {node: '>= 8.0.0'}
dependencies:
- '@types/estree': 1.0.6
estree-walker: 2.0.2
- picomatch: 4.0.2
- optionalDependencies:
- rollup: 4.37.0
+ picomatch: 2.3.1
+ dev: true
- '@rollup/rollup-android-arm-eabi@4.37.0':
+ /@rollup/rollup-android-arm-eabi@4.38.0:
+ resolution: {integrity: sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-android-arm64@4.37.0':
+ /@rollup/rollup-android-arm64@4.38.0:
+ resolution: {integrity: sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-darwin-arm64@4.37.0':
+ /@rollup/rollup-darwin-arm64@4.38.0:
+ resolution: {integrity: sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-darwin-x64@4.37.0':
+ /@rollup/rollup-darwin-x64@4.38.0:
+ resolution: {integrity: sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-freebsd-arm64@4.37.0':
+ /@rollup/rollup-freebsd-arm64@4.38.0:
+ resolution: {integrity: sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-freebsd-x64@4.37.0':
+ /@rollup/rollup-freebsd-x64@4.38.0:
+ resolution: {integrity: sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.37.0':
+ /@rollup/rollup-linux-arm-gnueabihf@4.38.0:
+ resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.37.0':
+ /@rollup/rollup-linux-arm-musleabihf@4.38.0:
+ resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.37.0':
+ /@rollup/rollup-linux-arm64-gnu@4.38.0:
+ resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-arm64-musl@4.37.0':
+ /@rollup/rollup-linux-arm64-musl@4.38.0:
+ resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-loongarch64-gnu@4.37.0':
+ /@rollup/rollup-linux-loongarch64-gnu@4.38.0:
+ resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
+ /@rollup/rollup-linux-powerpc64le-gnu@4.38.0:
+ resolution: {integrity: sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.37.0':
+ /@rollup/rollup-linux-riscv64-gnu@4.38.0:
+ resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.37.0':
+ /@rollup/rollup-linux-riscv64-musl@4.38.0:
+ resolution: {integrity: sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.37.0':
+ /@rollup/rollup-linux-s390x-gnu@4.38.0:
+ resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-x64-gnu@4.37.0':
+ /@rollup/rollup-linux-x64-gnu@4.38.0:
+ resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-linux-x64-musl@4.37.0':
+ /@rollup/rollup-linux-x64-musl@4.38.0:
+ resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.37.0':
+ /@rollup/rollup-win32-arm64-msvc@4.38.0:
+ resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.37.0':
+ /@rollup/rollup-win32-ia32-msvc@4.38.0:
+ resolution: {integrity: sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@rollup/rollup-win32-x64-msvc@4.37.0':
+ /@rollup/rollup-win32-x64-msvc@4.38.0:
+ resolution: {integrity: sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
optional: true
- '@saber/nf-design-base-elp@1.3.0':
+ /@saber/nf-design-base-elp@1.3.0:
+ resolution: {integrity: sha512-sKUkhErjggUjH+hoBTVpcUC7j38KAkGUloIVXIRl6YP1WT14QXvtf3iu8iCIOBO8iPKHgrBiq4h80UW9+qqbjQ==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-design-base-elp/-/1.3.0/nf-design-base-elp-1.3.0.tgz}
dependencies:
bpmn-js: 11.5.0
- codemirror: 5.65.19
+ codemirror: 5.65.16
randomcolor: 0.6.2
+ dev: false
- '@saber/nf-form-design-elp@1.4.1(vue@3.5.13)':
+ /@saber/nf-form-design-elp@1.4.1(vue@3.5.13):
+ resolution: {integrity: sha512-O4/ZkOIyxqOplHsRlP/LfDlhCbHNtIrS6n+8+N+0JLYb76a/14X07abAHlpsAg2p0yY62OuuRBu8mpIvh6C40Q==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-form-design-elp/-/1.4.1/nf-form-design-elp-1.4.1.tgz}
+ engines: {node: ^18.0.0 || >=20.0.0}
dependencies:
vuedraggable: 4.1.0(vue@3.5.13)
transitivePeerDependencies:
- vue
+ dev: false
- '@saber/nf-form-elp@1.4.7':
+ /@saber/nf-form-elp@1.4.4:
+ resolution: {integrity: sha512-rf/tlTEBSBOaAX4PJgt11inONEe7dn4g0iJAgozqpKuwrfqgPRChr3N2b8Wkg9DJwBPR/RmIRQ0kHyRo5lKlug==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-form-elp/-/1.4.4/nf-form-elp-1.4.4.tgz}
+ engines: {node: ^18.0.0 || >=20.0.0}
dependencies:
'@amap/amap-jsapi-loader': 1.0.1
'@wangeditor/editor': 5.1.23
- codemirror: 5.65.19
+ codemirror: 5.65.16
countup.js: 2.8.0
signature_pad: 5.0.7
+ dev: false
- '@smallwei/avue@3.6.3(element-plus@2.9.7(vue@3.5.13))(vue@3.5.13)':
+ /@smallwei/avue@3.6.2(element-plus@2.9.3)(vue@3.5.13):
+ resolution: {integrity: sha512-Ifkt0o7KLsAMptfoNMG7qYS86OL2pEet761wWZyZGu8e48wuNNPOfqx5jnibGjx2oIoKtYUFh7tFdllOCth2EQ==}
+ peerDependencies:
+ element-plus: '>=2.2.0'
+ vue: '>=3.2.0'
dependencies:
'@element-plus/icons-vue': 2.3.1(vue@3.5.13)
countup.js: 1.9.3
- dayjs: 1.11.13
- element-plus: 2.9.7(vue@3.5.13)
+ dayjs: 1.10.6
+ element-plus: 2.9.3(vue@3.5.13)
lodash: 4.17.21
vue: 3.5.13
+ dev: false
- '@sxzz/popperjs-es@2.11.7': {}
+ /@sxzz/popperjs-es@2.11.7:
+ resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+ dev: false
- '@transloadit/prettier-bytes@0.0.7': {}
+ /@transloadit/prettier-bytes@0.0.7:
+ resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
+ dev: false
- '@trysound/sax@0.2.0': {}
+ /@trysound/sax@0.2.0:
+ resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+ engines: {node: '>=10.13.0'}
+ dev: true
- '@turf/along@6.5.0':
+ /@turf/along@6.5.0:
+ resolution: {integrity: sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==}
dependencies:
'@turf/bearing': 6.5.0
'@turf/destination': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/angle@6.5.0':
+ /@turf/angle@6.5.0:
+ resolution: {integrity: sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==}
dependencies:
'@turf/bearing': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/rhumb-bearing': 6.5.0
+ dev: false
- '@turf/area@6.5.0':
+ /@turf/area@6.5.0:
+ resolution: {integrity: sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/bbox-clip@6.5.0':
+ /@turf/bbox-clip@6.5.0:
+ resolution: {integrity: sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/bbox-polygon@6.5.0':
+ /@turf/bbox-polygon@6.5.0:
+ resolution: {integrity: sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/bbox@6.5.0':
+ /@turf/bbox@6.5.0:
+ resolution: {integrity: sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/bearing@6.5.0':
+ /@turf/bearing@6.5.0:
+ resolution: {integrity: sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/bezier-spline@6.5.0':
+ /@turf/bezier-spline@6.5.0:
+ resolution: {integrity: sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/boolean-clockwise@6.5.0':
+ /@turf/boolean-clockwise@6.5.0:
+ resolution: {integrity: sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/boolean-contains@6.5.0':
+ /@turf/boolean-contains@6.5.0:
+ resolution: {integrity: sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/boolean-point-on-line': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/boolean-crosses@6.5.0':
+ /@turf/boolean-crosses@6.5.0:
+ resolution: {integrity: sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==}
dependencies:
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/line-intersect': 6.5.0
'@turf/polygon-to-line': 6.5.0
+ dev: false
- '@turf/boolean-disjoint@6.5.0':
+ /@turf/boolean-disjoint@6.5.0:
+ resolution: {integrity: sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==}
dependencies:
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/helpers': 6.5.0
'@turf/line-intersect': 6.5.0
'@turf/meta': 6.5.0
'@turf/polygon-to-line': 6.5.0
+ dev: false
- '@turf/boolean-equal@6.5.0':
+ /@turf/boolean-equal@6.5.0:
+ resolution: {integrity: sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==}
dependencies:
'@turf/clean-coords': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
geojson-equality: 0.1.6
+ dev: false
- '@turf/boolean-intersects@6.5.0':
+ /@turf/boolean-intersects@6.5.0:
+ resolution: {integrity: sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==}
dependencies:
'@turf/boolean-disjoint': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/boolean-overlap@6.5.0':
+ /@turf/boolean-overlap@6.5.0:
+ resolution: {integrity: sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
@@ -3344,33 +1106,43 @@
'@turf/line-overlap': 6.5.0
'@turf/meta': 6.5.0
geojson-equality: 0.1.6
+ dev: false
- '@turf/boolean-parallel@6.5.0':
+ /@turf/boolean-parallel@6.5.0:
+ resolution: {integrity: sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==}
dependencies:
'@turf/clean-coords': 6.5.0
'@turf/helpers': 6.5.0
'@turf/line-segment': 6.5.0
'@turf/rhumb-bearing': 6.5.0
+ dev: false
- '@turf/boolean-point-in-polygon@6.5.0':
+ /@turf/boolean-point-in-polygon@6.5.0:
+ resolution: {integrity: sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/boolean-point-on-line@6.5.0':
+ /@turf/boolean-point-on-line@6.5.0:
+ resolution: {integrity: sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/boolean-within@6.5.0':
+ /@turf/boolean-within@6.5.0:
+ resolution: {integrity: sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/boolean-point-on-line': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/buffer@6.5.0':
+ /@turf/buffer@6.5.0:
+ resolution: {integrity: sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/center': 6.5.0
@@ -3379,87 +1151,115 @@
'@turf/projection': 6.5.0
d3-geo: 1.7.1
turf-jsts: 1.2.3
+ dev: false
- '@turf/center-mean@6.5.0':
+ /@turf/center-mean@6.5.0:
+ resolution: {integrity: sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/center-median@6.5.0':
+ /@turf/center-median@6.5.0:
+ resolution: {integrity: sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==}
dependencies:
'@turf/center-mean': 6.5.0
'@turf/centroid': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/center-of-mass@6.5.0':
+ /@turf/center-of-mass@6.5.0:
+ resolution: {integrity: sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==}
dependencies:
'@turf/centroid': 6.5.0
'@turf/convex': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/center@6.5.0':
+ /@turf/center@6.5.0:
+ resolution: {integrity: sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/centroid@6.5.0':
+ /@turf/centroid@6.5.0:
+ resolution: {integrity: sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/circle@6.5.0':
+ /@turf/circle@6.5.0:
+ resolution: {integrity: sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==}
dependencies:
'@turf/destination': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/clean-coords@6.5.0':
+ /@turf/clean-coords@6.5.0:
+ resolution: {integrity: sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/clone@6.5.0':
+ /@turf/clone@6.5.0:
+ resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/clusters-dbscan@6.5.0':
+ /@turf/clusters-dbscan@6.5.0:
+ resolution: {integrity: sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==}
dependencies:
'@turf/clone': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
density-clustering: 1.3.0
+ dev: false
- '@turf/clusters-kmeans@6.5.0':
+ /@turf/clusters-kmeans@6.5.0:
+ resolution: {integrity: sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==}
dependencies:
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
skmeans: 0.9.7
+ dev: false
- '@turf/clusters@6.5.0':
+ /@turf/clusters@6.5.0:
+ resolution: {integrity: sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/collect@6.5.0':
+ /@turf/collect@6.5.0:
+ resolution: {integrity: sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/helpers': 6.5.0
rbush: 2.0.2
+ dev: false
- '@turf/combine@6.5.0':
+ /@turf/combine@6.5.0:
+ resolution: {integrity: sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/concave@6.5.0':
+ /@turf/concave@6.5.0:
+ resolution: {integrity: sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==}
dependencies:
'@turf/clone': 6.5.0
'@turf/distance': 6.5.0
@@ -3469,87 +1269,117 @@
'@turf/tin': 6.5.0
topojson-client: 3.1.0
topojson-server: 3.0.1
+ dev: false
- '@turf/convex@6.5.0':
+ /@turf/convex@6.5.0:
+ resolution: {integrity: sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
concaveman: 1.2.1
+ dev: false
- '@turf/destination@6.5.0':
+ /@turf/destination@6.5.0:
+ resolution: {integrity: sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/difference@6.5.0':
+ /@turf/difference@6.5.0:
+ resolution: {integrity: sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
polygon-clipping: 0.15.7
+ dev: false
- '@turf/dissolve@6.5.0':
+ /@turf/dissolve@6.5.0:
+ resolution: {integrity: sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
polygon-clipping: 0.15.7
+ dev: false
- '@turf/distance-weight@6.5.0':
+ /@turf/distance-weight@6.5.0:
+ resolution: {integrity: sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==}
dependencies:
'@turf/centroid': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/distance@6.5.0':
+ /@turf/distance@6.5.0:
+ resolution: {integrity: sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/ellipse@6.5.0':
+ /@turf/ellipse@6.5.0:
+ resolution: {integrity: sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/rhumb-destination': 6.5.0
'@turf/transform-rotate': 6.5.0
+ dev: false
- '@turf/envelope@6.5.0':
+ /@turf/envelope@6.5.0:
+ resolution: {integrity: sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/bbox-polygon': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/explode@6.5.0':
+ /@turf/explode@6.5.0:
+ resolution: {integrity: sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/flatten@6.5.0':
+ /@turf/flatten@6.5.0:
+ resolution: {integrity: sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/flip@6.5.0':
+ /@turf/flip@6.5.0:
+ resolution: {integrity: sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==}
dependencies:
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/great-circle@6.5.0':
+ /@turf/great-circle@6.5.0:
+ resolution: {integrity: sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/helpers@6.5.0': {}
+ /@turf/helpers@6.5.0:
+ resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==}
+ dev: false
- '@turf/hex-grid@6.5.0':
+ /@turf/hex-grid@6.5.0:
+ resolution: {integrity: sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==}
dependencies:
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/intersect': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/interpolate@6.5.0':
+ /@turf/interpolate@6.5.0:
+ resolution: {integrity: sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/centroid': 6.5.0
@@ -3562,18 +1392,24 @@
'@turf/point-grid': 6.5.0
'@turf/square-grid': 6.5.0
'@turf/triangle-grid': 6.5.0
+ dev: false
- '@turf/intersect@6.5.0':
+ /@turf/intersect@6.5.0:
+ resolution: {integrity: sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
polygon-clipping: 0.15.7
+ dev: false
- '@turf/invariant@6.5.0':
+ /@turf/invariant@6.5.0:
+ resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/isobands@6.5.0':
+ /@turf/isobands@6.5.0:
+ resolution: {integrity: sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==}
dependencies:
'@turf/area': 6.5.0
'@turf/bbox': 6.5.0
@@ -3583,53 +1419,69 @@
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
object-assign: 4.1.1
+ dev: false
- '@turf/isolines@6.5.0':
+ /@turf/isolines@6.5.0:
+ resolution: {integrity: sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
object-assign: 4.1.1
+ dev: false
- '@turf/kinks@6.5.0':
+ /@turf/kinks@6.5.0:
+ resolution: {integrity: sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/length@6.5.0':
+ /@turf/length@6.5.0:
+ resolution: {integrity: sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==}
dependencies:
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/line-arc@6.5.0':
+ /@turf/line-arc@6.5.0:
+ resolution: {integrity: sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==}
dependencies:
'@turf/circle': 6.5.0
'@turf/destination': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/line-chunk@6.5.0':
+ /@turf/line-chunk@6.5.0:
+ resolution: {integrity: sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/length': 6.5.0
'@turf/line-slice-along': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/line-intersect@6.5.0':
+ /@turf/line-intersect@6.5.0:
+ resolution: {integrity: sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/line-segment': 6.5.0
'@turf/meta': 6.5.0
geojson-rbush: 3.2.0
+ dev: false
- '@turf/line-offset@6.5.0':
+ /@turf/line-offset@6.5.0:
+ resolution: {integrity: sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/line-overlap@6.5.0':
+ /@turf/line-overlap@6.5.0:
+ resolution: {integrity: sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==}
dependencies:
'@turf/boolean-point-on-line': 6.5.0
'@turf/helpers': 6.5.0
@@ -3639,27 +1491,35 @@
'@turf/nearest-point-on-line': 6.5.0
deep-equal: 1.1.2
geojson-rbush: 3.2.0
+ dev: false
- '@turf/line-segment@6.5.0':
+ /@turf/line-segment@6.5.0:
+ resolution: {integrity: sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/line-slice-along@6.5.0':
+ /@turf/line-slice-along@6.5.0:
+ resolution: {integrity: sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==}
dependencies:
'@turf/bearing': 6.5.0
'@turf/destination': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/line-slice@6.5.0':
+ /@turf/line-slice@6.5.0:
+ resolution: {integrity: sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/nearest-point-on-line': 6.5.0
+ dev: false
- '@turf/line-split@6.5.0':
+ /@turf/line-split@6.5.0:
+ resolution: {integrity: sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/helpers': 6.5.0
@@ -3671,37 +1531,49 @@
'@turf/square': 6.5.0
'@turf/truncate': 6.5.0
geojson-rbush: 3.2.0
+ dev: false
- '@turf/line-to-polygon@6.5.0':
+ /@turf/line-to-polygon@6.5.0:
+ resolution: {integrity: sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/mask@6.5.0':
+ /@turf/mask@6.5.0:
+ resolution: {integrity: sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==}
dependencies:
'@turf/helpers': 6.5.0
polygon-clipping: 0.15.7
+ dev: false
- '@turf/meta@6.5.0':
+ /@turf/meta@6.5.0:
+ resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/midpoint@6.5.0':
+ /@turf/midpoint@6.5.0:
+ resolution: {integrity: sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==}
dependencies:
'@turf/bearing': 6.5.0
'@turf/destination': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/moran-index@6.5.0':
+ /@turf/moran-index@6.5.0:
+ resolution: {integrity: sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==}
dependencies:
'@turf/distance-weight': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/nearest-point-on-line@6.5.0':
+ /@turf/nearest-point-on-line@6.5.0:
+ resolution: {integrity: sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==}
dependencies:
'@turf/bearing': 6.5.0
'@turf/destination': 6.5.0
@@ -3710,43 +1582,55 @@
'@turf/invariant': 6.5.0
'@turf/line-intersect': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/nearest-point-to-line@6.5.0':
+ /@turf/nearest-point-to-line@6.5.0:
+ resolution: {integrity: sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
'@turf/point-to-line-distance': 6.5.0
object-assign: 4.1.1
+ dev: false
- '@turf/nearest-point@6.5.0':
+ /@turf/nearest-point@6.5.0:
+ resolution: {integrity: sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==}
dependencies:
'@turf/clone': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/planepoint@6.5.0':
+ /@turf/planepoint@6.5.0:
+ resolution: {integrity: sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/point-grid@6.5.0':
+ /@turf/point-grid@6.5.0:
+ resolution: {integrity: sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==}
dependencies:
'@turf/boolean-within': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/point-on-feature@6.5.0':
+ /@turf/point-on-feature@6.5.0:
+ resolution: {integrity: sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==}
dependencies:
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/center': 6.5.0
'@turf/explode': 6.5.0
'@turf/helpers': 6.5.0
'@turf/nearest-point': 6.5.0
+ dev: false
- '@turf/point-to-line-distance@6.5.0':
+ /@turf/point-to-line-distance@6.5.0:
+ resolution: {integrity: sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==}
dependencies:
'@turf/bearing': 6.5.0
'@turf/distance': 6.5.0
@@ -3756,19 +1640,25 @@
'@turf/projection': 6.5.0
'@turf/rhumb-bearing': 6.5.0
'@turf/rhumb-distance': 6.5.0
+ dev: false
- '@turf/points-within-polygon@6.5.0':
+ /@turf/points-within-polygon@6.5.0:
+ resolution: {integrity: sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==}
dependencies:
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/polygon-smooth@6.5.0':
+ /@turf/polygon-smooth@6.5.0:
+ resolution: {integrity: sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/polygon-tangents@6.5.0':
+ /@turf/polygon-tangents@6.5.0:
+ resolution: {integrity: sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/boolean-within': 6.5.0
@@ -3776,72 +1666,96 @@
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/nearest-point': 6.5.0
+ dev: false
- '@turf/polygon-to-line@6.5.0':
+ /@turf/polygon-to-line@6.5.0:
+ resolution: {integrity: sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/polygonize@6.5.0':
+ /@turf/polygonize@6.5.0:
+ resolution: {integrity: sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==}
dependencies:
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/envelope': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/projection@6.5.0':
+ /@turf/projection@6.5.0:
+ resolution: {integrity: sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==}
dependencies:
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/random@6.5.0':
+ /@turf/random@6.5.0:
+ resolution: {integrity: sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/rectangle-grid@6.5.0':
+ /@turf/rectangle-grid@6.5.0:
+ resolution: {integrity: sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==}
dependencies:
'@turf/boolean-intersects': 6.5.0
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/rewind@6.5.0':
+ /@turf/rewind@6.5.0:
+ resolution: {integrity: sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==}
dependencies:
'@turf/boolean-clockwise': 6.5.0
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/rhumb-bearing@6.5.0':
+ /@turf/rhumb-bearing@6.5.0:
+ resolution: {integrity: sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/rhumb-destination@6.5.0':
+ /@turf/rhumb-destination@6.5.0:
+ resolution: {integrity: sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/rhumb-distance@6.5.0':
+ /@turf/rhumb-distance@6.5.0:
+ resolution: {integrity: sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
+ dev: false
- '@turf/sample@6.5.0':
+ /@turf/sample@6.5.0:
+ resolution: {integrity: sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/sector@6.5.0':
+ /@turf/sector@6.5.0:
+ resolution: {integrity: sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==}
dependencies:
'@turf/circle': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/line-arc': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/shortest-path@6.5.0':
+ /@turf/shortest-path@6.5.0:
+ resolution: {integrity: sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/bbox-polygon': 6.5.0
@@ -3852,25 +1766,33 @@
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
'@turf/transform-scale': 6.5.0
+ dev: false
- '@turf/simplify@6.5.0':
+ /@turf/simplify@6.5.0:
+ resolution: {integrity: sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==}
dependencies:
'@turf/clean-coords': 6.5.0
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/square-grid@6.5.0':
+ /@turf/square-grid@6.5.0:
+ resolution: {integrity: sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/rectangle-grid': 6.5.0
+ dev: false
- '@turf/square@6.5.0':
+ /@turf/square@6.5.0:
+ resolution: {integrity: sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==}
dependencies:
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/standard-deviational-ellipse@6.5.0':
+ /@turf/standard-deviational-ellipse@6.5.0:
+ resolution: {integrity: sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==}
dependencies:
'@turf/center-mean': 6.5.0
'@turf/ellipse': 6.5.0
@@ -3878,24 +1800,32 @@
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
'@turf/points-within-polygon': 6.5.0
+ dev: false
- '@turf/tag@6.5.0':
+ /@turf/tag@6.5.0:
+ resolution: {integrity: sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==}
dependencies:
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/tesselate@6.5.0':
+ /@turf/tesselate@6.5.0:
+ resolution: {integrity: sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==}
dependencies:
'@turf/helpers': 6.5.0
earcut: 2.2.4
+ dev: false
- '@turf/tin@6.5.0':
+ /@turf/tin@6.5.0:
+ resolution: {integrity: sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==}
dependencies:
'@turf/helpers': 6.5.0
+ dev: false
- '@turf/transform-rotate@6.5.0':
+ /@turf/transform-rotate@6.5.0:
+ resolution: {integrity: sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==}
dependencies:
'@turf/centroid': 6.5.0
'@turf/clone': 6.5.0
@@ -3905,8 +1835,10 @@
'@turf/rhumb-bearing': 6.5.0
'@turf/rhumb-destination': 6.5.0
'@turf/rhumb-distance': 6.5.0
+ dev: false
- '@turf/transform-scale@6.5.0':
+ /@turf/transform-scale@6.5.0:
+ resolution: {integrity: sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/center': 6.5.0
@@ -3918,27 +1850,35 @@
'@turf/rhumb-bearing': 6.5.0
'@turf/rhumb-destination': 6.5.0
'@turf/rhumb-distance': 6.5.0
+ dev: false
- '@turf/transform-translate@6.5.0':
+ /@turf/transform-translate@6.5.0:
+ resolution: {integrity: sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==}
dependencies:
'@turf/clone': 6.5.0
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
'@turf/meta': 6.5.0
'@turf/rhumb-destination': 6.5.0
+ dev: false
- '@turf/triangle-grid@6.5.0':
+ /@turf/triangle-grid@6.5.0:
+ resolution: {integrity: sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==}
dependencies:
'@turf/distance': 6.5.0
'@turf/helpers': 6.5.0
'@turf/intersect': 6.5.0
+ dev: false
- '@turf/truncate@6.5.0':
+ /@turf/truncate@6.5.0:
+ resolution: {integrity: sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
+ dev: false
- '@turf/turf@6.5.0':
+ /@turf/turf@6.5.0:
+ resolution: {integrity: sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==}
dependencies:
'@turf/along': 6.5.0
'@turf/angle': 6.5.0
@@ -4045,60 +1985,90 @@
'@turf/union': 6.5.0
'@turf/unkink-polygon': 6.5.0
'@turf/voronoi': 6.5.0
+ dev: false
- '@turf/union@6.5.0':
+ /@turf/union@6.5.0:
+ resolution: {integrity: sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
polygon-clipping: 0.15.7
+ dev: false
- '@turf/unkink-polygon@6.5.0':
+ /@turf/unkink-polygon@6.5.0:
+ resolution: {integrity: sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==}
dependencies:
'@turf/area': 6.5.0
'@turf/boolean-point-in-polygon': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
rbush: 2.0.2
+ dev: false
- '@turf/voronoi@6.5.0':
+ /@turf/voronoi@6.5.0:
+ resolution: {integrity: sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==}
dependencies:
'@turf/helpers': 6.5.0
'@turf/invariant': 6.5.0
d3-voronoi: 1.1.2
+ dev: false
- '@tweenjs/tween.js@25.0.0': {}
+ /@tweenjs/tween.js@25.0.0:
+ resolution: {integrity: sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==}
+ dev: false
- '@types/estree@1.0.6': {}
+ /@types/estree@1.0.7:
+ resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+ dev: true
- '@types/event-emitter@0.3.5': {}
+ /@types/event-emitter@0.3.5:
+ resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==}
+ dev: false
- '@types/geojson@7946.0.8': {}
+ /@types/geojson@7946.0.8:
+ resolution: {integrity: sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==}
+ dev: false
- '@types/lodash-es@4.17.12':
+ /@types/lodash-es@4.17.12:
+ resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
dependencies:
'@types/lodash': 4.17.16
+ dev: false
- '@types/lodash@4.17.16': {}
+ /@types/lodash@4.17.16:
+ resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==}
+ dev: false
- '@types/node@22.13.13':
+ /@types/node@22.13.14:
+ resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==}
dependencies:
undici-types: 6.20.0
- '@types/svgo@2.6.4':
+ /@types/svgo@2.6.4:
+ resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
dependencies:
- '@types/node': 22.13.13
+ '@types/node': 22.13.14
+ dev: true
- '@types/trusted-types@2.0.7':
+ /@types/trusted-types@2.0.7:
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+ requiresBuild: true
+ dev: false
optional: true
- '@types/web-bluetooth@0.0.16': {}
+ /@types/web-bluetooth@0.0.16:
+ resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+ dev: false
- '@uppy/companion-client@2.2.2':
+ /@uppy/companion-client@2.2.2:
+ resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==}
dependencies:
'@uppy/utils': 4.1.3
namespace-emitter: 2.0.1
+ dev: false
- '@uppy/core@2.3.4':
+ /@uppy/core@2.3.4:
+ resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==}
dependencies:
'@transloadit/prettier-bytes': 0.0.7
'@uppy/store-default': 2.1.1
@@ -4108,26 +2078,52 @@
namespace-emitter: 2.0.1
nanoid: 3.3.11
preact: 10.26.4
+ dev: false
- '@uppy/store-default@2.1.1': {}
+ /@uppy/store-default@2.1.1:
+ resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==}
+ dev: false
- '@uppy/utils@4.1.3':
+ /@uppy/utils@4.1.3:
+ resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==}
dependencies:
lodash.throttle: 4.1.1
+ dev: false
- '@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4)':
+ /@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4):
+ resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==}
+ peerDependencies:
+ '@uppy/core': ^2.3.3
dependencies:
'@uppy/companion-client': 2.2.2
'@uppy/core': 2.3.4
'@uppy/utils': 4.1.3
nanoid: 3.3.11
+ dev: false
- '@vitejs/plugin-vue@5.2.3(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0))(vue@3.5.13)':
+ /@vitejs/plugin-vue@5.0.4(vite@5.2.12)(vue@3.5.13):
+ resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ vite: ^5.0.0
+ vue: ^3.2.25
dependencies:
- vite: 5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)
+ vite: 5.2.12(sass@1.85.1)(terser@5.31.1)
vue: 3.5.13
+ dev: true
- '@vue/compiler-core@3.5.13':
+ /@vue/compiler-core@3.4.27:
+ resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==}
+ dependencies:
+ '@babel/parser': 7.27.0
+ '@vue/shared': 3.4.27
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+ dev: true
+
+ /@vue/compiler-core@3.5.13:
+ resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
dependencies:
'@babel/parser': 7.27.0
'@vue/shared': 3.5.13
@@ -4135,12 +2131,35 @@
estree-walker: 2.0.2
source-map-js: 1.2.1
- '@vue/compiler-dom@3.5.13':
+ /@vue/compiler-dom@3.4.27:
+ resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==}
+ dependencies:
+ '@vue/compiler-core': 3.4.27
+ '@vue/shared': 3.4.27
+ dev: true
+
+ /@vue/compiler-dom@3.5.13:
+ resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
dependencies:
'@vue/compiler-core': 3.5.13
'@vue/shared': 3.5.13
- '@vue/compiler-sfc@3.5.13':
+ /@vue/compiler-sfc@3.4.27:
+ resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==}
+ dependencies:
+ '@babel/parser': 7.27.0
+ '@vue/compiler-core': 3.4.27
+ '@vue/compiler-dom': 3.4.27
+ '@vue/compiler-ssr': 3.4.27
+ '@vue/shared': 3.4.27
+ estree-walker: 2.0.2
+ magic-string: 0.30.17
+ postcss: 8.5.3
+ source-map-js: 1.2.1
+ dev: true
+
+ /@vue/compiler-sfc@3.5.13:
+ resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==}
dependencies:
'@babel/parser': 7.27.0
'@vue/compiler-core': 3.5.13
@@ -4152,38 +2171,60 @@
postcss: 8.5.3
source-map-js: 1.2.1
- '@vue/compiler-ssr@3.5.13':
+ /@vue/compiler-ssr@3.4.27:
+ resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==}
+ dependencies:
+ '@vue/compiler-dom': 3.4.27
+ '@vue/shared': 3.4.27
+ dev: true
+
+ /@vue/compiler-ssr@3.5.13:
+ resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
dependencies:
'@vue/compiler-dom': 3.5.13
'@vue/shared': 3.5.13
- '@vue/devtools-api@6.6.4': {}
+ /@vue/devtools-api@6.6.4:
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+ dev: false
- '@vue/reactivity@3.5.13':
+ /@vue/reactivity@3.5.13:
+ resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
dependencies:
'@vue/shared': 3.5.13
- '@vue/runtime-core@3.5.13':
+ /@vue/runtime-core@3.5.13:
+ resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
dependencies:
'@vue/reactivity': 3.5.13
'@vue/shared': 3.5.13
- '@vue/runtime-dom@3.5.13':
+ /@vue/runtime-dom@3.5.13:
+ resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
dependencies:
'@vue/reactivity': 3.5.13
'@vue/runtime-core': 3.5.13
'@vue/shared': 3.5.13
csstype: 3.1.3
- '@vue/server-renderer@3.5.13(vue@3.5.13)':
+ /@vue/server-renderer@3.5.13(vue@3.5.13):
+ resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
+ peerDependencies:
+ vue: 3.5.13
dependencies:
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
vue: 3.5.13
- '@vue/shared@3.5.13': {}
+ /@vue/shared@3.4.27:
+ resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==}
+ dev: true
- '@vueuse/core@9.13.0(vue@3.5.13)':
+ /@vue/shared@3.5.13:
+ resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
+
+ /@vueuse/core@9.13.0(vue@3.5.13):
+ resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
@@ -4192,35 +2233,72 @@
transitivePeerDependencies:
- '@vue/composition-api'
- vue
+ dev: false
- '@vueuse/metadata@9.13.0': {}
+ /@vueuse/metadata@9.13.0:
+ resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
+ dev: false
- '@vueuse/shared@9.13.0(vue@3.5.13)':
+ /@vueuse/shared@9.13.0(vue@3.5.13):
+ resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
dependencies:
vue-demi: 0.14.10(vue@3.5.13)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
+ dev: false
- '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.throttle: ^4.1.1
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
is-url: 1.2.4
lodash.throttle: 4.1.1
nanoid: 3.3.11
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
prismjs: 1.30.0
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==}
+ peerDependencies:
+ '@uppy/core': ^2.1.1
+ '@uppy/xhr-upload': ^2.0.3
+ dom7: ^3.0.0
+ is-hotkey: ^0.2.0
+ lodash.camelcase: ^4.3.0
+ lodash.clonedeep: ^4.5.0
+ lodash.debounce: ^4.0.8
+ lodash.foreach: ^4.5.0
+ lodash.isequal: ^4.5.0
+ lodash.throttle: ^4.1.1
+ lodash.toarray: ^4.4.0
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
'@types/event-emitter': 0.3.5
'@uppy/core': 2.3.4
@@ -4242,23 +2320,30 @@
slate: 0.72.8
slate-history: 0.66.0(slate@0.72.8)
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13)':
+ /@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13):
+ resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==}
+ peerDependencies:
+ '@wangeditor/editor': '>=5.1.0'
+ vue: ^3.0.5
dependencies:
'@wangeditor/editor': 5.1.23
vue: 3.5.13
+ dev: false
- '@wangeditor/editor@5.1.23':
+ /@wangeditor/editor@5.1.23:
+ resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==}
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
- '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
is-hotkey: 0.2.0
lodash.camelcase: 4.3.0
@@ -4271,73 +2356,155 @@
nanoid: 3.3.11
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.isequal: ^4.5.0
+ lodash.throttle: ^4.1.1
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
lodash.isequal: 4.5.0
lodash.throttle: 4.1.1
nanoid: 3.3.11
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==}
+ peerDependencies:
+ '@uppy/core': ^2.0.3
+ '@uppy/xhr-upload': ^2.0.3
+ '@wangeditor/basic-modules': 1.x
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.foreach: ^4.5.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
- '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
lodash.foreach: 4.5.0
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)':
+ /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2):
+ resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==}
+ peerDependencies:
+ '@uppy/core': ^2.1.4
+ '@uppy/xhr-upload': ^2.0.7
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
- '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)
dom7: 3.0.0
nanoid: 3.3.11
slate: 0.72.8
snabbdom: 3.6.2
+ dev: false
- '@zip.js/zip.js@2.7.57': {}
+ /@zip.js/zip.js@2.7.60:
+ resolution: {integrity: sha512-vA3rLyqdxBrVo1FWSsbyoecaqWTV+vgPRf0QKeM7kVDG0r+lHUqd7zQDv1TO9k4BcAoNzNDSNrrel24Mk6addA==}
+ engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=16.5.0'}
+ dev: false
- acorn@8.14.1: {}
+ /acorn@8.14.1:
+ resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
- animate.css@4.1.1: {}
+ /animate.css@4.1.1:
+ resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==}
+ dev: false
- ansi-regex@2.1.1: {}
+ /ansi-regex@2.1.1:
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- ansi-styles@2.2.1: {}
+ /ansi-styles@2.2.1:
+ resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- ansi-styles@4.3.0:
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
+ dev: true
- arr-diff@4.0.0: {}
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
- arr-flatten@1.1.0: {}
+ /arr-diff@4.0.0:
+ resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- arr-union@3.1.0: {}
+ /arr-flatten@1.1.0:
+ resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- array-buffer-byte-length@1.0.2:
+ /arr-union@3.1.0:
+ resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
is-array-buffer: 3.0.5
+ dev: true
- array-unique@0.3.2: {}
+ /array-unique@0.3.2:
+ resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- arraybuffer.prototype.slice@1.0.4:
+ /arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.2
call-bind: 1.0.8
@@ -4346,41 +2513,70 @@
es-errors: 1.3.0
get-intrinsic: 1.3.0
is-array-buffer: 3.0.5
+ dev: true
- assign-symbols@1.0.0: {}
+ /assign-symbols@1.0.0:
+ resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- async-function@1.0.0: {}
+ /async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+ dev: true
- async-validator@4.2.5: {}
+ /async-validator@4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+ dev: false
- asynckit@0.4.0: {}
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: false
- atob@2.1.2: {}
+ /atob@2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+ dev: true
- autolinker@4.1.0:
+ /autolinker@4.1.0:
+ resolution: {integrity: sha512-mYzdZMei1zIXcHVS/LjnuCJG+C/hNi8O+5m0R8YWtrIBWGrjL8CVzEZXxOfH0l1kioEXHNpUJRkgZdyL4GgIHQ==}
dependencies:
tslib: 2.8.1
+ dev: false
- available-typed-arrays@1.0.7:
+ /available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
dependencies:
possible-typed-array-names: 1.1.0
+ dev: true
- avue-plugin-ueditor@1.0.4(axios@1.8.4)(vue@3.5.13):
+ /avue-plugin-ueditor@1.0.4(axios@1.8.3)(vue@3.5.13):
+ resolution: {integrity: sha512-fFOFsduZI9yK3LE7FpLMqqLJoWp4xGTDj08wmSS2CkBL6H1+P8+7u9lEcvRejnvytUBhv87xKNhHdMuWru1Umg==}
+ peerDependencies:
+ axios: '>=0.18.0'
+ vue: '>=3.2.0'
dependencies:
'@wangeditor/editor': 5.1.23
'@wangeditor/editor-for-vue': 5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.13)
- axios: 1.8.4
+ axios: 1.8.3
vue: 3.5.13
+ dev: false
- axios@1.8.4:
+ /axios@1.8.3:
+ resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==}
dependencies:
follow-redirects: 1.15.9
form-data: 4.0.2
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
+ dev: false
- base@0.11.2:
+ /base@0.11.2:
+ resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
+ engines: {node: '>=0.10.0'}
dependencies:
cache-base: 1.0.1
class-utils: 0.3.6
@@ -4389,16 +2585,31 @@
isobject: 3.0.1
mixin-deep: 1.3.2
pascalcase: 0.1.1
+ dev: true
- big.js@5.2.2: {}
+ /big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+ dev: true
- bitmap-sdf@1.0.4: {}
+ /binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+ dev: true
- bluebird@3.7.2: {}
+ /bitmap-sdf@1.0.4:
+ resolution: {integrity: sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==}
+ dev: false
- boolbase@1.0.0: {}
+ /bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+ dev: true
- bpmn-js@11.5.0:
+ /boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ dev: true
+
+ /bpmn-js@11.5.0:
+ resolution: {integrity: sha512-Bdj53UvfiDtGE1wmiBmpgjl5RMLhCGV/C841dyC+t4kBHj7vApAeeHs2Qiycj390HO4B2U8UDROLT7yjdXEEUA==}
dependencies:
bpmn-moddle: 8.1.0
diagram-js: 11.13.1
@@ -4409,14 +2620,19 @@
min-dom: 4.2.1
object-refs: 0.3.0
tiny-svg: 3.1.3
+ dev: false
- bpmn-moddle@8.1.0:
+ /bpmn-moddle@8.1.0:
+ resolution: {integrity: sha512-yI5OAFfYVJwViKTsTsonVfCBPtB3MlefADUORwNIxxBOMp21vnoxuxsdgUWlPH/dvAEZh/+mr8UtqOBNu8NC5Q==}
dependencies:
min-dash: 4.2.3
moddle: 6.2.3
moddle-xml: 10.1.0
+ dev: false
- braces@2.3.2:
+ /braces@2.3.2:
+ resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
+ engines: {node: '>=0.10.0'}
dependencies:
arr-flatten: 1.1.0
array-unique: 0.3.2
@@ -4430,14 +2646,22 @@
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
+ dev: true
- braces@3.0.3:
+ /braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
dependencies:
fill-range: 7.1.1
+ dev: true
- buffer-from@1.1.2: {}
+ /buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ dev: true
- cache-base@1.0.1:
+ /cache-base@1.0.1:
+ resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
collection-visit: 1.0.0
component-emitter: 1.3.1
@@ -4448,177 +2672,317 @@
to-object-path: 0.3.0
union-value: 1.0.1
unset-value: 1.0.0
+ dev: true
- call-bind-apply-helpers@1.0.2:
+ /call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
function-bind: 1.1.2
- call-bind@1.0.8:
+ /call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
get-intrinsic: 1.3.0
set-function-length: 1.2.2
- call-bound@1.0.4:
+ /call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
- cesium@1.127.0:
+ /cesium@1.126.0:
+ resolution: {integrity: sha512-29Cy6eq9NzTbQUaOXQEnVJyYoHCeizrBTbbB76OClI5+FNq9saUUx+iQXg/J6r8vX+KWt6oD/lVpZ0QMcvAgog==}
+ engines: {node: '>=18.18.0'}
dependencies:
- '@cesium/engine': 15.0.0
- '@cesium/widgets': 11.0.0
+ '@cesium/engine': 14.0.0
+ '@cesium/widgets': 10.2.0
+ dev: false
- chalk@1.1.3:
+ /chalk@1.1.3:
+ resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
+ engines: {node: '>=0.10.0'}
dependencies:
ansi-styles: 2.2.1
escape-string-regexp: 1.0.5
has-ansi: 2.0.0
strip-ansi: 3.0.1
supports-color: 2.0.0
+ dev: true
- chalk@4.1.2:
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ dev: true
- chokidar@4.0.3:
+ /chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
dependencies:
readdirp: 4.1.2
+ dev: true
- class-utils@0.3.6:
+ /class-utils@0.3.6:
+ resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
+ engines: {node: '>=0.10.0'}
dependencies:
arr-union: 3.1.0
define-property: 0.2.5
isobject: 3.0.1
static-extend: 0.1.2
+ dev: true
- clipboard@2.0.11:
+ /clipboard@2.0.11:
+ resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==}
dependencies:
good-listener: 1.2.2
select: 1.1.2
tiny-emitter: 2.1.0
+ dev: false
- clone@2.1.2: {}
+ /clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+ dev: true
- clsx@1.2.1: {}
+ /clsx@1.2.1:
+ resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
+ engines: {node: '>=6'}
+ dev: false
- codemirror@5.65.19: {}
+ /codemirror@5.65.16:
+ resolution: {integrity: sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==}
+ dev: false
- collection-visit@1.0.0:
+ /collection-visit@1.0.0:
+ resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
+ engines: {node: '>=0.10.0'}
dependencies:
map-visit: 1.0.0
object-visit: 1.0.1
+ dev: true
- color-convert@2.0.1:
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
+ dev: true
- color-name@1.1.4: {}
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
- combined-stream@1.0.8:
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
dependencies:
delayed-stream: 1.0.0
+ dev: false
- commander@2.20.3: {}
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- commander@7.2.0: {}
+ /commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+ dev: true
- component-emitter@1.3.1: {}
+ /component-emitter@1.3.1:
+ resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+ dev: true
- component-event@0.2.1: {}
+ /component-event@0.2.1:
+ resolution: {integrity: sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==}
+ dev: false
- compute-scroll-into-view@1.0.20: {}
+ /compute-scroll-into-view@1.0.20:
+ resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
+ dev: false
- concaveman@1.2.1:
+ /concaveman@1.2.1:
+ resolution: {integrity: sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==}
dependencies:
point-in-polygon: 1.1.0
rbush: 3.0.1
robust-predicates: 2.0.4
tinyqueue: 2.0.3
+ dev: false
- confbox@0.1.8: {}
+ /confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+ dev: true
- copy-descriptor@0.1.1: {}
+ /copy-descriptor@0.1.1:
+ resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- cors@2.8.5:
+ /cors@2.8.5:
+ resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+ engines: {node: '>= 0.10'}
dependencies:
object-assign: 4.1.1
vary: 1.1.2
+ dev: true
- countup.js@1.9.3: {}
+ /countup.js@1.9.3:
+ resolution: {integrity: sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==}
+ dev: false
- countup.js@2.8.0: {}
+ /countup.js@2.8.0:
+ resolution: {integrity: sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==}
+ dev: false
- crypto-js@4.2.0: {}
+ /crypto-js@4.1.1:
+ resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==}
+ dev: false
- css-select@4.3.0:
+ /css-select@4.3.0:
+ resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 4.3.1
domutils: 2.8.0
nth-check: 2.1.1
+ dev: true
- css-tree@1.1.3:
+ /css-tree@1.1.3:
+ resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
+ engines: {node: '>=8.0.0'}
dependencies:
mdn-data: 2.0.14
source-map: 0.6.1
+ dev: true
- css-what@6.1.0: {}
+ /css-what@6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+ dev: true
- csso@4.2.0:
+ /csso@4.2.0:
+ resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
+ engines: {node: '>=8.0.0'}
dependencies:
css-tree: 1.1.3
+ dev: true
- csstype@3.1.3: {}
+ /csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
- d3-array@1.2.4: {}
+ /d3-array@1.2.4:
+ resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==}
+ dev: false
- d3-geo@1.7.1:
+ /d3-geo@1.7.1:
+ resolution: {integrity: sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==}
dependencies:
d3-array: 1.2.4
+ dev: false
- d3-voronoi@1.1.2: {}
+ /d3-voronoi@1.1.2:
+ resolution: {integrity: sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==}
+ dev: false
- d@1.0.2:
+ /d@1.0.2:
+ resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
+ engines: {node: '>=0.12'}
dependencies:
es5-ext: 0.10.64
type: 2.7.3
+ dev: false
- data-view-buffer@1.0.2:
+ /data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
is-data-view: 1.0.2
+ dev: true
- data-view-byte-length@1.0.2:
+ /data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
is-data-view: 1.0.2
+ dev: true
- data-view-byte-offset@1.0.1:
+ /data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
is-data-view: 1.0.2
+ dev: true
- dayjs@1.11.13: {}
+ /dayjs@1.10.6:
+ resolution: {integrity: sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw==}
+ dev: false
- debug@2.6.9:
+ /dayjs@1.11.13:
+ resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+ dev: false
+
+ /debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.0.0
+ dev: true
- debug@4.4.0:
+ /debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.1.3
+ dev: true
- decode-uri-component@0.2.2: {}
+ /decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+ dev: true
- deep-equal@1.1.2:
+ /deep-equal@1.1.2:
+ resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==}
+ engines: {node: '>= 0.4'}
dependencies:
is-arguments: 1.2.0
is-date-object: 1.1.0
@@ -4626,48 +2990,79 @@
object-is: 1.1.6
object-keys: 1.1.1
regexp.prototype.flags: 1.5.4
+ dev: false
- define-data-property@1.1.4:
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
dependencies:
es-define-property: 1.0.1
es-errors: 1.3.0
gopd: 1.2.0
- define-properties@1.2.1:
+ /define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
dependencies:
define-data-property: 1.1.4
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- define-property@0.2.5:
+ /define-property@0.2.5:
+ resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-descriptor: 0.1.7
+ dev: true
- define-property@1.0.0:
+ /define-property@1.0.0:
+ resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-descriptor: 1.0.3
+ dev: true
- define-property@2.0.2:
+ /define-property@2.0.2:
+ resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-descriptor: 1.0.3
isobject: 3.0.1
+ dev: true
- delayed-stream@1.0.0: {}
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: false
- delegate@3.2.0: {}
+ /delegate@3.2.0:
+ resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==}
+ dev: false
- density-clustering@1.3.0: {}
+ /density-clustering@1.3.0:
+ resolution: {integrity: sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ==}
+ dev: false
- detect-libc@1.0.3:
+ /detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ requiresBuild: true
+ dev: true
optional: true
- diagram-js-direct-editing@2.1.2(diagram-js@11.13.1):
+ /diagram-js-direct-editing@2.1.2(diagram-js@11.13.1):
+ resolution: {integrity: sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==}
+ peerDependencies:
+ diagram-js: '*'
dependencies:
diagram-js: 11.13.1
min-dash: 4.2.3
min-dom: 4.2.1
+ dev: false
- diagram-js@11.13.1:
+ /diagram-js@11.13.1:
+ resolution: {integrity: sha512-6kO0rBN6aBIQiMELfv1oX2Ohes/brlIPuOVZUYAioeWM0EyuazhAXgHeq8iKFt29daU9NGRr4n78esGx8QjtjQ==}
dependencies:
'@bpmn-io/diagram-js-ui': 0.2.3
clsx: 1.2.1
@@ -4679,78 +3074,119 @@
object-refs: 0.3.0
path-intersection: 2.2.1
tiny-svg: 3.1.3
+ dev: false
- didi@9.0.2: {}
+ /didi@9.0.2:
+ resolution: {integrity: sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==}
+ dev: false
- disable-devtool@0.3.8: {}
+ /disable-devtool@0.3.8:
+ resolution: {integrity: sha512-spwifiBbcgDTVEdzoWyH3NjZ1he/OgJmUNXvMgEffJ8Fh2B6mEJjCCEV25wlJSyNXEdGyzKFFRXh4kVDRK/wCg==}
+ dev: false
- dom-serializer@0.2.2:
+ /dom-serializer@0.2.2:
+ resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}
dependencies:
domelementtype: 2.3.0
entities: 2.2.0
+ dev: true
- dom-serializer@1.4.1:
+ /dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
dependencies:
domelementtype: 2.3.0
domhandler: 4.3.1
entities: 2.2.0
+ dev: true
- dom7@3.0.0:
+ /dom7@3.0.0:
+ resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
dependencies:
ssr-window: 3.0.0
+ dev: false
- domelementtype@1.3.1: {}
+ /domelementtype@1.3.1:
+ resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
+ dev: true
- domelementtype@2.3.0: {}
+ /domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+ dev: true
- domhandler@2.4.2:
+ /domhandler@2.4.2:
+ resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
dependencies:
domelementtype: 1.3.1
+ dev: true
- domhandler@4.3.1:
+ /domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
+ dev: true
- domify@1.4.2: {}
+ /domify@1.4.2:
+ resolution: {integrity: sha512-m4yreHcUWHBncGVV7U+yQzc12vIlq0jMrtHZ5mW6dQMiL/7skSYNVX9wqKwOtyO9SGCgevrAFEgOCAHmamHTUA==}
+ dev: false
- dompurify@3.2.4:
+ /dompurify@3.2.4:
+ resolution: {integrity: sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==}
optionalDependencies:
'@types/trusted-types': 2.0.7
+ dev: false
- domutils@1.7.0:
+ /domutils@1.7.0:
+ resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
dependencies:
dom-serializer: 0.2.2
domelementtype: 1.3.1
+ dev: true
- domutils@2.8.0:
+ /domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
dependencies:
dom-serializer: 1.4.1
domelementtype: 2.3.0
domhandler: 4.3.1
+ dev: true
- draco3d@1.5.7: {}
+ /draco3d@1.5.7:
+ resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==}
+ dev: false
- dunder-proto@1.0.1:
+ /dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
es-errors: 1.3.0
gopd: 1.2.0
- earcut@2.2.4: {}
+ /earcut@2.2.4:
+ resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==}
+ dev: false
- earcut@3.0.1: {}
+ /earcut@3.0.1:
+ resolution: {integrity: sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==}
+ dev: false
- echarts@5.6.0:
+ /echarts@5.6.0:
+ resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==}
dependencies:
tslib: 2.3.0
zrender: 5.6.1
+ dev: false
- element-plus@2.9.7(vue@3.5.13):
+ /element-plus@2.9.3(vue@3.5.13):
+ resolution: {integrity: sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==}
+ peerDependencies:
+ vue: ^3.2.0
dependencies:
'@ctrl/tinycolor': 3.6.1
'@element-plus/icons-vue': 2.3.1(vue@3.5.13)
'@floating-ui/dom': 1.6.13
- '@popperjs/core': '@sxzz/popperjs-es@2.11.7'
+ '@popperjs/core': /@sxzz/popperjs-es@2.11.7
'@types/lodash': 4.17.16
'@types/lodash-es': 4.17.12
'@vueuse/core': 9.13.0(vue@3.5.13)
@@ -4765,16 +3201,28 @@
vue: 3.5.13
transitivePeerDependencies:
- '@vue/composition-api'
+ dev: false
- emojis-list@3.0.0: {}
+ /emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+ dev: true
- entities@1.1.2: {}
+ /entities@1.1.2:
+ resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
+ dev: true
- entities@2.2.0: {}
+ /entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ dev: true
- entities@4.5.0: {}
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
- es-abstract@1.23.9:
+ /es-abstract@1.23.9:
+ resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
+ engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.2
arraybuffer.prototype.slice: 1.0.4
@@ -4827,95 +3275,140 @@
typed-array-length: 1.0.7
unbox-primitive: 1.1.0
which-typed-array: 1.1.19
+ dev: true
- es-define-property@1.0.1: {}
+ /es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
- es-errors@1.3.0: {}
+ /es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
- es-object-atoms@1.1.1:
+ /es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
- es-set-tostringtag@2.1.0:
+ /es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
hasown: 2.0.2
- es-to-primitive@1.3.0:
+ /es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
dependencies:
is-callable: 1.2.7
is-date-object: 1.1.0
is-symbol: 1.1.1
+ dev: true
- es5-ext@0.10.64:
+ /es5-ext@0.10.64:
+ resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==}
+ engines: {node: '>=0.10'}
+ requiresBuild: true
dependencies:
es6-iterator: 2.0.3
es6-symbol: 3.1.4
esniff: 2.0.1
next-tick: 1.1.0
+ dev: false
- es6-iterator@2.0.3:
+ /es6-iterator@2.0.3:
+ resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
dependencies:
d: 1.0.2
es5-ext: 0.10.64
es6-symbol: 3.1.4
+ dev: false
- es6-symbol@3.1.4:
+ /es6-symbol@3.1.4:
+ resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==}
+ engines: {node: '>=0.12'}
dependencies:
d: 1.0.2
ext: 1.7.0
+ dev: false
- esbuild@0.21.5:
+ /esbuild@0.20.2:
+ resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
optionalDependencies:
- '@esbuild/aix-ppc64': 0.21.5
- '@esbuild/android-arm': 0.21.5
- '@esbuild/android-arm64': 0.21.5
- '@esbuild/android-x64': 0.21.5
- '@esbuild/darwin-arm64': 0.21.5
- '@esbuild/darwin-x64': 0.21.5
- '@esbuild/freebsd-arm64': 0.21.5
- '@esbuild/freebsd-x64': 0.21.5
- '@esbuild/linux-arm': 0.21.5
- '@esbuild/linux-arm64': 0.21.5
- '@esbuild/linux-ia32': 0.21.5
- '@esbuild/linux-loong64': 0.21.5
- '@esbuild/linux-mips64el': 0.21.5
- '@esbuild/linux-ppc64': 0.21.5
- '@esbuild/linux-riscv64': 0.21.5
- '@esbuild/linux-s390x': 0.21.5
- '@esbuild/linux-x64': 0.21.5
- '@esbuild/netbsd-x64': 0.21.5
- '@esbuild/openbsd-x64': 0.21.5
- '@esbuild/sunos-x64': 0.21.5
- '@esbuild/win32-arm64': 0.21.5
- '@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
+ '@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
+ dev: true
- escape-html@1.0.3: {}
+ /escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ dev: false
- escape-string-regexp@1.0.5: {}
+ /escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+ dev: true
- escape-string-regexp@5.0.0: {}
+ /escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+ dev: true
- esniff@2.0.1:
+ /esniff@2.0.1:
+ resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==}
+ engines: {node: '>=0.10'}
dependencies:
d: 1.0.2
es5-ext: 0.10.64
event-emitter: 0.3.5
type: 2.7.3
+ dev: false
- estree-walker@2.0.2: {}
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
- etag@1.8.1: {}
+ /etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+ dev: true
- event-emitter@0.3.5:
+ /event-emitter@0.3.5:
+ resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
dependencies:
d: 1.0.2
es5-ext: 0.10.64
+ dev: false
- expand-brackets@2.1.4:
+ /expand-brackets@2.1.4:
+ resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
+ engines: {node: '>=0.10.0'}
dependencies:
debug: 2.6.9
define-property: 0.2.5
@@ -4926,21 +3419,32 @@
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
+ dev: true
- ext@1.7.0:
+ /ext@1.7.0:
+ resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
dependencies:
type: 2.7.3
+ dev: false
- extend-shallow@2.0.1:
+ /extend-shallow@2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-extendable: 0.1.1
+ dev: true
- extend-shallow@3.0.2:
+ /extend-shallow@3.0.2:
+ resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
+ engines: {node: '>=0.10.0'}
dependencies:
assign-symbols: 1.0.0
is-extendable: 1.0.1
+ dev: true
- extglob@2.0.4:
+ /extglob@2.0.4:
+ resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
+ engines: {node: '>=0.10.0'}
dependencies:
array-unique: 0.3.2
define-property: 1.0.0
@@ -4952,61 +3456,105 @@
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
+ dev: true
- fast-glob@3.3.3:
+ /fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.8
+ dev: true
- fastq@1.19.1:
+ /fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
dependencies:
reusify: 1.1.0
+ dev: true
- fill-range@4.0.0:
+ /fill-range@4.0.0:
+ resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
extend-shallow: 2.0.1
is-number: 3.0.0
repeat-string: 1.6.1
to-regex-range: 2.1.1
+ dev: true
- fill-range@7.1.1:
+ /fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+ requiresBuild: true
dependencies:
to-regex-range: 5.0.1
+ dev: true
- follow-redirects@1.15.9: {}
+ /follow-redirects@1.15.9:
+ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: false
- for-each@0.3.5:
+ /for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
dependencies:
is-callable: 1.2.7
+ dev: true
- for-in@1.0.2: {}
+ /for-in@1.0.2:
+ resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- form-data@4.0.2:
+ /form-data@4.0.2:
+ resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
+ engines: {node: '>= 6'}
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
mime-types: 2.1.35
+ dev: false
- fragment-cache@0.2.1:
+ /fragment-cache@0.2.1:
+ resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
+ engines: {node: '>=0.10.0'}
dependencies:
map-cache: 0.2.2
+ dev: true
- fs-extra@10.1.0:
+ /fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
dependencies:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.1
+ dev: true
- fsevents@2.3.3:
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
optional: true
- function-bind@1.1.2: {}
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- function.prototype.name@1.1.8:
+ /function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
@@ -5014,22 +3562,30 @@
functions-have-names: 1.2.3
hasown: 2.0.2
is-callable: 1.2.7
+ dev: true
- functions-have-names@1.2.3: {}
+ /functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
- geojson-equality@0.1.6:
+ /geojson-equality@0.1.6:
+ resolution: {integrity: sha512-TqG8YbqizP3EfwP5Uw4aLu6pKkg6JQK9uq/XZ1lXQntvTHD1BBKJWhNpJ2M0ax6TuWMP3oyx6Oq7FCIfznrgpQ==}
dependencies:
deep-equal: 1.1.2
+ dev: false
- geojson-rbush@3.2.0:
+ /geojson-rbush@3.2.0:
+ resolution: {integrity: sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==}
dependencies:
'@turf/bbox': 6.5.0
'@turf/helpers': 6.5.0
'@turf/meta': 6.5.0
'@types/geojson': 7946.0.8
rbush: 3.0.1
+ dev: false
- get-intrinsic@1.3.0:
+ /get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
@@ -5042,96 +3598,166 @@
hasown: 2.0.2
math-intrinsics: 1.1.0
- get-proto@1.0.1:
+ /get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
dependencies:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
- get-symbol-description@1.1.0:
+ /get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
+ dev: true
- get-value@2.0.6: {}
+ /get-value@2.0.6:
+ resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- glob-parent@5.1.2:
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
+ dev: true
- globalthis@1.0.4:
+ /globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
dependencies:
define-properties: 1.2.1
gopd: 1.2.0
+ dev: true
- good-listener@1.2.2:
+ /good-listener@1.2.2:
+ resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==}
dependencies:
delegate: 3.2.0
+ dev: false
- gopd@1.2.0: {}
+ /gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
- graceful-fs@4.2.11: {}
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: true
- grapheme-splitter@1.0.4: {}
+ /grapheme-splitter@1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ dev: false
- hammerjs@2.0.8: {}
+ /hammerjs@2.0.8:
+ resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==}
+ engines: {node: '>=0.8.0'}
+ dev: false
- has-ansi@2.0.0:
+ /has-ansi@2.0.0:
+ resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
+ engines: {node: '>=0.10.0'}
dependencies:
ansi-regex: 2.1.1
+ dev: true
- has-bigints@1.1.0: {}
+ /has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+ dev: true
- has-flag@1.0.0: {}
+ /has-flag@1.0.0:
+ resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- has-flag@4.0.0: {}
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: true
- has-property-descriptors@1.0.2:
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
es-define-property: 1.0.1
- has-proto@1.2.0:
+ /has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
dependencies:
dunder-proto: 1.0.1
+ dev: true
- has-symbols@1.1.0: {}
+ /has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
- has-tostringtag@1.0.2:
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.1.0
- has-value@0.3.1:
+ /has-value@0.3.1:
+ resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
+ engines: {node: '>=0.10.0'}
dependencies:
get-value: 2.0.6
has-values: 0.1.4
isobject: 2.1.0
+ dev: true
- has-value@1.0.0:
+ /has-value@1.0.0:
+ resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
+ engines: {node: '>=0.10.0'}
dependencies:
get-value: 2.0.6
has-values: 1.0.0
isobject: 3.0.1
+ dev: true
- has-values@0.1.4: {}
+ /has-values@0.1.4:
+ resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- has-values@1.0.0:
+ /has-values@1.0.0:
+ resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-number: 3.0.0
kind-of: 4.0.0
+ dev: true
- hasown@2.0.2:
+ /hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
- he@1.2.0: {}
+ /he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+ dev: true
- highlight.js@11.11.1: {}
+ /highlight.js@11.9.0:
+ resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==}
+ engines: {node: '>=12.0.0'}
+ dev: false
- htm@3.1.1: {}
+ /htm@3.1.1:
+ resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
+ dev: false
- html-void-elements@2.0.1: {}
+ /html-void-elements@2.0.1:
+ resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
+ dev: false
- htmlparser2@3.10.1:
+ /htmlparser2@3.10.1:
+ resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
dependencies:
domelementtype: 1.3.1
domhandler: 2.4.2
@@ -5139,302 +3765,546 @@
entities: 1.1.2
inherits: 2.0.4
readable-stream: 3.6.2
+ dev: true
- i18next@20.6.1:
+ /i18next@20.6.1:
+ resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
dependencies:
'@babel/runtime': 7.27.0
+ dev: false
- ids@1.0.5: {}
+ /ids@1.0.5:
+ resolution: {integrity: sha512-XQ0yom/4KWTL29sLG+tyuycy7UmeaM/79GRtSJq6IG9cJGIPeBz5kwDCguie3TwxaMNIc3WtPi0cTa1XYHicpw==}
+ dev: false
- image-size@0.5.5: {}
+ /image-size@0.5.5:
+ resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dev: true
- immer@9.0.21: {}
+ /immer@9.0.21:
+ resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
+ dev: false
- immutable@5.1.1: {}
+ /immutable@5.1.1:
+ resolution: {integrity: sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==}
+ dev: true
- inherits-browser@0.1.0: {}
+ /inherits-browser@0.1.0:
+ resolution: {integrity: sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==}
+ dev: false
- inherits@2.0.4: {}
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
- internal-slot@1.1.0:
+ /internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
hasown: 2.0.2
side-channel: 1.1.0
+ dev: true
- is-accessor-descriptor@1.0.1:
+ /is-accessor-descriptor@1.0.1:
+ resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
+ engines: {node: '>= 0.10'}
dependencies:
hasown: 2.0.2
+ dev: true
- is-arguments@1.2.0:
+ /is-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2
+ dev: false
- is-array-buffer@3.0.5:
+ /is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
get-intrinsic: 1.3.0
+ dev: true
- is-async-function@2.1.1:
+ /is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
dependencies:
async-function: 1.0.0
call-bound: 1.0.4
get-proto: 1.0.1
has-tostringtag: 1.0.2
safe-regex-test: 1.1.0
+ dev: true
- is-bigint@1.1.0:
+ /is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
dependencies:
has-bigints: 1.1.0
+ dev: true
- is-boolean-object@1.2.2:
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.3.0
+ dev: true
+
+ /is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2
+ dev: true
- is-buffer@1.1.6: {}
+ /is-buffer@1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ dev: true
- is-callable@1.2.7: {}
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: true
- is-data-descriptor@1.0.1:
+ /is-data-descriptor@1.0.1:
+ resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
+ engines: {node: '>= 0.4'}
dependencies:
hasown: 2.0.2
+ dev: true
- is-data-view@1.0.2:
+ /is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
get-intrinsic: 1.3.0
is-typed-array: 1.1.15
+ dev: true
- is-date-object@1.1.0:
+ /is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2
- is-descriptor@0.1.7:
+ /is-descriptor@0.1.7:
+ resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
+ engines: {node: '>= 0.4'}
dependencies:
is-accessor-descriptor: 1.0.1
is-data-descriptor: 1.0.1
+ dev: true
- is-descriptor@1.0.3:
+ /is-descriptor@1.0.3:
+ resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
+ engines: {node: '>= 0.4'}
dependencies:
is-accessor-descriptor: 1.0.1
is-data-descriptor: 1.0.1
+ dev: true
- is-extendable@0.1.1: {}
+ /is-extendable@0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- is-extendable@1.0.1:
+ /is-extendable@1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-plain-object: 2.0.4
+ dev: true
- is-extglob@2.1.1: {}
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ requiresBuild: true
+ dev: true
- is-finalizationregistry@1.1.1:
+ /is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
+ dev: true
- is-generator-function@1.1.0:
+ /is-generator-function@1.1.0:
+ resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
get-proto: 1.0.1
has-tostringtag: 1.0.2
safe-regex-test: 1.1.0
+ dev: true
- is-glob@4.0.3:
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
+ dev: true
- is-hotkey@0.2.0: {}
+ /is-hotkey@0.2.0:
+ resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==}
+ dev: false
- is-map@2.0.3: {}
+ /is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+ dev: true
- is-number-object@1.1.1:
+ /is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2
+ dev: true
- is-number@3.0.0:
+ /is-number@3.0.0:
+ resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
+ engines: {node: '>=0.10.0'}
dependencies:
kind-of: 3.2.2
+ dev: true
- is-number@7.0.0: {}
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ requiresBuild: true
+ dev: true
- is-plain-obj@1.1.0: {}
+ /is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- is-plain-object@2.0.4:
+ /is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
dependencies:
isobject: 3.0.1
+ dev: true
- is-plain-object@5.0.0: {}
+ /is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+ dev: false
- is-regex@1.2.1:
+ /is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
gopd: 1.2.0
has-tostringtag: 1.0.2
hasown: 2.0.2
- is-set@2.0.3: {}
+ /is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+ dev: true
- is-shared-array-buffer@1.0.4:
+ /is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
+ dev: true
- is-string@1.1.1:
+ /is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2
+ dev: true
- is-symbol@1.1.1:
+ /is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-symbols: 1.1.0
safe-regex-test: 1.1.0
+ dev: true
- is-typed-array@1.1.15:
+ /is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
dependencies:
which-typed-array: 1.1.19
+ dev: true
- is-url@1.2.4: {}
+ /is-url@1.2.4:
+ resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
+ dev: false
- is-weakmap@2.0.2: {}
+ /is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+ dev: true
- is-weakref@1.1.1:
+ /is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
+ dev: true
- is-weakset@2.0.4:
+ /is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
get-intrinsic: 1.3.0
+ dev: true
- is-windows@1.0.2: {}
+ /is-windows@1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- isarray@1.0.0: {}
+ /isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+ dev: true
- isarray@2.0.5: {}
+ /isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ dev: true
- isobject@2.1.0:
+ /isobject@2.1.0:
+ resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
+ engines: {node: '>=0.10.0'}
dependencies:
isarray: 1.0.0
+ dev: true
- isobject@3.0.1: {}
+ /isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- js-base64@2.6.4: {}
+ /js-base64@2.6.4:
+ resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
+ dev: true
- js-base64@3.7.7: {}
+ /js-base64@3.7.4:
+ resolution: {integrity: sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==}
+ dev: false
- js-cookie@3.0.5: {}
+ /js-cookie@3.0.0:
+ resolution: {integrity: sha512-oUbbplKuH07/XX2YD2+Q+GMiPpnVXaRz8npE7suhBH9QEkJe2W7mQ6rwuMXHue3fpfcftQwzgyvGzIHyfCSngQ==}
+ engines: {node: '>=12'}
+ dev: false
- js-md5@0.7.3: {}
+ /js-md5@0.7.3:
+ resolution: {integrity: sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==}
+ dev: false
- jsbn@1.1.0: {}
+ /jsbn@1.1.0:
+ resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ dev: false
- jsep@1.4.0: {}
+ /jsep@1.4.0:
+ resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==}
+ engines: {node: '>= 10.16.0'}
+ dev: false
- json5@1.0.2:
+ /json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
dependencies:
minimist: 1.2.8
+ dev: true
- jsonfile@6.1.0:
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
+ dev: true
- kdbush@4.0.2: {}
+ /kdbush@4.0.2:
+ resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==}
+ dev: false
- kind-of@3.2.2:
+ /kind-of@3.2.2:
+ resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-buffer: 1.1.6
+ dev: true
- kind-of@4.0.0:
+ /kind-of@4.0.0:
+ resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-buffer: 1.1.6
+ dev: true
- kind-of@5.1.0: {}
+ /kind-of@5.1.0:
+ resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- kind-of@6.0.3: {}
+ /kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- ktx-parse@1.0.0: {}
+ /ktx-parse@0.7.1:
+ resolution: {integrity: sha512-FeA3g56ksdFNwjXJJsc1CCc7co+AJYDp6ipIp878zZ2bU8kWROatLYf39TQEd4/XRSUvBXovQ8gaVKWPXsCLEQ==}
+ dev: false
- lerc@2.0.0: {}
+ /lerc@2.0.0:
+ resolution: {integrity: sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==}
+ dev: false
- loader-utils@1.4.2:
+ /loader-utils@1.4.2:
+ resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
+ engines: {node: '>=4.0.0'}
dependencies:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.2
+ dev: true
- local-pkg@0.4.3: {}
+ /local-pkg@0.4.3:
+ resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ engines: {node: '>=14'}
+ dev: true
- lodash-es@4.17.21: {}
+ /lodash-es@4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ dev: false
- lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
+ /lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
+ resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
dependencies:
'@types/lodash-es': 4.17.12
lodash: 4.17.21
lodash-es: 4.17.21
+ dev: false
- lodash.camelcase@4.3.0: {}
+ /lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ dev: false
- lodash.clonedeep@4.5.0: {}
+ /lodash.clonedeep@4.5.0:
+ resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
+ dev: false
- lodash.debounce@4.0.8: {}
+ /lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+ dev: false
- lodash.foreach@4.5.0: {}
+ /lodash.foreach@4.5.0:
+ resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
+ dev: false
- lodash.isequal@4.5.0: {}
+ /lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
+ deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
+ dev: false
- lodash.throttle@4.1.1: {}
+ /lodash.throttle@4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+ dev: false
- lodash.toarray@4.4.0: {}
+ /lodash.toarray@4.4.0:
+ resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==}
+ dev: false
- lodash@4.17.21: {}
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: false
- long@5.3.1: {}
+ /long@5.3.1:
+ resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==}
+ dev: false
- magic-string@0.25.9:
+ /magic-string@0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
dependencies:
sourcemap-codec: 1.4.8
+ dev: true
- magic-string@0.26.7:
+ /magic-string@0.26.7:
+ resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
+ engines: {node: '>=12'}
dependencies:
sourcemap-codec: 1.4.8
+ dev: true
- magic-string@0.27.0:
+ /magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
- magic-string@0.30.17:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
+ /map-cache@0.2.2:
+ resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- map-cache@0.2.2: {}
-
- map-visit@1.0.0:
+ /map-visit@1.0.0:
+ resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
+ engines: {node: '>=0.10.0'}
dependencies:
object-visit: 1.0.1
+ dev: true
- math-intrinsics@1.1.0: {}
+ /math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
- mdn-data@2.0.14: {}
+ /mdn-data@2.0.14:
+ resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+ dev: true
- memoize-one@6.0.0: {}
+ /memoize-one@6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+ dev: false
- merge-options@1.0.1:
+ /merge-options@1.0.1:
+ resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==}
+ engines: {node: '>=4'}
dependencies:
is-plain-obj: 1.1.0
+ dev: true
- merge2@1.4.1: {}
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
- mersenne-twister@1.1.0: {}
+ /mersenne-twister@1.1.0:
+ resolution: {integrity: sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==}
+ dev: false
- meshoptimizer@0.22.0: {}
+ /meshoptimizer@0.22.0:
+ resolution: {integrity: sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==}
+ dev: false
- micromatch@3.1.0:
+ /micromatch@3.1.0:
+ resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}
+ engines: {node: '>=0.10.0'}
dependencies:
arr-diff: 4.0.0
array-unique: 0.3.2
@@ -5451,63 +4321,110 @@
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
+ dev: true
- micromatch@4.0.8:
+ /micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
dependencies:
braces: 3.0.3
picomatch: 2.3.1
+ dev: true
- mime-db@1.52.0: {}
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: false
- mime-match@1.0.2:
+ /mime-match@1.0.2:
+ resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
dependencies:
wildcard: 1.1.2
+ dev: false
- mime-types@2.1.35:
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
+ dev: false
- min-dash@4.2.3: {}
+ /min-dash@4.2.3:
+ resolution: {integrity: sha512-VLMYQI5+FcD9Ad24VcB08uA83B07OhueAlZ88jBK6PyupTvEJwllTMUqMy0wPGYs7pZUEtEEMWdHB63m3LtEcg==}
+ dev: false
- min-dom@4.2.1:
+ /min-dom@4.2.1:
+ resolution: {integrity: sha512-TMoL8SEEIhUWYgkj7XMSgxmwSyGI+4fP2KFFGnN3FbHfbGHVdsLYSz8LoIsgPhz4dWRmLvxWWSMgzZMJW5sZuA==}
dependencies:
component-event: 0.2.1
domify: 1.4.2
min-dash: 4.2.3
+ dev: false
- minimist@1.2.8: {}
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: true
- mixin-deep@1.3.2:
+ /mixin-deep@1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
dependencies:
for-in: 1.0.2
is-extendable: 1.0.1
+ dev: true
- mlly@1.7.4:
+ /mlly@0.5.17:
+ resolution: {integrity: sha512-Rn+ai4G+CQXptDFSRNnChEgNr+xAEauYhwRvpPl/UHStTlgkIftplgJRsA2OXPuoUn86K4XAjB26+x5CEvVb6A==}
+ dependencies:
+ acorn: 8.14.1
+ pathe: 1.1.2
+ pkg-types: 1.3.1
+ ufo: 1.5.4
+ dev: true
+
+ /mlly@1.7.4:
+ resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
dependencies:
acorn: 8.14.1
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.5.4
+ dev: true
- moddle-xml@10.1.0:
+ /moddle-xml@10.1.0:
+ resolution: {integrity: sha512-erWckwLt+dYskewKXJso9u+aAZ5172lOiYxSOqKCPTy7L/xmqH1PoeoA7eVC7oJTt3PqF5TkZzUmbjGH6soQBg==}
dependencies:
min-dash: 4.2.3
moddle: 6.2.3
saxen: 8.1.2
+ dev: false
- moddle@6.2.3:
+ /moddle@6.2.3:
+ resolution: {integrity: sha512-bLVN+ZHL3aKnhxc19XtjUfvdJsS3EsiEJC7bT6YPD11qYmTzvsxrGgyYz1Ouof7TZuGw0lDJ1OLmEnxcpQWk3Q==}
dependencies:
min-dash: 4.2.3
+ dev: false
- ms@2.0.0: {}
+ /ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+ dev: true
- ms@2.1.3: {}
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: true
- namespace-emitter@2.0.1: {}
+ /namespace-emitter@2.0.1:
+ resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
+ dev: false
- nanoid@3.3.11: {}
+ /nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
- nanomatch@1.2.13:
+ /nanomatch@1.2.13:
+ resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
+ engines: {node: '>=0.10.0'}
dependencies:
arr-diff: 4.0.0
array-unique: 0.3.2
@@ -5522,46 +4439,85 @@
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
+ dev: true
- next-tick@1.1.0: {}
+ /next-tick@1.1.0:
+ resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
+ dev: false
- node-addon-api@7.1.1:
+ /node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+ requiresBuild: true
+ dev: true
optional: true
- normalize-wheel-es@1.2.0: {}
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- nosleep.js@0.12.0: {}
+ /normalize-wheel-es@1.2.0:
+ resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+ dev: false
- nprogress@0.2.0: {}
+ /nosleep.js@0.12.0:
+ resolution: {integrity: sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==}
+ dev: false
- nth-check@2.1.1:
+ /nprogress@0.2.0:
+ resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
+ dev: false
+
+ /nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
+ dev: true
- object-assign@4.1.1: {}
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
- object-copy@0.1.0:
+ /object-copy@0.1.0:
+ resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
copy-descriptor: 0.1.1
define-property: 0.2.5
kind-of: 3.2.2
+ dev: true
- object-inspect@1.13.4: {}
+ /object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+ dev: true
- object-is@1.1.6:
+ /object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
+ dev: false
- object-keys@1.1.1: {}
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
- object-refs@0.3.0: {}
+ /object-refs@0.3.0:
+ resolution: {integrity: sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==}
+ dev: false
- object-visit@1.0.1:
+ /object-visit@1.0.1:
+ resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
+ engines: {node: '>=0.10.0'}
dependencies:
isobject: 3.0.1
+ dev: true
- object.assign@4.1.7:
+ /object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
@@ -5569,103 +4525,178 @@
es-object-atoms: 1.1.1
has-symbols: 1.1.0
object-keys: 1.1.1
+ dev: true
- object.pick@1.3.0:
+ /object.pick@1.3.0:
+ resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
isobject: 3.0.1
+ dev: true
- own-keys@1.0.1:
+ /own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
dependencies:
get-intrinsic: 1.3.0
object-keys: 1.1.1
safe-push-apply: 1.0.0
+ dev: true
- pako@2.1.0: {}
+ /pako@2.1.0:
+ resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
+ dev: false
- pascalcase@0.1.1: {}
+ /pascalcase@0.1.1:
+ resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- path-intersection@2.2.1: {}
+ /path-intersection@2.2.1:
+ resolution: {integrity: sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==}
+ dev: false
- pathe@0.2.0: {}
+ /pathe@0.2.0:
+ resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
+ dev: true
- pathe@1.1.2: {}
+ /pathe@0.3.9:
+ resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==}
+ dev: true
- pathe@2.0.3: {}
+ /pathe@1.1.2:
+ resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ dev: true
- picocolors@1.1.1: {}
+ /pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+ dev: true
- picomatch@2.3.1: {}
+ /picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
- picomatch@4.0.2: {}
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
- pkg-types@1.3.1:
+ /pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
dependencies:
confbox: 0.1.8
mlly: 1.7.4
pathe: 2.0.3
+ dev: true
- point-in-polygon@1.1.0: {}
+ /point-in-polygon@1.1.0:
+ resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==}
+ dev: false
- polygon-clipping@0.15.7:
+ /polygon-clipping@0.15.7:
+ resolution: {integrity: sha512-nhfdr83ECBg6xtqOAJab1tbksbBAOMUltN60bU+llHVOL0e5Onm1WpAXXWXVB39L8AJFssoIhEVuy/S90MmotA==}
dependencies:
robust-predicates: 3.0.2
splaytree: 3.1.2
+ dev: false
- posix-character-classes@0.1.1: {}
+ /posix-character-classes@0.1.1:
+ resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- possible-typed-array-names@1.1.0: {}
+ /possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+ dev: true
- postcss-prefix-selector@1.16.1(postcss@5.2.18):
+ /postcss-prefix-selector@1.16.1(postcss@5.2.18):
+ resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==}
+ peerDependencies:
+ postcss: '>4 <9'
dependencies:
postcss: 5.2.18
+ dev: true
- postcss-pxtorem@6.1.0(postcss@5.2.18):
+ /postcss-pxtorem@6.1.0(postcss@8.5.3):
+ resolution: {integrity: sha512-ROODSNci9ADal3zUcPHOF/K83TiCgNSPXQFSbwyPHNV8ioHIE4SaC+FPOufd8jsr5jV2uIz29v1Uqy1c4ov42g==}
+ peerDependencies:
+ postcss: ^8.0.0
dependencies:
- postcss: 5.2.18
+ postcss: 8.5.3
+ dev: false
- postcss@5.2.18:
+ /postcss@5.2.18:
+ resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}
+ engines: {node: '>=0.12'}
dependencies:
chalk: 1.1.3
js-base64: 2.6.4
source-map: 0.5.7
supports-color: 3.2.3
+ dev: true
- postcss@8.5.3:
+ /postcss@8.5.3:
+ resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
+ engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
- posthtml-parser@0.2.1:
+ /posthtml-parser@0.2.1:
+ resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==}
dependencies:
htmlparser2: 3.10.1
isobject: 2.1.0
+ dev: true
- posthtml-rename-id@1.0.12:
+ /posthtml-rename-id@1.0.12:
+ resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==}
dependencies:
escape-string-regexp: 1.0.5
+ dev: true
- posthtml-render@1.4.0: {}
+ /posthtml-render@1.4.0:
+ resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==}
+ engines: {node: '>=10'}
+ dev: true
- posthtml-svg-mode@1.0.3:
+ /posthtml-svg-mode@1.0.3:
+ resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==}
dependencies:
merge-options: 1.0.1
posthtml: 0.9.2
posthtml-parser: 0.2.1
posthtml-render: 1.4.0
+ dev: true
- posthtml@0.9.2:
+ /posthtml@0.9.2:
+ resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==}
+ engines: {node: '>=0.10.0'}
dependencies:
posthtml-parser: 0.2.1
posthtml-render: 1.4.0
+ dev: true
- preact@10.26.4: {}
+ /preact@10.26.4:
+ resolution: {integrity: sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==}
+ dev: false
- prettier@2.8.8: {}
+ /prettier@2.8.7:
+ resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
- prismjs@1.30.0: {}
+ /prismjs@1.30.0:
+ resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
+ engines: {node: '>=6'}
+ dev: false
- protobufjs@7.4.0:
+ /protobufjs@7.4.0:
+ resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==}
+ engines: {node: '>=12.0.0'}
+ requiresBuild: true
dependencies:
'@protobufjs/aspromise': 1.1.2
'@protobufjs/base64': 1.1.2
@@ -5677,41 +4708,78 @@
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 22.13.13
+ '@types/node': 22.13.14
long: 5.3.1
+ dev: false
- proxy-from-env@1.1.0: {}
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: false
- query-string@4.3.4:
+ /query-string@4.3.4:
+ resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
+ engines: {node: '>=0.10.0'}
dependencies:
object-assign: 4.1.1
strict-uri-encode: 1.1.0
+ dev: true
- queue-microtask@1.2.3: {}
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
- quickselect@1.1.1: {}
+ /quickselect@1.1.1:
+ resolution: {integrity: sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==}
+ dev: false
- quickselect@2.0.0: {}
+ /quickselect@2.0.0:
+ resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==}
+ dev: false
- randomcolor@0.6.2: {}
+ /randomcolor@0.6.2:
+ resolution: {integrity: sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==}
+ dev: false
- rbush@2.0.2:
+ /rbush@2.0.2:
+ resolution: {integrity: sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==}
dependencies:
quickselect: 1.1.1
+ dev: false
- rbush@3.0.1:
+ /rbush@3.0.1:
+ resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==}
dependencies:
quickselect: 2.0.0
+ dev: false
- readable-stream@3.6.2:
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
dependencies:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
+ dev: true
- readdirp@4.1.2: {}
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
- reflect.getprototypeof@1.0.10:
+ /readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+ dev: true
+
+ /reconnecting-websocket@4.4.0:
+ resolution: {integrity: sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==}
+ dev: false
+
+ /reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
@@ -5721,15 +4789,23 @@
get-intrinsic: 1.3.0
get-proto: 1.0.1
which-builtin-type: 1.2.1
+ dev: true
- regenerator-runtime@0.14.1: {}
+ /regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ dev: false
- regex-not@1.0.2:
+ /regex-not@1.0.2:
+ resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
+ engines: {node: '>=0.10.0'}
dependencies:
extend-shallow: 3.0.2
safe-regex: 1.1.0
+ dev: true
- regexp.prototype.flags@1.5.4:
+ /regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
@@ -5738,94 +4814,146 @@
gopd: 1.2.0
set-function-name: 2.0.2
- repeat-element@1.1.4: {}
+ /repeat-element@1.1.4:
+ resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- repeat-string@1.6.1: {}
+ /repeat-string@1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+ dev: true
- resolve-url@0.2.1: {}
+ /resolve-url@0.2.1:
+ resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+ dev: true
- ret@0.1.15: {}
+ /ret@0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+ dev: true
- reusify@1.1.0: {}
+ /reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
- robust-predicates@2.0.4: {}
+ /robust-predicates@2.0.4:
+ resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==}
+ dev: false
- robust-predicates@3.0.2: {}
+ /robust-predicates@3.0.2:
+ resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
+ dev: false
- rollup@4.37.0:
+ /rollup@4.38.0:
+ resolution: {integrity: sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.7
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.37.0
- '@rollup/rollup-android-arm64': 4.37.0
- '@rollup/rollup-darwin-arm64': 4.37.0
- '@rollup/rollup-darwin-x64': 4.37.0
- '@rollup/rollup-freebsd-arm64': 4.37.0
- '@rollup/rollup-freebsd-x64': 4.37.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.37.0
- '@rollup/rollup-linux-arm-musleabihf': 4.37.0
- '@rollup/rollup-linux-arm64-gnu': 4.37.0
- '@rollup/rollup-linux-arm64-musl': 4.37.0
- '@rollup/rollup-linux-loongarch64-gnu': 4.37.0
- '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0
- '@rollup/rollup-linux-riscv64-gnu': 4.37.0
- '@rollup/rollup-linux-riscv64-musl': 4.37.0
- '@rollup/rollup-linux-s390x-gnu': 4.37.0
- '@rollup/rollup-linux-x64-gnu': 4.37.0
- '@rollup/rollup-linux-x64-musl': 4.37.0
- '@rollup/rollup-win32-arm64-msvc': 4.37.0
- '@rollup/rollup-win32-ia32-msvc': 4.37.0
- '@rollup/rollup-win32-x64-msvc': 4.37.0
+ '@rollup/rollup-android-arm-eabi': 4.38.0
+ '@rollup/rollup-android-arm64': 4.38.0
+ '@rollup/rollup-darwin-arm64': 4.38.0
+ '@rollup/rollup-darwin-x64': 4.38.0
+ '@rollup/rollup-freebsd-arm64': 4.38.0
+ '@rollup/rollup-freebsd-x64': 4.38.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.38.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.38.0
+ '@rollup/rollup-linux-arm64-gnu': 4.38.0
+ '@rollup/rollup-linux-arm64-musl': 4.38.0
+ '@rollup/rollup-linux-loongarch64-gnu': 4.38.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.38.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.38.0
+ '@rollup/rollup-linux-riscv64-musl': 4.38.0
+ '@rollup/rollup-linux-s390x-gnu': 4.38.0
+ '@rollup/rollup-linux-x64-gnu': 4.38.0
+ '@rollup/rollup-linux-x64-musl': 4.38.0
+ '@rollup/rollup-win32-arm64-msvc': 4.38.0
+ '@rollup/rollup-win32-ia32-msvc': 4.38.0
+ '@rollup/rollup-win32-x64-msvc': 4.38.0
fsevents: 2.3.3
+ dev: true
- run-parallel@1.2.0:
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
+ dev: true
- safe-array-concat@1.1.3:
+ /safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
+ engines: {node: '>=0.4'}
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
get-intrinsic: 1.3.0
has-symbols: 1.1.0
isarray: 2.0.5
+ dev: true
- safe-buffer@5.2.1: {}
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
- safe-push-apply@1.0.0:
+ /safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
isarray: 2.0.5
+ dev: true
- safe-regex-test@1.1.0:
+ /safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
is-regex: 1.2.1
+ dev: true
- safe-regex@1.1.0:
+ /safe-regex@1.1.0:
+ resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
dependencies:
ret: 0.1.15
+ dev: true
- sass@1.86.0:
+ /sass@1.85.1:
+ resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
dependencies:
chokidar: 4.0.3
immutable: 5.1.1
source-map-js: 1.2.1
optionalDependencies:
'@parcel/watcher': 2.5.1
+ dev: true
- saxen@8.1.2: {}
+ /saxen@8.1.2:
+ resolution: {integrity: sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==}
+ dev: false
- scroll-into-view-if-needed@2.2.31:
+ /scroll-into-view-if-needed@2.2.31:
+ resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
compute-scroll-into-view: 1.0.20
+ dev: false
- scule@1.3.0: {}
+ /scule@0.3.2:
+ resolution: {integrity: sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==}
+ dev: true
- select@1.1.2: {}
+ /select@1.1.2:
+ resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
+ dev: false
- set-function-length@1.2.2:
+ /set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
@@ -5834,86 +4962,129 @@
gopd: 1.2.0
has-property-descriptors: 1.0.2
- set-function-name@2.0.2:
+ /set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
functions-have-names: 1.2.3
has-property-descriptors: 1.0.2
- set-proto@1.0.0:
+ /set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
dependencies:
dunder-proto: 1.0.1
es-errors: 1.3.0
es-object-atoms: 1.1.1
+ dev: true
- set-value@2.0.1:
+ /set-value@2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
dependencies:
extend-shallow: 2.0.1
is-extendable: 0.1.1
is-plain-object: 2.0.4
split-string: 3.1.0
+ dev: true
- side-channel-list@1.0.0:
+ /side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
object-inspect: 1.13.4
+ dev: true
- side-channel-map@1.0.1:
+ /side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
object-inspect: 1.13.4
+ dev: true
- side-channel-weakmap@1.0.2:
+ /side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
object-inspect: 1.13.4
side-channel-map: 1.0.1
+ dev: true
- side-channel@1.1.0:
+ /side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
object-inspect: 1.13.4
side-channel-list: 1.0.0
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
+ dev: true
- signature_pad@5.0.7: {}
+ /signature_pad@5.0.7:
+ resolution: {integrity: sha512-j2C6NTZ3c99G3hvFTsg6oOWy/tmftgwIXrvsr3+99+5SuPW6OdSpo++ZUzLVNfNHYmp2Z2Al76YV/3RhS/nDJg==}
+ dev: false
- skmeans@0.9.7: {}
+ /skmeans@0.9.7:
+ resolution: {integrity: sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==}
+ dev: false
- slate-history@0.66.0(slate@0.72.8):
+ /slate-history@0.66.0(slate@0.72.8):
+ resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==}
+ peerDependencies:
+ slate: '>=0.65.3'
dependencies:
is-plain-object: 5.0.0
slate: 0.72.8
+ dev: false
- slate@0.72.8:
+ /slate@0.72.8:
+ resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==}
dependencies:
immer: 9.0.21
is-plain-object: 5.0.0
tiny-warning: 1.0.3
+ dev: false
- sm-crypto@0.3.13:
+ /sm-crypto@0.3.13:
+ resolution: {integrity: sha512-ztNF+pZq6viCPMA1A6KKu3bgpkmYti5avykRHbcFIdSipFdkVmfUw2CnpM2kBJyppIalqvczLNM3wR8OQ0pT5w==}
dependencies:
jsbn: 1.1.0
+ dev: false
- snabbdom@3.6.2: {}
+ /snabbdom@3.6.2:
+ resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==}
+ engines: {node: '>=12.17.0'}
+ dev: false
- snapdragon-node@2.1.1:
+ /snapdragon-node@2.1.1:
+ resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
+ engines: {node: '>=0.10.0'}
dependencies:
define-property: 1.0.0
isobject: 3.0.1
snapdragon-util: 3.0.1
+ dev: true
- snapdragon-util@3.0.1:
+ /snapdragon-util@3.0.1:
+ resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
kind-of: 3.2.2
+ dev: true
- snapdragon@0.8.2:
+ /snapdragon@0.8.2:
+ resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ engines: {node: '>=0.10.0'}
dependencies:
base: 0.11.2
debug: 2.6.9
@@ -5925,50 +5096,89 @@
use: 3.1.1
transitivePeerDependencies:
- supports-color
+ dev: true
- sortablejs@1.14.0: {}
+ /sortablejs@1.14.0:
+ resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==}
+ dev: false
- source-map-js@1.2.1: {}
+ /source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
- source-map-resolve@0.5.3:
+ /source-map-resolve@0.5.3:
+ resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
dependencies:
atob: 2.1.2
decode-uri-component: 0.2.2
resolve-url: 0.2.1
source-map-url: 0.4.1
urix: 0.1.0
+ dev: true
- source-map-support@0.5.21:
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
+ dev: true
- source-map-url@0.4.1: {}
+ /source-map-url@0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+ dev: true
- source-map@0.5.7: {}
+ /source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- source-map@0.6.1: {}
+ /source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
- sourcemap-codec@1.4.8: {}
+ /sourcemap-codec@1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+ dev: true
- splaytree@3.1.2: {}
+ /splaytree@3.1.2:
+ resolution: {integrity: sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==}
+ dev: false
- split-string@3.1.0:
+ /split-string@3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
dependencies:
extend-shallow: 3.0.2
+ dev: true
- ssr-window@3.0.0: {}
+ /ssr-window@3.0.0:
+ resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}
+ dev: false
- stable@0.1.8: {}
+ /stable@0.1.8:
+ resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
+ deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
+ dev: true
- static-extend@0.1.2:
+ /static-extend@0.1.2:
+ resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
+ engines: {node: '>=0.10.0'}
dependencies:
define-property: 0.2.5
object-copy: 0.1.0
+ dev: true
- strict-uri-encode@1.1.0: {}
+ /strict-uri-encode@1.1.0:
+ resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- string.prototype.trim@1.2.10:
+ /string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
@@ -5977,43 +5187,67 @@
es-abstract: 1.23.9
es-object-atoms: 1.1.1
has-property-descriptors: 1.0.2
+ dev: true
- string.prototype.trimend@1.0.9:
+ /string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
define-properties: 1.2.1
es-object-atoms: 1.1.1
+ dev: true
- string.prototype.trimstart@1.0.8:
+ /string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
es-object-atoms: 1.1.1
+ dev: true
- string_decoder@1.3.0:
+ /string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
safe-buffer: 5.2.1
+ dev: true
- strip-ansi@3.0.1:
+ /strip-ansi@3.0.1:
+ resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+ engines: {node: '>=0.10.0'}
dependencies:
ansi-regex: 2.1.1
+ dev: true
- strip-literal@1.3.0:
+ /strip-literal@0.4.2:
+ resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==}
dependencies:
acorn: 8.14.1
+ dev: true
- supports-color@2.0.0: {}
+ /supports-color@2.0.0:
+ resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
+ engines: {node: '>=0.8.0'}
+ dev: true
- supports-color@3.2.3:
+ /supports-color@3.2.3:
+ resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==}
+ engines: {node: '>=0.8.0'}
dependencies:
has-flag: 1.0.0
+ dev: true
- supports-color@7.2.0:
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
dependencies:
has-flag: 4.0.0
+ dev: true
- svg-baker@1.7.0:
+ /svg-baker@1.7.0:
+ resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==}
dependencies:
bluebird: 3.7.2
clone: 2.1.2
@@ -6030,8 +5264,12 @@
traverse: 0.6.11
transitivePeerDependencies:
- supports-color
+ dev: true
- svgo@2.8.0:
+ /svgo@2.8.0:
+ resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
@@ -6040,79 +5278,130 @@
csso: 4.2.0
picocolors: 1.1.1
stable: 0.1.8
+ dev: true
- terser@5.39.0:
+ /terser@5.31.1:
+ resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==}
+ engines: {node: '>=10'}
+ hasBin: true
dependencies:
'@jridgewell/source-map': 0.3.6
acorn: 8.14.1
commander: 2.20.3
source-map-support: 0.5.21
+ dev: true
- tiny-emitter@2.1.0: {}
+ /tiny-emitter@2.1.0:
+ resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==}
+ dev: false
- tiny-svg@3.1.3: {}
+ /tiny-svg@3.1.3:
+ resolution: {integrity: sha512-9mwnPqXInRsBmH/DO6NMxBE++9LsqpVXQSSTZGc5bomoKKvL5OX/Hlotw7XVXP6XLRcHWIzZpxfovGqWKgCypQ==}
+ dev: false
- tiny-warning@1.0.3: {}
+ /tiny-warning@1.0.3:
+ resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
+ dev: false
- tinyqueue@2.0.3: {}
+ /tinyqueue@2.0.3:
+ resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==}
+ dev: false
- to-object-path@0.3.0:
+ /to-object-path@0.3.0:
+ resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
+ engines: {node: '>=0.10.0'}
dependencies:
kind-of: 3.2.2
+ dev: true
- to-regex-range@2.1.1:
+ /to-regex-range@2.1.1:
+ resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
+ engines: {node: '>=0.10.0'}
dependencies:
is-number: 3.0.0
repeat-string: 1.6.1
+ dev: true
- to-regex-range@5.0.1:
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ requiresBuild: true
dependencies:
is-number: 7.0.0
+ dev: true
- to-regex@3.0.2:
+ /to-regex@3.0.2:
+ resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
+ engines: {node: '>=0.10.0'}
dependencies:
define-property: 2.0.2
extend-shallow: 3.0.2
regex-not: 1.0.2
safe-regex: 1.1.0
+ dev: true
- topojson-client@3.1.0:
+ /topojson-client@3.1.0:
+ resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==}
+ hasBin: true
dependencies:
commander: 2.20.3
+ dev: false
- topojson-server@3.0.1:
+ /topojson-server@3.0.1:
+ resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==}
+ hasBin: true
dependencies:
commander: 2.20.3
+ dev: false
- traverse@0.6.11:
+ /traverse@0.6.11:
+ resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
+ engines: {node: '>= 0.4'}
dependencies:
gopd: 1.2.0
typedarray.prototype.slice: 1.0.5
which-typed-array: 1.1.19
+ dev: true
- tslib@2.3.0: {}
+ /tslib@2.3.0:
+ resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
+ dev: false
- tslib@2.8.1: {}
+ /tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+ dev: false
- turf-jsts@1.2.3: {}
+ /turf-jsts@1.2.3:
+ resolution: {integrity: sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==}
+ dev: false
- type@2.7.3: {}
+ /type@2.7.3:
+ resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==}
+ dev: false
- typed-array-buffer@1.0.3:
+ /typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
is-typed-array: 1.1.15
+ dev: true
- typed-array-byte-length@1.0.3:
+ /typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
for-each: 0.3.5
gopd: 1.2.0
has-proto: 1.2.0
is-typed-array: 1.1.15
+ dev: true
- typed-array-byte-offset@1.0.4:
+ /typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.8
@@ -6121,8 +5410,11 @@
has-proto: 1.2.0
is-typed-array: 1.1.15
reflect.getprototypeof: 1.0.10
+ dev: true
- typed-array-length@1.0.7:
+ /typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
for-each: 0.3.5
@@ -6130,8 +5422,11 @@
is-typed-array: 1.1.15
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
+ dev: true
- typedarray.prototype.slice@1.0.5:
+ /typedarray.prototype.slice@1.0.5:
+ resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
@@ -6141,86 +5436,129 @@
math-intrinsics: 1.1.0
typed-array-buffer: 1.0.3
typed-array-byte-offset: 1.0.4
+ dev: true
- ufo@1.5.4: {}
+ /ufo@1.5.4:
+ resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
+ dev: true
- unbox-primitive@1.1.0:
+ /unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
has-bigints: 1.1.0
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
+ dev: true
- undici-types@6.20.0: {}
+ /undici-types@6.20.0:
+ resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
- unimport@1.3.0(rollup@4.37.0):
+ /unimport@0.6.8:
+ resolution: {integrity: sha512-MWkaPYvN0j+6jfEuiVFhfmy+aOtgAP11CozSbu/I3Cx+8ybjXIueB7GVlKofHabtjzSlPeAvWKJSFjHWsG2JaA==}
dependencies:
- '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
+ '@rollup/pluginutils': 4.2.1
escape-string-regexp: 5.0.0
fast-glob: 3.3.3
local-pkg: 0.4.3
- magic-string: 0.27.0
- mlly: 1.7.4
- pathe: 1.1.2
- pkg-types: 1.3.1
- scule: 1.3.0
- strip-literal: 1.3.0
- unplugin: 1.16.1
- transitivePeerDependencies:
- - rollup
+ magic-string: 0.26.7
+ mlly: 0.5.17
+ pathe: 0.3.9
+ scule: 0.3.2
+ strip-literal: 0.4.2
+ unplugin: 0.9.6
+ dev: true
- union-value@1.0.1:
+ /union-value@1.0.1:
+ resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
+ engines: {node: '>=0.10.0'}
dependencies:
arr-union: 3.1.0
get-value: 2.0.6
is-extendable: 0.1.1
set-value: 2.0.1
+ dev: true
- universalify@2.0.1: {}
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+ dev: true
- unplugin-auto-import@0.11.5(@vueuse/core@9.13.0(vue@3.5.13))(rollup@4.37.0):
+ /unplugin-auto-import@0.11.2:
+ resolution: {integrity: sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@vueuse/core': '*'
+ peerDependenciesMeta:
+ '@vueuse/core':
+ optional: true
dependencies:
- '@antfu/utils': 0.7.10
- '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
+ '@antfu/utils': 0.5.2
+ '@rollup/pluginutils': 4.2.1
local-pkg: 0.4.3
magic-string: 0.26.7
- unimport: 1.3.0(rollup@4.37.0)
- unplugin: 1.16.1
- optionalDependencies:
- '@vueuse/core': 9.13.0(vue@3.5.13)
- transitivePeerDependencies:
- - rollup
+ unimport: 0.6.8
+ unplugin: 0.9.6
+ dev: true
- unplugin@1.16.1:
+ /unplugin@0.9.6:
+ resolution: {integrity: sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==}
dependencies:
acorn: 8.14.1
- webpack-virtual-modules: 0.6.2
+ chokidar: 3.6.0
+ webpack-sources: 3.2.3
+ webpack-virtual-modules: 0.4.6
+ dev: true
- unset-value@1.0.0:
+ /unset-value@1.0.0:
+ resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
+ engines: {node: '>=0.10.0'}
dependencies:
has-value: 0.3.1
isobject: 3.0.1
+ dev: true
- urijs@1.19.11: {}
+ /urijs@1.19.11:
+ resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
+ dev: false
- urix@0.1.0: {}
+ /urix@0.1.0:
+ resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+ dev: true
- use@3.1.1: {}
+ /use@3.1.1:
+ resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
- util-deprecate@1.0.2: {}
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ dev: true
- vary@1.1.2: {}
+ /vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+ dev: true
- vite-plugin-compression@0.5.1(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)):
+ /vite-plugin-compression@0.5.1(vite@5.2.12):
+ resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
+ peerDependencies:
+ vite: '>=2.0.0'
dependencies:
chalk: 4.1.2
debug: 4.4.0
fs-extra: 10.1.0
- vite: 5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)
+ vite: 5.2.12(sass@1.85.1)(terser@5.31.1)
transitivePeerDependencies:
- supports-color
+ dev: true
- vite-plugin-svg-icons@2.0.1(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)):
+ /vite-plugin-svg-icons@2.0.1(vite@5.2.12):
+ resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
+ peerDependencies:
+ vite: '>=2.0.0'
dependencies:
'@types/svgo': 2.6.4
cors: 2.8.5
@@ -6230,49 +5568,111 @@
pathe: 0.2.0
svg-baker: 1.7.0
svgo: 2.8.0
- vite: 5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)
+ vite: 5.2.12(sass@1.85.1)(terser@5.31.1)
transitivePeerDependencies:
- supports-color
+ dev: true
- vite-plugin-vue-setup-extend@0.4.0(vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)):
+ /vite-plugin-vue-setup-extend@0.4.0(vite@5.2.12):
+ resolution: {integrity: sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==}
+ peerDependencies:
+ vite: '>=2.0.0'
dependencies:
- '@vue/compiler-sfc': 3.5.13
+ '@vue/compiler-sfc': 3.4.27
magic-string: 0.25.9
- vite: 5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0)
+ vite: 5.2.12(sass@1.85.1)(terser@5.31.1)
+ dev: true
- vite@5.4.15(@types/node@22.13.13)(sass@1.86.0)(terser@5.39.0):
+ /vite@5.2.12(sass@1.85.1)(terser@5.31.1):
+ resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ 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
dependencies:
- esbuild: 0.21.5
+ esbuild: 0.20.2
postcss: 8.5.3
- rollup: 4.37.0
+ rollup: 4.38.0
+ sass: 1.85.1
+ terser: 5.31.1
optionalDependencies:
- '@types/node': 22.13.13
fsevents: 2.3.3
- sass: 1.86.0
- terser: 5.39.0
+ dev: true
- vue-demi@0.14.10(vue@3.5.13):
+ /vue-demi@0.14.10(vue@3.5.13):
+ resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
dependencies:
vue: 3.5.13
+ dev: false
- vue-i18n@9.14.3(vue@3.5.13):
+ /vue-i18n@9.1.9(vue@3.5.13):
+ resolution: {integrity: sha512-JeRdNVxS2OGp1E+pye5XB6+M6BBkHwAv9C80Q7+kzoMdUDGRna06tjC0vCB/jDX9aWrl5swxOMFcyAr7or8XTA==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ vue: ^3.0.0
dependencies:
- '@intlify/core-base': 9.14.3
- '@intlify/shared': 9.14.3
+ '@intlify/core-base': 9.1.9
+ '@intlify/shared': 9.1.9
+ '@intlify/vue-devtools': 9.1.9
'@vue/devtools-api': 6.6.4
vue: 3.5.13
+ dev: false
- vue-router@4.5.0(vue@3.5.13):
+ /vue-router@4.3.2(vue@3.5.13):
+ resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==}
+ peerDependencies:
+ vue: ^3.2.0
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13
+ dev: false
- vue3-clipboard@1.0.0(vue@3.5.13):
+ /vue3-clipboard@1.0.0(vue@3.5.13):
+ resolution: {integrity: sha512-GUqKh1oO79xDpq0z+cCv/NDVTpcJGNDzeNgT3PmTdTp/WJh3gcTrDqIYKycKhzMFOtIFJ7hO/+usgyWtT+fNhA==}
+ peerDependencies:
+ vue: ^3.0.0
dependencies:
clipboard: 2.0.11
vue: 3.5.13
+ dev: false
- vue@3.5.13:
+ /vue@3.5.13:
+ resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
dependencies:
'@vue/compiler-dom': 3.5.13
'@vue/compiler-sfc': 3.5.13
@@ -6280,27 +5680,47 @@
'@vue/server-renderer': 3.5.13(vue@3.5.13)
'@vue/shared': 3.5.13
- vuedraggable@4.1.0(vue@3.5.13):
+ /vuedraggable@4.1.0(vue@3.5.13):
+ resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
+ peerDependencies:
+ vue: ^3.0.1
dependencies:
sortablejs: 1.14.0
vue: 3.5.13
+ dev: false
- vuex@4.1.0(vue@3.5.13):
+ /vuex@4.1.0(vue@3.5.13):
+ resolution: {integrity: sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==}
+ peerDependencies:
+ vue: ^3.2.0
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13
+ dev: false
- webpack-virtual-modules@0.6.2: {}
+ /webpack-sources@3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+ dev: true
- which-boxed-primitive@1.1.1:
+ /webpack-virtual-modules@0.4.6:
+ resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==}
+ dev: true
+
+ /which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
dependencies:
is-bigint: 1.1.0
is-boolean-object: 1.2.2
is-number-object: 1.1.1
is-string: 1.1.1
is-symbol: 1.1.1
+ dev: true
- which-builtin-type@1.2.1:
+ /which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
function.prototype.name: 1.1.8
@@ -6315,15 +5735,21 @@
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
which-typed-array: 1.1.19
+ dev: true
- which-collection@1.0.2:
+ /which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
dependencies:
is-map: 2.0.3
is-set: 2.0.3
is-weakmap: 2.0.2
is-weakset: 2.0.4
+ dev: true
- which-typed-array@1.1.19:
+ /which-typed-array@1.1.19:
+ resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
+ engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.8
@@ -6332,9 +5758,14 @@
get-proto: 1.0.1
gopd: 1.2.0
has-tostringtag: 1.0.2
+ dev: true
- wildcard@1.1.2: {}
+ /wildcard@1.1.2:
+ resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
+ dev: false
- zrender@5.6.1:
+ /zrender@5.6.1:
+ resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==}
dependencies:
tslib: 2.3.0
+ dev: false
diff --git a/src/api/base/region.js b/src/api/base/region.js
index 01bcd16..0f9340f 100644
--- a/src/api/base/region.js
+++ b/src/api/base/region.js
@@ -1,52 +1,52 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/region/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/region/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getLazyTree = (parentCode, params) => {
- return request({
- url: '/blade-system/region/lazy-tree',
- method: 'get',
- params: {
- ...params,
- parentCode,
- },
- });
-};
+ return request({
+ url: '/blade-system/region/lazy-tree',
+ method: 'get',
+ params: {
+ ...params,
+ parentCode,
+ },
+ })
+}
export const getDetail = code => {
- return request({
- url: '/blade-system/region/detail',
- method: 'get',
- params: {
- code,
- },
- });
-};
+ return request({
+ url: '/blade-system/region/detail',
+ method: 'get',
+ params: {
+ code,
+ },
+ })
+}
export const remove = id => {
- return request({
- url: '/blade-system/region/remove',
- method: 'post',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/region/remove',
+ method: 'post',
+ params: {
+ id,
+ },
+ })
+}
export const submit = row => {
- return request({
- url: '/blade-system/region/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/region/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/common.js b/src/api/common.js
index 4851b67..7926280 100644
--- a/src/api/common.js
+++ b/src/api/common.js
@@ -1,4 +1,4 @@
-import request from '@/axios';
+import request from '@/axios'
/**
* 文件流返回
@@ -6,10 +6,10 @@
* @param params 接口参数
*/
export const exportBlob = (url, params) => {
- return request({
- url: url,
- params: params,
- method: 'get',
- responseType: 'blob',
- });
-};
+ return request({
+ url: url,
+ params: params,
+ method: 'get',
+ responseType: 'blob',
+ })
+}
diff --git a/src/api/desk/notice.js b/src/api/desk/notice.js
index 708da65..28c9d74 100644
--- a/src/api/desk/notice.js
+++ b/src/api/desk/notice.js
@@ -1,59 +1,59 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-desk/notice/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- cryptoToken: false,
- cryptoData: false,
- });
-};
+ return request({
+ url: '/blade-desk/notice/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ cryptoToken: false,
+ cryptoData: false,
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-desk/notice/remove',
- method: 'post',
- params: {
- ids,
- },
- cryptoToken: false,
- cryptoData: false,
- });
-};
+ return request({
+ url: '/blade-desk/notice/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ cryptoToken: false,
+ cryptoData: false,
+ })
+}
export const add = row => {
- return request({
- url: '/blade-desk/notice/submit',
- method: 'post',
- data: row,
- cryptoToken: false,
- cryptoData: false,
- });
-};
+ return request({
+ url: '/blade-desk/notice/submit',
+ method: 'post',
+ data: row,
+ cryptoToken: false,
+ cryptoData: false,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-desk/notice/submit',
- method: 'post',
- data: row,
- cryptoToken: false,
- cryptoData: false,
- });
-};
+ return request({
+ url: '/blade-desk/notice/submit',
+ method: 'post',
+ data: row,
+ cryptoToken: false,
+ cryptoData: false,
+ })
+}
export const getNotice = id => {
- return request({
- url: '/blade-desk/notice/detail',
- method: 'get',
- params: {
- id,
- },
- cryptoToken: false,
- cryptoData: false,
- });
-};
+ return request({
+ url: '/blade-desk/notice/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ cryptoToken: false,
+ cryptoData: false,
+ })
+}
diff --git a/src/api/flow/flow.js b/src/api/flow/flow.js
index 24f8fd1..ad8d991 100644
--- a/src/api/flow/flow.js
+++ b/src/api/flow/flow.js
@@ -1,122 +1,122 @@
-import request from '@/axios';
+import request from '@/axios'
export const modelList = (current, size, params) => {
- return request({
- url: '/blade-flow/model/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/model/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const managerList = (current, size, params) => {
- return request({
- url: '/blade-flow/manager/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/manager/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const followList = (current, size, params) => {
- return request({
- url: '/blade-flow/follow/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/follow/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const removeModel = ids => {
- return request({
- url: '/blade-flow/model/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-flow/model/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const deployModel = params => {
- return request({
- url: '/blade-flow/model/deploy',
- method: 'post',
- params,
- });
-};
+ return request({
+ url: '/blade-flow/model/deploy',
+ method: 'post',
+ params,
+ })
+}
export const changeState = params => {
- return request({
- url: '/blade-flow/manager/change-state',
- method: 'post',
- params,
- });
-};
+ return request({
+ url: '/blade-flow/manager/change-state',
+ method: 'post',
+ params,
+ })
+}
export const deployUpload = (category, tenantIds, files) => {
- const formData = new FormData();
- formData.append('category', category);
- formData.append('tenantIds', tenantIds);
- files.forEach(file => {
- formData.append('files', file);
- });
- return request({
- headers: {
- 'Content-Type': 'multipart/form-data',
- },
- url: '/blade-flow/manager/deploy-upload',
- method: 'post',
- data: formData,
- });
-};
+ const formData = new FormData()
+ formData.append('category', category)
+ formData.append('tenantIds', tenantIds)
+ files.forEach(file => {
+ formData.append('files', file)
+ })
+ return request({
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ },
+ url: '/blade-flow/manager/deploy-upload',
+ method: 'post',
+ data: formData,
+ })
+}
export const deleteDeployment = deploymentIds => {
- return request({
- url: '/blade-flow/manager/delete-deployment',
- method: 'post',
- params: {
- deploymentIds,
- },
- });
-};
+ return request({
+ url: '/blade-flow/manager/delete-deployment',
+ method: 'post',
+ params: {
+ deploymentIds,
+ },
+ })
+}
export const deleteProcessInstance = params => {
- return request({
- url: '/blade-flow/follow/delete-process-instance',
- method: 'post',
- params,
- });
-};
+ return request({
+ url: '/blade-flow/follow/delete-process-instance',
+ method: 'post',
+ params,
+ })
+}
export const submitModel = data => {
- return request({
- url: '/blade-flow/model/submit',
- method: 'post',
- data,
- });
-};
+ return request({
+ url: '/blade-flow/model/submit',
+ method: 'post',
+ data,
+ })
+}
export const detail = params => {
- return request({
- url: '/blade-flow/model/detail',
- method: 'get',
- params,
- });
-};
+ return request({
+ url: '/blade-flow/model/detail',
+ method: 'get',
+ params,
+ })
+}
export const modelView = params => {
- return request({
- url: '/blade-flow/process/model-view',
- method: 'get',
- params,
- });
-};
+ return request({
+ url: '/blade-flow/process/model-view',
+ method: 'get',
+ params,
+ })
+}
diff --git a/src/api/home/aggregation.js b/src/api/home/aggregation.js
index f68ed63..fd79d76 100644
--- a/src/api/home/aggregation.js
+++ b/src/api/home/aggregation.js
@@ -1,19 +1,34 @@
-import request from '@/axios';
+import request from '@/axios'
+export const getDeviceRegionCount = params => {
+ return request({
+ url: '/drone-device-core/manage/api/v1/devices/getDeviceRegionCount',
+ method: 'get',
+ params,
+ })
+}
-export const getDeviceRegionCount = (params) => {
+export const getDeviceRegion = params => {
+ return request({
+ url: '/drone-device-core/manage/api/v1/devices/getDeviceRegion',
+ method: 'get',
+ params,
+ })
+}
+
+// 事件聚合 和 事件散点
+export const getMapEvents = (data) => {
return request({
- url: '/drone-device-core/manage/api/v1/devices/getDeviceRegionCount',
- method: 'get',
- params
+ url: '/drone-device-core/jobEvent/mapEvents',
+ method: 'post',
+ data
});
};
-
-
-export const getDeviceRegion = (params) => {
+// 事件散点详情
+export const getEventDetails = (params) => {
return request({
- url: '/drone-device-core/manage/api/v1/devices/getDeviceRegion',
- method: 'get',
+ url: '/drone-device-core/jobEvent/eventDetails',
+ method: 'post',
params
});
};
diff --git a/src/api/home/index.js b/src/api/home/index.js
index b5af252..da21b03 100644
--- a/src/api/home/index.js
+++ b/src/api/home/index.js
@@ -1,110 +1,109 @@
-import request from '@/axios';
+import request from '@/axios'
// 巡检总任务数量
-export const getTotalJobNum = (params) => {
- return request({
- url: '/drone-device-core/wayline/waylineJobInfo/totalJobNum',
- method: 'get',
- params
- });
-};
+export const getTotalJobNum = params => {
+ return request({
+ url: '/drone-device-core/wayline/waylineJobInfo/totalJobNum',
+ method: 'get',
+ params,
+ })
+}
// 巡检任务item数量
-export const getJobStatistics = (data) => {
- return request({
- url: '/drone-device-core/wayline/waylineJobInfo/jobStatistics',
- method: 'post',
- data
- });
-};
+export const getJobStatistics = data => {
+ return request({
+ url: '/drone-device-core/wayline/waylineJobInfo/jobStatistics',
+ method: 'post',
+ data,
+ })
+}
// 巡检任务柱状图数据
-export const getJobNumBar = (data) => {
- return request({
- url: '/drone-device-core/wayline/waylineJobInfo/jobNumBar',
- method: 'post',
- data
- });
-};
+export const getJobNumBar = data => {
+ return request({
+ url: '/drone-device-core/wayline/waylineJobInfo/jobNumBar',
+ method: 'post',
+ data,
+ })
+}
// 事件概况总数
export const getJobEventTotal = () => {
- return request({
- url: '/drone-device-core/jobEvent/total',
- method: 'get',
- });
-};
+ return request({
+ url: '/drone-device-core/jobEvent/total',
+ method: 'get',
+ })
+}
// 事件概况分类数
-export const getJobEventByStatus = (data) => {
- return request({
- url: '/drone-device-core/jobEvent/eventByStatus',
- method: 'post',
- data
- });
-};
-export const getJobEventBrokerLine = (data) => {
- return request({
- url: '/drone-device-core/jobEvent/eventBrokerLine',
- method: 'post',
- data
- });
-};
+export const getJobEventByStatus = data => {
+ return request({
+ url: '/drone-device-core/jobEvent/eventByStatus',
+ method: 'post',
+ data,
+ })
+}
+export const getJobEventBrokerLine = data => {
+ return request({
+ url: '/drone-device-core/jobEvent/eventBrokerLine',
+ method: 'post',
+ data,
+ })
+}
// 任务成果
export const getMediaFileCountBy = () => {
- return request({
- url: '/blade-resource/media/api/v1/workspaces/files/getMediaFileCountBy',
- method: 'get',
- });
-};
+ return request({
+ url: '/blade-resource/media/api/v1/workspaces/files/getMediaFileCountBy',
+ method: 'get',
+ })
+}
// 降本增效
export const optimizeCostEfficiency = () => {
- return request({
- url: '/drone-device-core/manage/api/v1/devices/optimizeCostEfficiency',
- method: 'get',
- });
-};
+ return request({
+ url: '/drone-device-core/manage/api/v1/devices/optimizeCostEfficiency',
+ method: 'get',
+ })
+}
// 历史巡检任务列表
-export const getBeforeJob = (data) => {
- return request({
- url: '/drone-device-core/wayline/waylineJobInfo/beforeJob',
- method: 'post',
- data
- });
-};
+export const getBeforeJob = data => {
+ return request({
+ url: '/drone-device-core/wayline/waylineJobInfo/beforeJob',
+ method: 'post',
+ data,
+ })
+}
// 当前巡检任务列表
-export const getTodayJob = (data) => {
- return request({
- url: '/drone-device-core/wayline/waylineJobInfo/todayJob',
- method: 'post',
- data
- });
-};
+export const getTodayJob = data => {
+ return request({
+ url: '/drone-device-core/wayline/waylineJobInfo/todayJob',
+ method: 'post',
+ data,
+ })
+}
// 巡检任务详情 柱状图
-export const jobNumBar = (data) => {
- return request({
- url: '/drone-device-core/wayline/waylineJobInfo/jobEventBar',
- method: 'post',
- data
- });
-};
+export const jobNumBar = data => {
+ return request({
+ url: '/drone-device-core/wayline/waylineJobInfo/jobEventBar',
+ method: 'post',
+ data,
+ })
+}
// 巡检任务详情 饼图
-export const eventNumPie = (data) => {
- return request({
- url: '/drone-device-core/jobEvent/eventNumPie',
- method: 'post',
- data
- });
-};
+export const eventNumPie = data => {
+ return request({
+ url: '/drone-device-core/jobEvent/eventNumPie',
+ method: 'post',
+ data,
+ })
+}
// 获取区域
-export const getRegion = (code) => {
- return request({
- url: '/blade-system/region/select',
- method: 'get',
- params:{code}
- });
-};
-
+export const getRegion = code => {
+ return request({
+ url: '/blade-system/region/select',
+ method: 'get',
+ params: { code },
+ })
+}
diff --git a/src/api/home/machineNest.js b/src/api/home/machineNest.js
index 70bd5d2..f69f70d 100644
--- a/src/api/home/machineNest.js
+++ b/src/api/home/machineNest.js
@@ -1,49 +1,48 @@
-import request from '@/axios';
+import request from '@/axios'
// 机巢统计
-export const getDeviceInfoNum = (params) => {
- return request({
- url: '/drone-device-core/manage/api/v1/devices/getDeviceInfoNum',
- method: 'get',
- params,
- });
-};
+export const getDeviceInfoNum = params => {
+ return request({
+ url: '/drone-device-core/manage/api/v1/devices/getDeviceInfoNum',
+ method: 'get',
+ params,
+ })
+}
// 机巢列表
-export const selectDevicePage = ({ nickname,is_execute, ...params}) => {
- return request({
- url: `/drone-device-core/manage/api/v1/devices/selectDevicePage?type=${params.type}¤t=${params.current}&size=${params.size}`,
- method: 'post',
- data: {
- nickname,
- is_execute,
- },
- });
-};
+export const selectDevicePage = ({ nickname, is_execute, ...params }) => {
+ return request({
+ url: `/drone-device-core/manage/api/v1/devices/selectDevicePage?type=${params.type}¤t=${params.current}&size=${params.size}`,
+ method: 'post',
+ data: {
+ nickname,
+ is_execute,
+ },
+ })
+}
// 机巢数据
-export const getFlightStatistics = (dockSn) => {
- return request({
- url: `/drone-device-core/manage/api/v1/devices/getFlightStatistics?dockSn=${dockSn}`,
- method: 'get',
- params: {},
- });
-};
+export const getFlightStatistics = dockSn => {
+ return request({
+ url: `/drone-device-core/manage/api/v1/devices/getFlightStatistics?dockSn=${dockSn}`,
+ method: 'get',
+ params: {},
+ })
+}
// 机巢直播/无人机直播 均可使用
-export const liveStart = (deviceSn) => {
- return request({
- url: `/drone-device-core/manage/api/v1/live/streams/liveStart?deviceSn=${deviceSn}`,
- method: 'post',
- data: {},
- headers: {
- 'areaCode': '',
- },
- });
-};
+export const liveStart = deviceSn => {
+ return request({
+ url: `/drone-device-core/manage/api/v1/live/streams/liveStart?deviceSn=${deviceSn}`,
+ method: 'post',
+ data: {},
+ headers: {
+ areaCode: '',
+ },
+ })
+}
// 单个机巢获取机巢详情
-export const getDeviceDetail = (deviceSn) => {
- return request({
- url: `/drone-device-core/manage/api/v1/devices/getDeviceDetail?deviceSn=${deviceSn}`,
- method: 'get',
- params: {},
- });
-};
-
+export const getDeviceDetail = deviceSn => {
+ return request({
+ url: `/drone-device-core/manage/api/v1/devices/getDeviceDetail?deviceSn=${deviceSn}`,
+ method: 'get',
+ params: {},
+ })
+}
diff --git a/src/api/job/jobinfo.js b/src/api/job/jobinfo.js
index bf6baf8..d72aec7 100644
--- a/src/api/job/jobinfo.js
+++ b/src/api/job/jobinfo.js
@@ -1,78 +1,78 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-job/job-info/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-info/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-job/job-info/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-info/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-job/job-info/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-info/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-job/job-info/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-job/job-info/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-job/job-info/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-job/job-info/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const change = row => {
- return request({
- url: '/blade-job/job-info/change',
- method: 'post',
- params: {
- id: row.id,
- enable: row.enable,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-info/change',
+ method: 'post',
+ params: {
+ id: row.id,
+ enable: row.enable,
+ },
+ })
+}
export const run = row => {
- return request({
- url: '/blade-job/job-info/run',
- method: 'post',
- params: {
- id: row.id,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-info/run',
+ method: 'post',
+ params: {
+ id: row.id,
+ },
+ })
+}
export const sync = row => {
- return request({
- url: '/blade-job/job-info/sync',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-job/job-info/sync',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/job/jobserver.js b/src/api/job/jobserver.js
index 8ac8d9f..e527445 100644
--- a/src/api/job/jobserver.js
+++ b/src/api/job/jobserver.js
@@ -1,57 +1,57 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-job/job-server/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-server/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-job/job-server/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-server/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-job/job-server/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-job/job-server/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-job/job-server/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-job/job-server/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-job/job-server/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-job/job-server/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const sync = row => {
- return request({
- url: '/blade-job/job-server/sync',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-job/job-server/sync',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/logs.js b/src/api/logs.js
index 9368365..07213c8 100644
--- a/src/api/logs.js
+++ b/src/api/logs.js
@@ -1,62 +1,62 @@
-import request from '@/axios';
+import request from '@/axios'
export const getUsualList = (current, size) => {
- return request({
- url: '/blade-log/usual/list',
- method: 'get',
- params: {
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-log/usual/list',
+ method: 'get',
+ params: {
+ current,
+ size,
+ },
+ })
+}
export const getApiList = (current, size) => {
- return request({
- url: '/blade-log/api/list',
- method: 'get',
- params: {
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-log/api/list',
+ method: 'get',
+ params: {
+ current,
+ size,
+ },
+ })
+}
export const getErrorList = (current, size) => {
- return request({
- url: '/blade-log/error/list',
- method: 'get',
- params: {
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-log/error/list',
+ method: 'get',
+ params: {
+ current,
+ size,
+ },
+ })
+}
export const getUsualLogs = id => {
- return request({
- url: '/blade-log/usual/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-log/usual/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getApiLogs = id => {
- return request({
- url: '/blade-log/api/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-log/api/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getErrorLogs = id => {
- return request({
- url: '/blade-log/error/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-log/error/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
diff --git a/src/api/report/report.js b/src/api/report/report.js
index 3ea1ced..560be29 100644
--- a/src/api/report/report.js
+++ b/src/api/report/report.js
@@ -1,22 +1,22 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-report/report/rest/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-report/report/rest/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-report/report/rest/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-report/report/rest/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
diff --git a/src/api/resource/attach.js b/src/api/resource/attach.js
index a5954bf..8a05086 100644
--- a/src/api/resource/attach.js
+++ b/src/api/resource/attach.js
@@ -1,49 +1,49 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-resource/attach/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-resource/attach/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-resource/attach/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-resource/attach/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-resource/attach/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-resource/attach/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-resource/attach/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-resource/attach/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-resource/attach/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-resource/attach/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/resource/oss.js b/src/api/resource/oss.js
index c126296..7214c97 100644
--- a/src/api/resource/oss.js
+++ b/src/api/resource/oss.js
@@ -1,59 +1,59 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-resource/oss/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-resource/oss/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-resource/oss/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-resource/oss/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-resource/oss/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-resource/oss/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-resource/oss/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-resource/oss/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-resource/oss/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-resource/oss/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const enable = id => {
- return request({
- url: '/blade-resource/oss/enable',
- method: 'post',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-resource/oss/enable',
+ method: 'post',
+ params: {
+ id,
+ },
+ })
+}
diff --git a/src/api/resource/sms.js b/src/api/resource/sms.js
index 2433398..7dd3dec 100644
--- a/src/api/resource/sms.js
+++ b/src/api/resource/sms.js
@@ -1,71 +1,71 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-resource/sms/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-resource/sms/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-resource/sms/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-resource/sms/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-resource/sms/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-resource/sms/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-resource/sms/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-resource/sms/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-resource/sms/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-resource/sms/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const enable = id => {
- return request({
- url: '/blade-resource/sms/enable',
- method: 'post',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-resource/sms/enable',
+ method: 'post',
+ params: {
+ id,
+ },
+ })
+}
export const send = (code, phones, params) => {
- return request({
- url: '/blade-resource/sms/endpoint/send-message',
- method: 'post',
- params: {
- code,
- phones,
- params,
- },
- });
-};
+ return request({
+ url: '/blade-resource/sms/endpoint/send-message',
+ method: 'post',
+ params: {
+ code,
+ phones,
+ params,
+ },
+ })
+}
diff --git a/src/api/system/client.js b/src/api/system/client.js
index 0912288..437e92e 100644
--- a/src/api/system/client.js
+++ b/src/api/system/client.js
@@ -1,49 +1,49 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/client/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/client/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/client/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/client/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/client/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/client/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/client/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/client/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/client/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/client/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/system/dept.js b/src/api/system/dept.js
index ba96954..a3eda63 100644
--- a/src/api/system/dept.js
+++ b/src/api/system/dept.js
@@ -1,80 +1,80 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/dept/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/dept/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getLazyList = (parentId, params) => {
- return request({
- url: '/blade-system/dept/lazy-list',
- method: 'get',
- params: {
- ...params,
- parentId,
- },
- });
-};
+ return request({
+ url: '/blade-system/dept/lazy-list',
+ method: 'get',
+ params: {
+ ...params,
+ parentId,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/dept/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/dept/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/dept/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/dept/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/dept/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/dept/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getDept = id => {
- return request({
- url: '/blade-system/dept/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/dept/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getDeptTree = tenantId => {
- return request({
- url: '/blade-system/dept/tree',
- method: 'get',
- params: {
- tenantId,
- },
- });
-};
+ return request({
+ url: '/blade-system/dept/tree',
+ method: 'get',
+ params: {
+ tenantId,
+ },
+ })
+}
export const getDeptLazyTree = parentId => {
- return request({
- url: '/blade-system/dept/lazy-tree',
- method: 'get',
- params: {
- parentId,
- },
- });
-};
+ return request({
+ url: '/blade-system/dept/lazy-tree',
+ method: 'get',
+ params: {
+ parentId,
+ },
+ })
+}
diff --git a/src/api/system/dict.js b/src/api/system/dict.js
index 51daacc..f443a22 100644
--- a/src/api/system/dict.js
+++ b/src/api/system/dict.js
@@ -1,88 +1,88 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/dict/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getParentList = (current, size, params) => {
- return request({
- url: '/blade-system/dict/parent-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict/parent-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getChildList = (current, size, parentId, params) => {
- return request({
- url: '/blade-system/dict/child-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- parentId: parentId,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict/child-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ parentId: parentId,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/dict/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/dict/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/dict/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/dict/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/dict/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getDict = id => {
- return request({
- url: '/blade-system/dict/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getDictTree = () => {
- return request({
- url: '/blade-system/dict/tree?code=DICT',
- method: 'get',
- });
-};
+ return request({
+ url: '/blade-system/dict/tree?code=DICT',
+ method: 'get',
+ })
+}
export const getDictionary = params => {
- return request({
- url: '/blade-system/dict/dictionary',
- method: 'get',
- params,
- });
-};
+ return request({
+ url: '/blade-system/dict/dictionary',
+ method: 'get',
+ params,
+ })
+}
diff --git a/src/api/system/dictbiz.js b/src/api/system/dictbiz.js
index 6c7ee7e..5488f55 100644
--- a/src/api/system/dictbiz.js
+++ b/src/api/system/dictbiz.js
@@ -1,88 +1,88 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/dict-biz/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getParentList = (current, size, params) => {
- return request({
- url: '/blade-system/dict-biz/parent-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/parent-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getChildList = (current, size, parentId, params) => {
- return request({
- url: '/blade-system/dict-biz/child-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- parentId: parentId,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/child-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ parentId: parentId,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/dict-biz/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/dict-biz/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/dict-biz/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getDict = id => {
- return request({
- url: '/blade-system/dict-biz/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getDictTree = () => {
- return request({
- url: '/blade-system/dict-biz/tree?code=DICT',
- method: 'get',
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/tree?code=DICT',
+ method: 'get',
+ })
+}
export const getDictionary = params => {
- return request({
- url: '/blade-system/dict-biz/dictionary',
- method: 'get',
- params,
- });
-};
+ return request({
+ url: '/blade-system/dict-biz/dictionary',
+ method: 'get',
+ params,
+ })
+}
diff --git a/src/api/system/menu.js b/src/api/system/menu.js
index 7050c95..d5cd3b2 100644
--- a/src/api/system/menu.js
+++ b/src/api/system/menu.js
@@ -1,108 +1,108 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/menu/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getLazyList = (parentId, params) => {
- return request({
- url: '/blade-system/menu/lazy-list',
- method: 'get',
- params: {
- ...params,
- parentId,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/lazy-list',
+ method: 'get',
+ params: {
+ ...params,
+ parentId,
+ },
+ })
+}
export const getLazyMenuList = (parentId, params) => {
- return request({
- url: '/blade-system/menu/lazy-menu-list',
- method: 'get',
- params: {
- ...params,
- parentId,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/lazy-menu-list',
+ method: 'get',
+ params: {
+ ...params,
+ parentId,
+ },
+ })
+}
export const getMenuList = (current, size, params) => {
- return request({
- url: '/blade-system/menu/menu-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/menu-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getMenuTree = tenantId => {
- return request({
- url: '/blade-system/menu/tree',
- method: 'get',
- params: {
- tenantId,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/tree',
+ method: 'get',
+ params: {
+ tenantId,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/menu/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/menu/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/menu/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/menu/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/menu/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getMenu = id => {
- return request({
- url: '/blade-system/menu/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getTopMenu = () =>
- request({
- url: '/blade-system/menu/top-menu',
- method: 'get',
- });
+ request({
+ url: '/blade-system/menu/top-menu',
+ method: 'get',
+ })
export const getRoutes = topMenuId =>
- request({
- url: '/blade-system/menu/routes',
- method: 'get',
- params: {
- topMenuId,
- },
- });
+ request({
+ url: '/blade-system/menu/routes',
+ method: 'get',
+ params: {
+ topMenuId,
+ },
+ })
diff --git a/src/api/system/param.js b/src/api/system/param.js
index be23977..baa2f2f 100644
--- a/src/api/system/param.js
+++ b/src/api/system/param.js
@@ -1,49 +1,49 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/param/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/param/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/param/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/param/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/param/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/param/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/param/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/param/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/param/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/param/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/system/post.js b/src/api/system/post.js
index 01de371..7318b2a 100644
--- a/src/api/system/post.js
+++ b/src/api/system/post.js
@@ -1,59 +1,59 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/post/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/post/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getPostList = tenantId => {
- return request({
- url: '/blade-system/post/select',
- method: 'get',
- params: {
- tenantId,
- },
- });
-};
+ return request({
+ url: '/blade-system/post/select',
+ method: 'get',
+ params: {
+ tenantId,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/post/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/post/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/post/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/post/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/post/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/post/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/post/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/post/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/system/role.js b/src/api/system/role.js
index 22dfe54..ffe2312 100644
--- a/src/api/system/role.js
+++ b/src/api/system/role.js
@@ -1,96 +1,96 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/role/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/role/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const grantTree = () => {
- return request({
- url: '/blade-system/menu/grant-tree',
- method: 'get',
- });
-};
+ return request({
+ url: '/blade-system/menu/grant-tree',
+ method: 'get',
+ })
+}
export const grant = (roleIds, menuIds, dataScopeIds, apiScopeIds) => {
- return request({
- url: '/blade-system/role/grant',
- method: 'post',
- data: {
- roleIds,
- menuIds,
- dataScopeIds,
- apiScopeIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/role/grant',
+ method: 'post',
+ data: {
+ roleIds,
+ menuIds,
+ dataScopeIds,
+ apiScopeIds,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/role/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/role/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/role/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/role/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/role/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/role/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getRole = roleIds => {
- return request({
- url: '/blade-system/menu/role-tree-keys',
- method: 'get',
- params: {
- roleIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/role-tree-keys',
+ method: 'get',
+ params: {
+ roleIds,
+ },
+ })
+}
export const getRoleTree = tenantId => {
- return request({
- url: '/blade-system/role/tree',
- method: 'get',
- params: {
- tenantId,
- },
- });
-};
+ return request({
+ url: '/blade-system/role/tree',
+ method: 'get',
+ params: {
+ tenantId,
+ },
+ })
+}
export const getRoleTreeById = roleId => {
- return request({
- url: '/blade-system/role/tree-by-id',
- method: 'get',
- params: {
- roleId,
- },
- });
-};
+ return request({
+ url: '/blade-system/role/tree-by-id',
+ method: 'get',
+ params: {
+ roleId,
+ },
+ })
+}
export const getRoleAlias = () => {
- return request({
- url: '/blade-system/role/alias',
- method: 'get',
- params: {},
- });
-};
+ return request({
+ url: '/blade-system/role/alias',
+ method: 'get',
+ params: {},
+ })
+}
diff --git a/src/api/system/scope.js b/src/api/system/scope.js
index efc098f..6a2bdd7 100644
--- a/src/api/system/scope.js
+++ b/src/api/system/scope.js
@@ -1,97 +1,97 @@
-import request from '@/axios';
+import request from '@/axios'
export const getListDataScope = (current, size, params) => {
- return request({
- url: '/blade-system/data-scope/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/data-scope/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const removeDataScope = ids => {
- return request({
- url: '/blade-system/data-scope/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/data-scope/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const addDataScope = row => {
- return request({
- url: '/blade-system/data-scope/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/data-scope/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const updateDataScope = row => {
- return request({
- url: '/blade-system/data-scope/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/data-scope/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getMenuDataScope = id => {
- return request({
- url: '/blade-system/data-scope/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/data-scope/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getListApiScope = (current, size, params) => {
- return request({
- url: '/blade-system/api-scope/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/api-scope/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const removeApiScope = ids => {
- return request({
- url: '/blade-system/api-scope/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/api-scope/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const addApiScope = row => {
- return request({
- url: '/blade-system/api-scope/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/api-scope/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const updateApiScope = row => {
- return request({
- url: '/blade-system/api-scope/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/api-scope/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getMenuApiScope = id => {
- return request({
- url: '/blade-system/api-scope/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/api-scope/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
diff --git a/src/api/system/tenant.js b/src/api/system/tenant.js
index be2c549..5d709f7 100644
--- a/src/api/system/tenant.js
+++ b/src/api/system/tenant.js
@@ -1,122 +1,122 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/tenant/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/tenant/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/tenant/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/tenant/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/tenant/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/tenant/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const setting = (ids, form) => {
- return request({
- url: '/blade-system/tenant/setting',
- method: 'post',
- params: {
- ...form,
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/setting',
+ method: 'post',
+ params: {
+ ...form,
+ ids,
+ },
+ })
+}
export const datasource = (tenantId, datasourceId) => {
- return request({
- url: '/blade-system/tenant/datasource',
- method: 'post',
- params: {
- tenantId,
- datasourceId,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/datasource',
+ method: 'post',
+ params: {
+ tenantId,
+ datasourceId,
+ },
+ })
+}
export const info = domain => {
- return request({
- url: '/blade-system/tenant/info',
- method: 'get',
- params: {
- domain,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/info',
+ method: 'get',
+ params: {
+ domain,
+ },
+ })
+}
export const packageInfo = tenantId => {
- return request({
- url: '/blade-system/tenant/package-detail',
- method: 'get',
- params: {
- tenantId,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/package-detail',
+ method: 'get',
+ params: {
+ tenantId,
+ },
+ })
+}
export const packageSetting = (tenantId, packageId) => {
- return request({
- url: '/blade-system/tenant/package-setting',
- method: 'post',
- params: {
- tenantId,
- packageId,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/package-setting',
+ method: 'post',
+ params: {
+ tenantId,
+ packageId,
+ },
+ })
+}
export const recycle = ids => {
- return request({
- url: '/blade-system/tenant/recycle',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/recycle',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const pass = ids => {
- return request({
- url: '/blade-system/tenant/pass',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/pass',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/tenant/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
diff --git a/src/api/system/tenantdatasource.js b/src/api/system/tenantdatasource.js
index a56c985..4c7921a 100644
--- a/src/api/system/tenantdatasource.js
+++ b/src/api/system/tenantdatasource.js
@@ -1,49 +1,49 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/tenant-datasource/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant-datasource/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/tenant-datasource/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant-datasource/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/tenant-datasource/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant-datasource/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/tenant-datasource/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/tenant-datasource/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/tenant-datasource/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/tenant-datasource/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/system/tenantpackage.js b/src/api/system/tenantpackage.js
index cf6fb1a..16eebb0 100644
--- a/src/api/system/tenantpackage.js
+++ b/src/api/system/tenantpackage.js
@@ -1,49 +1,49 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/tenant-package/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant-package/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/tenant-package/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant-package/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/tenant-package/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/tenant-package/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/tenant-package/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/tenant-package/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/tenant-package/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/tenant-package/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/system/topmenu.js b/src/api/system/topmenu.js
index 961fabc..2471c3c 100644
--- a/src/api/system/topmenu.js
+++ b/src/api/system/topmenu.js
@@ -1,77 +1,77 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-system/topmenu/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-system/topmenu/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-system/topmenu/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/topmenu/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/topmenu/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/topmenu/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/topmenu/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/topmenu/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/topmenu/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/topmenu/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const grantTree = () => {
- return request({
- url: '/blade-system/menu/grant-top-tree',
- method: 'get',
- });
-};
+ return request({
+ url: '/blade-system/menu/grant-top-tree',
+ method: 'get',
+ })
+}
export const getTopTree = topMenuIds => {
- return request({
- url: '/blade-system/menu/top-tree-keys',
- method: 'get',
- params: {
- topMenuIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/menu/top-tree-keys',
+ method: 'get',
+ params: {
+ topMenuIds,
+ },
+ })
+}
export const grant = (topMenuIds, menuIds) => {
- return request({
- url: '/blade-system/topmenu/grant',
- method: 'post',
- data: {
- topMenuIds,
- menuIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/topmenu/grant',
+ method: 'post',
+ data: {
+ topMenuIds,
+ menuIds,
+ },
+ })
+}
diff --git a/src/api/system/user.js b/src/api/system/user.js
index 63ecdf7..1066923 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -1,150 +1,150 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params, deptId) => {
- return request({
- url: '/blade-system/user/page',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- deptId,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/page',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ deptId,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-system/user/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-system/user/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/user/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-system/user/update',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/user/update',
+ method: 'post',
+ data: row,
+ })
+}
export const updatePlatform = (userId, userType, userExt) => {
- return request({
- url: '/blade-system/user/update-platform',
- method: 'post',
- params: {
- userId,
- userType,
- userExt,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/update-platform',
+ method: 'post',
+ params: {
+ userId,
+ userType,
+ userExt,
+ },
+ })
+}
export const getUser = id => {
- return request({
- url: '/blade-system/user/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getUserPlatform = id => {
- return request({
- url: '/blade-system/user/platform-detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/platform-detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const getUserInfo = () => {
- return request({
- url: '/blade-system/user/info',
- method: 'get',
- });
-};
+ return request({
+ url: '/blade-system/user/info',
+ method: 'get',
+ })
+}
export const resetPassword = userIds => {
- return request({
- url: '/blade-system/user/reset-password',
- method: 'post',
- params: {
- userIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/reset-password',
+ method: 'post',
+ params: {
+ userIds,
+ },
+ })
+}
export const updatePassword = (oldPassword, newPassword, newPassword1) => {
- return request({
- url: '/blade-system/user/update-password',
- method: 'post',
- params: {
- oldPassword,
- newPassword,
- newPassword1,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/update-password',
+ method: 'post',
+ params: {
+ oldPassword,
+ newPassword,
+ newPassword1,
+ },
+ })
+}
export const updateInfo = row => {
- return request({
- url: '/blade-system/user/update-info',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-system/user/update-info',
+ method: 'post',
+ data: row,
+ })
+}
export const grant = (userIds, roleIds) => {
- return request({
- url: '/blade-system/user/grant',
- method: 'post',
- params: {
- userIds,
- roleIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/grant',
+ method: 'post',
+ params: {
+ userIds,
+ roleIds,
+ },
+ })
+}
export const unlock = userIds => {
- return request({
- url: '/blade-system/user/unlock',
- method: 'post',
- params: {
- userIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/unlock',
+ method: 'post',
+ params: {
+ userIds,
+ },
+ })
+}
export const auditPass = userIds => {
- return request({
- url: '/blade-system/user/audit-pass',
- method: 'post',
- params: {
- userIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/audit-pass',
+ method: 'post',
+ params: {
+ userIds,
+ },
+ })
+}
export const auditRefuse = userIds => {
- return request({
- url: '/blade-system/user/audit-refuse',
- method: 'post',
- params: {
- userIds,
- },
- });
-};
+ return request({
+ url: '/blade-system/user/audit-refuse',
+ method: 'post',
+ params: {
+ userIds,
+ },
+ })
+}
diff --git a/src/api/tool/code.js b/src/api/tool/code.js
index b619f47..9ab0544 100644
--- a/src/api/tool/code.js
+++ b/src/api/tool/code.js
@@ -1,78 +1,78 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-develop/code/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const build = ids => {
- return request({
- url: '/blade-develop/code/gen-code',
- method: 'post',
- params: {
- ids,
- system: 'saber',
- },
- });
-};
+ return request({
+ url: '/blade-develop/code/gen-code',
+ method: 'post',
+ params: {
+ ids,
+ system: 'saber',
+ },
+ })
+}
export const buildFast = form => {
- return request({
- url: '/blade-develop/code/gen-code-fast',
- method: 'post',
- data: form,
- });
-};
+ return request({
+ url: '/blade-develop/code/gen-code-fast',
+ method: 'post',
+ data: form,
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-develop/code/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-develop/code/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/code/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-develop/code/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/code/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const copy = id => {
- return request({
- url: '/blade-develop/code/copy',
- method: 'post',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code/copy',
+ method: 'post',
+ params: {
+ id,
+ },
+ })
+}
export const getCode = id => {
- return request({
- url: '/blade-develop/code/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
diff --git a/src/api/tool/codesetting.js b/src/api/tool/codesetting.js
index d4c8aaa..92f589c 100644
--- a/src/api/tool/codesetting.js
+++ b/src/api/tool/codesetting.js
@@ -1,88 +1,88 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-develop/code-setting/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-develop/code-setting/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-develop/code-setting/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-develop/code-setting/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-develop/code-setting/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const enable = id => {
- return request({
- url: '/blade-develop/code-setting/enable',
- method: 'post',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/enable',
+ method: 'post',
+ params: {
+ id,
+ },
+ })
+}
export const getEnableDetail = () => {
- return request({
- url: '/blade-develop/code-setting/enable-detail',
- method: 'get',
- params: {},
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/enable-detail',
+ method: 'get',
+ params: {},
+ })
+}
export const getTableForm = tableName => {
- return request({
- url: '/blade-develop/code-setting/table-form',
- method: 'get',
- params: {
- tableName,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/table-form',
+ method: 'get',
+ params: {
+ tableName,
+ },
+ })
+}
export const getTablePrototype = (tableName, datasourceId) => {
- return request({
- url: '/blade-develop/code-setting/table-prototype',
- method: 'get',
- params: {
- tableName,
- datasourceId,
- },
- });
-};
+ return request({
+ url: '/blade-develop/code-setting/table-prototype',
+ method: 'get',
+ params: {
+ tableName,
+ datasourceId,
+ },
+ })
+}
diff --git a/src/api/tool/datasource.js b/src/api/tool/datasource.js
index b1e0ea8..27fa915 100644
--- a/src/api/tool/datasource.js
+++ b/src/api/tool/datasource.js
@@ -1,49 +1,49 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-develop/datasource/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-develop/datasource/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-develop/datasource/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-develop/datasource/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-develop/datasource/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-develop/datasource/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-develop/datasource/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/datasource/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-develop/datasource/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/datasource/submit',
+ method: 'post',
+ data: row,
+ })
+}
diff --git a/src/api/tool/model.js b/src/api/tool/model.js
index 65c4284..62ea3da 100644
--- a/src/api/tool/model.js
+++ b/src/api/tool/model.js
@@ -1,110 +1,110 @@
-import request from '@/axios';
+import request from '@/axios'
export const getList = (current, size, params) => {
- return request({
- url: '/blade-develop/model/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const getDetail = id => {
- return request({
- url: '/blade-develop/model/detail',
- method: 'get',
- params: {
- id,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/detail',
+ method: 'get',
+ params: {
+ id,
+ },
+ })
+}
export const remove = ids => {
- return request({
- url: '/blade-develop/model/remove',
- method: 'post',
- params: {
- ids,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/remove',
+ method: 'post',
+ params: {
+ ids,
+ },
+ })
+}
export const add = row => {
- return request({
- url: '/blade-develop/model/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/model/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const update = row => {
- return request({
- url: '/blade-develop/model/submit',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/model/submit',
+ method: 'post',
+ data: row,
+ })
+}
export const getTableList = datasourceId => {
- return request({
- url: '/blade-develop/model/table-list',
- method: 'get',
- params: {
- datasourceId,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/table-list',
+ method: 'get',
+ params: {
+ datasourceId,
+ },
+ })
+}
export const getTableInfo = (modelId, datasourceId) => {
- return request({
- url: '/blade-develop/model/table-info',
- method: 'get',
- params: {
- modelId,
- datasourceId,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/table-info',
+ method: 'get',
+ params: {
+ modelId,
+ datasourceId,
+ },
+ })
+}
export const getTableInfoByName = (tableName, datasourceId) => {
- return request({
- url: '/blade-develop/model/table-info',
- method: 'get',
- params: {
- tableName,
- datasourceId,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/table-info',
+ method: 'get',
+ params: {
+ tableName,
+ datasourceId,
+ },
+ })
+}
export const getModelPrototype = (modelId, datasourceId) => {
- return request({
- url: '/blade-develop/model/model-prototype',
- method: 'get',
- params: {
- modelId,
- datasourceId,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model/model-prototype',
+ method: 'get',
+ params: {
+ modelId,
+ datasourceId,
+ },
+ })
+}
export const submitModelPrototype = row => {
- return request({
- url: '/blade-develop/model-prototype/submit-list',
- method: 'post',
- data: row,
- });
-};
+ return request({
+ url: '/blade-develop/model-prototype/submit-list',
+ method: 'post',
+ data: row,
+ })
+}
export const prototypeDetail = modelId => {
- return request({
- url: '/blade-develop/model-prototype/select',
- method: 'get',
- params: {
- modelId,
- },
- });
-};
+ return request({
+ url: '/blade-develop/model-prototype/select',
+ method: 'get',
+ params: {
+ modelId,
+ },
+ })
+}
diff --git a/src/api/user.js b/src/api/user.js
index 012ac71..b641d44 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -1,174 +1,174 @@
-import request from '@/axios';
+import request from '@/axios'
-import website from '@/config/website';
-import func from '@/utils/func';
+import website from '@/config/website'
+import func from '@/utils/func'
export const loginByUsername = (tenantId, deptId, roleId, username, password, type, key, code) =>
- request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- headers: {
- 'Tenant-Id': tenantId,
- 'Dept-Id': website.switchMode ? deptId : '',
- 'Role-Id': website.switchMode ? roleId : '',
- 'Captcha-Key': key,
- 'Captcha-Code': code,
- },
- params: {
- tenantId,
- username,
- password,
- grant_type: 'password',
- scope: 'all',
- type,
- },
- });
+ request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ headers: {
+ 'Tenant-Id': tenantId,
+ 'Dept-Id': website.switchMode ? deptId : '',
+ 'Role-Id': website.switchMode ? roleId : '',
+ 'Captcha-Key': key,
+ 'Captcha-Code': code,
+ },
+ params: {
+ tenantId,
+ username,
+ password,
+ grant_type: 'password',
+ scope: 'all',
+ type,
+ },
+ })
export const loginBySocial = (tenantId, source, code, state) =>
- request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- headers: {
- 'Tenant-Id': tenantId,
- },
- params: {
- tenantId,
- source,
- code,
- state,
- grant_type: 'social',
- scope: 'all',
- },
- });
+ request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ headers: {
+ 'Tenant-Id': tenantId,
+ },
+ params: {
+ tenantId,
+ source,
+ code,
+ state,
+ grant_type: 'social',
+ scope: 'all',
+ },
+ })
export const loginBySso = (state, code) =>
- request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- headers: {
- 'Tenant-Id': state,
- },
- params: {
- tenantId: state,
- code,
- grant_type: 'authorization_code',
- scope: 'all',
- redirect_uri: website.oauth2.redirectUri,
- },
- });
+ request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ headers: {
+ 'Tenant-Id': state,
+ },
+ params: {
+ tenantId: state,
+ code,
+ grant_type: 'authorization_code',
+ scope: 'all',
+ redirect_uri: website.oauth2.redirectUri,
+ },
+ })
export const loginByPhone = (tenantId, phone, id, value) =>
- request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- headers: {
- 'Tenant-Id': tenantId,
- },
- params: {
- tenantId,
- phone,
- id,
- value,
- grant_type: 'sms_code',
- scope: 'all',
- },
- });
+ request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ headers: {
+ 'Tenant-Id': tenantId,
+ },
+ params: {
+ tenantId,
+ phone,
+ id,
+ value,
+ grant_type: 'sms_code',
+ scope: 'all',
+ },
+ })
export const refreshToken = (refresh_token, tenantId, deptId, roleId) =>
- request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- headers: {
- 'Tenant-Id': tenantId,
- 'Dept-Id': func.toStr(deptId),
- 'Role-Id': func.toStr(roleId),
- },
- params: {
- tenantId,
- refresh_token,
- grant_type: 'refresh_token',
- scope: 'all',
- },
- });
+ request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ headers: {
+ 'Tenant-Id': tenantId,
+ 'Dept-Id': func.toStr(deptId),
+ 'Role-Id': func.toStr(roleId),
+ },
+ params: {
+ tenantId,
+ refresh_token,
+ grant_type: 'refresh_token',
+ scope: 'all',
+ },
+ })
export const registerUser = (tenantId, name, account, password, phone, email) =>
- request({
- url: '/blade-auth/oauth/token',
- method: 'post',
- headers: {
- 'Tenant-Id': tenantId,
- },
- params: {
- name,
- username: account,
- account,
- password,
- phone,
- email,
- grant_type: 'register',
- scope: 'all',
- },
- });
+ request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ headers: {
+ 'Tenant-Id': tenantId,
+ },
+ params: {
+ name,
+ username: account,
+ account,
+ password,
+ phone,
+ email,
+ grant_type: 'register',
+ scope: 'all',
+ },
+ })
export const registerGuest = (form, oauthId) =>
- request({
- url: '/blade-system/user/register-guest',
- method: 'post',
- params: {
- tenantId: form.tenantId,
- name: form.name,
- account: form.account,
- password: form.password,
- oauthId,
- },
- });
+ request({
+ url: '/blade-system/user/register-guest',
+ method: 'post',
+ params: {
+ tenantId: form.tenantId,
+ name: form.name,
+ account: form.account,
+ password: form.password,
+ oauthId,
+ },
+ })
export const getButtons = () =>
- request({
- url: '/blade-system/menu/buttons',
- method: 'get',
- });
+ request({
+ url: '/blade-system/menu/buttons',
+ method: 'get',
+ })
export const getCaptcha = () =>
- request({
- url: '/blade-auth/oauth/captcha',
- method: 'get',
- authorization: false,
- });
+ request({
+ url: '/blade-auth/oauth/captcha',
+ method: 'get',
+ authorization: false,
+ })
export const logout = () =>
- request({
- url: '/blade-auth/oauth/logout',
- method: 'get',
- authorization: false,
- });
+ request({
+ url: '/blade-auth/oauth/logout',
+ method: 'get',
+ authorization: false,
+ })
export const getUserInfo = () =>
- request({
- url: '/blade-auth/oauth/user-info',
- method: 'get',
- });
+ request({
+ url: '/blade-auth/oauth/user-info',
+ method: 'get',
+ })
export const sendLogs = list =>
- request({
- url: '/blade-auth/oauth/logout',
- method: 'post',
- data: list,
- });
+ request({
+ url: '/blade-auth/oauth/logout',
+ method: 'post',
+ data: list,
+ })
export const clearCache = () =>
- request({
- url: '/blade-auth/oauth/clear-cache',
- method: 'get',
- authorization: false,
- });
+ request({
+ url: '/blade-auth/oauth/clear-cache',
+ method: 'get',
+ authorization: false,
+ })
export const sendSms = (tenantId, phone) =>
- request({
- url: '/blade-auth/oauth/sms/send-validate',
- method: 'post',
- params: {
- tenantId,
- phone,
- },
- });
+ request({
+ url: '/blade-auth/oauth/sms/send-validate',
+ method: 'post',
+ params: {
+ tenantId,
+ phone,
+ },
+ })
diff --git a/src/api/work/process.js b/src/api/work/process.js
index 4654a64..d54be02 100644
--- a/src/api/work/process.js
+++ b/src/api/work/process.js
@@ -1,33 +1,33 @@
-import request from '@/axios';
+import request from '@/axios'
// =====================参数===========================
export const historyFlowList = processInstanceId => {
- return request({
- url: '/blade-flow/process/history-flow-list',
- method: 'get',
- params: {
- processInstanceId,
- },
- });
-};
+ return request({
+ url: '/blade-flow/process/history-flow-list',
+ method: 'get',
+ params: {
+ processInstanceId,
+ },
+ })
+}
// =====================请假流程===========================
export const leaveProcess = data => {
- return request({
- url: '/blade-desk/process/leave/start-process',
- method: 'post',
- data,
- });
-};
+ return request({
+ url: '/blade-desk/process/leave/start-process',
+ method: 'post',
+ data,
+ })
+}
export const leaveDetail = businessId => {
- return request({
- url: '/blade-desk/process/leave/detail',
- method: 'get',
- params: {
- businessId,
- },
- });
-};
+ return request({
+ url: '/blade-desk/process/leave/detail',
+ method: 'get',
+ params: {
+ businessId,
+ },
+ })
+}
diff --git a/src/api/work/work.js b/src/api/work/work.js
index 360e396..a5264bb 100644
--- a/src/api/work/work.js
+++ b/src/api/work/work.js
@@ -1,79 +1,79 @@
-import request from '@/axios';
+import request from '@/axios'
export const startList = (current, size, params) => {
- return request({
- url: '/blade-flow/work/start-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/work/start-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const claimList = (current, size, params) => {
- return request({
- url: '/blade-flow/work/claim-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/work/claim-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const todoList = (current, size, params) => {
- return request({
- url: '/blade-flow/work/todo-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/work/todo-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const sendList = (current, size, params) => {
- return request({
- url: '/blade-flow/work/send-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/work/send-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const doneList = (current, size, params) => {
- return request({
- url: '/blade-flow/work/done-list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- },
- });
-};
+ return request({
+ url: '/blade-flow/work/done-list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ },
+ })
+}
export const claimTask = taskId => {
- return request({
- url: '/blade-flow/work/claim-task',
- method: 'post',
- params: {
- taskId,
- },
- });
-};
+ return request({
+ url: '/blade-flow/work/claim-task',
+ method: 'post',
+ params: {
+ taskId,
+ },
+ })
+}
export const completeTask = data => {
- return request({
- url: '/blade-flow/work/complete-task',
- method: 'post',
- data,
- });
-};
+ return request({
+ url: '/blade-flow/work/complete-task',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/axios.js b/src/axios.js
index 3f0905f..0e56d22 100644
--- a/src/axios.js
+++ b/src/axios.js
@@ -5,222 +5,222 @@
* isSerialize是否开启form表单提交
* isToken是否需要token
*/
-import axios from 'axios';
-import store from '@/store/';
-import router from '@/router/';
-import { serialize } from '@/utils/util';
-import { getToken, removeToken, removeRefreshToken } from '@/utils/auth';
-import { isURL, validatenull } from '@/utils/validate';
-import { ElMessage } from 'element-plus';
-import website from '@/config/website';
-import NProgress from 'nprogress'; // progress bar
-import 'nprogress/nprogress.css'; // progress bar style
-import { Base64 } from 'js-base64';
-import { baseUrl } from '@/config/env';
-import crypto from '@/utils/crypto';
+import axios from 'axios'
+import store from '@/store/'
+import router from '@/router/'
+import { serialize } from '@/utils/util'
+import { getToken, removeToken, removeRefreshToken } from '@/utils/auth'
+import { isURL, validatenull } from '@/utils/validate'
+import { ElMessage } from 'element-plus'
+import website from '@/config/website'
+import NProgress from 'nprogress' // progress bar
+import 'nprogress/nprogress.css' // progress bar style
+import { Base64 } from 'js-base64'
+import { baseUrl } from '@/config/env'
+import crypto from '@/utils/crypto'
// 全局未授权错误提示状态,只提示一次
-let isErrorShown = false;
+let isErrorShown = false
// 全局锁机制相关变量
-let isRefreshing = false; // 标记当前是否正在刷新token
-let refreshTokenPromise = null; // 刷新token的Promise,避免重复请求
+let isRefreshing = false // 标记当前是否正在刷新token
+let refreshTokenPromise = null // 刷新token的Promise,避免重复请求
-axios.defaults.timeout = 10000;
+axios.defaults.timeout = 10000
//返回其他状态码
axios.defaults.validateStatus = function (status) {
- return status >= 200 && status <= 500; // 默认的
-};
+ return status >= 200 && status <= 500 // 默认的
+}
//跨域请求,允许保存cookie
-axios.defaults.withCredentials = true;
+axios.defaults.withCredentials = true
// NProgress Configuration
NProgress.configure({
- showSpinner: false,
-});
+ showSpinner: false,
+})
//http request拦截
axios.interceptors.request.use(
- config => {
- // start progress bar
- NProgress.start();
- // 初始化错误提示状态
- isErrorShown = false;
- //地址为已经配置状态则不添加前缀
- if (!isURL(config.url) && !config.url.startsWith(baseUrl)) {
- config.url = baseUrl + config.url;
- }
- config.headers['areaCode'] = store.state.user.selectedAreaCode;
- //安全请求header
- config.headers['Blade-Requested-With'] = 'BladeHttpRequest';
- //headers判断是否需要
- const authorization = config.authorization === false;
- if (!authorization) {
- config.headers['Authorization'] = `Basic ${Base64.encode(
- `${website.clientId}:${website.clientSecret}`
- )}`;
- }
- // 根据后端要求,post的data为空的话传{}
- if (config.method === 'post') {
- config.data = config.data || {};
- }
- //headers判断请求是否携带token
- const meta = config.meta || {};
- const isToken = meta.isToken === false;
- //headers传递token是否加密
- const cryptoToken = config.cryptoToken === true;
- //判断传递数据是否加密
- const cryptoData = config.cryptoData === true;
- const token = getToken();
- if (token && !isToken) {
- config.headers[website.tokenHeader] = cryptoToken
- ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
- : 'bearer ' + token;
- }
- // 开启报文加密
- // if (cryptoData) {
- // if (config.params) {
- // const data = crypto.encryptAES(JSON.stringify(config.params), crypto.aesKey);
- // config.params = { data };
- // }
- // if (config.data) {
- // config.text = true;
- // config.data = crypto.encryptAES(JSON.stringify(config.data), crypto.aesKey);
- // }
- // }
- //headers中配置text请求
- if (config.text === true) {
- config.headers['Content-Type'] = 'text/plain';
- }
- //headers中配置serialize为true开启序列化
- if (config.method === 'post' && meta.isSerialize === true) {
- config.data = serialize(config.data);
- }
- return config;
- },
- error => {
- return Promise.reject(error);
- }
-);
+ config => {
+ // start progress bar
+ NProgress.start()
+ // 初始化错误提示状态
+ isErrorShown = false
+ //地址为已经配置状态则不添加前缀
+ if (!isURL(config.url) && !config.url.startsWith(baseUrl)) {
+ config.url = baseUrl + config.url
+ }
+ config.headers['areaCode'] = store.state.user.selectedAreaCode
+ //安全请求header
+ config.headers['Blade-Requested-With'] = 'BladeHttpRequest'
+ //headers判断是否需要
+ const authorization = config.authorization === false
+ if (!authorization) {
+ config.headers['Authorization'] = `Basic ${Base64.encode(
+ `${website.clientId}:${website.clientSecret}`
+ )}`
+ }
+ // 根据后端要求,post的data为空的话传{}
+ if (config.method === 'post') {
+ config.data = config.data || {}
+ }
+ //headers判断请求是否携带token
+ const meta = config.meta || {}
+ const isToken = meta.isToken === false
+ //headers传递token是否加密
+ const cryptoToken = config.cryptoToken === true
+ //判断传递数据是否加密
+ const cryptoData = config.cryptoData === true
+ const token = getToken()
+ if (token && !isToken) {
+ config.headers[website.tokenHeader] = cryptoToken
+ ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
+ : 'bearer ' + token
+ }
+ // 开启报文加密
+ // if (cryptoData) {
+ // if (config.params) {
+ // const data = crypto.encryptAES(JSON.stringify(config.params), crypto.aesKey);
+ // config.params = { data };
+ // }
+ // if (config.data) {
+ // config.text = true;
+ // config.data = crypto.encryptAES(JSON.stringify(config.data), crypto.aesKey);
+ // }
+ // }
+ //headers中配置text请求
+ if (config.text === true) {
+ config.headers['Content-Type'] = 'text/plain'
+ }
+ //headers中配置serialize为true开启序列化
+ if (config.method === 'post' && meta.isSerialize === true) {
+ config.data = serialize(config.data)
+ }
+ return config
+ },
+ error => {
+ return Promise.reject(error)
+ }
+)
//http response拦截
axios.interceptors.response.use(
- res => {
- NProgress.done();
- //获取配置信息
- const config = res.config;
- const cryptoData = config.cryptoData === true;
- //解析加密报文
- if (cryptoData) {
- res.data = JSON.parse(crypto.decryptAES(res.data, crypto.aesKey));
- }
- //获取状态信息
- const status = res.data.error_code || res.data.code || res.status;
- const statusWhiteList = website.statusWhiteList || [];
- const message = res.data.msg || res.data.error_description || '系统错误';
- //如果在白名单里则自行catch逻辑处理
- if (statusWhiteList.includes(status)) return Promise.reject(res);
+ res => {
+ NProgress.done()
+ //获取配置信息
+ const config = res.config
+ const cryptoData = config.cryptoData === true
+ //解析加密报文
+ if (cryptoData) {
+ res.data = JSON.parse(crypto.decryptAES(res.data, crypto.aesKey))
+ }
+ //获取状态信息
+ const status = res.data.error_code || res.data.code || res.status
+ const statusWhiteList = website.statusWhiteList || []
+ const message = res.data.msg || res.data.error_description || '系统错误'
+ //如果在白名单里则自行catch逻辑处理
+ if (statusWhiteList.includes(status)) return Promise.reject(res)
- // 如果是401并且没有重试过,尝试刷新token
- if (status === 401 && !config._retry) {
- config._retry = true;
+ // 如果是401并且没有重试过,尝试刷新token
+ if (status === 401 && !config._retry) {
+ config._retry = true
- // 如果当前已经在刷新token,等待刷新完成
- if (isRefreshing) {
- return refreshTokenPromise.then(() => {
- const meta = config.meta || {};
- const isToken = meta.isToken === false;
- const cryptoToken = config.cryptoToken === true;
- const token = getToken();
- if (token && !isToken) {
- config.headers[website.tokenHeader] = cryptoToken
- ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
- : 'bearer ' + token;
- }
- return axios(config);
- });
- }
+ // 如果当前已经在刷新token,等待刷新完成
+ if (isRefreshing) {
+ return refreshTokenPromise.then(() => {
+ const meta = config.meta || {}
+ const isToken = meta.isToken === false
+ const cryptoToken = config.cryptoToken === true
+ const token = getToken()
+ if (token && !isToken) {
+ config.headers[website.tokenHeader] = cryptoToken
+ ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
+ : 'bearer ' + token
+ }
+ return axios(config)
+ })
+ }
- // 开始刷新token
- isRefreshing = true;
+ // 开始刷新token
+ isRefreshing = true
- // 调用RefreshToken action来刷新token
- refreshTokenPromise = store
- .dispatch('RefreshToken')
- .then(() => {
- isRefreshing = false; // 重置刷新标志
- const meta = config.meta || {};
- const isToken = meta.isToken === false;
- const cryptoToken = config.cryptoToken === true;
- // 获取刷新后的token
- const token = getToken();
- if (token && !isToken) {
- config.headers[website.tokenHeader] = cryptoToken
- ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
- : 'bearer ' + token;
- }
- return axios(config);
- })
- .catch(() => {
- isRefreshing = false; // 重置刷新标志
- // 首次报错时提示
- if (!isErrorShown) {
- isErrorShown = true;
- ElMessage({
- message: '用户令牌不可用,请重新登录',
- type: 'error',
- });
- }
- // 清除token信息
- removeToken();
- removeRefreshToken();
- // 重定向到登录页
- store.dispatch('FedLogOut').then(() => router.push({ path: '/login' }));
- return Promise.reject(new Error(message));
- });
+ // 调用RefreshToken action来刷新token
+ refreshTokenPromise = store
+ .dispatch('RefreshToken')
+ .then(() => {
+ isRefreshing = false // 重置刷新标志
+ const meta = config.meta || {}
+ const isToken = meta.isToken === false
+ const cryptoToken = config.cryptoToken === true
+ // 获取刷新后的token
+ const token = getToken()
+ if (token && !isToken) {
+ config.headers[website.tokenHeader] = cryptoToken
+ ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
+ : 'bearer ' + token
+ }
+ return axios(config)
+ })
+ .catch(() => {
+ isRefreshing = false // 重置刷新标志
+ // 首次报错时提示
+ if (!isErrorShown) {
+ isErrorShown = true
+ ElMessage({
+ message: '用户令牌不可用,请重新登录',
+ type: 'error',
+ })
+ }
+ // 清除token信息
+ removeToken()
+ removeRefreshToken()
+ // 重定向到登录页
+ store.dispatch('FedLogOut').then(() => router.push({ path: '/login' }))
+ return Promise.reject(new Error(message))
+ })
- return refreshTokenPromise;
- }
+ return refreshTokenPromise
+ }
- // 如果是401并且已经重试过,直接跳转到登录页面
- if (status === 401 && config._retry) {
- if (!isErrorShown) {
- isErrorShown = true;
- ElMessage({
- message: '用户令牌不可用,请重新登录',
- type: 'error',
- });
- }
- removeToken();
- removeRefreshToken();
- store.dispatch('FedLogOut').then(() => router.push({ path: '/login' }));
- return Promise.reject(new Error(message));
- }
+ // 如果是401并且已经重试过,直接跳转到登录页面
+ if (status === 401 && config._retry) {
+ if (!isErrorShown) {
+ isErrorShown = true
+ ElMessage({
+ message: '用户令牌不可用,请重新登录',
+ type: 'error',
+ })
+ }
+ removeToken()
+ removeRefreshToken()
+ store.dispatch('FedLogOut').then(() => router.push({ path: '/login' }))
+ return Promise.reject(new Error(message))
+ }
- // 如果请求为oauth2错误码则首次报错时提示
- if (status > 2000 && !validatenull(res.data.error_description)) {
- if (!isErrorShown) {
- isErrorShown = true;
- ElMessage({
- message: message,
- type: 'error',
- });
- }
- return Promise.reject(new Error(message));
- }
+ // 如果请求为oauth2错误码则首次报错时提示
+ if (status > 2000 && !validatenull(res.data.error_description)) {
+ if (!isErrorShown) {
+ isErrorShown = true
+ ElMessage({
+ message: message,
+ type: 'error',
+ })
+ }
+ return Promise.reject(new Error(message))
+ }
- // 如果请求为非200则默认统一处理
- if (status !== 200) {
- ElMessage({
- message: message,
- type: 'error',
- });
- return Promise.reject(new Error(message));
- }
- return res;
- },
- error => {
- NProgress.done();
- return Promise.reject(new Error(error));
- }
-);
+ // 如果请求为非200则默认统一处理
+ if (status !== 200) {
+ ElMessage({
+ message: message,
+ type: 'error',
+ })
+ return Promise.reject(new Error(message))
+ }
+ return res
+ },
+ error => {
+ NProgress.done()
+ return Promise.reject(new Error(error))
+ }
+)
-export default axios;
+export default axios
diff --git a/src/components/basic-video/plugin.js b/src/components/basic-video/plugin.js
index a304bee..3ba258d 100644
--- a/src/components/basic-video/plugin.js
+++ b/src/components/basic-video/plugin.js
@@ -1,88 +1,88 @@
export default class RecordVideo {
- /**
- * 构造函数
- *
- * @param {Object} videoObj 视频对象
- */
- constructor(videoObj) {
- this.video = videoObj;
- this.mediaRecorder = null;
- this.chunks = [];
- }
+ /**
+ * 构造函数
+ *
+ * @param {Object} videoObj 视频对象
+ */
+ constructor(videoObj) {
+ this.video = videoObj
+ this.mediaRecorder = null
+ this.chunks = []
+ }
- /**
- * 初始化
- *
- * @return {Object} promise
- */
- init() {
- // 返回Promise对象
- // resolve 正常处理
- // reject 处理异常情况
- return new Promise((resovle, reject) => {
- navigator.mediaDevices
- .getUserMedia({
- audio: true,
- video: true,
- // video: {
- // width: this.videoWidth,
- // height: this.videoHeight
- // }
- })
- // 返回一个媒体内容的流
- .then(stream => {
- // 检测是否支持 srcObject,该属性在新的浏览器支持
- if ('srcObject' in this.video) {
- this.video.srcObject = stream;
- } else {
- // 兼容旧的浏览器
- this.video.src = window.URL.createObjectURL(stream);
- }
+ /**
+ * 初始化
+ *
+ * @return {Object} promise
+ */
+ init() {
+ // 返回Promise对象
+ // resolve 正常处理
+ // reject 处理异常情况
+ return new Promise((resovle, reject) => {
+ navigator.mediaDevices
+ .getUserMedia({
+ audio: true,
+ video: true,
+ // video: {
+ // width: this.videoWidth,
+ // height: this.videoHeight
+ // }
+ })
+ // 返回一个媒体内容的流
+ .then(stream => {
+ // 检测是否支持 srcObject,该属性在新的浏览器支持
+ if ('srcObject' in this.video) {
+ this.video.srcObject = stream
+ } else {
+ // 兼容旧的浏览器
+ this.video.src = window.URL.createObjectURL(stream)
+ }
- // 当视频的元数据已经加载时触发
- this.video.addEventListener('loadmetadata', () => {
- this.video.play();
- });
- this.mediaRecorder = new MediaRecorder(stream);
- this.mediaRecorder.addEventListener('dataavailable', e => {
- this.chunks.push(e.data);
- });
- resovle();
- })
- // 异常抓取,包括用于禁用麦克风、摄像头
- .catch(error => {
- reject(error);
- });
- });
- }
+ // 当视频的元数据已经加载时触发
+ this.video.addEventListener('loadmetadata', () => {
+ this.video.play()
+ })
+ this.mediaRecorder = new MediaRecorder(stream)
+ this.mediaRecorder.addEventListener('dataavailable', e => {
+ this.chunks.push(e.data)
+ })
+ resovle()
+ })
+ // 异常抓取,包括用于禁用麦克风、摄像头
+ .catch(error => {
+ reject(error)
+ })
+ })
+ }
- /**
- * 视频开始录制
- */
- startRecord() {
- if (this.mediaRecorder.state === 'inactive') {
- this.mediaRecorder.start();
- }
- }
+ /**
+ * 视频开始录制
+ */
+ startRecord() {
+ if (this.mediaRecorder.state === 'inactive') {
+ this.mediaRecorder.start()
+ }
+ }
- /**
- * 视频结束录制
- */
- stopRecord() {
- if (this.mediaRecorder.state === 'recording') {
- this.mediaRecorder.stop();
- }
- }
+ /**
+ * 视频结束录制
+ */
+ stopRecord() {
+ if (this.mediaRecorder.state === 'recording') {
+ this.mediaRecorder.stop()
+ }
+ }
- /**
- * 检测当前浏览器对否支持
- *
- * @return {boolean} 当前浏览器是否支持
- */
- isSupport() {
- const flag = navigator.mediaDevices && navigator.mediaDevices.getUserMedia;
- if (flag) {
- return true;
- }
- }
+ /**
+ * 检测当前浏览器对否支持
+ *
+ * @return {boolean} 当前浏览器是否支持
+ */
+ isSupport() {
+ const flag = navigator.mediaDevices && navigator.mediaDevices.getUserMedia
+ if (flag) {
+ return true
+ }
+ }
}
diff --git a/src/components/global/publicTitle.vue b/src/components/global/publicTitle.vue
new file mode 100644
index 0000000..ded5b43
--- /dev/null
+++ b/src/components/global/publicTitle.vue
@@ -0,0 +1,33 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-25 18:41:39
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2025-04-02 18:26:00
+ * @FilePath: \command-center-dashboard\src\components\publicTitle\publicTitle.vue
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+-->
+<template>
+ <div class="title-box">
+ <div class="title">
+ <slot name="titleName"></slot>
+ </div>
+ </div>
+</template>
+
+<style lang="scss" scoped>
+.title {
+ margin-left: 30px;
+ text-align: left;
+ font-size: 18px;
+ font-family: Alibaba PuHuiTi;
+ font-weight: 700;
+ font-style: italic;
+ color: transparent;
+ text-shadow: 0 2px 8px rgba(5, 28, 55, .42);
+ background-image: linear-gradient(180deg, rgba(14, 197, 236, .36) 5%, rgba(49, 190, 255, .36) 20%, #fff 40%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparen;
+}
+</style>
\ No newline at end of file
diff --git a/src/components/index.js b/src/components/index.js
index 3101eb5..7d7a74c 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -1,22 +1,15 @@
-/*
- * @Author: shuishen 1109946754@qq.com
- * @Date: 2024-10-25 15:20:05
- * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-08 20:11:39
- * @FilePath: \bigScreen\src\components\index.js
- * @Description:
- *
- * Copyright (c) 2024 by shuishen, All Rights Reserved.
- */
-/*
- **全局注册组件
- ** 放在components/global文件夹下
- */
import { defineAsyncComponent } from 'vue'
-const components = import.meta.glob('./global/*.vue') // 异步方式
-export default function install (app) {
- for (const [key, value] of Object.entries(components)) {
- const name = key.slice(key.lastIndexOf('/') + 1, key.lastIndexOf('.'))
- app.component(name, defineAsyncComponent(value))
- }
+
+export default {
+ install(app) {
+ // 匹配当前目录下所有.vue文件(包括子目录)
+ const components = import.meta.glob('./global/*.vue', { eager: true })
+
+ for (const [path, module] of Object.entries(components)) {
+ // 提取组件名(去除路径和扩展名)
+ const name = path.split('/').pop()?.replace('.vue', '') || ''
+ // 注册组件
+ app.component(name, module.default)
+ }
+ },
}
diff --git a/src/config/env.js b/src/config/env.js
index d882c76..d376ebf 100644
--- a/src/config/env.js
+++ b/src/config/env.js
@@ -1,2 +1,2 @@
-let baseUrl = import.meta.env.VITE_APP_API;
-export { baseUrl };
+let baseUrl = import.meta.env.VITE_APP_API
+export { baseUrl }
diff --git a/src/config/iconList.js b/src/config/iconList.js
index 1208c40..9712b7e 100644
--- a/src/config/iconList.js
+++ b/src/config/iconList.js
@@ -1,380 +1,380 @@
export default [
- {
- label: '通用图标',
- list: [
- 'iconfont iconicon_roundadd',
- 'iconfont iconicon_compile',
- 'iconfont iconicon_glass',
- 'iconfont iconicon_roundclose',
- 'iconfont iconicon_roundreduce',
- 'iconfont iconicon_delete',
- 'iconfont iconicon_shakehands',
- 'iconfont iconicon_task_done',
- 'iconfont iconicon_voipphone',
- 'iconfont iconicon_safety',
- 'iconfont iconicon_work',
- 'iconfont iconicon_study',
- 'iconfont iconicon_task',
- 'iconfont iconicon_subordinate',
- 'iconfont iconicon_star',
- 'iconfont iconicon_setting',
- 'iconfont iconicon_sms',
- 'iconfont iconicon_share',
- 'iconfont iconicon_secret',
- 'iconfont iconicon_scan_namecard',
- 'iconfont iconicon_principal',
- 'iconfont iconicon_group',
- 'iconfont iconicon_send',
- 'iconfont iconicon_scan',
- 'iconfont iconicon_search',
- 'iconfont iconicon_refresh',
- 'iconfont iconicon_savememo',
- 'iconfont iconicon_QRcode',
- 'iconfont iconicon_im_keyboard',
- 'iconfont iconicon_redpacket',
- 'iconfont iconicon_photo',
- 'iconfont iconicon_qq',
- 'iconfont iconicon_wechat',
- 'iconfont iconicon_phone',
- 'iconfont iconicon_namecard',
- 'iconfont iconicon_notice',
- 'iconfont iconicon_next_arrow',
- 'iconfont iconicon_left',
- 'iconfont iconicon_more',
- 'iconfont iconicon_details',
- 'iconfont iconicon_message',
- 'iconfont iconicon_mobilephone',
- 'iconfont iconicon_im_voice',
- 'iconfont iconicon_GPS',
- 'iconfont iconicon_ding',
- 'iconfont iconicon_exchange',
- 'iconfont iconicon_cspace',
- 'iconfont iconicon_doc',
- 'iconfont iconicon_dispose',
- 'iconfont iconicon_discovery',
- 'iconfont iconicon_community_line',
- 'iconfont iconicon_cloud_history',
- 'iconfont iconicon_coinpurse_line',
- 'iconfont iconicon_airplay',
- 'iconfont iconicon_at',
- 'iconfont iconicon_addressbook',
- 'iconfont iconicon_boss',
- 'iconfont iconicon_addperson',
- 'iconfont iconicon_affiliations_li',
- 'iconfont iconicon_addmessage',
- 'iconfont iconicon_addresslist',
- 'iconfont iconicon_add',
- 'iconfont icongithub',
- 'iconfont icongitee2',
- ],
- },
- {
- label: '系统图标',
- list: [
- 'iconfont icon-zhongyingwen',
- 'iconfont icon-caidan',
- 'iconfont icon-rizhi1',
- 'iconfont icon-zhuti',
- 'iconfont icon-suoping',
- 'iconfont icon-bug',
- 'iconfont icon-qq1',
- 'iconfont icon-weixin1',
- 'iconfont icon-shouji',
- 'iconfont icon-mima',
- 'iconfont icon-yonghu',
- 'iconfont icon-yanzhengma',
- 'iconfont icon-canshu',
- 'iconfont icon-dongtai',
- 'iconfont icon-iconset0265',
- 'iconfont icon-shujuzhanshi2',
- 'iconfont icon-tuichuquanping',
- 'iconfont icon-rizhi',
- 'iconfont icon-cuowutishitubiao',
- 'iconfont icon-debug',
- 'iconfont icon-iconset0216',
- 'iconfont icon-quanxian',
- 'iconfont icon-quanxian',
- 'iconfont icon-shuaxin',
- 'iconfont icon-bofangqi-suoping',
- 'iconfont icon-quanping',
- 'iconfont icon-navicon',
- 'iconfont icon-biaodan',
- 'iconfont icon-liuliangyunpingtaitubiao08',
- 'iconfont icon-caidanguanli',
- 'iconfont icon-cuowu',
- 'iconfont icon-wxbgongju',
- 'iconfont icon-tuichu',
- 'iconfont icon-daohanglanmoshi02',
- 'iconfont icon-changyonglogo27',
- 'iconfont icon-biaoge',
- 'iconfont icon-baidu1',
- 'iconfont icon-tubiao',
- 'iconfont icon-souhu',
- 'iconfont icon-msnui-360',
- 'iconfont icon-iframe',
- 'iconfont icon-huanyingye',
- ],
- },
- {
- label: '业务图标',
- list: [
- 'iconfont icon-zidingyi',
- 'iconfont icon-xiajiantou',
- 'iconfont icon-shangjiantou',
- 'iconfont icon-icon_loading',
- 'iconfont icon-biaodanzujian-shurukuang',
- 'iconfont icon-biaodanzujian-biaoge',
- 'iconfont icon-biaodanzujian-xialakuang',
- 'iconfont icon-tubiao-bingtu',
- 'iconfont icon-biaodanzujian-anniu',
- 'iconfont icon-gongyezujian-yibiaopan',
- 'iconfont icon-tubiao-qiapian',
- 'iconfont icon-gongyezujian-zhishideng',
- 'iconfont icon-tubiao-zhexiantu',
- 'iconfont icon-xingzhuang-juxing',
- 'iconfont icon-xingzhuang-jianxing',
- 'iconfont icon-gongyezujian-kaiguan',
- 'iconfont icon-tubiao-zhuzhuangtu',
- 'iconfont icon-xingzhuang-tupian',
- 'iconfont icon-xingzhuang-wenzi',
- 'iconfont icon-xingzhuang-tuoyuanxing',
- 'iconfont icon-xingzhuang-sanjiaoxing',
- 'iconfont icon-xingzhuang-xingxing',
- 'iconfont icon-guize',
- 'iconfont icon-shebeiguanli',
- 'iconfont icon-gongnengdingyi1',
- 'iconfont icon-jishufuwu1',
- 'iconfont icon-yunyingzhongxin',
- 'iconfont icon-yunyingguanli',
- 'iconfont icon-zuzhixiaxia',
- 'iconfont icon-zuzhizhankai',
- 'iconfont icon-zuzhiqunzu',
- 'iconfont icon-dakai',
- 'iconfont icon-yingwen',
- 'iconfont icon-zhongwen',
- 'iconfont icon-miwen',
- 'iconfont icon-xianhao',
- 'iconfont icon-kongxinduigou',
- 'iconfont icon-huixingzhen',
- 'iconfont icon-duigou',
- 'iconfont icon-xiayibu',
- 'iconfont icon-shangyibu',
- 'iconfont icon-kongjianxuanzhong',
- 'iconfont icon-kongjianweixuan',
- 'iconfont icon-kongjianyixuan',
- 'iconfont icon--diangan',
- 'iconfont icon-rongxuejirongjiechi',
- 'iconfont icon-lubiantingchechang',
- 'iconfont icon--lumingpai',
- 'iconfont icon-jietouzuoyi',
- 'iconfont icon--zhongdaweixian',
- 'iconfont icon--jiaotongbiaozhipai',
- 'iconfont icon-gongcezhishipai',
- 'iconfont icon-fangkuai',
- 'iconfont icon-fangkuai-',
- 'iconfont icon-shuaxin',
- 'iconfont icon-baocun',
- 'iconfont icon-fabu',
- 'iconfont icon-xiayibu1',
- 'iconfont icon-shangyibu1',
- 'iconfont icon-xiangxiazhanhang',
- 'iconfont icon-xiangshangzhanhang',
- 'iconfont icon-tupianjiazaishibai',
- 'iconfont icon-fuwudiqiu',
- 'iconfont icon-suoxiao',
- 'iconfont icon-fangda',
- 'iconfont icon-huanyuanhuabu',
- 'iconfont icon-quanping',
- 'iconfont icon-biaodanzujian-biaoge1',
- 'iconfont icon-APIshuchu',
- 'iconfont icon-APIjieru',
- 'iconfont icon-wenjianjia',
- 'iconfont icon-DOC',
- 'iconfont icon-BMP',
- 'iconfont icon-GIF',
- 'iconfont icon-JPG',
- 'iconfont icon-PNG',
- 'iconfont icon-weizhigeshi',
- 'iconfont icon-gengduo',
- 'iconfont icon-yunduanxiazai',
- 'iconfont icon-yunduanshangchuan',
- 'iconfont icon-dian',
- 'iconfont icon-mian',
- 'iconfont icon-xian',
- 'iconfont icon-shebeizhuangtai',
- 'iconfont icon-fenzuguanli',
- 'iconfont icon-kuaisubianpai',
- 'iconfont icon-APPkaifa',
- 'iconfont icon-wentijieda',
- 'iconfont icon-kefu',
- 'iconfont icon-ruanjiankaifabao',
- 'iconfont icon-sousuobianxiao',
- 'iconfont icon-sousuofangda',
- 'iconfont icon-dingwei',
- 'iconfont icon-wumoxing',
- 'iconfont icon-gaojing',
- 'iconfont icon-renwujincheng',
- 'iconfont icon-xiaoxitongzhi',
- 'iconfont icon-youhui',
- 'iconfont icon-gaojing1',
- 'iconfont icon-zhihangfankui',
- 'iconfont icon-gongdanqueren',
- 'iconfont icon-guangbo',
- 'iconfont icon-gongdan',
- 'iconfont icon-xiaoxi',
- 'iconfont icon-xinhao',
- 'iconfont icon-lanya',
- 'iconfont icon-Wi-Fi',
- 'iconfont icon-chaxun',
- 'iconfont icon-dianbiao',
- 'iconfont icon-anquan',
- 'iconfont icon-daibanshixiang',
- 'iconfont icon-bingxiang',
- 'iconfont icon-fanshe',
- 'iconfont icon-fengche',
- 'iconfont icon-guandao',
- 'iconfont icon-guize1',
- 'iconfont icon-guizeyinqing',
- 'iconfont icon-huowudui',
- 'iconfont icon-jianceqi',
- 'iconfont icon-jinggai',
- 'iconfont icon-liujisuan',
- 'iconfont icon-hanshu',
- 'iconfont icon-lianjieliu',
- 'iconfont icon-ludeng',
- 'iconfont icon-shexiangji',
- 'iconfont icon-rentijiance',
- 'iconfont icon-moshubang',
- 'iconfont icon-shujuwajue',
- 'iconfont icon-wangguan',
- 'iconfont icon-shenjing',
- 'iconfont icon-chucun',
- 'iconfont icon-wuguan',
- 'iconfont icon-yunduanshuaxin',
- 'iconfont icon-yunhang',
- 'iconfont icon-luyouqi',
- 'iconfont icon-bug',
- 'iconfont icon-get',
- 'iconfont icon-PIR',
- 'iconfont icon-zhexiantu',
- 'iconfont icon-shuibiao',
- 'iconfont icon-js',
- 'iconfont icon-zihangche',
- 'iconfont icon-liebiao',
- 'iconfont icon-qichedingwei',
- 'iconfont icon-dici',
- 'iconfont icon-mysql',
- 'iconfont icon-qiche',
- 'iconfont icon-shenjing1',
- 'iconfont icon-chengshi',
- 'iconfont icon-tixingshixin',
- 'iconfont icon-menci',
- 'iconfont icon-chazuo',
- 'iconfont icon-ranqijianceqi',
- 'iconfont icon-kaiguan',
- 'iconfont icon-chatou',
- 'iconfont icon-xiyiji',
- 'iconfont icon-yijiankaiguan',
- 'iconfont icon-yanwubaojingqi',
- 'iconfont icon-wuxiandianbo',
- 'iconfont icon-fuzhi',
- 'iconfont icon-shanchu',
- 'iconfont icon-bianjisekuai',
- 'iconfont icon-ishipinshixiao',
- 'iconfont icon-iframetianjia',
- 'iconfont icon-tupiantianjia',
- 'iconfont icon-liebiaomoshi_kuai',
- 'iconfont icon-qiapianmoshi_kuai',
- 'iconfont icon-fenlan',
- 'iconfont icon-fengexian',
- 'iconfont icon-dianzan',
- 'iconfont icon-charulianjie',
- 'iconfont icon-charutupian',
- 'iconfont icon-quxiaolianjie',
- 'iconfont icon-wuxupailie',
- 'iconfont icon-juzhongduiqi',
- 'iconfont icon-yinyong',
- 'iconfont icon-youxupailie',
- 'iconfont icon-youduiqi',
- 'iconfont icon-zitidaima',
- 'iconfont icon-xiaolian',
- 'iconfont icon-zitijiacu',
- 'iconfont icon-zitishanchuxian',
- 'iconfont icon-zitishangbiao',
- 'iconfont icon-zitibiaoti',
- 'iconfont icon-zitixiahuaxian',
- 'iconfont icon-zitixieti',
- 'iconfont icon-zitiyanse',
- 'iconfont icon-zuoduiqi',
- 'iconfont icon-zitiyulan',
- 'iconfont icon-zitixiabiao',
- 'iconfont icon-zuoyouduiqi',
- 'iconfont icon-tianxie',
- 'iconfont icon-huowudui1',
- 'iconfont icon-yingjian',
- 'iconfont icon-shebeikaifa',
- 'iconfont icon-dianzan_kuai',
- 'iconfont icon-zhihuan',
- 'iconfont icon-tuoguan',
- 'iconfont icon-duigoux',
- 'iconfont icon-guanbi1',
- 'iconfont icon-aixin_shixin',
- 'iconfont icon-ranqixieloubaojingqi',
- 'iconfont icon-dianbiao_shiti',
- 'iconfont icon-aixin',
- 'iconfont icon-shuibiao_shiti',
- 'iconfont icon-zhinengxiaofangshuan',
- 'iconfont icon-ranqibiao_shiti',
- 'iconfont icon-shexiangtou_shiti',
- 'iconfont icon-shexiangtou_guanbi',
- 'iconfont icon-shexiangtou',
- 'iconfont icon-shengyin_shiti',
- 'iconfont icon-shengyinkai',
- 'iconfont icon-shoucang_shixin',
- 'iconfont icon-shoucang',
- 'iconfont icon-shengyinwu',
- 'iconfont icon-shengyinjingyin',
- 'iconfont icon-zhunbeiliangchan',
- 'iconfont icon-shebeikaifa1',
- 'iconfont icon-kongxinwenhao',
- 'iconfont icon-cuowukongxin',
- 'iconfont icon-fangkuai1',
- 'iconfont icon-fangkuai2',
- 'iconfont icon-kongjianxuanzhong1',
- 'iconfont icon-kongxinduigou1',
- 'iconfont icon-xinxikongxin',
- 'iconfont icon-kongjian',
- 'iconfont icon-gaojingkongxin',
- 'iconfont icon-duigou_kuai',
- 'iconfont icon-cuocha_kuai',
- 'iconfont icon-jia_sekuai',
- 'iconfont icon-jian_sekuai',
- 'iconfont icon-tiaoshi',
- 'iconfont icon-fenxiangfangshi',
- 'iconfont icon-changjingguanli',
- 'iconfont icon-bianji',
- 'iconfont icon-guanlianshebei',
- 'iconfont icon-guanfangbanben',
- 'iconfont icon-gongnengdingyi',
- 'iconfont icon-jichuguanli',
- 'iconfont icon-jishufuwu',
- 'iconfont icon-hezuohuobanmiyueguanli',
- 'iconfont icon-ceshishenqing',
- 'iconfont icon-jiedianguanli',
- 'iconfont icon-jinggao',
- 'iconfont icon-peiwangyindao',
- 'iconfont icon-renjijiaohu',
- 'iconfont icon-shiyongwendang',
- 'iconfont icon-quanxianshenpi',
- 'iconfont icon-yishouquan',
- 'iconfont icon-tianshenpi',
- 'iconfont icon-shujukanban',
- 'iconfont icon-yingyongguanli',
- 'iconfont icon-yibiaopan',
- 'iconfont icon-zhanghaoquanxianguanli',
- 'iconfont icon-yuanquyunwei',
- 'iconfont icon-jizhanguanli',
- 'iconfont icon-guanbi',
- ],
- },
-];
+ {
+ label: '通用图标',
+ list: [
+ 'iconfont iconicon_roundadd',
+ 'iconfont iconicon_compile',
+ 'iconfont iconicon_glass',
+ 'iconfont iconicon_roundclose',
+ 'iconfont iconicon_roundreduce',
+ 'iconfont iconicon_delete',
+ 'iconfont iconicon_shakehands',
+ 'iconfont iconicon_task_done',
+ 'iconfont iconicon_voipphone',
+ 'iconfont iconicon_safety',
+ 'iconfont iconicon_work',
+ 'iconfont iconicon_study',
+ 'iconfont iconicon_task',
+ 'iconfont iconicon_subordinate',
+ 'iconfont iconicon_star',
+ 'iconfont iconicon_setting',
+ 'iconfont iconicon_sms',
+ 'iconfont iconicon_share',
+ 'iconfont iconicon_secret',
+ 'iconfont iconicon_scan_namecard',
+ 'iconfont iconicon_principal',
+ 'iconfont iconicon_group',
+ 'iconfont iconicon_send',
+ 'iconfont iconicon_scan',
+ 'iconfont iconicon_search',
+ 'iconfont iconicon_refresh',
+ 'iconfont iconicon_savememo',
+ 'iconfont iconicon_QRcode',
+ 'iconfont iconicon_im_keyboard',
+ 'iconfont iconicon_redpacket',
+ 'iconfont iconicon_photo',
+ 'iconfont iconicon_qq',
+ 'iconfont iconicon_wechat',
+ 'iconfont iconicon_phone',
+ 'iconfont iconicon_namecard',
+ 'iconfont iconicon_notice',
+ 'iconfont iconicon_next_arrow',
+ 'iconfont iconicon_left',
+ 'iconfont iconicon_more',
+ 'iconfont iconicon_details',
+ 'iconfont iconicon_message',
+ 'iconfont iconicon_mobilephone',
+ 'iconfont iconicon_im_voice',
+ 'iconfont iconicon_GPS',
+ 'iconfont iconicon_ding',
+ 'iconfont iconicon_exchange',
+ 'iconfont iconicon_cspace',
+ 'iconfont iconicon_doc',
+ 'iconfont iconicon_dispose',
+ 'iconfont iconicon_discovery',
+ 'iconfont iconicon_community_line',
+ 'iconfont iconicon_cloud_history',
+ 'iconfont iconicon_coinpurse_line',
+ 'iconfont iconicon_airplay',
+ 'iconfont iconicon_at',
+ 'iconfont iconicon_addressbook',
+ 'iconfont iconicon_boss',
+ 'iconfont iconicon_addperson',
+ 'iconfont iconicon_affiliations_li',
+ 'iconfont iconicon_addmessage',
+ 'iconfont iconicon_addresslist',
+ 'iconfont iconicon_add',
+ 'iconfont icongithub',
+ 'iconfont icongitee2',
+ ],
+ },
+ {
+ label: '系统图标',
+ list: [
+ 'iconfont icon-zhongyingwen',
+ 'iconfont icon-caidan',
+ 'iconfont icon-rizhi1',
+ 'iconfont icon-zhuti',
+ 'iconfont icon-suoping',
+ 'iconfont icon-bug',
+ 'iconfont icon-qq1',
+ 'iconfont icon-weixin1',
+ 'iconfont icon-shouji',
+ 'iconfont icon-mima',
+ 'iconfont icon-yonghu',
+ 'iconfont icon-yanzhengma',
+ 'iconfont icon-canshu',
+ 'iconfont icon-dongtai',
+ 'iconfont icon-iconset0265',
+ 'iconfont icon-shujuzhanshi2',
+ 'iconfont icon-tuichuquanping',
+ 'iconfont icon-rizhi',
+ 'iconfont icon-cuowutishitubiao',
+ 'iconfont icon-debug',
+ 'iconfont icon-iconset0216',
+ 'iconfont icon-quanxian',
+ 'iconfont icon-quanxian',
+ 'iconfont icon-shuaxin',
+ 'iconfont icon-bofangqi-suoping',
+ 'iconfont icon-quanping',
+ 'iconfont icon-navicon',
+ 'iconfont icon-biaodan',
+ 'iconfont icon-liuliangyunpingtaitubiao08',
+ 'iconfont icon-caidanguanli',
+ 'iconfont icon-cuowu',
+ 'iconfont icon-wxbgongju',
+ 'iconfont icon-tuichu',
+ 'iconfont icon-daohanglanmoshi02',
+ 'iconfont icon-changyonglogo27',
+ 'iconfont icon-biaoge',
+ 'iconfont icon-baidu1',
+ 'iconfont icon-tubiao',
+ 'iconfont icon-souhu',
+ 'iconfont icon-msnui-360',
+ 'iconfont icon-iframe',
+ 'iconfont icon-huanyingye',
+ ],
+ },
+ {
+ label: '业务图标',
+ list: [
+ 'iconfont icon-zidingyi',
+ 'iconfont icon-xiajiantou',
+ 'iconfont icon-shangjiantou',
+ 'iconfont icon-icon_loading',
+ 'iconfont icon-biaodanzujian-shurukuang',
+ 'iconfont icon-biaodanzujian-biaoge',
+ 'iconfont icon-biaodanzujian-xialakuang',
+ 'iconfont icon-tubiao-bingtu',
+ 'iconfont icon-biaodanzujian-anniu',
+ 'iconfont icon-gongyezujian-yibiaopan',
+ 'iconfont icon-tubiao-qiapian',
+ 'iconfont icon-gongyezujian-zhishideng',
+ 'iconfont icon-tubiao-zhexiantu',
+ 'iconfont icon-xingzhuang-juxing',
+ 'iconfont icon-xingzhuang-jianxing',
+ 'iconfont icon-gongyezujian-kaiguan',
+ 'iconfont icon-tubiao-zhuzhuangtu',
+ 'iconfont icon-xingzhuang-tupian',
+ 'iconfont icon-xingzhuang-wenzi',
+ 'iconfont icon-xingzhuang-tuoyuanxing',
+ 'iconfont icon-xingzhuang-sanjiaoxing',
+ 'iconfont icon-xingzhuang-xingxing',
+ 'iconfont icon-guize',
+ 'iconfont icon-shebeiguanli',
+ 'iconfont icon-gongnengdingyi1',
+ 'iconfont icon-jishufuwu1',
+ 'iconfont icon-yunyingzhongxin',
+ 'iconfont icon-yunyingguanli',
+ 'iconfont icon-zuzhixiaxia',
+ 'iconfont icon-zuzhizhankai',
+ 'iconfont icon-zuzhiqunzu',
+ 'iconfont icon-dakai',
+ 'iconfont icon-yingwen',
+ 'iconfont icon-zhongwen',
+ 'iconfont icon-miwen',
+ 'iconfont icon-xianhao',
+ 'iconfont icon-kongxinduigou',
+ 'iconfont icon-huixingzhen',
+ 'iconfont icon-duigou',
+ 'iconfont icon-xiayibu',
+ 'iconfont icon-shangyibu',
+ 'iconfont icon-kongjianxuanzhong',
+ 'iconfont icon-kongjianweixuan',
+ 'iconfont icon-kongjianyixuan',
+ 'iconfont icon--diangan',
+ 'iconfont icon-rongxuejirongjiechi',
+ 'iconfont icon-lubiantingchechang',
+ 'iconfont icon--lumingpai',
+ 'iconfont icon-jietouzuoyi',
+ 'iconfont icon--zhongdaweixian',
+ 'iconfont icon--jiaotongbiaozhipai',
+ 'iconfont icon-gongcezhishipai',
+ 'iconfont icon-fangkuai',
+ 'iconfont icon-fangkuai-',
+ 'iconfont icon-shuaxin',
+ 'iconfont icon-baocun',
+ 'iconfont icon-fabu',
+ 'iconfont icon-xiayibu1',
+ 'iconfont icon-shangyibu1',
+ 'iconfont icon-xiangxiazhanhang',
+ 'iconfont icon-xiangshangzhanhang',
+ 'iconfont icon-tupianjiazaishibai',
+ 'iconfont icon-fuwudiqiu',
+ 'iconfont icon-suoxiao',
+ 'iconfont icon-fangda',
+ 'iconfont icon-huanyuanhuabu',
+ 'iconfont icon-quanping',
+ 'iconfont icon-biaodanzujian-biaoge1',
+ 'iconfont icon-APIshuchu',
+ 'iconfont icon-APIjieru',
+ 'iconfont icon-wenjianjia',
+ 'iconfont icon-DOC',
+ 'iconfont icon-BMP',
+ 'iconfont icon-GIF',
+ 'iconfont icon-JPG',
+ 'iconfont icon-PNG',
+ 'iconfont icon-weizhigeshi',
+ 'iconfont icon-gengduo',
+ 'iconfont icon-yunduanxiazai',
+ 'iconfont icon-yunduanshangchuan',
+ 'iconfont icon-dian',
+ 'iconfont icon-mian',
+ 'iconfont icon-xian',
+ 'iconfont icon-shebeizhuangtai',
+ 'iconfont icon-fenzuguanli',
+ 'iconfont icon-kuaisubianpai',
+ 'iconfont icon-APPkaifa',
+ 'iconfont icon-wentijieda',
+ 'iconfont icon-kefu',
+ 'iconfont icon-ruanjiankaifabao',
+ 'iconfont icon-sousuobianxiao',
+ 'iconfont icon-sousuofangda',
+ 'iconfont icon-dingwei',
+ 'iconfont icon-wumoxing',
+ 'iconfont icon-gaojing',
+ 'iconfont icon-renwujincheng',
+ 'iconfont icon-xiaoxitongzhi',
+ 'iconfont icon-youhui',
+ 'iconfont icon-gaojing1',
+ 'iconfont icon-zhihangfankui',
+ 'iconfont icon-gongdanqueren',
+ 'iconfont icon-guangbo',
+ 'iconfont icon-gongdan',
+ 'iconfont icon-xiaoxi',
+ 'iconfont icon-xinhao',
+ 'iconfont icon-lanya',
+ 'iconfont icon-Wi-Fi',
+ 'iconfont icon-chaxun',
+ 'iconfont icon-dianbiao',
+ 'iconfont icon-anquan',
+ 'iconfont icon-daibanshixiang',
+ 'iconfont icon-bingxiang',
+ 'iconfont icon-fanshe',
+ 'iconfont icon-fengche',
+ 'iconfont icon-guandao',
+ 'iconfont icon-guize1',
+ 'iconfont icon-guizeyinqing',
+ 'iconfont icon-huowudui',
+ 'iconfont icon-jianceqi',
+ 'iconfont icon-jinggai',
+ 'iconfont icon-liujisuan',
+ 'iconfont icon-hanshu',
+ 'iconfont icon-lianjieliu',
+ 'iconfont icon-ludeng',
+ 'iconfont icon-shexiangji',
+ 'iconfont icon-rentijiance',
+ 'iconfont icon-moshubang',
+ 'iconfont icon-shujuwajue',
+ 'iconfont icon-wangguan',
+ 'iconfont icon-shenjing',
+ 'iconfont icon-chucun',
+ 'iconfont icon-wuguan',
+ 'iconfont icon-yunduanshuaxin',
+ 'iconfont icon-yunhang',
+ 'iconfont icon-luyouqi',
+ 'iconfont icon-bug',
+ 'iconfont icon-get',
+ 'iconfont icon-PIR',
+ 'iconfont icon-zhexiantu',
+ 'iconfont icon-shuibiao',
+ 'iconfont icon-js',
+ 'iconfont icon-zihangche',
+ 'iconfont icon-liebiao',
+ 'iconfont icon-qichedingwei',
+ 'iconfont icon-dici',
+ 'iconfont icon-mysql',
+ 'iconfont icon-qiche',
+ 'iconfont icon-shenjing1',
+ 'iconfont icon-chengshi',
+ 'iconfont icon-tixingshixin',
+ 'iconfont icon-menci',
+ 'iconfont icon-chazuo',
+ 'iconfont icon-ranqijianceqi',
+ 'iconfont icon-kaiguan',
+ 'iconfont icon-chatou',
+ 'iconfont icon-xiyiji',
+ 'iconfont icon-yijiankaiguan',
+ 'iconfont icon-yanwubaojingqi',
+ 'iconfont icon-wuxiandianbo',
+ 'iconfont icon-fuzhi',
+ 'iconfont icon-shanchu',
+ 'iconfont icon-bianjisekuai',
+ 'iconfont icon-ishipinshixiao',
+ 'iconfont icon-iframetianjia',
+ 'iconfont icon-tupiantianjia',
+ 'iconfont icon-liebiaomoshi_kuai',
+ 'iconfont icon-qiapianmoshi_kuai',
+ 'iconfont icon-fenlan',
+ 'iconfont icon-fengexian',
+ 'iconfont icon-dianzan',
+ 'iconfont icon-charulianjie',
+ 'iconfont icon-charutupian',
+ 'iconfont icon-quxiaolianjie',
+ 'iconfont icon-wuxupailie',
+ 'iconfont icon-juzhongduiqi',
+ 'iconfont icon-yinyong',
+ 'iconfont icon-youxupailie',
+ 'iconfont icon-youduiqi',
+ 'iconfont icon-zitidaima',
+ 'iconfont icon-xiaolian',
+ 'iconfont icon-zitijiacu',
+ 'iconfont icon-zitishanchuxian',
+ 'iconfont icon-zitishangbiao',
+ 'iconfont icon-zitibiaoti',
+ 'iconfont icon-zitixiahuaxian',
+ 'iconfont icon-zitixieti',
+ 'iconfont icon-zitiyanse',
+ 'iconfont icon-zuoduiqi',
+ 'iconfont icon-zitiyulan',
+ 'iconfont icon-zitixiabiao',
+ 'iconfont icon-zuoyouduiqi',
+ 'iconfont icon-tianxie',
+ 'iconfont icon-huowudui1',
+ 'iconfont icon-yingjian',
+ 'iconfont icon-shebeikaifa',
+ 'iconfont icon-dianzan_kuai',
+ 'iconfont icon-zhihuan',
+ 'iconfont icon-tuoguan',
+ 'iconfont icon-duigoux',
+ 'iconfont icon-guanbi1',
+ 'iconfont icon-aixin_shixin',
+ 'iconfont icon-ranqixieloubaojingqi',
+ 'iconfont icon-dianbiao_shiti',
+ 'iconfont icon-aixin',
+ 'iconfont icon-shuibiao_shiti',
+ 'iconfont icon-zhinengxiaofangshuan',
+ 'iconfont icon-ranqibiao_shiti',
+ 'iconfont icon-shexiangtou_shiti',
+ 'iconfont icon-shexiangtou_guanbi',
+ 'iconfont icon-shexiangtou',
+ 'iconfont icon-shengyin_shiti',
+ 'iconfont icon-shengyinkai',
+ 'iconfont icon-shoucang_shixin',
+ 'iconfont icon-shoucang',
+ 'iconfont icon-shengyinwu',
+ 'iconfont icon-shengyinjingyin',
+ 'iconfont icon-zhunbeiliangchan',
+ 'iconfont icon-shebeikaifa1',
+ 'iconfont icon-kongxinwenhao',
+ 'iconfont icon-cuowukongxin',
+ 'iconfont icon-fangkuai1',
+ 'iconfont icon-fangkuai2',
+ 'iconfont icon-kongjianxuanzhong1',
+ 'iconfont icon-kongxinduigou1',
+ 'iconfont icon-xinxikongxin',
+ 'iconfont icon-kongjian',
+ 'iconfont icon-gaojingkongxin',
+ 'iconfont icon-duigou_kuai',
+ 'iconfont icon-cuocha_kuai',
+ 'iconfont icon-jia_sekuai',
+ 'iconfont icon-jian_sekuai',
+ 'iconfont icon-tiaoshi',
+ 'iconfont icon-fenxiangfangshi',
+ 'iconfont icon-changjingguanli',
+ 'iconfont icon-bianji',
+ 'iconfont icon-guanlianshebei',
+ 'iconfont icon-guanfangbanben',
+ 'iconfont icon-gongnengdingyi',
+ 'iconfont icon-jichuguanli',
+ 'iconfont icon-jishufuwu',
+ 'iconfont icon-hezuohuobanmiyueguanli',
+ 'iconfont icon-ceshishenqing',
+ 'iconfont icon-jiedianguanli',
+ 'iconfont icon-jinggao',
+ 'iconfont icon-peiwangyindao',
+ 'iconfont icon-renjijiaohu',
+ 'iconfont icon-shiyongwendang',
+ 'iconfont icon-quanxianshenpi',
+ 'iconfont icon-yishouquan',
+ 'iconfont icon-tianshenpi',
+ 'iconfont icon-shujukanban',
+ 'iconfont icon-yingyongguanli',
+ 'iconfont icon-yibiaopan',
+ 'iconfont icon-zhanghaoquanxianguanli',
+ 'iconfont icon-yuanquyunwei',
+ 'iconfont icon-jizhanguanli',
+ 'iconfont icon-guanbi',
+ ],
+ },
+]
diff --git a/src/config/website.js b/src/config/website.js
index 824cc6e..1a6500a 100644
--- a/src/config/website.js
+++ b/src/config/website.js
@@ -2,80 +2,80 @@
* 全局配置文件
*/
export default {
- title: '',
- logo: 'S',
- key: 'saber', //配置主键,目前用于存储
- indexTitle: 'BladeX 微服务平台',
- clientId: 'drone', // 客户端id
- clientSecret: 'drone_secret', // 客户端密钥
- tenantMode: false, // 是否开启租户模式
- tenantId: '000000', // 管理组租户编号
- captchaMode: false, // 是否开启验证码模式
- switchMode: false, // 是否开启登录切换角色部门
- lockPage: '/lock',
- tokenTime: 3000,
- tokenHeader: 'Blade-Auth',
- //HTTP状态码白名单
- statusWhiteList: [],
- //配置首页不可关闭
- setting: {
- sidebar: 'vertical',
- tag: true,
- debug: true,
- collapse: true,
- search: true,
- color: true,
- lock: true,
- screenshot: true,
- fullscreen: true,
- theme: true,
- menu: true,
- },
- //首页配置
- fistPage: {
- name: '首页',
- path: '/wel/index',
- },
- //配置菜单的属性
- menu: {
- iconDefault: 'icon-caidan',
- label: 'name',
- path: 'path',
- icon: 'source',
- children: 'children',
- query: 'query',
- href: 'path',
- meta: 'meta',
- },
- //水印配置
- watermark: {
- mode: false,
- text: 'BladeX',
- },
- //oauth2配置
- oauth2: {
- // 是否开启注册功能
- registerMode: true,
- // 使用后端工程 @org.springblade.test.Sm2KeyGenerator 获取
- publicKey: '请配置国密sm2公钥',
- // 第三方系统授权地址
- authUrl: 'http://localhost/blade-auth/oauth/render',
- // 单点登录系统认证
- ssoMode: false, // 是否开启单点登录功能
- ssoBaseUrl: 'http://localhost:8100', // 单点登录系统地址(cloud端口为8100,boot端口为80)
- ssoAuthUrl: '/oauth/authorize?client_id=saber3&response_type=code&redirect_uri=', // 单点登录授权地址
- ssoLogoutUrl: '/oauth/authorize/logout?redirect_uri=', // 单点登录退出地址
- redirectUri: 'http://localhost:2888/login', // 单点登录回调地址(Saber服务的登录界面地址)
- },
- //设计器配置
- design: {
- // 流程设计器类型(true->nutflow,false->flowable)
- designMode: true,
- // 流程设计器地址(flowable模式)
- designUrl: 'http://localhost:9999',
- // 报表设计器地址(cloud端口为8108,boot端口为80)
- reportUrl: 'http://localhost:8108/ureport',
- // 规则设计引擎地址
- edgeUrl: 'http://localhost:1880',
- },
-};
+ title: '',
+ logo: 'S',
+ key: 'saber', //配置主键,目前用于存储
+ indexTitle: 'BladeX 微服务平台',
+ clientId: 'drone', // 客户端id
+ clientSecret: 'drone_secret', // 客户端密钥
+ tenantMode: false, // 是否开启租户模式
+ tenantId: '000000', // 管理组租户编号
+ captchaMode: false, // 是否开启验证码模式
+ switchMode: false, // 是否开启登录切换角色部门
+ lockPage: '/lock',
+ tokenTime: 3000,
+ tokenHeader: 'Blade-Auth',
+ //HTTP状态码白名单
+ statusWhiteList: [],
+ //配置首页不可关闭
+ setting: {
+ sidebar: 'vertical',
+ tag: true,
+ debug: true,
+ collapse: true,
+ search: true,
+ color: true,
+ lock: true,
+ screenshot: true,
+ fullscreen: true,
+ theme: true,
+ menu: true,
+ },
+ //首页配置
+ fistPage: {
+ name: '首页',
+ path: '/wel/index',
+ },
+ //配置菜单的属性
+ menu: {
+ iconDefault: 'icon-caidan',
+ label: 'name',
+ path: 'path',
+ icon: 'source',
+ children: 'children',
+ query: 'query',
+ href: 'path',
+ meta: 'meta',
+ },
+ //水印配置
+ watermark: {
+ mode: false,
+ text: 'BladeX',
+ },
+ //oauth2配置
+ oauth2: {
+ // 是否开启注册功能
+ registerMode: true,
+ // 使用后端工程 @org.springblade.test.Sm2KeyGenerator 获取
+ publicKey: '请配置国密sm2公钥',
+ // 第三方系统授权地址
+ authUrl: 'http://localhost/blade-auth/oauth/render',
+ // 单点登录系统认证
+ ssoMode: false, // 是否开启单点登录功能
+ ssoBaseUrl: 'http://localhost:8100', // 单点登录系统地址(cloud端口为8100,boot端口为80)
+ ssoAuthUrl: '/oauth/authorize?client_id=saber3&response_type=code&redirect_uri=', // 单点登录授权地址
+ ssoLogoutUrl: '/oauth/authorize/logout?redirect_uri=', // 单点登录退出地址
+ redirectUri: 'http://localhost:2888/login', // 单点登录回调地址(Saber服务的登录界面地址)
+ },
+ //设计器配置
+ design: {
+ // 流程设计器类型(true->nutflow,false->flowable)
+ designMode: true,
+ // 流程设计器地址(flowable模式)
+ designUrl: 'http://localhost:9999',
+ // 报表设计器地址(cloud端口为8108,boot端口为80)
+ reportUrl: 'http://localhost:8108/ureport',
+ // 规则设计引擎地址
+ edgeUrl: 'http://localhost:1880',
+ },
+}
diff --git a/src/const/tool/model.js b/src/const/tool/model.js
index 5bc4daa..89fde65 100644
--- a/src/const/tool/model.js
+++ b/src/const/tool/model.js
@@ -1,344 +1,344 @@
export const switchDic = [
- {
- label: '',
- value: 0,
- },
- {
- label: '',
- value: 1,
- },
-];
+ {
+ label: '',
+ value: 0,
+ },
+ {
+ label: '',
+ value: 1,
+ },
+]
export const entityDic = [
- {
- label: 'String',
- value: 'java.lang.String',
- },
- {
- label: 'Integer',
- value: 'java.lang.Integer',
- },
- {
- label: 'Long',
- value: 'java.lang.Long',
- },
- {
- label: 'Double',
- value: 'java.lang.Double',
- },
- {
- label: 'BigDecimal',
- value: 'java.math.BigDecimal',
- },
- {
- label: 'Boolean',
- value: 'java.lang.Boolean',
- },
- {
- label: 'Date',
- value: 'java.util.Date',
- },
-];
+ {
+ label: 'String',
+ value: 'java.lang.String',
+ },
+ {
+ label: 'Integer',
+ value: 'java.lang.Integer',
+ },
+ {
+ label: 'Long',
+ value: 'java.lang.Long',
+ },
+ {
+ label: 'Double',
+ value: 'java.lang.Double',
+ },
+ {
+ label: 'BigDecimal',
+ value: 'java.math.BigDecimal',
+ },
+ {
+ label: 'Boolean',
+ value: 'java.lang.Boolean',
+ },
+ {
+ label: 'Date',
+ value: 'java.util.Date',
+ },
+]
export const componentDic = [
- {
- label: '单行文本',
- value: 'input',
- },
- {
- label: '多行文本',
- value: 'textarea',
- },
- {
- label: '富文本',
- value: 'editor',
- },
- {
- label: '下拉选项',
- value: 'select',
- },
- {
- label: '树形下拉选项',
- value: 'tree',
- },
- {
- label: '单选框',
- value: 'radio',
- },
- {
- label: '多选框',
- value: 'checkbox',
- },
- {
- label: '开关框',
- value: 'switch',
- },
- {
- label: '日期框',
- value: 'date',
- },
-];
+ {
+ label: '单行文本',
+ value: 'input',
+ },
+ {
+ label: '多行文本',
+ value: 'textarea',
+ },
+ {
+ label: '富文本',
+ value: 'editor',
+ },
+ {
+ label: '下拉选项',
+ value: 'select',
+ },
+ {
+ label: '树形下拉选项',
+ value: 'tree',
+ },
+ {
+ label: '单选框',
+ value: 'radio',
+ },
+ {
+ label: '多选框',
+ value: 'checkbox',
+ },
+ {
+ label: '开关框',
+ value: 'switch',
+ },
+ {
+ label: '日期框',
+ value: 'date',
+ },
+]
export const queryDic = [
- {
- label: '等于',
- value: 'equal',
- },
- {
- label: '不等于',
- value: 'notequal',
- },
- {
- label: '大于',
- value: 'gt',
- },
- {
- label: '大于等于',
- value: 'ge',
- },
- {
- label: '小于',
- value: 'lt',
- },
- {
- label: '小于等于',
- value: 'le',
- },
- {
- label: '区间',
- value: 'between',
- },
- {
- label: '模糊',
- value: 'like',
- },
- {
- label: '左模糊',
- value: 'likeleft',
- },
- {
- label: '右模糊',
- value: 'likeright',
- },
-];
+ {
+ label: '等于',
+ value: 'equal',
+ },
+ {
+ label: '不等于',
+ value: 'notequal',
+ },
+ {
+ label: '大于',
+ value: 'gt',
+ },
+ {
+ label: '大于等于',
+ value: 'ge',
+ },
+ {
+ label: '小于',
+ value: 'lt',
+ },
+ {
+ label: '小于等于',
+ value: 'le',
+ },
+ {
+ label: '区间',
+ value: 'between',
+ },
+ {
+ label: '模糊',
+ value: 'like',
+ },
+ {
+ label: '左模糊',
+ value: 'likeleft',
+ },
+ {
+ label: '右模糊',
+ value: 'likeright',
+ },
+]
export const templateDic = [
- {
- label: '单表',
- value: 'crud',
- },
- {
- label: '主子表',
- value: 'sub',
- },
- {
- label: '树表',
- value: 'tree',
- },
-];
+ {
+ label: '单表',
+ value: 'crud',
+ },
+ {
+ label: '主子表',
+ value: 'sub',
+ },
+ {
+ label: '树表',
+ value: 'tree',
+ },
+]
export const option = {
- height: 'auto',
- searchShow: true,
- searchMenuSpan: 6,
- tip: false,
- border: true,
- index: true,
- viewBtn: true,
- grid: true,
- selection: true,
- menuWidth: 250,
- column: [
- {
- label: '数据源',
- prop: 'datasourceId',
- search: true,
- span: 24,
- type: 'select',
- dicUrl: '/blade-develop/datasource/select',
- props: {
- label: 'name',
- value: 'id',
- },
- rules: [
- {
- required: true,
- message: '请选择数据源',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '物理表名',
- prop: 'modelTable',
- type: 'tree',
- slot: true,
- filterable: true,
- dicData: [],
- props: {
- label: 'comment',
- value: 'name',
- },
- rules: [
- {
- required: true,
- message: '请输入数据库表名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模型类名',
- prop: 'modelClass',
- addDisabled: true,
- editDisabled: true,
- rules: [
- {
- required: true,
- message: '请输入模型类名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模型名称',
- prop: 'modelName',
- search: true,
- rules: [
- {
- required: true,
- message: '请输入模型名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模型编号',
- prop: 'modelCode',
- search: true,
- rules: [
- {
- required: true,
- message: '请输入模型编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模型备注',
- prop: 'modelRemark',
- hide: true,
- span: 24,
- },
- ],
-};
+ height: 'auto',
+ searchShow: true,
+ searchMenuSpan: 6,
+ tip: false,
+ border: true,
+ index: true,
+ viewBtn: true,
+ grid: true,
+ selection: true,
+ menuWidth: 250,
+ column: [
+ {
+ label: '数据源',
+ prop: 'datasourceId',
+ search: true,
+ span: 24,
+ type: 'select',
+ dicUrl: '/blade-develop/datasource/select',
+ props: {
+ label: 'name',
+ value: 'id',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择数据源',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '物理表名',
+ prop: 'modelTable',
+ type: 'tree',
+ slot: true,
+ filterable: true,
+ dicData: [],
+ props: {
+ label: 'comment',
+ value: 'name',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请输入数据库表名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模型类名',
+ prop: 'modelClass',
+ addDisabled: true,
+ editDisabled: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入模型类名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模型名称',
+ prop: 'modelName',
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入模型名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模型编号',
+ prop: 'modelCode',
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入模型编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模型备注',
+ prop: 'modelRemark',
+ hide: true,
+ span: 24,
+ },
+ ],
+}
export const optionModel = {
- border: true,
- index: true,
- addBtn: false,
- editBtn: false,
- addRowBtn: false,
- cellBtn: false,
- cancelBtn: false,
- tip: false,
- menu: false,
- selection: true,
- column: [
- {
- label: '物理列名',
- prop: 'jdbcName',
- },
- {
- label: '物理类型',
- prop: 'jdbcType',
- },
- {
- label: '实体列名',
- prop: 'propertyName',
- cell: true,
- },
- {
- label: '实体类型',
- prop: 'propertyEntity',
- type: 'select',
- dicData: entityDic,
- cell: true,
- },
- {
- label: '字段说明',
- prop: 'jdbcComment',
- cell: true,
- },
- {
- label: '列表显示',
- prop: 'isList',
- type: 'switch',
- dicData: switchDic,
- align: 'center',
- width: 60,
- cell: true,
- },
- {
- label: '表单显示',
- prop: 'isForm',
- type: 'switch',
- dicData: switchDic,
- align: 'center',
- width: 60,
- cell: true,
- },
- {
- label: '独占一行',
- prop: 'isRow',
- type: 'switch',
- dicData: switchDic,
- align: 'center',
- width: 60,
- cell: true,
- },
- {
- label: '必填',
- prop: 'isRequired',
- type: 'switch',
- dicData: switchDic,
- align: 'center',
- width: 60,
- cell: true,
- },
- {
- label: '组件类型',
- prop: 'componentType',
- type: 'select',
- dicData: componentDic,
- cell: true,
- },
- {
- label: '字典编码',
- prop: 'dictCode',
- type: 'select',
- dicUrl: '/blade-system/dict/select',
- props: {
- label: 'dictValue',
- value: 'code',
- },
- cell: true,
- },
- {
- label: '查询配置',
- prop: 'isQuery',
- type: 'switch',
- dicData: switchDic,
- align: 'center',
- width: 60,
- cell: true,
- },
- {
- label: '查询类型',
- prop: 'queryType',
- type: 'select',
- dicData: queryDic,
- cell: true,
- },
- ],
-};
+ border: true,
+ index: true,
+ addBtn: false,
+ editBtn: false,
+ addRowBtn: false,
+ cellBtn: false,
+ cancelBtn: false,
+ tip: false,
+ menu: false,
+ selection: true,
+ column: [
+ {
+ label: '物理列名',
+ prop: 'jdbcName',
+ },
+ {
+ label: '物理类型',
+ prop: 'jdbcType',
+ },
+ {
+ label: '实体列名',
+ prop: 'propertyName',
+ cell: true,
+ },
+ {
+ label: '实体类型',
+ prop: 'propertyEntity',
+ type: 'select',
+ dicData: entityDic,
+ cell: true,
+ },
+ {
+ label: '字段说明',
+ prop: 'jdbcComment',
+ cell: true,
+ },
+ {
+ label: '列表显示',
+ prop: 'isList',
+ type: 'switch',
+ dicData: switchDic,
+ align: 'center',
+ width: 60,
+ cell: true,
+ },
+ {
+ label: '表单显示',
+ prop: 'isForm',
+ type: 'switch',
+ dicData: switchDic,
+ align: 'center',
+ width: 60,
+ cell: true,
+ },
+ {
+ label: '独占一行',
+ prop: 'isRow',
+ type: 'switch',
+ dicData: switchDic,
+ align: 'center',
+ width: 60,
+ cell: true,
+ },
+ {
+ label: '必填',
+ prop: 'isRequired',
+ type: 'switch',
+ dicData: switchDic,
+ align: 'center',
+ width: 60,
+ cell: true,
+ },
+ {
+ label: '组件类型',
+ prop: 'componentType',
+ type: 'select',
+ dicData: componentDic,
+ cell: true,
+ },
+ {
+ label: '字典编码',
+ prop: 'dictCode',
+ type: 'select',
+ dicUrl: '/blade-system/dict/select',
+ props: {
+ label: 'dictValue',
+ value: 'code',
+ },
+ cell: true,
+ },
+ {
+ label: '查询配置',
+ prop: 'isQuery',
+ type: 'switch',
+ dicData: switchDic,
+ align: 'center',
+ width: 60,
+ cell: true,
+ },
+ {
+ label: '查询类型',
+ prop: 'queryType',
+ type: 'select',
+ dicData: queryDic,
+ cell: true,
+ },
+ ],
+}
diff --git a/src/debug.js b/src/debug.js
index 5ae2c82..0be8cc8 100644
--- a/src/debug.js
+++ b/src/debug.js
@@ -1,5 +1,5 @@
-import DisableDevtool from 'disable-devtool';
-import { ElMessageBox } from 'element-plus';
+import DisableDevtool from 'disable-devtool'
+import { ElMessageBox } from 'element-plus'
/**
* 安全警告的HTML模板, 使用Tailwind CSS样式
@@ -17,34 +17,34 @@
如您频繁此类操作,系统将记录上报。
</p>
</div>
-</div>`;
+</div>`
/**
* Element Plus 消息框配置选项
*/
const ALERT_OPTIONS = {
- type: 'error',
- showClose: false,
- center: true,
- closeOnClickModal: false,
- closeOnPressEscape: false,
- dangerouslyUseHTMLString: true,
-};
+ type: 'error',
+ showClose: false,
+ center: true,
+ closeOnClickModal: false,
+ closeOnPressEscape: false,
+ dangerouslyUseHTMLString: true,
+}
export default () => {
- if (import.meta.env.VITE_APP_DEBUG_SWITCH === 'false') return;
+ if (import.meta.env.VITE_APP_DEBUG_SWITCH === 'false') return
- const debugKey = import.meta.env.VITE_APP_DEBUG_KEY;
- let flag = false;
- DisableDevtool({
- md5: DisableDevtool.md5(debugKey),
- disableMenu: false,
- ondevtoolopen: (type, next) => {
- if (!flag) ElMessageBox.alert(SECURITY_WARNING_TEMPLATE, '安全警告', ALERT_OPTIONS);
- flag = true;
- setTimeout(() => {
- next();
- }, 5000);
- },
- });
-};
+ const debugKey = import.meta.env.VITE_APP_DEBUG_KEY
+ let flag = false
+ DisableDevtool({
+ md5: DisableDevtool.md5(debugKey),
+ disableMenu: false,
+ ondevtoolopen: (type, next) => {
+ if (!flag) ElMessageBox.alert(SECURITY_WARNING_TEMPLATE, '安全警告', ALERT_OPTIONS)
+ flag = true
+ setTimeout(() => {
+ next()
+ }, 5000)
+ },
+ })
+}
diff --git a/src/directive/drag.js b/src/directive/drag.js
index f52959f..3f2b617 100644
--- a/src/directive/drag.js
+++ b/src/directive/drag.js
@@ -1,42 +1,41 @@
const drag = {
- mounted(el, binding) {
+ mounted(el, binding) {
+ const dragBox = document.querySelector('#' + binding.arg)
+ //鼠标点击距离box盒子left的距离
+ let spotToBoxLeft = 0
+ let spotToBoxTop = 0
- const dragBox = document.querySelector('#' + binding.arg)
- //鼠标点击距离box盒子left的距离
- let spotToBoxLeft = 0
- let spotToBoxTop = 0
+ const mouseupFun = e => {
+ window.removeEventListener('mousemove', mousemoveFun)
+ window.removeEventListener('mouseup', mouseupFun)
+ }
- const mouseupFun = (e) => {
- window.removeEventListener('mousemove', mousemoveFun)
- window.removeEventListener('mouseup', mouseupFun)
- }
+ const mousemoveFun = evt => {
+ console.log(66666)
+ //获取body宽高,获取拖动盒子的宽高
+ const { offsetWidth: bodyWidth, offsetHeight: bodyHeight } = document.body
+ const { offsetWidth: boxWidth, offsetHeight: boxHeight } = dragBox
+ //max取最大值,min取最小值
+ const left = Math.max(evt.clientX - spotToBoxLeft, 0)
+ const top = Math.max(evt.clientY - spotToBoxTop, 0)
+ dragBox.style.left = Math.min(left, bodyWidth - boxWidth) + 'px'
+ dragBox.style.top = Math.min(top, bodyHeight - boxHeight) + 'px'
+ }
- const mousemoveFun = (evt) => {
- console.log(66666);
- //获取body宽高,获取拖动盒子的宽高
- const {offsetWidth: bodyWidth, offsetHeight: bodyHeight} = document.body
- const {offsetWidth: boxWidth, offsetHeight: boxHeight} = dragBox
- //max取最大值,min取最小值
- const left = Math.max(evt.clientX - spotToBoxLeft, 0)
- const top = Math.max(evt.clientY - spotToBoxTop, 0)
- dragBox.style.left = Math.min(left, bodyWidth - boxWidth) + 'px'
- dragBox.style.top = Math.min(top, bodyHeight - boxHeight) + 'px'
- }
+ el.__mousedownFun = evt => {
+ //鼠标坐标减去 box盒子相对于父盒子body 的距离
+ spotToBoxLeft = evt.clientX - dragBox.offsetLeft
+ spotToBoxTop = evt.clientY - dragBox.offsetTop
+ window.addEventListener('mousemove', mousemoveFun)
+ window.addEventListener('mouseup', mouseupFun)
+ }
+ el.addEventListener('mousedown', el.__mousedownFun)
+ },
- el.__mousedownFun = (evt) => {
- //鼠标坐标减去 box盒子相对于父盒子body 的距离
- spotToBoxLeft = evt.clientX - dragBox.offsetLeft
- spotToBoxTop = evt.clientY - dragBox.offsetTop
- window.addEventListener('mousemove', mousemoveFun)
- window.addEventListener('mouseup', mouseupFun)
- }
- el.addEventListener('mousedown', el.__mousedownFun);
- },
-
- // 绑定元素的父组件卸载前调用
- beforeUnmount(el, binding,) {
- el.removeEventListener('mousedown', el.__mousedownFun)
- },
+ // 绑定元素的父组件卸载前调用
+ beforeUnmount(el, binding) {
+ el.removeEventListener('mousedown', el.__mousedownFun)
+ },
}
export default drag
diff --git a/src/directive/selectLoad.js b/src/directive/selectLoad.js
index f4568da..36f6c97 100644
--- a/src/directive/selectLoad.js
+++ b/src/directive/selectLoad.js
@@ -1,13 +1,13 @@
const selectLoad = {
- mounted(el, binding){
- const dom = document.querySelector('.' + binding.arg)
- const wrap = dom.querySelector('.el-scrollbar__wrap')
- wrap.addEventListener('scroll', function () {
- if (this.scrollHeight - this.scrollTop < this.clientHeight + 1) {
- binding.value()
- }
- })
- }
+ mounted(el, binding) {
+ const dom = document.querySelector('.' + binding.arg)
+ const wrap = dom.querySelector('.el-scrollbar__wrap')
+ wrap.addEventListener('scroll', function () {
+ if (this.scrollHeight - this.scrollTop < this.clientHeight + 1) {
+ binding.value()
+ }
+ })
+ },
}
export default selectLoad
diff --git a/src/error.js b/src/error.js
index d2b5611..9d9f268 100644
--- a/src/error.js
+++ b/src/error.js
@@ -1,25 +1,25 @@
-import store from './store';
+import store from './store'
export default {
- install: app => {
- app.config.errorHandler = (err, vm, info) => {
- store.commit('ADD_LOGS', {
- type: 'error',
- message: err.message,
- stack: err.stack,
- info,
- });
- if (process.env.NODE_ENV === 'development') {
- console.group('>>>>>> 错误信息 >>>>>>');
- console.log(info);
- console.groupEnd();
- console.group('>>>>>> Vue 实例 >>>>>>');
- console.log(vm);
- console.groupEnd();
- console.group('>>>>>> Error >>>>>>');
- console.log(err);
- console.groupEnd();
- }
- };
- },
-};
+ install: app => {
+ app.config.errorHandler = (err, vm, info) => {
+ store.commit('ADD_LOGS', {
+ type: 'error',
+ message: err.message,
+ stack: err.stack,
+ info,
+ })
+ if (process.env.NODE_ENV === 'development') {
+ console.group('>>>>>> 错误信息 >>>>>>')
+ console.log(info)
+ console.groupEnd()
+ console.group('>>>>>> Vue 实例 >>>>>>')
+ console.log(vm)
+ console.groupEnd()
+ console.group('>>>>>> Error >>>>>>')
+ console.log(err)
+ console.groupEnd()
+ }
+ }
+ },
+}
diff --git a/src/lang/en.js b/src/lang/en.js
index 815a033..ded202e 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -1,136 +1,136 @@
export default {
- title: 'BladeX Admin',
- logoutTip: 'Exit the system, do you want to continue?',
- submitText: 'submit',
- cancelText: 'cancel',
- search: 'Please input search content',
- menuTip: 'none menu list',
- common: {
- condition: 'condition',
- display: 'display',
- hide: 'hide',
- },
- tip: {
- select: 'Please select',
- input: 'Please input',
- },
- upload: {
- upload: 'upload',
- tip: 'Drag files here,/',
- },
- date: {
- start: 'Start date',
- end: 'End date',
- t: 'today',
- y: 'yesterday',
- n: 'nearly 7',
- a: 'whole',
- },
- form: {
- printBtn: 'print',
- mockBtn: 'mock',
- submitBtn: 'submit',
- emptyBtn: 'empty',
- },
- crud: {
- filter: {
- addBtn: 'add',
- clearBtn: 'clear',
- resetBtn: 'reset',
- cancelBtn: 'cancel',
- submitBtn: 'submit',
- },
- column: {
- name: 'name',
- hide: 'hide',
- fixed: 'fixed',
- filters: 'filters',
- sortable: 'sortable',
- index: 'index',
- width: 'width',
- },
- tipStartTitle: 'Currently selected',
- tipEndTitle: 'items',
- editTitle: 'edit',
- copyTitle: 'copy',
- addTitle: 'add',
- viewTitle: 'view',
- filterTitle: 'filter',
- showTitle: 'showTitle',
- menu: 'menu',
- addBtn: 'add',
- show: 'show',
- hide: 'hide',
- open: 'open',
- shrink: 'shrink',
- printBtn: 'print',
- excelBtn: 'excel',
- updateBtn: 'update',
- cancelBtn: 'cancel',
- searchBtn: 'search',
- emptyBtn: 'empty',
- menuBtn: 'menu',
- saveBtn: 'save',
- viewBtn: 'view',
- editBtn: 'edit',
- copyBtn: 'copy',
- delBtn: 'delete',
- },
- login: {
- title: 'Login ',
- info: 'BladeX Development Platform',
- tenantId: 'Please input tenantId',
- name: 'Please input name',
- username: 'Please input account',
- email: 'Please input email',
- password: 'Please input password',
- password1: 'Please input confirm password',
- wechat: 'Wechat',
- qq: 'QQ',
- github: 'github',
- gitee: 'gitee',
- phone: 'Please input a phone',
- code: 'Please input a code',
- submit: 'Login',
- register: 'Register',
- back: 'Back',
- userLogin: 'userLogin',
- phoneLogin: 'phoneLogin',
- thirdLogin: 'thirdLogin',
- ssoLogin: 'ssoLogin',
- msgText: 'send code',
- msgSuccess: 'reissued',
- },
- navbar: {
- info: 'info',
- logOut: 'logout',
- userinfo: 'userinfo',
- roleName: 'role name',
- deptName: 'dept name',
- currentDeptName: 'current role name',
- currentRoleName: 'current dept name',
- switchRoleTo: 'switch role to',
- switchRole: 'switch role',
- switchDeptTo: 'switch dept to',
- switchDept: 'switch dept',
- switchTip: 'whether to switch identities',
- switchSuccess: 'switch success',
- dashboard: 'dashboard',
- lock: 'lock',
- bug: 'none bug',
- bugs: 'bug',
- screenfullF: 'exit screenfull',
- screenfull: 'screenfull',
- language: 'language',
- notice: 'notice',
- theme: 'theme',
- color: 'color',
- },
- tagsView: {
- search: 'Search',
- menu: 'menu',
- clearCache: 'Clear Cache',
- closeOthers: 'Close Others',
- closeAll: 'Close All',
- },
-};
+ title: 'BladeX Admin',
+ logoutTip: 'Exit the system, do you want to continue?',
+ submitText: 'submit',
+ cancelText: 'cancel',
+ search: 'Please input search content',
+ menuTip: 'none menu list',
+ common: {
+ condition: 'condition',
+ display: 'display',
+ hide: 'hide',
+ },
+ tip: {
+ select: 'Please select',
+ input: 'Please input',
+ },
+ upload: {
+ upload: 'upload',
+ tip: 'Drag files here,/',
+ },
+ date: {
+ start: 'Start date',
+ end: 'End date',
+ t: 'today',
+ y: 'yesterday',
+ n: 'nearly 7',
+ a: 'whole',
+ },
+ form: {
+ printBtn: 'print',
+ mockBtn: 'mock',
+ submitBtn: 'submit',
+ emptyBtn: 'empty',
+ },
+ crud: {
+ filter: {
+ addBtn: 'add',
+ clearBtn: 'clear',
+ resetBtn: 'reset',
+ cancelBtn: 'cancel',
+ submitBtn: 'submit',
+ },
+ column: {
+ name: 'name',
+ hide: 'hide',
+ fixed: 'fixed',
+ filters: 'filters',
+ sortable: 'sortable',
+ index: 'index',
+ width: 'width',
+ },
+ tipStartTitle: 'Currently selected',
+ tipEndTitle: 'items',
+ editTitle: 'edit',
+ copyTitle: 'copy',
+ addTitle: 'add',
+ viewTitle: 'view',
+ filterTitle: 'filter',
+ showTitle: 'showTitle',
+ menu: 'menu',
+ addBtn: 'add',
+ show: 'show',
+ hide: 'hide',
+ open: 'open',
+ shrink: 'shrink',
+ printBtn: 'print',
+ excelBtn: 'excel',
+ updateBtn: 'update',
+ cancelBtn: 'cancel',
+ searchBtn: 'search',
+ emptyBtn: 'empty',
+ menuBtn: 'menu',
+ saveBtn: 'save',
+ viewBtn: 'view',
+ editBtn: 'edit',
+ copyBtn: 'copy',
+ delBtn: 'delete',
+ },
+ login: {
+ title: 'Login ',
+ info: 'BladeX Development Platform',
+ tenantId: 'Please input tenantId',
+ name: 'Please input name',
+ username: 'Please input account',
+ email: 'Please input email',
+ password: 'Please input password',
+ password1: 'Please input confirm password',
+ wechat: 'Wechat',
+ qq: 'QQ',
+ github: 'github',
+ gitee: 'gitee',
+ phone: 'Please input a phone',
+ code: 'Please input a code',
+ submit: 'Login',
+ register: 'Register',
+ back: 'Back',
+ userLogin: 'userLogin',
+ phoneLogin: 'phoneLogin',
+ thirdLogin: 'thirdLogin',
+ ssoLogin: 'ssoLogin',
+ msgText: 'send code',
+ msgSuccess: 'reissued',
+ },
+ navbar: {
+ info: 'info',
+ logOut: 'logout',
+ userinfo: 'userinfo',
+ roleName: 'role name',
+ deptName: 'dept name',
+ currentDeptName: 'current role name',
+ currentRoleName: 'current dept name',
+ switchRoleTo: 'switch role to',
+ switchRole: 'switch role',
+ switchDeptTo: 'switch dept to',
+ switchDept: 'switch dept',
+ switchTip: 'whether to switch identities',
+ switchSuccess: 'switch success',
+ dashboard: 'dashboard',
+ lock: 'lock',
+ bug: 'none bug',
+ bugs: 'bug',
+ screenfullF: 'exit screenfull',
+ screenfull: 'screenfull',
+ language: 'language',
+ notice: 'notice',
+ theme: 'theme',
+ color: 'color',
+ },
+ tagsView: {
+ search: 'Search',
+ menu: 'menu',
+ clearCache: 'Clear Cache',
+ closeOthers: 'Close Others',
+ closeAll: 'Close All',
+ },
+}
diff --git a/src/lang/index.js b/src/lang/index.js
index 3d11bc5..ab0bf2a 100644
--- a/src/lang/index.js
+++ b/src/lang/index.js
@@ -1,26 +1,26 @@
-import { createI18n } from 'vue-i18n';
-import Store from '@/store';
-import elementEnLocale from 'element-plus/es/locale/lang/en';
-import elementZhLocale from 'element-plus/es/locale/lang/zh-cn';
-import enLocale from './en';
-import zhLocale from './zh';
-import AvueEnLocale from '@smallwei/avue/lib/locale/lang/en';
-import AvueZhLocale from '@smallwei/avue/lib/locale/lang/zh';
+import { createI18n } from 'vue-i18n'
+import Store from '@/store'
+import elementEnLocale from 'element-plus/es/locale/lang/en'
+import elementZhLocale from 'element-plus/es/locale/lang/zh-cn'
+import enLocale from './en'
+import zhLocale from './zh'
+import AvueEnLocale from '@smallwei/avue/lib/locale/lang/en'
+import AvueZhLocale from '@smallwei/avue/lib/locale/lang/zh'
export const messages = {
- en: {
- ...enLocale,
- ...AvueEnLocale,
- ...elementEnLocale,
- },
- 'zh-cn': {
- ...zhLocale,
- ...AvueZhLocale,
- ...elementZhLocale,
- },
-};
-export const language = Store.getters.language;
+ en: {
+ ...enLocale,
+ ...AvueEnLocale,
+ ...elementEnLocale,
+ },
+ 'zh-cn': {
+ ...zhLocale,
+ ...AvueZhLocale,
+ ...elementZhLocale,
+ },
+}
+export const language = Store.getters.language
export default createI18n({
- locale: language,
- messages,
-});
+ locale: language,
+ messages,
+})
diff --git a/src/lang/zh.js b/src/lang/zh.js
index f057c70..5adf31d 100644
--- a/src/lang/zh.js
+++ b/src/lang/zh.js
@@ -1,136 +1,136 @@
export default {
- title: '指挥调度平台',
- confirmTip: '提示',
- logoutTip: '退出系统, 是否继续?',
- submitText: '确定',
- cancelText: '取消',
- search: '请输入搜索内容',
- menuTip: '没有发现菜单',
- common: {
- condition: '条件',
- display: '显示',
- hide: '隐藏',
- },
- tip: {
- select: '请选择',
- input: '请输入',
- },
- upload: {
- upload: '点击上传',
- tip: '将文件拖到此处,或',
- },
- date: {
- start: '开始日期',
- end: '结束日期',
- t: '今日',
- y: '昨日',
- n: '近7天',
- a: '全部',
- },
- form: {
- printBtn: '打 印',
- mockBtn: '模 拟',
- submitBtn: '提 交',
- emptyBtn: '清 空',
- },
- crud: {
- filter: {
- addBtn: '新增条件',
- clearBtn: '清空数据',
- resetBtn: '清空条件',
- cancelBtn: '取 消',
- submitBtn: '确 定',
- },
- column: {
- name: '列名',
- hide: '隐藏',
- fixed: '冻结',
- filters: '过滤',
- sortable: '排序',
- index: '顺序',
- width: '宽度',
- },
- tipStartTitle: '当前表格已选择',
- tipEndTitle: '项',
- editTitle: '编 辑',
- copyTitle: '复 制',
- addTitle: '新 增',
- viewTitle: '查 看',
- filterTitle: '过滤条件',
- showTitle: '列显隐',
- menu: '操作',
- addBtn: '新 增',
- show: '显 示',
- hide: '隐 藏',
- open: '展 开',
- shrink: '收 缩',
- printBtn: '打 印',
- excelBtn: '导 出',
- updateBtn: '修 改',
- cancelBtn: '取 消',
- searchBtn: '搜 索',
- emptyBtn: '清 空',
- menuBtn: '功 能',
- saveBtn: '保 存',
- viewBtn: '查 看',
- editBtn: '编 辑',
- copyBtn: '复 制',
- delBtn: '删 除',
- },
- login: {
- title: '登录 ',
- info: 'BladeX 微服务平台',
- tenantId: '请输入租户ID',
- name: '请输入姓名',
- username: '请输入账号',
- email: '请输入邮箱',
- password: '请输入密码',
- password1: '请输入确认密码',
- wechat: '微信',
- qq: 'QQ',
- github: 'github',
- gitee: '码云',
- phone: '请输入手机号',
- code: '请输入验证码',
- submit: '登录',
- register: '注册',
- back: '返回',
- userLogin: '账号密码登录',
- phoneLogin: '手机号登录',
- thirdLogin: '第三方登录',
- ssoLogin: '单点登录',
- msgText: '发送验证码',
- msgSuccess: '秒后重发',
- },
- navbar: {
- logOut: '退出登录',
- userinfo: '个人信息',
- roleName: '所属角色',
- deptName: '所属部门',
- currentDeptName: '当前部门',
- currentRoleName: '当前角色',
- switchRoleTo: '角色切换至',
- switchRole: '角色切换',
- switchDeptTo: '部门切换至',
- switchDept: '部门切换',
- switchTip: '是否进行身份切换',
- switchSuccess: '切换成功',
- dashboard: '首页',
- lock: '锁屏',
- bug: '没有错误日志',
- bugs: '条错误日志',
- screenfullF: '退出全屏',
- screenfull: '全屏',
- language: '中英文',
- notice: '消息通知',
- theme: '主题',
- color: '换色',
- },
- tagsView: {
- search: '搜索',
- menu: '更多',
- clearCache: '清除缓存',
- closeOthers: '关闭其它',
- closeAll: '关闭所有',
- },
-};
+ title: '指挥调度平台',
+ confirmTip: '提示',
+ logoutTip: '退出系统, 是否继续?',
+ submitText: '确定',
+ cancelText: '取消',
+ search: '请输入搜索内容',
+ menuTip: '没有发现菜单',
+ common: {
+ condition: '条件',
+ display: '显示',
+ hide: '隐藏',
+ },
+ tip: {
+ select: '请选择',
+ input: '请输入',
+ },
+ upload: {
+ upload: '点击上传',
+ tip: '将文件拖到此处,或',
+ },
+ date: {
+ start: '开始日期',
+ end: '结束日期',
+ t: '今日',
+ y: '昨日',
+ n: '近7天',
+ a: '全部',
+ },
+ form: {
+ printBtn: '打 印',
+ mockBtn: '模 拟',
+ submitBtn: '提 交',
+ emptyBtn: '清 空',
+ },
+ crud: {
+ filter: {
+ addBtn: '新增条件',
+ clearBtn: '清空数据',
+ resetBtn: '清空条件',
+ cancelBtn: '取 消',
+ submitBtn: '确 定',
+ },
+ column: {
+ name: '列名',
+ hide: '隐藏',
+ fixed: '冻结',
+ filters: '过滤',
+ sortable: '排序',
+ index: '顺序',
+ width: '宽度',
+ },
+ tipStartTitle: '当前表格已选择',
+ tipEndTitle: '项',
+ editTitle: '编 辑',
+ copyTitle: '复 制',
+ addTitle: '新 增',
+ viewTitle: '查 看',
+ filterTitle: '过滤条件',
+ showTitle: '列显隐',
+ menu: '操作',
+ addBtn: '新 增',
+ show: '显 示',
+ hide: '隐 藏',
+ open: '展 开',
+ shrink: '收 缩',
+ printBtn: '打 印',
+ excelBtn: '导 出',
+ updateBtn: '修 改',
+ cancelBtn: '取 消',
+ searchBtn: '搜 索',
+ emptyBtn: '清 空',
+ menuBtn: '功 能',
+ saveBtn: '保 存',
+ viewBtn: '查 看',
+ editBtn: '编 辑',
+ copyBtn: '复 制',
+ delBtn: '删 除',
+ },
+ login: {
+ title: '登录 ',
+ info: 'BladeX 微服务平台',
+ tenantId: '请输入租户ID',
+ name: '请输入姓名',
+ username: '请输入账号',
+ email: '请输入邮箱',
+ password: '请输入密码',
+ password1: '请输入确认密码',
+ wechat: '微信',
+ qq: 'QQ',
+ github: 'github',
+ gitee: '码云',
+ phone: '请输入手机号',
+ code: '请输入验证码',
+ submit: '登录',
+ register: '注册',
+ back: '返回',
+ userLogin: '账号密码登录',
+ phoneLogin: '手机号登录',
+ thirdLogin: '第三方登录',
+ ssoLogin: '单点登录',
+ msgText: '发送验证码',
+ msgSuccess: '秒后重发',
+ },
+ navbar: {
+ logOut: '退出登录',
+ userinfo: '个人信息',
+ roleName: '所属角色',
+ deptName: '所属部门',
+ currentDeptName: '当前部门',
+ currentRoleName: '当前角色',
+ switchRoleTo: '角色切换至',
+ switchRole: '角色切换',
+ switchDeptTo: '部门切换至',
+ switchDept: '部门切换',
+ switchTip: '是否进行身份切换',
+ switchSuccess: '切换成功',
+ dashboard: '首页',
+ lock: '锁屏',
+ bug: '没有错误日志',
+ bugs: '条错误日志',
+ screenfullF: '退出全屏',
+ screenfull: '全屏',
+ language: '中英文',
+ notice: '消息通知',
+ theme: '主题',
+ color: '换色',
+ },
+ tagsView: {
+ search: '搜索',
+ menu: '更多',
+ clearCache: '清除缓存',
+ closeOthers: '关闭其它',
+ closeAll: '关闭所有',
+ },
+}
diff --git a/src/main.js b/src/main.js
index e4cf81b..95595f8 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,83 +1,87 @@
-import { createApp } from 'vue';
-import website from './config/website';
-import axios from './axios';
-import router from './router/';
-import store from './store';
-import i18n from './lang/';
-import { language, messages } from './lang/';
-import * as ElementPlusIconsVue from '@element-plus/icons-vue';
-import ElementPlus from 'element-plus';
-import 'element-plus/dist/index.css';
-import Avue from '@smallwei/avue';
-import '@smallwei/avue/lib/index.css';
-import avueUeditor from 'avue-plugin-ueditor';
-import crudCommon from '@/mixins/crud.js';
-import { getScreen } from './utils/util';
-import './permission';
-import error from './error';
-import App from './App.vue';
-import 'animate.css';
-import dayjs from 'dayjs';
-import 'styles/common.scss';
+import { createApp } from 'vue'
+import website from './config/website'
+import axios from './axios'
+import router from './router/'
+import store from './store'
+import i18n from './lang/'
+import { language, messages } from './lang/'
+import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+import Avue from '@smallwei/avue'
+import '@smallwei/avue/lib/index.css'
+import avueUeditor from 'avue-plugin-ueditor'
+import crudCommon from '@/mixins/crud.js'
+import { getScreen } from './utils/util'
+import './permission'
+import error from './error'
+import App from './App.vue'
+import 'animate.css'
+import dayjs from 'dayjs'
+import 'styles/common.scss'
// 系统组件
-import debug from './debug';
-import VueClipboard from 'vue3-clipboard';
-import highlight from './components/highlight/main.vue';
-import codeEditor from './components/code-editor/main.vue';
-import basicBlock from './components/basic-block/main.vue';
-import basicContainer from './components/basic-container/main.vue';
-import SvgIcon from './components/SvgIcon.vue';
-import thirdRegister from './components/third-register/main.vue';
-import flowDesign from './components/flow-design/main.vue';
-import flowDesignStep from './components/flow-design-step/main.vue';
+import debug from './debug'
+import VueClipboard from 'vue3-clipboard'
+import highlight from './components/highlight/main.vue'
+import codeEditor from './components/code-editor/main.vue'
+import basicBlock from './components/basic-block/main.vue'
+import basicContainer from './components/basic-container/main.vue'
+import SvgIcon from './components/SvgIcon.vue'
+import thirdRegister from './components/third-register/main.vue'
+import flowDesign from './components/flow-design/main.vue'
+import flowDesignStep from './components/flow-design-step/main.vue'
// 业务组件
// import codeSetting from './views/tool/codesetting.vue';
// import formSetting from './views/tool/formsetting.vue';
// import tenantPackage from './views/system/tenantpackage.vue';
// import tenantDatasource from './views/system/tenantdatasource.vue';
-import { onResize, pxToRem } from '@/utils/rem';
+// 全局组件
+import globalComponents from '@/components'
+
+import { onResize, pxToRem } from '@/utils/rem'
onResize()
import 'virtual:svg-icons-register'
-window.$crudCommon = crudCommon;
-debug();
-window.axios = axios;
-const app = createApp(App);
+window.$crudCommon = crudCommon
+debug()
+window.axios = axios
+const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
- app.component(key, component);
+ app.component(key, component)
}
-app.component('basicContainer', basicContainer);
-app.component('basicBlock', basicBlock);
-app.component('highlight', highlight);
-app.component('codeEditor', codeEditor);
-app.component('thirdRegister', thirdRegister);
-app.component('flowDesign', flowDesign);
-app.component('flowDesignStep', flowDesignStep);
-app.component('SvgIcon', SvgIcon);
+app.component('basicContainer', basicContainer)
+app.component('basicBlock', basicBlock)
+app.component('highlight', highlight)
+app.component('codeEditor', codeEditor)
+app.component('thirdRegister', thirdRegister)
+app.component('flowDesign', flowDesign)
+app.component('flowDesignStep', flowDesignStep)
+app.component('SvgIcon', SvgIcon)
// app.component('codeSetting', codeSetting);
// app.component('formSetting', formSetting);
// app.component('tenantPackage', tenantPackage);
// app.component('tenantDatasource', tenantDatasource);
-app.config.globalProperties.$app = app;
-app.config.globalProperties.$dayjs = dayjs;
-app.config.globalProperties.website = website;
-app.config.globalProperties.getScreen = getScreen;
-app.config.globalProperties.pxToRem = pxToRem;
+app.config.globalProperties.$app = app
+app.config.globalProperties.$dayjs = dayjs
+app.config.globalProperties.website = website
+app.config.globalProperties.getScreen = getScreen
+app.config.globalProperties.pxToRem = pxToRem
-app.use(error);
-app.use(i18n);
-app.use(store);
-app.use(router);
+app.use(error)
+app.use(i18n)
+app.use(store)
+app.use(router)
app.use(ElementPlus, {
- locale: messages[language],
-});
+ locale: messages[language],
+})
app.use(Avue, {
- axios,
- calcHeight: 10,
- locale: messages[language],
-});
-app.use(avueUeditor, { axios });
+ axios,
+ calcHeight: 10,
+ locale: messages[language],
+})
+app.use(avueUeditor, { axios })
app.use(VueClipboard, {
- autoSetContainer: true,
- appendToBody: true, // 这可以帮助解决一些更复杂的使用场景下的问题
-});
-app.mount('#app');
+ autoSetContainer: true,
+ appendToBody: true, // 这可以帮助解决一些更复杂的使用场景下的问题
+})
+app.use(globalComponents)
+app.mount('#app')
diff --git a/src/mixins/crud.js b/src/mixins/crud.js
index f297a12..1dc7f54 100644
--- a/src/mixins/crud.js
+++ b/src/mixins/crud.js
@@ -1,217 +1,217 @@
-import { mapGetters } from 'vuex';
+import { mapGetters } from 'vuex'
export default (app, option = {}) => {
- let optionObj = import.meta.glob(`../option/**/**`)[`../option/${option.name}.js`];
- let apiObj = import.meta.glob(`../api/**/**`)[`../api/${option.name}.js`];
- let mixins = {
- data() {
- return {
- data: [],
- form: {},
- params: {},
- option: {},
- api: {},
- loading: false,
- page: {},
- };
- },
- created() {
- optionObj().then(mode => (this.option = mode.default));
- apiObj().then(mode => {
- this.api = mode;
- this.getList();
- });
- },
- computed: {
- ...mapGetters(['userInfo', 'permission', 'roles']),
- ids() {
- const ids = [];
- this.selectionList.forEach(ele => {
- ids.push(ele[this.rowKey]);
- });
- return ids.join(',');
- },
- bindVal() {
- return {
- ref: 'crud',
- option: this.option,
- data: this.data,
- tableLoading: this.loading,
- };
- },
- onEvent() {
- return {
- 'size-change': this.sizeChange,
- 'current-change': this.currentChange,
- 'row-save': this.rowSave,
- 'row-update': this.rowUpdate,
- 'row-del': this.rowDel,
- 'refresh-change': this.refreshChange,
- 'search-reset': this.searchChange,
- 'search-change': this.searchChange,
- };
- },
- rowKey() {
- return option.rowKey || 'id';
- },
- },
- methods: {
- getList() {
- const callback = () => {
- this.loading = true;
- this.data = [];
- this.api[option.list || 'getList'](
- this.page.currentPage,
- this.page.pageSize,
- this.params
- ).then(res => {
- this.loading = false;
- let data;
- if (option.res) {
- data = option.res(res.data);
- } else {
- data = res.data.data;
- }
- this.page.total = data[option.total || 'total'];
- const result = data[option.data || 'records'];
- this.data = result;
- if (this.listAfter) {
- this.listAfter(data);
- }
- });
- };
- if (this.listBefore) {
- this.listBefore();
- }
- callback();
- },
- rowSave(row, done, loading) {
- const callback = () => {
- delete this.form.params;
- this.api[option.add || 'add'](this.form)
- .then(data => {
- this.getList();
- if (this.addAfter) {
- this.addAfter(data);
- } else {
- this.$message.success('新增成功');
- }
- done();
- })
- .catch(() => {
- loading();
- });
- };
- if (this.addBefore) {
- this.addBefore();
- }
- callback();
- },
- rowUpdate(row, index, done, loading) {
- const callback = () => {
- delete this.form.params;
- this.api[option.update || 'update'](this.form)
- .then(data => {
- this.getList();
- if (this.updateAfter) {
- this.updateAfter(data);
- } else {
- this.$message.success('更新成功');
- }
- done();
- })
- .catch(() => {
- loading();
- });
- };
- if (this.updateBefore) {
- this.updateBefore();
- }
- callback();
- },
- rowDel(row, index) {
- const callback = () => {
- this.api[option.del || 'del'](row[this.rowKey], row).then(data => {
- this.getList();
- if (this.delAfter) {
- this.delAfter(data, row, index);
- } else {
- this.$message.success('删除成功');
- }
- });
- };
- if (this.delBefore) {
- this.delBefore();
- callback();
- } else {
- this.$confirm('确定将选择数据删除?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning',
- }).then(() => {
- callback();
- });
- }
- },
- handleDelete() {
- if (this.selectionList.length === 0) {
- this.$message.warning('请选择至少一条数据');
- return;
- }
- this.$confirm('确定将选择数据删除?', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning',
- }).then(() => {
- this.api[option.del || 'remove'](this.ids).then(data => {
- this.getList();
- if (this.delMultiAfter) {
- this.delMultiAfter(data, this.ids);
- } else {
- this.$message.success('删除成功');
- }
- });
- });
- },
- searchChange(params, done) {
- if (done) done();
- this.params = params;
- this.page.currentPage = 1;
- this.getList();
- },
- dateChange(date) {
- if (date) {
- this.params.createTime_dategt = date[0];
- this.params.createTime_datelt = date[1];
- } else {
- delete this.params.createTime_dategt;
- delete this.params.createTime_datelt;
- }
- this.page.currentPage = 1;
- this.getList();
- },
- selectionChange(list) {
- this.selectionList = list;
- },
- selectionClear() {
- this.selectionList = [];
- this.$refs.crud.toggleSelection();
- },
- refreshChange() {
- this.getList();
- },
- sizeChange(val) {
- this.page.currentPage = 1;
- this.page.pageSize = val;
- this.getList();
- },
- currentChange(val) {
- this.page.currentPage = val;
- this.getList();
- },
- },
- };
- app.mixins = app.mixins || [];
- app.mixins.push(mixins);
- return app;
-};
+ let optionObj = import.meta.glob(`../option/**/**`)[`../option/${option.name}.js`]
+ let apiObj = import.meta.glob(`../api/**/**`)[`../api/${option.name}.js`]
+ let mixins = {
+ data() {
+ return {
+ data: [],
+ form: {},
+ params: {},
+ option: {},
+ api: {},
+ loading: false,
+ page: {},
+ }
+ },
+ created() {
+ optionObj().then(mode => (this.option = mode.default))
+ apiObj().then(mode => {
+ this.api = mode
+ this.getList()
+ })
+ },
+ computed: {
+ ...mapGetters(['userInfo', 'permission', 'roles']),
+ ids() {
+ const ids = []
+ this.selectionList.forEach(ele => {
+ ids.push(ele[this.rowKey])
+ })
+ return ids.join(',')
+ },
+ bindVal() {
+ return {
+ ref: 'crud',
+ option: this.option,
+ data: this.data,
+ tableLoading: this.loading,
+ }
+ },
+ onEvent() {
+ return {
+ 'size-change': this.sizeChange,
+ 'current-change': this.currentChange,
+ 'row-save': this.rowSave,
+ 'row-update': this.rowUpdate,
+ 'row-del': this.rowDel,
+ 'refresh-change': this.refreshChange,
+ 'search-reset': this.searchChange,
+ 'search-change': this.searchChange,
+ }
+ },
+ rowKey() {
+ return option.rowKey || 'id'
+ },
+ },
+ methods: {
+ getList() {
+ const callback = () => {
+ this.loading = true
+ this.data = []
+ this.api[option.list || 'getList'](
+ this.page.currentPage,
+ this.page.pageSize,
+ this.params
+ ).then(res => {
+ this.loading = false
+ let data
+ if (option.res) {
+ data = option.res(res.data)
+ } else {
+ data = res.data.data
+ }
+ this.page.total = data[option.total || 'total']
+ const result = data[option.data || 'records']
+ this.data = result
+ if (this.listAfter) {
+ this.listAfter(data)
+ }
+ })
+ }
+ if (this.listBefore) {
+ this.listBefore()
+ }
+ callback()
+ },
+ rowSave(row, done, loading) {
+ const callback = () => {
+ delete this.form.params
+ this.api[option.add || 'add'](this.form)
+ .then(data => {
+ this.getList()
+ if (this.addAfter) {
+ this.addAfter(data)
+ } else {
+ this.$message.success('新增成功')
+ }
+ done()
+ })
+ .catch(() => {
+ loading()
+ })
+ }
+ if (this.addBefore) {
+ this.addBefore()
+ }
+ callback()
+ },
+ rowUpdate(row, index, done, loading) {
+ const callback = () => {
+ delete this.form.params
+ this.api[option.update || 'update'](this.form)
+ .then(data => {
+ this.getList()
+ if (this.updateAfter) {
+ this.updateAfter(data)
+ } else {
+ this.$message.success('更新成功')
+ }
+ done()
+ })
+ .catch(() => {
+ loading()
+ })
+ }
+ if (this.updateBefore) {
+ this.updateBefore()
+ }
+ callback()
+ },
+ rowDel(row, index) {
+ const callback = () => {
+ this.api[option.del || 'del'](row[this.rowKey], row).then(data => {
+ this.getList()
+ if (this.delAfter) {
+ this.delAfter(data, row, index)
+ } else {
+ this.$message.success('删除成功')
+ }
+ })
+ }
+ if (this.delBefore) {
+ this.delBefore()
+ callback()
+ } else {
+ this.$confirm('确定将选择数据删除?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }).then(() => {
+ callback()
+ })
+ }
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning('请选择至少一条数据')
+ return
+ }
+ this.$confirm('确定将选择数据删除?', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }).then(() => {
+ this.api[option.del || 'remove'](this.ids).then(data => {
+ this.getList()
+ if (this.delMultiAfter) {
+ this.delMultiAfter(data, this.ids)
+ } else {
+ this.$message.success('删除成功')
+ }
+ })
+ })
+ },
+ searchChange(params, done) {
+ if (done) done()
+ this.params = params
+ this.page.currentPage = 1
+ this.getList()
+ },
+ dateChange(date) {
+ if (date) {
+ this.params.createTime_dategt = date[0]
+ this.params.createTime_datelt = date[1]
+ } else {
+ delete this.params.createTime_dategt
+ delete this.params.createTime_datelt
+ }
+ this.page.currentPage = 1
+ this.getList()
+ },
+ selectionChange(list) {
+ this.selectionList = list
+ },
+ selectionClear() {
+ this.selectionList = []
+ this.$refs.crud.toggleSelection()
+ },
+ refreshChange() {
+ this.getList()
+ },
+ sizeChange(val) {
+ this.page.currentPage = 1
+ this.page.pageSize = val
+ this.getList()
+ },
+ currentChange(val) {
+ this.page.currentPage = val
+ this.getList()
+ },
+ },
+ }
+ app.mixins = app.mixins || []
+ app.mixins.push(mixins)
+ return app
+}
diff --git a/src/mixins/index.js b/src/mixins/index.js
index 5cf8ec5..34e62be 100644
--- a/src/mixins/index.js
+++ b/src/mixins/index.js
@@ -1,45 +1,45 @@
-import { validatenull } from '@/utils/validate';
-import { getStore } from '@/utils/store.js';
+import { validatenull } from '@/utils/validate'
+import { getStore } from '@/utils/store.js'
export default {
- data() {
- return {
- //刷新token锁
- refreshLock: false,
- //刷新token的时间
- refreshTime: '',
- };
- },
- created() {
- //实时检测刷新token
- //this.refreshToken();
- },
- methods: {
- //实时检测刷新token
- refreshToken() {
- this.refreshTime = setInterval(() => {
- const token =
- getStore({
- name: 'token',
- debug: true,
- }) || {};
- let date1 = this.$dayjs(token.datetime);
- let date2 = this.$dayjs();
- const date = date2.diff(date1, 'seconds');
- if (validatenull(date)) return;
- if (date >= this.website.tokenTime && !this.refreshLock) {
- this.refreshLock = true;
- this.$store
- .dispatch('RefreshToken')
- .then(() => {
- this.refreshLock = false;
- })
- .catch(err => {
- console.log(err);
- this.refreshLock = false;
- });
- }
- }, 1000);
- },
- },
-};
+ data() {
+ return {
+ //刷新token锁
+ refreshLock: false,
+ //刷新token的时间
+ refreshTime: '',
+ }
+ },
+ created() {
+ //实时检测刷新token
+ //this.refreshToken();
+ },
+ methods: {
+ //实时检测刷新token
+ refreshToken() {
+ this.refreshTime = setInterval(() => {
+ const token =
+ getStore({
+ name: 'token',
+ debug: true,
+ }) || {}
+ let date1 = this.$dayjs(token.datetime)
+ let date2 = this.$dayjs()
+ const date = date2.diff(date1, 'seconds')
+ if (validatenull(date)) return
+ if (date >= this.website.tokenTime && !this.refreshLock) {
+ this.refreshLock = true
+ this.$store
+ .dispatch('RefreshToken')
+ .then(() => {
+ this.refreshLock = false
+ })
+ .catch(err => {
+ console.log(err)
+ this.refreshLock = false
+ })
+ }
+ }, 1000)
+ },
+ },
+}
diff --git a/src/mockProdServer.js b/src/mockProdServer.js
index d13afa4..1f8ac3e 100644
--- a/src/mockProdServer.js
+++ b/src/mockProdServer.js
@@ -1,9 +1,9 @@
-import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer';
+import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'
-import menuModule from '../mock/menu';
-import userModule from '../mock/user';
-import crudModule from '../mock/crud';
+import menuModule from '../mock/menu'
+import userModule from '../mock/user'
+import crudModule from '../mock/crud'
export const setupProdMockServer = () => {
- createProdMockServer([...menuModule, ...userModule, ...crudModule]);
-};
+ createProdMockServer([...menuModule, ...userModule, ...crudModule])
+}
diff --git a/src/option/job/jobinfo.js b/src/option/job/jobinfo.js
index b4de472..eaa46df 100644
--- a/src/option/job/jobinfo.js
+++ b/src/option/job/jobinfo.js
@@ -1,515 +1,515 @@
export const timeExpressionTypeDic = [
- {
- label: 'API',
- value: 1,
- },
- {
- label: 'CRON',
- value: 2,
- },
- {
- label: '固定频率(毫秒)',
- value: 3,
- },
- {
- label: '固定延迟(毫秒)',
- value: 4,
- },
- {
- label: '工作流',
- value: 5,
- },
-];
+ {
+ label: 'API',
+ value: 1,
+ },
+ {
+ label: 'CRON',
+ value: 2,
+ },
+ {
+ label: '固定频率(毫秒)',
+ value: 3,
+ },
+ {
+ label: '固定延迟(毫秒)',
+ value: 4,
+ },
+ {
+ label: '工作流',
+ value: 5,
+ },
+]
export const executeTypeDic = [
- {
- label: '单机执行',
- value: 1,
- },
- {
- label: '广播执行',
- value: 2,
- },
- {
- label: 'MapReduce',
- value: 3,
- },
-];
+ {
+ label: '单机执行',
+ value: 1,
+ },
+ {
+ label: '广播执行',
+ value: 2,
+ },
+ {
+ label: 'MapReduce',
+ value: 3,
+ },
+]
export const processorTypeDic = [
- {
- label: '内建处理器',
- value: 1,
- },
- {
- label: '外部处理器(动态加载)',
- value: 4,
- },
-];
+ {
+ label: '内建处理器',
+ value: 1,
+ },
+ {
+ label: '外部处理器(动态加载)',
+ value: 4,
+ },
+]
export const dispatchStrategyDic = [
- {
- label: 'HEALTH_FIRST',
- value: 1,
- },
- {
- label: 'RANDOM',
- value: 2,
- },
-];
+ {
+ label: 'HEALTH_FIRST',
+ value: 1,
+ },
+ {
+ label: 'RANDOM',
+ value: 2,
+ },
+]
export const enableDic = [
- {
- label: '暂停',
- value: 0,
- },
- {
- label: '启用',
- value: 1,
- },
-];
+ {
+ label: '暂停',
+ value: 0,
+ },
+ {
+ label: '启用',
+ value: 1,
+ },
+]
export const logTypeDic = [
- {
- label: 'ONLINE',
- value: 1,
- },
- {
- label: 'LOCAL',
- value: 2,
- },
- {
- label: 'STDOUT',
- value: 3,
- },
- {
- label: 'LOCAL_AND_ONLINE',
- value: 4,
- },
- {
- label: 'NULL',
- value: 999,
- },
-];
+ {
+ label: 'ONLINE',
+ value: 1,
+ },
+ {
+ label: 'LOCAL',
+ value: 2,
+ },
+ {
+ label: 'STDOUT',
+ value: 3,
+ },
+ {
+ label: 'LOCAL_AND_ONLINE',
+ value: 4,
+ },
+ {
+ label: 'NULL',
+ value: 999,
+ },
+]
export const logLevelDic = [
- {
- label: 'DEBUG',
- value: 1,
- },
- {
- label: 'INFO',
- value: 2,
- },
- {
- label: 'WARN',
- value: 3,
- },
- {
- label: 'ERROR',
- value: 4,
- },
- {
- label: 'OFF',
- value: 99,
- },
-];
+ {
+ label: 'DEBUG',
+ value: 1,
+ },
+ {
+ label: 'INFO',
+ value: 2,
+ },
+ {
+ label: 'WARN',
+ value: 3,
+ },
+ {
+ label: 'ERROR',
+ value: 4,
+ },
+ {
+ label: 'OFF',
+ value: 99,
+ },
+]
export default {
- height: 'auto',
- calcHeight: 30,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- viewBtn: true,
- selection: true,
- grid: true,
- labelWidth: 180,
- menuWidth: 350,
- dialogWidth: 1200,
- dialogClickModal: false,
- tabs: true,
- column: [
- {
- label: '任务应用',
- prop: 'jobServerId',
- type: 'select',
- dicUrl: '/blade-job/job-server/select',
- props: {
- label: 'jobAppName',
- value: 'id',
- },
- search: true,
- display: false,
- },
- {
- label: '任务ID',
- prop: 'jobId',
- type: 'input',
- search: true,
- width: 80,
- display: false,
- },
- {
- label: '任务名称',
- prop: 'jobName',
- type: 'input',
- search: true,
- width: 200,
- display: false,
- },
- {
- label: '定时信息',
- labelTip: '时间表达式类型',
- prop: 'timeExpressionType',
- type: 'select',
- dicData: timeExpressionTypeDic,
- rules: [
- {
- required: true,
- message: '请选择定时信息',
- trigger: 'blur',
- },
- ],
- width: 120,
- display: false,
- },
- {
- label: '执行类型',
- labelTip: '枚举值',
- prop: 'executeType',
- type: 'select',
- dicData: executeTypeDic,
- rules: [
- {
- required: true,
- message: '请选择执行器类型',
- trigger: 'blur',
- },
- ],
- width: 110,
- display: false,
- },
- {
- label: '处理器类型',
- labelTip: '枚举值',
- prop: 'processorType',
- type: 'select',
- dicData: processorTypeDic,
- rules: [
- {
- required: true,
- message: '请选择处理器类型',
- trigger: 'blur',
- },
- ],
- width: 180,
- display: false,
- },
- {
- label: '任务状态',
- labelTip: '未启用的任务不会被调度',
- prop: 'enable',
- type: 'switch',
- dicData: enableDic,
- slot: true,
- width: 100,
- display: false,
- },
- ],
- group: [
- {
- label: '基础配置',
- prop: 'modelSetting',
- icon: 'el-icon-tickets',
- column: [
- {
- label: '任务应用',
- prop: 'jobServerId',
- type: 'select',
- dicUrl: '/blade-job/job-server/select',
- props: {
- label: 'jobAppName',
- value: 'id',
- },
- editDisabled: true,
- rules: [
- {
- required: true,
- message: '请选择任务应用',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '任务状态',
- labelTip: '未启用的任务不会被调度',
- prop: 'enable',
- type: 'switch',
- value: 1,
- rules: [
- {
- required: true,
- message: '请选择是否开启',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '任务名称',
- prop: 'jobName',
- type: 'input',
- rules: [
- {
- required: true,
- message: '请输入任务名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '生命周期',
- labelTip: '预留,用于指定定时调度任务的生效时间范围)',
- prop: 'lifecycle',
- type: 'datetimerange',
- format: 'YYYY-MM-DD HH:mm:ss',
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- startPlaceholder: '任务开始时间',
- endPlaceholder: '任务结束时间',
- },
- {
- label: '定时类型',
- labelTip: '时间表达式类型',
- prop: 'timeExpressionType',
- type: 'select',
- dicData: timeExpressionTypeDic,
- value: 2,
- rules: [
- {
- required: true,
- message: '请选择定时信息',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '时间表达式',
- labelTip: '填写类型由 定时类型 决定,比如 CRON 需要填写 CRON 表达式',
- prop: 'timeExpression',
- type: 'input',
- },
- {
- label: '执行类型',
- labelTip: '枚举值',
- prop: 'executeType',
- type: 'select',
- dicData: executeTypeDic,
- value: 1,
- rules: [
- {
- required: true,
- message: '请选择执行器类型',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '运行时配置',
- labelTip: '目前支持随机(RANDOM)和健康度优先(HEALTH_FIRST)',
- prop: 'dispatchStrategy',
- type: 'select',
- dicData: dispatchStrategyDic,
- value: 1,
- rules: [
- {
- required: true,
- message: '请选择运行时配置',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '处理器类型',
- labelTip: '枚举值',
- prop: 'processorType',
- type: 'select',
- dicData: processorTypeDic,
- value: 1,
- rules: [
- {
- required: true,
- message: '请选择处理器类型',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '处理器参数',
- labelTip:
- '如Java处理器需要填写全限定类名,如:org.springblade.demo.MapReduceProcessorDemo',
- prop: 'processorInfo',
- type: 'input',
- rules: [
- {
- required: true,
- message: '请输入处理器参数',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '任务参数',
- labelTip: '方法入参 TaskContext 对象的 json 字段',
- prop: 'jobParams',
- type: 'input',
- span: 24,
- },
- {
- label: '任务描述',
- prop: 'jobDescription',
- type: 'textarea',
- minRows: 3,
- span: 24,
- },
- ],
- },
- {
- label: '高级配置',
- prop: 'templateSetting',
- icon: 'el-icon-copy-document',
- column: [
- {
- label: '最大实例数',
- labelTip:
- '该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)',
- prop: 'maxInstanceNum',
- type: 'number',
- value: 0,
- },
- {
- label: '单机线程并发数',
- labelTip: '该实例执行过程中每个 Worker 使用的线程数量',
- prop: 'concurrency',
- type: 'number',
- value: 5,
- },
- {
- label: '任务实例运行时间限制',
- labelTip: '0 代表无任何限制,超时会被打断并判定为执行失败',
- prop: 'instanceTimeLimit',
- type: 'number',
- value: 0,
- },
- {
- label: '任务实例重试次数',
- labelTip: '任务实例重试次数,整个任务失败时重试,代价大,不推荐使用',
- prop: 'instanceRetryNum',
- type: 'number',
- value: 0,
- },
- {
- label: '任务作业重试次数',
- labelTip: 'Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用',
- prop: 'taskRetryNum',
- type: 'number',
- value: 0,
- },
- {
- label: '最低CPU核心',
- labelTip:
- '最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制',
- prop: 'minCpuCores',
- type: 'number',
- value: 0,
- },
- {
- label: '最低内存(GB)',
- labelTip: '可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制',
- prop: 'minMemorySpace',
- type: 'number',
- value: 0,
- },
- {
- label: '最低磁盘空间(GB)',
- labelTip: '可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制',
- prop: 'minDiskSpace',
- type: 'number',
- value: 0,
- },
- {
- label: '执行机器地址',
- labelTip: '设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器',
- prop: 'designatedWorkers',
- type: 'input',
- },
- {
- label: '最大执行机器数量',
- labelTip: '限定调动执行的机器数量,0代表无限制',
- prop: 'maxWorkerCount',
- type: 'number',
- value: 0,
- },
- ],
- },
- {
- label: '其他配置',
- prop: 'codingSetting',
- icon: 'el-icon-printer',
- column: [
- {
- label: '报警人员ID列表',
- labelTip: '接收报警的用户ID列表',
- prop: 'notifyUserIds',
- type: 'input',
- },
- {
- label: '错误阈值',
- labelTip: '错误阈值,0代表不限制',
- prop: 'alertThreshold',
- type: 'number',
- value: 0,
- },
- {
- label: '统计窗口(s)',
- labelTip: '统计的窗口长度(s),0代表不限制',
- prop: 'statisticWindowLen',
- type: 'number',
- value: 0,
- },
- {
- label: '沉默窗口(s)',
- labelTip: '沉默时间窗口(s),0代表不限制',
- prop: 'silenceWindowLen',
- type: 'number',
- value: 0,
- },
- {
- label: '日志配置',
- labelTip: '日志配置',
- prop: 'logType',
- type: 'select',
- value: 1,
- dicData: logTypeDic,
- },
- {
- label: '日志级别',
- labelTip: '日志级别',
- prop: 'logLevel',
- type: 'select',
- value: 2,
- dicData: logLevelDic,
- },
- {
- label: '扩展字段',
- labelTip: '供开发者使用,用于功能扩展,powerjob 自身不会使用该字段',
- prop: 'extra',
- type: 'textarea',
- minRows: 3,
- span: 24,
- },
- ],
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 30,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ viewBtn: true,
+ selection: true,
+ grid: true,
+ labelWidth: 180,
+ menuWidth: 350,
+ dialogWidth: 1200,
+ dialogClickModal: false,
+ tabs: true,
+ column: [
+ {
+ label: '任务应用',
+ prop: 'jobServerId',
+ type: 'select',
+ dicUrl: '/blade-job/job-server/select',
+ props: {
+ label: 'jobAppName',
+ value: 'id',
+ },
+ search: true,
+ display: false,
+ },
+ {
+ label: '任务ID',
+ prop: 'jobId',
+ type: 'input',
+ search: true,
+ width: 80,
+ display: false,
+ },
+ {
+ label: '任务名称',
+ prop: 'jobName',
+ type: 'input',
+ search: true,
+ width: 200,
+ display: false,
+ },
+ {
+ label: '定时信息',
+ labelTip: '时间表达式类型',
+ prop: 'timeExpressionType',
+ type: 'select',
+ dicData: timeExpressionTypeDic,
+ rules: [
+ {
+ required: true,
+ message: '请选择定时信息',
+ trigger: 'blur',
+ },
+ ],
+ width: 120,
+ display: false,
+ },
+ {
+ label: '执行类型',
+ labelTip: '枚举值',
+ prop: 'executeType',
+ type: 'select',
+ dicData: executeTypeDic,
+ rules: [
+ {
+ required: true,
+ message: '请选择执行器类型',
+ trigger: 'blur',
+ },
+ ],
+ width: 110,
+ display: false,
+ },
+ {
+ label: '处理器类型',
+ labelTip: '枚举值',
+ prop: 'processorType',
+ type: 'select',
+ dicData: processorTypeDic,
+ rules: [
+ {
+ required: true,
+ message: '请选择处理器类型',
+ trigger: 'blur',
+ },
+ ],
+ width: 180,
+ display: false,
+ },
+ {
+ label: '任务状态',
+ labelTip: '未启用的任务不会被调度',
+ prop: 'enable',
+ type: 'switch',
+ dicData: enableDic,
+ slot: true,
+ width: 100,
+ display: false,
+ },
+ ],
+ group: [
+ {
+ label: '基础配置',
+ prop: 'modelSetting',
+ icon: 'el-icon-tickets',
+ column: [
+ {
+ label: '任务应用',
+ prop: 'jobServerId',
+ type: 'select',
+ dicUrl: '/blade-job/job-server/select',
+ props: {
+ label: 'jobAppName',
+ value: 'id',
+ },
+ editDisabled: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择任务应用',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '任务状态',
+ labelTip: '未启用的任务不会被调度',
+ prop: 'enable',
+ type: 'switch',
+ value: 1,
+ rules: [
+ {
+ required: true,
+ message: '请选择是否开启',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '任务名称',
+ prop: 'jobName',
+ type: 'input',
+ rules: [
+ {
+ required: true,
+ message: '请输入任务名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '生命周期',
+ labelTip: '预留,用于指定定时调度任务的生效时间范围)',
+ prop: 'lifecycle',
+ type: 'datetimerange',
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ startPlaceholder: '任务开始时间',
+ endPlaceholder: '任务结束时间',
+ },
+ {
+ label: '定时类型',
+ labelTip: '时间表达式类型',
+ prop: 'timeExpressionType',
+ type: 'select',
+ dicData: timeExpressionTypeDic,
+ value: 2,
+ rules: [
+ {
+ required: true,
+ message: '请选择定时信息',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '时间表达式',
+ labelTip: '填写类型由 定时类型 决定,比如 CRON 需要填写 CRON 表达式',
+ prop: 'timeExpression',
+ type: 'input',
+ },
+ {
+ label: '执行类型',
+ labelTip: '枚举值',
+ prop: 'executeType',
+ type: 'select',
+ dicData: executeTypeDic,
+ value: 1,
+ rules: [
+ {
+ required: true,
+ message: '请选择执行器类型',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '运行时配置',
+ labelTip: '目前支持随机(RANDOM)和健康度优先(HEALTH_FIRST)',
+ prop: 'dispatchStrategy',
+ type: 'select',
+ dicData: dispatchStrategyDic,
+ value: 1,
+ rules: [
+ {
+ required: true,
+ message: '请选择运行时配置',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '处理器类型',
+ labelTip: '枚举值',
+ prop: 'processorType',
+ type: 'select',
+ dicData: processorTypeDic,
+ value: 1,
+ rules: [
+ {
+ required: true,
+ message: '请选择处理器类型',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '处理器参数',
+ labelTip:
+ '如Java处理器需要填写全限定类名,如:org.springblade.demo.MapReduceProcessorDemo',
+ prop: 'processorInfo',
+ type: 'input',
+ rules: [
+ {
+ required: true,
+ message: '请输入处理器参数',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '任务参数',
+ labelTip: '方法入参 TaskContext 对象的 json 字段',
+ prop: 'jobParams',
+ type: 'input',
+ span: 24,
+ },
+ {
+ label: '任务描述',
+ prop: 'jobDescription',
+ type: 'textarea',
+ minRows: 3,
+ span: 24,
+ },
+ ],
+ },
+ {
+ label: '高级配置',
+ prop: 'templateSetting',
+ icon: 'el-icon-copy-document',
+ column: [
+ {
+ label: '最大实例数',
+ labelTip:
+ '该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)',
+ prop: 'maxInstanceNum',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '单机线程并发数',
+ labelTip: '该实例执行过程中每个 Worker 使用的线程数量',
+ prop: 'concurrency',
+ type: 'number',
+ value: 5,
+ },
+ {
+ label: '任务实例运行时间限制',
+ labelTip: '0 代表无任何限制,超时会被打断并判定为执行失败',
+ prop: 'instanceTimeLimit',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '任务实例重试次数',
+ labelTip: '任务实例重试次数,整个任务失败时重试,代价大,不推荐使用',
+ prop: 'instanceRetryNum',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '任务作业重试次数',
+ labelTip: 'Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用',
+ prop: 'taskRetryNum',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '最低CPU核心',
+ labelTip:
+ '最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制',
+ prop: 'minCpuCores',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '最低内存(GB)',
+ labelTip: '可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制',
+ prop: 'minMemorySpace',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '最低磁盘空间(GB)',
+ labelTip: '可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制',
+ prop: 'minDiskSpace',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '执行机器地址',
+ labelTip: '设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器',
+ prop: 'designatedWorkers',
+ type: 'input',
+ },
+ {
+ label: '最大执行机器数量',
+ labelTip: '限定调动执行的机器数量,0代表无限制',
+ prop: 'maxWorkerCount',
+ type: 'number',
+ value: 0,
+ },
+ ],
+ },
+ {
+ label: '其他配置',
+ prop: 'codingSetting',
+ icon: 'el-icon-printer',
+ column: [
+ {
+ label: '报警人员ID列表',
+ labelTip: '接收报警的用户ID列表',
+ prop: 'notifyUserIds',
+ type: 'input',
+ },
+ {
+ label: '错误阈值',
+ labelTip: '错误阈值,0代表不限制',
+ prop: 'alertThreshold',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '统计窗口(s)',
+ labelTip: '统计的窗口长度(s),0代表不限制',
+ prop: 'statisticWindowLen',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '沉默窗口(s)',
+ labelTip: '沉默时间窗口(s),0代表不限制',
+ prop: 'silenceWindowLen',
+ type: 'number',
+ value: 0,
+ },
+ {
+ label: '日志配置',
+ labelTip: '日志配置',
+ prop: 'logType',
+ type: 'select',
+ value: 1,
+ dicData: logTypeDic,
+ },
+ {
+ label: '日志级别',
+ labelTip: '日志级别',
+ prop: 'logLevel',
+ type: 'select',
+ value: 2,
+ dicData: logLevelDic,
+ },
+ {
+ label: '扩展字段',
+ labelTip: '供开发者使用,用于功能扩展,powerjob 自身不会使用该字段',
+ prop: 'extra',
+ type: 'textarea',
+ minRows: 3,
+ span: 24,
+ },
+ ],
+ },
+ ],
+}
diff --git a/src/option/job/jobserver.js b/src/option/job/jobserver.js
index 27914be..5e55403 100644
--- a/src/option/job/jobserver.js
+++ b/src/option/job/jobserver.js
@@ -1,78 +1,78 @@
export default {
- height: 'auto',
- calcHeight: 30,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- viewBtn: true,
- selection: true,
- grid: true,
- labelWidth: 100,
- menuWidth: 350,
- dialogClickModal: false,
- column: [
- {
- label: '服务名称',
- prop: 'jobServerName',
- type: 'input',
- span: 24,
- search: true,
- rules: [
- {
- required: true,
- message: '请输入服务名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '服务器地址',
- prop: 'jobServerUrl',
- type: 'input',
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入服务器地址',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '应用名称',
- prop: 'jobAppName',
- type: 'input',
- span: 24,
- search: true,
- rules: [
- {
- required: true,
- message: '请输入应用名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '应用密码',
- prop: 'jobAppPassword',
- type: 'input',
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入应用密码',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '任务备注',
- prop: 'jobRemark',
- type: 'textarea',
- minRows: 3,
- span: 24,
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 30,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ viewBtn: true,
+ selection: true,
+ grid: true,
+ labelWidth: 100,
+ menuWidth: 350,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '服务名称',
+ prop: 'jobServerName',
+ type: 'input',
+ span: 24,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入服务名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '服务器地址',
+ prop: 'jobServerUrl',
+ type: 'input',
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入服务器地址',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '应用名称',
+ prop: 'jobAppName',
+ type: 'input',
+ span: 24,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入应用名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '应用密码',
+ prop: 'jobAppPassword',
+ type: 'input',
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入应用密码',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '任务备注',
+ prop: 'jobRemark',
+ type: 'textarea',
+ minRows: 3,
+ span: 24,
+ },
+ ],
+}
diff --git a/src/option/system/dict.js b/src/option/system/dict.js
index aac2d8a..b466bb5 100644
--- a/src/option/system/dict.js
+++ b/src/option/system/dict.js
@@ -1,210 +1,210 @@
export const optionParent = {
- height: 'auto',
- calcHeight: 32,
- tip: false,
- searchShow: true,
- searchMenuSpan: 10,
- border: true,
- index: true,
- selection: true,
- viewBtn: true,
- menuWidth: 250,
- dialogWidth: 880,
- dialogClickModal: false,
- column: [
- {
- label: '字典编号',
- prop: 'code',
- search: true,
- slot: true,
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入字典编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典名称',
- prop: 'dictValue',
- search: true,
- align: 'center',
- rules: [
- {
- required: true,
- message: '请输入字典名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典排序',
- prop: 'sort',
- type: 'number',
- align: 'right',
- width: 100,
- rules: [
- {
- required: true,
- message: '请输入字典排序',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '封存',
- prop: 'isSealed',
- type: 'switch',
- align: 'center',
- width: 100,
- dicData: [
- {
- label: '否',
- value: 0,
- },
- {
- label: '是',
- value: 1,
- },
- ],
- value: 0,
- slot: true,
- rules: [
- {
- required: true,
- message: '请选择封存',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典备注',
- prop: 'remark',
- hide: true,
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 32,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 10,
+ border: true,
+ index: true,
+ selection: true,
+ viewBtn: true,
+ menuWidth: 250,
+ dialogWidth: 880,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '字典编号',
+ prop: 'code',
+ search: true,
+ slot: true,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典名称',
+ prop: 'dictValue',
+ search: true,
+ align: 'center',
+ rules: [
+ {
+ required: true,
+ message: '请输入字典名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典排序',
+ prop: 'sort',
+ type: 'number',
+ align: 'right',
+ width: 100,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典排序',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '封存',
+ prop: 'isSealed',
+ type: 'switch',
+ align: 'center',
+ width: 100,
+ dicData: [
+ {
+ label: '否',
+ value: 0,
+ },
+ {
+ label: '是',
+ value: 1,
+ },
+ ],
+ value: 0,
+ slot: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择封存',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典备注',
+ prop: 'remark',
+ hide: true,
+ },
+ ],
+}
export const optionChild = {
- height: 'auto',
- calcHeight: 95,
- tip: false,
- searchShow: true,
- searchMenuSpan: 10,
- tree: true,
- border: true,
- index: true,
- selection: true,
- viewBtn: true,
- menuWidth: 300,
- dialogWidth: 880,
- dialogClickModal: false,
- column: [
- {
- label: '字典编号',
- prop: 'code',
- addDisabled: true,
- editDisabled: true,
- search: true,
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入字典编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典名称',
- prop: 'dictValue',
- search: true,
- align: 'center',
- rules: [
- {
- required: true,
- message: '请输入字典名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '上级字典',
- prop: 'parentId',
- type: 'tree',
- dicData: [],
- hide: true,
- props: {
- label: 'title',
- },
- addDisabled: true,
- editDisabled: true,
- rules: [
- {
- required: false,
- message: '请选择上级字典',
- trigger: 'click',
- },
- ],
- },
- {
- label: '字典键值',
- prop: 'dictKey',
- width: 85,
- rules: [
- {
- required: true,
- message: '请输入字典键值',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典排序',
- prop: 'sort',
- type: 'number',
- align: 'right',
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入字典排序',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '封存',
- prop: 'isSealed',
- type: 'switch',
- align: 'center',
- width: 80,
- dicData: [
- {
- label: '否',
- value: 0,
- },
- {
- label: '是',
- value: 1,
- },
- ],
- value: 0,
- slot: true,
- rules: [
- {
- required: true,
- message: '请选择封存',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典备注',
- prop: 'remark',
- hide: true,
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 95,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 10,
+ tree: true,
+ border: true,
+ index: true,
+ selection: true,
+ viewBtn: true,
+ menuWidth: 300,
+ dialogWidth: 880,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '字典编号',
+ prop: 'code',
+ addDisabled: true,
+ editDisabled: true,
+ search: true,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典名称',
+ prop: 'dictValue',
+ search: true,
+ align: 'center',
+ rules: [
+ {
+ required: true,
+ message: '请输入字典名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '上级字典',
+ prop: 'parentId',
+ type: 'tree',
+ dicData: [],
+ hide: true,
+ props: {
+ label: 'title',
+ },
+ addDisabled: true,
+ editDisabled: true,
+ rules: [
+ {
+ required: false,
+ message: '请选择上级字典',
+ trigger: 'click',
+ },
+ ],
+ },
+ {
+ label: '字典键值',
+ prop: 'dictKey',
+ width: 85,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典键值',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典排序',
+ prop: 'sort',
+ type: 'number',
+ align: 'right',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典排序',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '封存',
+ prop: 'isSealed',
+ type: 'switch',
+ align: 'center',
+ width: 80,
+ dicData: [
+ {
+ label: '否',
+ value: 0,
+ },
+ {
+ label: '是',
+ value: 1,
+ },
+ ],
+ value: 0,
+ slot: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择封存',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典备注',
+ prop: 'remark',
+ hide: true,
+ },
+ ],
+}
diff --git a/src/option/system/dictbiz.js b/src/option/system/dictbiz.js
index 18a884b..9db8ab3 100644
--- a/src/option/system/dictbiz.js
+++ b/src/option/system/dictbiz.js
@@ -1,211 +1,211 @@
export const optionParent = {
- height: 'auto',
- calcHeight: 32,
- tip: false,
- searchShow: true,
- searchMenuSpan: 10,
- border: true,
- index: true,
- selection: true,
- viewBtn: true,
- menuWidth: 250,
- dialogWidth: 880,
- dialogClickModal: false,
- column: [
- {
- label: '字典编号',
- prop: 'code',
- search: true,
- slot: true,
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入字典编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典名称',
- prop: 'dictValue',
- search: true,
- align: 'center',
- rules: [
- {
- required: true,
- message: '请输入字典名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典排序',
- prop: 'sort',
- type: 'number',
- align: 'right',
- width: 100,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入字典排序',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '封存',
- prop: 'isSealed',
- type: 'switch',
- align: 'center',
- width: 100,
- dicData: [
- {
- label: '否',
- value: 0,
- },
- {
- label: '是',
- value: 1,
- },
- ],
- value: 0,
- slot: true,
- rules: [
- {
- required: true,
- message: '请选择封存',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典备注',
- prop: 'remark',
- hide: true,
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 32,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 10,
+ border: true,
+ index: true,
+ selection: true,
+ viewBtn: true,
+ menuWidth: 250,
+ dialogWidth: 880,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '字典编号',
+ prop: 'code',
+ search: true,
+ slot: true,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典名称',
+ prop: 'dictValue',
+ search: true,
+ align: 'center',
+ rules: [
+ {
+ required: true,
+ message: '请输入字典名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典排序',
+ prop: 'sort',
+ type: 'number',
+ align: 'right',
+ width: 100,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典排序',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '封存',
+ prop: 'isSealed',
+ type: 'switch',
+ align: 'center',
+ width: 100,
+ dicData: [
+ {
+ label: '否',
+ value: 0,
+ },
+ {
+ label: '是',
+ value: 1,
+ },
+ ],
+ value: 0,
+ slot: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择封存',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典备注',
+ prop: 'remark',
+ hide: true,
+ },
+ ],
+}
export const optionChild = {
- height: 'auto',
- calcHeight: 95,
- tip: false,
- searchShow: true,
- searchMenuSpan: 10,
- tree: true,
- border: true,
- index: true,
- selection: true,
- viewBtn: true,
- menuWidth: 300,
- dialogWidth: 880,
- dialogClickModal: false,
- column: [
- {
- label: '字典编号',
- prop: 'code',
- addDisabled: true,
- editDisabled: true,
- search: true,
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入字典编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典名称',
- prop: 'dictValue',
- search: true,
- align: 'center',
- rules: [
- {
- required: true,
- message: '请输入字典名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '上级字典',
- prop: 'parentId',
- type: 'tree',
- dicData: [],
- hide: true,
- props: {
- label: 'title',
- },
- addDisabled: true,
- editDisabled: true,
- rules: [
- {
- required: false,
- message: '请选择上级字典',
- trigger: 'click',
- },
- ],
- },
- {
- label: '字典键值',
- prop: 'dictKey',
- width: 85,
- rules: [
- {
- required: true,
- message: '请输入字典键值',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典排序',
- prop: 'sort',
- type: 'number',
- align: 'right',
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入字典排序',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '封存',
- prop: 'isSealed',
- type: 'switch',
- align: 'center',
- width: 80,
- dicData: [
- {
- label: '否',
- value: 0,
- },
- {
- label: '是',
- value: 1,
- },
- ],
- value: 0,
- slot: true,
- rules: [
- {
- required: true,
- message: '请选择封存',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '字典备注',
- prop: 'remark',
- hide: true,
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 95,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 10,
+ tree: true,
+ border: true,
+ index: true,
+ selection: true,
+ viewBtn: true,
+ menuWidth: 300,
+ dialogWidth: 880,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '字典编号',
+ prop: 'code',
+ addDisabled: true,
+ editDisabled: true,
+ search: true,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典名称',
+ prop: 'dictValue',
+ search: true,
+ align: 'center',
+ rules: [
+ {
+ required: true,
+ message: '请输入字典名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '上级字典',
+ prop: 'parentId',
+ type: 'tree',
+ dicData: [],
+ hide: true,
+ props: {
+ label: 'title',
+ },
+ addDisabled: true,
+ editDisabled: true,
+ rules: [
+ {
+ required: false,
+ message: '请选择上级字典',
+ trigger: 'click',
+ },
+ ],
+ },
+ {
+ label: '字典键值',
+ prop: 'dictKey',
+ width: 85,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典键值',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典排序',
+ prop: 'sort',
+ type: 'number',
+ align: 'right',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入字典排序',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '封存',
+ prop: 'isSealed',
+ type: 'switch',
+ align: 'center',
+ width: 80,
+ dicData: [
+ {
+ label: '否',
+ value: 0,
+ },
+ {
+ label: '是',
+ value: 1,
+ },
+ ],
+ value: 0,
+ slot: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择封存',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '字典备注',
+ prop: 'remark',
+ hide: true,
+ },
+ ],
+}
diff --git a/src/option/tool/code.js b/src/option/tool/code.js
index 2447102..6baaaed 100644
--- a/src/option/tool/code.js
+++ b/src/option/tool/code.js
@@ -1,665 +1,665 @@
-import { templateDic } from '@/const/tool/model';
+import { templateDic } from '@/const/tool/model'
export const codeOption = {
- height: 'auto',
- calcHeight: 32,
- dialogWidth: 900,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- selection: true,
- labelWidth: 120,
- menuWidth: 350,
- viewBtn: true,
- dialogClickModal: false,
- tabs: true,
- column: [
- {
- label: '模块名',
- prop: 'codeName',
- search: true,
- display: false,
- },
- {
- label: '模版类型',
- prop: 'templateType',
- type: 'select',
- dicData: templateDic,
- display: false,
- },
- {
- label: '表名',
- prop: 'tableName',
- search: true,
- display: false,
- },
- {
- label: '服务名',
- prop: 'serviceName',
- search: true,
- display: false,
- },
- {
- label: '包名',
- prop: 'packageName',
- display: false,
- },
- ],
- group: [
- {
- label: '模型配置',
- prop: 'modelSetting',
- icon: 'el-icon-tickets',
- column: [
- {
- label: '上级菜单',
- prop: 'menuId',
- type: 'tree',
- dicData: [],
- span: 24,
- hide: true,
- addDisabled: false,
- props: {
- label: 'title',
- },
- rules: [
- {
- required: true,
- message: '请选择上级菜单',
- trigger: 'click',
- },
- ],
- },
- {
- label: '数据模型',
- prop: 'modelId',
- search: true,
- span: 24,
- type: 'select',
- dicUrl: '/blade-develop/model/select',
- props: {
- label: 'modelName',
- value: 'id',
- },
- rules: [
- {
- required: true,
- message: '请选择数据模型',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模块名',
- prop: 'codeName',
- search: true,
- rules: [
- {
- required: true,
- message: '请输入模块名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '表名',
- prop: 'tableName',
- rules: [
- {
- required: true,
- message: '请输入表名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '表前缀',
- prop: 'tablePrefix',
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入表前缀',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '主键名',
- prop: 'pkName',
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入主键名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '服务名',
- prop: 'serviceName',
- search: true,
- rules: [
- {
- required: true,
- message: '请输入服务名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '包名',
- prop: 'packageName',
- overHidden: true,
- rules: [
- {
- required: true,
- message: '请输入包名',
- trigger: 'blur',
- },
- ],
- },
- ],
- },
- {
- label: '模版配置',
- prop: 'templateSetting',
- icon: 'el-icon-copy-document',
- column: [
- {
- label: '模版类型',
- prop: 'templateType',
- type: 'select',
- dicData: templateDic,
- value: 'crud',
- rules: [
- {
- required: true,
- message: '请选择模版类型',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '作者信息',
- prop: 'author',
- value: 'BladeX',
- rules: [
- {
- required: true,
- message: '请输入作者',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '子表模型',
- prop: 'subModelId',
- type: 'select',
- dicUrl: '/blade-develop/model/select',
- props: {
- label: 'modelName',
- value: 'id',
- },
- display: false,
- hide: true,
- },
- {
- label: '子表外键',
- prop: 'subFkId',
- display: false,
- hide: true,
- },
- {
- label: '树主键字段',
- prop: 'treeId',
- type: 'select',
- dicData: [],
- props: {
- label: 'jdbcComment',
- value: 'jdbcName',
- },
- display: false,
- hide: true,
- },
- {
- label: '树父主键字段',
- prop: 'treePid',
- type: 'select',
- dicData: [],
- props: {
- label: 'jdbcComment',
- value: 'jdbcName',
- },
- display: false,
- hide: true,
- },
- {
- label: '树名称字段',
- prop: 'treeName',
- type: 'select',
- dicData: [],
- props: {
- label: 'jdbcComment',
- value: 'jdbcName',
- },
- display: false,
- hide: true,
- },
- ],
- },
- {
- label: '生成配置',
- prop: 'codingSetting',
- icon: 'el-icon-printer',
- column: [
- {
- label: '基础业务',
- labelTip: '配置是否使用BladeX封装的BaseService解锁更多功能',
- prop: 'baseMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 2,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择基础业务',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '包装器',
- labelTip: '配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
- prop: 'wrapMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 2,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择包装器',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '远程调用',
- labelTip: '配置是否使用Feign远程调用',
- prop: 'feignMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 1,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择基础业务',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '代码风格',
- labelTip: '选择不同底层实现的代码模版',
- prop: 'codeStyle',
- type: 'radio',
- dicData: [
- {
- label: 'saber3',
- value: 'saber3',
- },
- {
- label: 'element-plus',
- value: 'element-plus',
- },
- ],
- value: 'saber3',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择代码风格',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '后端生成路径',
- prop: 'apiPath',
- span: 24,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入后端生成路径',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '前端生成路径',
- prop: 'webPath',
- span: 24,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入前端生成路径',
- trigger: 'blur',
- },
- ],
- },
- ],
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 32,
+ dialogWidth: 900,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ selection: true,
+ labelWidth: 120,
+ menuWidth: 350,
+ viewBtn: true,
+ dialogClickModal: false,
+ tabs: true,
+ column: [
+ {
+ label: '模块名',
+ prop: 'codeName',
+ search: true,
+ display: false,
+ },
+ {
+ label: '模版类型',
+ prop: 'templateType',
+ type: 'select',
+ dicData: templateDic,
+ display: false,
+ },
+ {
+ label: '表名',
+ prop: 'tableName',
+ search: true,
+ display: false,
+ },
+ {
+ label: '服务名',
+ prop: 'serviceName',
+ search: true,
+ display: false,
+ },
+ {
+ label: '包名',
+ prop: 'packageName',
+ display: false,
+ },
+ ],
+ group: [
+ {
+ label: '模型配置',
+ prop: 'modelSetting',
+ icon: 'el-icon-tickets',
+ column: [
+ {
+ label: '上级菜单',
+ prop: 'menuId',
+ type: 'tree',
+ dicData: [],
+ span: 24,
+ hide: true,
+ addDisabled: false,
+ props: {
+ label: 'title',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择上级菜单',
+ trigger: 'click',
+ },
+ ],
+ },
+ {
+ label: '数据模型',
+ prop: 'modelId',
+ search: true,
+ span: 24,
+ type: 'select',
+ dicUrl: '/blade-develop/model/select',
+ props: {
+ label: 'modelName',
+ value: 'id',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择数据模型',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模块名',
+ prop: 'codeName',
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入模块名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '表名',
+ prop: 'tableName',
+ rules: [
+ {
+ required: true,
+ message: '请输入表名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '表前缀',
+ prop: 'tablePrefix',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入表前缀',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '主键名',
+ prop: 'pkName',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入主键名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '服务名',
+ prop: 'serviceName',
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入服务名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '包名',
+ prop: 'packageName',
+ overHidden: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入包名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ label: '模版配置',
+ prop: 'templateSetting',
+ icon: 'el-icon-copy-document',
+ column: [
+ {
+ label: '模版类型',
+ prop: 'templateType',
+ type: 'select',
+ dicData: templateDic,
+ value: 'crud',
+ rules: [
+ {
+ required: true,
+ message: '请选择模版类型',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '作者信息',
+ prop: 'author',
+ value: 'BladeX',
+ rules: [
+ {
+ required: true,
+ message: '请输入作者',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '子表模型',
+ prop: 'subModelId',
+ type: 'select',
+ dicUrl: '/blade-develop/model/select',
+ props: {
+ label: 'modelName',
+ value: 'id',
+ },
+ display: false,
+ hide: true,
+ },
+ {
+ label: '子表外键',
+ prop: 'subFkId',
+ display: false,
+ hide: true,
+ },
+ {
+ label: '树主键字段',
+ prop: 'treeId',
+ type: 'select',
+ dicData: [],
+ props: {
+ label: 'jdbcComment',
+ value: 'jdbcName',
+ },
+ display: false,
+ hide: true,
+ },
+ {
+ label: '树父主键字段',
+ prop: 'treePid',
+ type: 'select',
+ dicData: [],
+ props: {
+ label: 'jdbcComment',
+ value: 'jdbcName',
+ },
+ display: false,
+ hide: true,
+ },
+ {
+ label: '树名称字段',
+ prop: 'treeName',
+ type: 'select',
+ dicData: [],
+ props: {
+ label: 'jdbcComment',
+ value: 'jdbcName',
+ },
+ display: false,
+ hide: true,
+ },
+ ],
+ },
+ {
+ label: '生成配置',
+ prop: 'codingSetting',
+ icon: 'el-icon-printer',
+ column: [
+ {
+ label: '基础业务',
+ labelTip: '配置是否使用BladeX封装的BaseService解锁更多功能',
+ prop: 'baseMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 2,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择基础业务',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '包装器',
+ labelTip: '配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
+ prop: 'wrapMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 2,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择包装器',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '远程调用',
+ labelTip: '配置是否使用Feign远程调用',
+ prop: 'feignMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 1,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择基础业务',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '代码风格',
+ labelTip: '选择不同底层实现的代码模版',
+ prop: 'codeStyle',
+ type: 'radio',
+ dicData: [
+ {
+ label: 'saber3',
+ value: 'saber3',
+ },
+ {
+ label: 'element-plus',
+ value: 'element-plus',
+ },
+ ],
+ value: 'saber3',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择代码风格',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '后端生成路径',
+ prop: 'apiPath',
+ span: 24,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入后端生成路径',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '前端生成路径',
+ prop: 'webPath',
+ span: 24,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入前端生成路径',
+ trigger: 'blur',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+}
export const genOption = {
- labelWidth: 120,
- column: [
- {
- label: '上级菜单',
- prop: 'menuId',
- type: 'tree',
- dicData: [],
- span: 24,
- hide: true,
- addDisabled: false,
- props: {
- label: 'title',
- },
- rules: [
- {
- required: true,
- message: '请选择上级菜单',
- trigger: 'click',
- },
- ],
- },
- {
- label: '数据源',
- prop: 'datasourceId',
- search: true,
- span: 24,
- type: 'select',
- dicUrl: '/blade-develop/datasource/select',
- props: {
- label: 'name',
- value: 'id',
- },
- rules: [
- {
- required: true,
- message: '请选择数据源',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '物理表名',
- prop: 'modelTable',
- type: 'tree',
- slot: true,
- filterable: true,
- span: 24,
- display: true,
- dicData: [],
- props: {
- label: 'comment',
- value: 'name',
- },
- rules: [
- {
- required: true,
- message: '请输入数据库表名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '表单设计',
- prop: 'modelForm',
- type: 'select',
- props: {
- label: 'name',
- value: 'id',
- },
- dicData: [],
- filterable: true,
- display: false,
- span: 24,
- },
- {
- label: '模型类名',
- prop: 'modelClass',
- display: false,
- disabled: true,
- rules: [
- {
- required: true,
- message: '请输入模型类名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模型编号',
- prop: 'modelCode',
- display: false,
- rules: [
- {
- required: true,
- message: '请输入模型编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '模块名',
- prop: 'codeName',
- display: false,
- rules: [
- {
- required: true,
- message: '请输入模块名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '表名',
- prop: 'tableName',
- display: false,
- rules: [
- {
- required: true,
- message: '请输入表名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '表前缀',
- prop: 'tablePrefix',
- display: false,
- rules: [
- {
- required: true,
- message: '请输入表前缀',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '主键名',
- prop: 'pkName',
- display: false,
- rules: [
- {
- required: true,
- message: '请输入主键名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '服务名',
- prop: 'serviceName',
- search: true,
- rules: [
- {
- required: true,
- message: '请输入服务名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '包名',
- prop: 'packageName',
- overHidden: true,
- rules: [
- {
- required: true,
- message: '请输入包名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '基础业务',
- labelTip: '配置是否使用BladeX封装的BaseService解锁更多功能',
- prop: 'baseMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 2,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择基础业务',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '包装器',
- labelTip: '配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
- prop: 'wrapMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 2,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择包装器',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '远程调用',
- labelTip: '配置是否使用Feign远程调用',
- prop: 'feignMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 1,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择基础业务',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '代码风格',
- labelTip: '选择不同底层实现的代码模版',
- prop: 'codeStyle',
- type: 'radio',
- dicData: [
- {
- label: 'saber3',
- value: 'saber3',
- },
- {
- label: 'element-plus',
- value: 'element-plus',
- },
- ],
- value: 'saber3',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择代码风格',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '后端生成路径',
- prop: 'apiPath',
- span: 24,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入后端生成路径',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '前端生成路径',
- prop: 'webPath',
- span: 24,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入前端生成路径',
- trigger: 'blur',
- },
- ],
- },
- ],
-};
+ labelWidth: 120,
+ column: [
+ {
+ label: '上级菜单',
+ prop: 'menuId',
+ type: 'tree',
+ dicData: [],
+ span: 24,
+ hide: true,
+ addDisabled: false,
+ props: {
+ label: 'title',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择上级菜单',
+ trigger: 'click',
+ },
+ ],
+ },
+ {
+ label: '数据源',
+ prop: 'datasourceId',
+ search: true,
+ span: 24,
+ type: 'select',
+ dicUrl: '/blade-develop/datasource/select',
+ props: {
+ label: 'name',
+ value: 'id',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择数据源',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '物理表名',
+ prop: 'modelTable',
+ type: 'tree',
+ slot: true,
+ filterable: true,
+ span: 24,
+ display: true,
+ dicData: [],
+ props: {
+ label: 'comment',
+ value: 'name',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请输入数据库表名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '表单设计',
+ prop: 'modelForm',
+ type: 'select',
+ props: {
+ label: 'name',
+ value: 'id',
+ },
+ dicData: [],
+ filterable: true,
+ display: false,
+ span: 24,
+ },
+ {
+ label: '模型类名',
+ prop: 'modelClass',
+ display: false,
+ disabled: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入模型类名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模型编号',
+ prop: 'modelCode',
+ display: false,
+ rules: [
+ {
+ required: true,
+ message: '请输入模型编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '模块名',
+ prop: 'codeName',
+ display: false,
+ rules: [
+ {
+ required: true,
+ message: '请输入模块名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '表名',
+ prop: 'tableName',
+ display: false,
+ rules: [
+ {
+ required: true,
+ message: '请输入表名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '表前缀',
+ prop: 'tablePrefix',
+ display: false,
+ rules: [
+ {
+ required: true,
+ message: '请输入表前缀',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '主键名',
+ prop: 'pkName',
+ display: false,
+ rules: [
+ {
+ required: true,
+ message: '请输入主键名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '服务名',
+ prop: 'serviceName',
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入服务名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '包名',
+ prop: 'packageName',
+ overHidden: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入包名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '基础业务',
+ labelTip: '配置是否使用BladeX封装的BaseService解锁更多功能',
+ prop: 'baseMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 2,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择基础业务',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '包装器',
+ labelTip: '配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
+ prop: 'wrapMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 2,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择包装器',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '远程调用',
+ labelTip: '配置是否使用Feign远程调用',
+ prop: 'feignMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 1,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择基础业务',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '代码风格',
+ labelTip: '选择不同底层实现的代码模版',
+ prop: 'codeStyle',
+ type: 'radio',
+ dicData: [
+ {
+ label: 'saber3',
+ value: 'saber3',
+ },
+ {
+ label: 'element-plus',
+ value: 'element-plus',
+ },
+ ],
+ value: 'saber3',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择代码风格',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '后端生成路径',
+ prop: 'apiPath',
+ span: 24,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入后端生成路径',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '前端生成路径',
+ prop: 'webPath',
+ span: 24,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入前端生成路径',
+ trigger: 'blur',
+ },
+ ],
+ },
+ ],
+}
diff --git a/src/option/tool/codesetting.js b/src/option/tool/codesetting.js
index 2d53d2c..b71966a 100644
--- a/src/option/tool/codesetting.js
+++ b/src/option/tool/codesetting.js
@@ -1,229 +1,229 @@
export default {
- height: 'auto',
- calcHeight: 50,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- viewBtn: true,
- grid: true,
- selection: true,
- labelWidth: 120,
- searchLabelWidth: 100,
- menuWidth: 320,
- dialogClickModal: false,
- column: [
- {
- label: '配置名称',
- labelTip: '用于定义本配置的代表名称,实际不参与代码生成',
- prop: 'name',
- gridRow: true,
- search: true,
- rules: [
- {
- required: true,
- message: '请输入配置名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '配置编号',
- labelTip: '用于定义本配置的代表编号,实际不参与代码生成',
- prop: 'code',
- gridRow: true,
- search: true,
- rules: [
- {
- required: true,
- message: '请输入配置编号',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '上级菜单',
- prop: 'menuId',
- type: 'tree',
- dicData: [],
- span: 24,
- hide: true,
- addDisabled: false,
- props: {
- label: 'title',
- },
- rules: [
- {
- required: true,
- message: '请选择上级菜单',
- trigger: 'click',
- },
- ],
- },
- {
- label: '是否启用',
- prop: 'status',
- span: 24,
- width: 85,
- align: 'center',
- slot: true,
- gridRow: true,
- addDisplay: false,
- editDisplay: false,
- viewDisplay: false,
- },
- {
- label: '配置参数',
- prop: 'settings',
- display: false,
- gridRow: true,
- overHidden: true,
- rules: [
- {
- required: true,
- message: '请输入服务名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '服务名',
- prop: 'serviceName',
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入服务名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '包名',
- prop: 'packageName',
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入包名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '基础业务',
- labelTip: '配置是否使用BladeX封装的BaseService解锁更多功能',
- prop: 'baseMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 2,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择基础业务',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '包装器',
- labelTip: '配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
- prop: 'wrapMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 2,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择包装器',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '远程调用',
- labelTip: '配置是否使用Feign远程调用',
- prop: 'feignMode',
- type: 'radio',
- dicUrl: '/blade-system/dict/dictionary?code=yes_no',
- props: {
- label: 'dictValue',
- value: 'dictKey',
- },
- value: 1,
- dataType: 'number',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择基础业务',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '代码风格',
- labelTip: '选择不同底层实现的代码模版',
- prop: 'codeStyle',
- type: 'radio',
- dicData: [
- {
- label: 'saber3',
- value: 'saber3',
- },
- {
- label: 'element-plus',
- value: 'element-plus',
- },
- ],
- value: 'saber3',
- hide: true,
- rules: [
- {
- required: true,
- message: '请选择代码风格',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '后端生成路径',
- prop: 'apiPath',
- span: 24,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入后端生成路径',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '前端生成路径',
- prop: 'webPath',
- span: 24,
- hide: true,
- rules: [
- {
- required: true,
- message: '请输入前端生成路径',
- trigger: 'blur',
- },
- ],
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 50,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ viewBtn: true,
+ grid: true,
+ selection: true,
+ labelWidth: 120,
+ searchLabelWidth: 100,
+ menuWidth: 320,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '配置名称',
+ labelTip: '用于定义本配置的代表名称,实际不参与代码生成',
+ prop: 'name',
+ gridRow: true,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入配置名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '配置编号',
+ labelTip: '用于定义本配置的代表编号,实际不参与代码生成',
+ prop: 'code',
+ gridRow: true,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入配置编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '上级菜单',
+ prop: 'menuId',
+ type: 'tree',
+ dicData: [],
+ span: 24,
+ hide: true,
+ addDisabled: false,
+ props: {
+ label: 'title',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择上级菜单',
+ trigger: 'click',
+ },
+ ],
+ },
+ {
+ label: '是否启用',
+ prop: 'status',
+ span: 24,
+ width: 85,
+ align: 'center',
+ slot: true,
+ gridRow: true,
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ },
+ {
+ label: '配置参数',
+ prop: 'settings',
+ display: false,
+ gridRow: true,
+ overHidden: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入服务名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '服务名',
+ prop: 'serviceName',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入服务名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '包名',
+ prop: 'packageName',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入包名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '基础业务',
+ labelTip: '配置是否使用BladeX封装的BaseService解锁更多功能',
+ prop: 'baseMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 2,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择基础业务',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '包装器',
+ labelTip: '配置是否使用Wrapper包装器来拓展Controller返回列表的字段',
+ prop: 'wrapMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 2,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择包装器',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '远程调用',
+ labelTip: '配置是否使用Feign远程调用',
+ prop: 'feignMode',
+ type: 'radio',
+ dicUrl: '/blade-system/dict/dictionary?code=yes_no',
+ props: {
+ label: 'dictValue',
+ value: 'dictKey',
+ },
+ value: 1,
+ dataType: 'number',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择基础业务',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '代码风格',
+ labelTip: '选择不同底层实现的代码模版',
+ prop: 'codeStyle',
+ type: 'radio',
+ dicData: [
+ {
+ label: 'saber3',
+ value: 'saber3',
+ },
+ {
+ label: 'element-plus',
+ value: 'element-plus',
+ },
+ ],
+ value: 'saber3',
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请选择代码风格',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '后端生成路径',
+ prop: 'apiPath',
+ span: 24,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入后端生成路径',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '前端生成路径',
+ prop: 'webPath',
+ span: 24,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: '请输入前端生成路径',
+ trigger: 'blur',
+ },
+ ],
+ },
+ ],
+}
diff --git a/src/option/tool/formsetting.js b/src/option/tool/formsetting.js
index 9fb0b62..038ff49 100644
--- a/src/option/tool/formsetting.js
+++ b/src/option/tool/formsetting.js
@@ -1,95 +1,95 @@
export default {
- height: 'auto',
- calcHeight: 50,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- viewBtn: true,
- grid: true,
- selection: true,
- labelWidth: 120,
- searchLabelWidth: 100,
- menuWidth: 320,
- dialogWidth: 500,
- dialogClickModal: false,
- column: [
- {
- label: '数据源',
- labelTip: '数据源管理配置的数据源列表',
- prop: 'datasourceId',
- hide: true,
- editDisplay: false,
- viewDisplay: false,
- span: 24,
- type: 'select',
- dicUrl: '/blade-develop/datasource/select',
- props: {
- label: 'name',
- value: 'id',
- },
- rules: [
- {
- required: true,
- message: '请选择数据源',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '物理表名',
- labelTip: '从数据源列表选择的物理表名',
- filterable: true,
- prop: 'modelTable',
- type: 'tree',
- span: 24,
- hide: true,
- editDisplay: false,
- viewDisplay: false,
- dicData: [],
- props: {
- label: 'comment',
- value: 'name',
- },
- rules: [
- {
- required: true,
- message: '请输入数据库表名',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '表单名称',
- labelTip: '用于定义本配置的代表名称,默认为数据库表说明',
- prop: 'name',
- gridRow: true,
- search: true,
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入表单名称',
- trigger: 'blur',
- },
- ],
- },
- {
- label: '关联表名',
- labelTip: '用于定义本配置的代表编号,默认为数据库表名,在代码快速生成时会关联匹配',
- prop: 'code',
- gridRow: true,
- search: true,
- disabled: true,
- span: 24,
- rules: [
- {
- required: true,
- message: '请输入表单编号',
- trigger: 'blur',
- },
- ],
- },
- ],
-};
+ height: 'auto',
+ calcHeight: 50,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ viewBtn: true,
+ grid: true,
+ selection: true,
+ labelWidth: 120,
+ searchLabelWidth: 100,
+ menuWidth: 320,
+ dialogWidth: 500,
+ dialogClickModal: false,
+ column: [
+ {
+ label: '数据源',
+ labelTip: '数据源管理配置的数据源列表',
+ prop: 'datasourceId',
+ hide: true,
+ editDisplay: false,
+ viewDisplay: false,
+ span: 24,
+ type: 'select',
+ dicUrl: '/blade-develop/datasource/select',
+ props: {
+ label: 'name',
+ value: 'id',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请选择数据源',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '物理表名',
+ labelTip: '从数据源列表选择的物理表名',
+ filterable: true,
+ prop: 'modelTable',
+ type: 'tree',
+ span: 24,
+ hide: true,
+ editDisplay: false,
+ viewDisplay: false,
+ dicData: [],
+ props: {
+ label: 'comment',
+ value: 'name',
+ },
+ rules: [
+ {
+ required: true,
+ message: '请输入数据库表名',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '表单名称',
+ labelTip: '用于定义本配置的代表名称,默认为数据库表说明',
+ prop: 'name',
+ gridRow: true,
+ search: true,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入表单名称',
+ trigger: 'blur',
+ },
+ ],
+ },
+ {
+ label: '关联表名',
+ labelTip: '用于定义本配置的代表编号,默认为数据库表名,在代码快速生成时会关联匹配',
+ prop: 'code',
+ gridRow: true,
+ search: true,
+ disabled: true,
+ span: 24,
+ rules: [
+ {
+ required: true,
+ message: '请输入表单编号',
+ trigger: 'blur',
+ },
+ ],
+ },
+ ],
+}
diff --git a/src/option/user/info.js b/src/option/user/info.js
index 77eae60..42be014 100644
--- a/src/option/user/info.js
+++ b/src/option/user/info.js
@@ -1,84 +1,84 @@
export default {
- tabs: true,
- tabsActive: 1,
- group: [
- {
- label: '个人信息',
- prop: 'info',
- column: [
- {
- label: '头像',
- type: 'upload',
- listType: 'picture-img',
- propsHttp: {
- res: 'data',
- url: 'link',
- },
- action: '/blade-resource/oss/endpoint/put-file',
- tip: '只能上传jpg/png用户头像,且不超过500kb',
- span: 12,
- row: true,
- prop: 'avatar',
- },
- {
- prefixIcon: 'el-icon-bell',
- label: '姓名',
- span: 12,
- row: true,
- prop: 'realName',
- },
- {
- prefixIcon: 'el-icon-user',
- label: '用户名',
- span: 12,
- row: true,
- prop: 'name',
- },
- {
- prefixIcon: 'el-icon-iphone',
- label: '手机号',
- span: 12,
- row: true,
- prop: 'phone',
- },
- {
- prefixIcon: 'el-icon-message',
- label: '邮箱',
- prop: 'email',
- span: 12,
- row: true,
- },
- ],
- },
- {
- label: '修改密码',
- prop: 'password',
- column: [
- {
- prefixIcon: 'el-icon-lock',
- label: '原密码',
- span: 12,
- row: true,
- type: 'password',
- prop: 'oldPassword',
- },
- {
- prefixIcon: 'el-icon-lock',
- label: '新密码',
- span: 12,
- row: true,
- type: 'password',
- prop: 'newPassword',
- },
- {
- prefixIcon: 'el-icon-lock',
- label: '确认密码',
- span: 12,
- row: true,
- type: 'password',
- prop: 'newPassword1',
- },
- ],
- },
- ],
-};
+ tabs: true,
+ tabsActive: 1,
+ group: [
+ {
+ label: '个人信息',
+ prop: 'info',
+ column: [
+ {
+ label: '头像',
+ type: 'upload',
+ listType: 'picture-img',
+ propsHttp: {
+ res: 'data',
+ url: 'link',
+ },
+ action: '/blade-resource/oss/endpoint/put-file',
+ tip: '只能上传jpg/png用户头像,且不超过500kb',
+ span: 12,
+ row: true,
+ prop: 'avatar',
+ },
+ {
+ prefixIcon: 'el-icon-bell',
+ label: '姓名',
+ span: 12,
+ row: true,
+ prop: 'realName',
+ },
+ {
+ prefixIcon: 'el-icon-user',
+ label: '用户名',
+ span: 12,
+ row: true,
+ prop: 'name',
+ },
+ {
+ prefixIcon: 'el-icon-iphone',
+ label: '手机号',
+ span: 12,
+ row: true,
+ prop: 'phone',
+ },
+ {
+ prefixIcon: 'el-icon-message',
+ label: '邮箱',
+ prop: 'email',
+ span: 12,
+ row: true,
+ },
+ ],
+ },
+ {
+ label: '修改密码',
+ prop: 'password',
+ column: [
+ {
+ prefixIcon: 'el-icon-lock',
+ label: '原密码',
+ span: 12,
+ row: true,
+ type: 'password',
+ prop: 'oldPassword',
+ },
+ {
+ prefixIcon: 'el-icon-lock',
+ label: '新密码',
+ span: 12,
+ row: true,
+ type: 'password',
+ prop: 'newPassword',
+ },
+ {
+ prefixIcon: 'el-icon-lock',
+ label: '确认密码',
+ span: 12,
+ row: true,
+ type: 'password',
+ prop: 'newPassword1',
+ },
+ ],
+ },
+ ],
+}
diff --git a/src/permission.js b/src/permission.js
index cabf2b8..bb7604b 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -1,58 +1,58 @@
-import router from './router/';
-import store from './store';
-import { getToken } from '@/utils/auth';
-import NProgress from 'nprogress'; // progress bar
-import 'nprogress/nprogress.css'; // progress bar style
-NProgress.configure({ showSpinner: false });
-const lockPage = '/lock'; //锁屏页
+import router from './router/'
+import store from './store'
+import { getToken } from '@/utils/auth'
+import NProgress from 'nprogress' // progress bar
+import 'nprogress/nprogress.css' // progress bar style
+NProgress.configure({ showSpinner: false })
+const lockPage = '/lock' //锁屏页
router.beforeEach((to, from, next) => {
- const meta = to.meta || {};
- const isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
- store.commit('SET_IS_MENU', isMenu === undefined);
- if (getToken()) {
- if (store.getters.isLock && to.path !== lockPage) {
- //如果系统激活锁屏,全部跳转到锁屏页
- next({ path: lockPage });
- } else if (to.path === '/login') {
- //如果登录成功访问登录页跳转到主页
- next({ path: '/' });
- } else {
- if (store.getters.token.length === 0) {
- store.dispatch('FedLogOut').then(() => {
- next({ path: '/login' });
- });
- } else {
- const meta = to.meta || {};
- const query = to.query || {};
- if (meta.target) {
- window.open(query.url.replace(/#/g, '&'));
- return;
- } else if (meta.isTab !== false) {
- store.commit('ADD_TAG', {
- name: query.name || to.name,
- path: to.path,
- fullPath: to.path,
- params: to.params,
- query: to.query,
- meta: meta,
- });
- }
- next();
- }
- }
- } else {
- //判断是否需要认证,没有登录访问去登录页
- if (meta.isAuth === false) {
- next();
- } else {
- next('/login');
- }
- }
-});
+ const meta = to.meta || {}
+ const isMenu = meta.menu === undefined ? to.query.menu : meta.menu
+ store.commit('SET_IS_MENU', isMenu === undefined)
+ if (getToken()) {
+ if (store.getters.isLock && to.path !== lockPage) {
+ //如果系统激活锁屏,全部跳转到锁屏页
+ next({ path: lockPage })
+ } else if (to.path === '/login') {
+ //如果登录成功访问登录页跳转到主页
+ next({ path: '/' })
+ } else {
+ if (store.getters.token.length === 0) {
+ store.dispatch('FedLogOut').then(() => {
+ next({ path: '/login' })
+ })
+ } else {
+ const meta = to.meta || {}
+ const query = to.query || {}
+ if (meta.target) {
+ window.open(query.url.replace(/#/g, '&'))
+ return
+ } else if (meta.isTab !== false) {
+ store.commit('ADD_TAG', {
+ name: query.name || to.name,
+ path: to.path,
+ fullPath: to.path,
+ params: to.params,
+ query: to.query,
+ meta: meta,
+ })
+ }
+ next()
+ }
+ }
+ } else {
+ //判断是否需要认证,没有登录访问去登录页
+ if (meta.isAuth === false) {
+ next()
+ } else {
+ next('/login')
+ }
+ }
+})
router.afterEach(to => {
- NProgress.done();
- let title = router.$avueRouter.generateTitle(to, { label: 'name' });
- router.$avueRouter.setTitle(title);
- store.commit('SET_IS_SEARCH', false);
-});
+ NProgress.done()
+ let title = router.$avueRouter.generateTitle(to, { label: 'name' })
+ router.$avueRouter.setTitle(title)
+ store.commit('SET_IS_SEARCH', false)
+})
diff --git a/src/router/avue-router.js b/src/router/avue-router.js
index 4797812..e0fa674 100644
--- a/src/router/avue-router.js
+++ b/src/router/avue-router.js
@@ -1,171 +1,171 @@
-import website from '@/config/website';
+import website from '@/config/website'
-const modules = import.meta.glob('../**/**/*.vue');
+const modules = import.meta.glob('../**/**/*.vue')
function isURL(s) {
- return /^http[s]?:\/\/.*/.test(s);
+ return /^http[s]?:\/\/.*/.test(s)
}
let RouterPlugin = function () {
- this.$router = null;
- this.$store = null;
-};
+ this.$router = null
+ this.$store = null
+}
RouterPlugin.install = function (option = {}) {
- this.$router = option.router;
- this.$store = option.store;
- let i18n = option.i18n.global;
- this.$router.$avueRouter = {
- safe: this,
- // 设置标题
- setTitle: title => {
- const defaultTitle = i18n.t('title');
- title = title ? `${title} | ${defaultTitle}` : defaultTitle;
- document.title = title;
- },
- closeTag: value => {
- let tag = value || this.$store.getters.tag;
- if (typeof value === 'string') {
- tag = this.$store.getters.tagList.find(ele => ele.fullPath === value);
- }
- this.$store.commit('DEL_TAG', tag);
- },
- generateTitle: (item, props = {}) => {
- let query = item[props.query || 'query'] || {};
- let title = query.name || item[props.label || 'label'];
- let meta = item[props.meta || 'meta'] || {};
- let key = meta.i18n;
- if (key) {
- const hasKey = i18n.te('route.' + key);
- if (hasKey) return i18n.t('route.' + key);
- }
- return title ? title.split(',')[0] : title;
- },
- //动态路由
- formatRoutes: function (aMenu = [], first) {
- const aRouter = [];
- const propsDefault = website.menu;
+ this.$router = option.router
+ this.$store = option.store
+ let i18n = option.i18n.global
+ this.$router.$avueRouter = {
+ safe: this,
+ // 设置标题
+ setTitle: title => {
+ const defaultTitle = i18n.t('title')
+ title = title ? `${title} | ${defaultTitle}` : defaultTitle
+ document.title = title
+ },
+ closeTag: value => {
+ let tag = value || this.$store.getters.tag
+ if (typeof value === 'string') {
+ tag = this.$store.getters.tagList.find(ele => ele.fullPath === value)
+ }
+ this.$store.commit('DEL_TAG', tag)
+ },
+ generateTitle: (item, props = {}) => {
+ let query = item[props.query || 'query'] || {}
+ let title = query.name || item[props.label || 'label']
+ let meta = item[props.meta || 'meta'] || {}
+ let key = meta.i18n
+ if (key) {
+ const hasKey = i18n.te('route.' + key)
+ if (hasKey) return i18n.t('route.' + key)
+ }
+ return title ? title.split(',')[0] : title
+ },
+ //动态路由
+ formatRoutes: function (aMenu = [], first) {
+ const aRouter = []
+ const propsDefault = website.menu
- if (aMenu && aMenu.length === 0) return;
- for (let i = 0; i < aMenu.length; i++) {
- const oMenu = aMenu[i];
- let path = oMenu[propsDefault.path],
- isComponent = true,
- component = oMenu.component,
- name = oMenu[propsDefault.label] + ',' + oMenu.id,
- icon = oMenu[propsDefault.icon],
- children = oMenu[propsDefault.children],
- query = oMenu[propsDefault.query],
- meta = oMenu[propsDefault.meta];
- if (option.keepAlive) {
- meta.keepAlive = option.keepAlive;
- }
- const isChild = !!(children && children.length !== 0);
- const oRouter = {
- path: path,
- component: (() => {
- // 判断是否为首路由
- if (first) {
- return modules[
- option.store.getters.isMacOs || !website.setting.menu
- ? '../page/index/layout.vue'
- : '../page/index/index.vue'
- ];
- // 判断是否为多层路由
- } else if (isChild && !first) {
- return modules['../page/index/layout.vue'];
- // 判断是否为最终的页面视图
- } else {
- let result = modules[`../${component}.vue`];
- if (result) result().then(mod => (mod.default.name = path));
- else {
- isComponent = false;
- }
- return result;
- }
- })(),
- name,
- icon,
- meta,
- query,
- redirect: (() => {
- if (!isChild && first) return `${path}`;
- else return '';
- })(),
- // 处理是否为一级路由
- children: !isChild
- ? (() => {
- if (first) {
- oMenu[propsDefault.path] = `${path}`;
- let result = modules[`../${component}.vue`];
- if (result) result().then(mod => (mod.default.name = path));
- else {
- isComponent = false;
- }
- return [
- {
- component: result,
- icon: icon,
- name: name,
- meta: meta,
- query: query,
- path: '',
- },
- ];
- }
- return [];
- })()
- : (() => {
- return this.formatRoutes(children, false);
- })(),
- };
- if (!isURL(path) && isComponent) aRouter.push(oRouter);
- }
- if (first) {
- aRouter.forEach(ele => this.safe.$router.addRoute(ele));
- } else {
- return aRouter;
- }
- },
- };
-};
+ if (aMenu && aMenu.length === 0) return
+ for (let i = 0; i < aMenu.length; i++) {
+ const oMenu = aMenu[i]
+ let path = oMenu[propsDefault.path],
+ isComponent = true,
+ component = oMenu.component,
+ name = oMenu[propsDefault.label] + ',' + oMenu.id,
+ icon = oMenu[propsDefault.icon],
+ children = oMenu[propsDefault.children],
+ query = oMenu[propsDefault.query],
+ meta = oMenu[propsDefault.meta]
+ if (option.keepAlive) {
+ meta.keepAlive = option.keepAlive
+ }
+ const isChild = !!(children && children.length !== 0)
+ const oRouter = {
+ path: path,
+ component: (() => {
+ // 判断是否为首路由
+ if (first) {
+ return modules[
+ option.store.getters.isMacOs || !website.setting.menu
+ ? '../page/index/layout.vue'
+ : '../page/index/index.vue'
+ ]
+ // 判断是否为多层路由
+ } else if (isChild && !first) {
+ return modules['../page/index/layout.vue']
+ // 判断是否为最终的页面视图
+ } else {
+ let result = modules[`../${component}.vue`]
+ if (result) result().then(mod => (mod.default.name = path))
+ else {
+ isComponent = false
+ }
+ return result
+ }
+ })(),
+ name,
+ icon,
+ meta,
+ query,
+ redirect: (() => {
+ if (!isChild && first) return `${path}`
+ else return ''
+ })(),
+ // 处理是否为一级路由
+ children: !isChild
+ ? (() => {
+ if (first) {
+ oMenu[propsDefault.path] = `${path}`
+ let result = modules[`../${component}.vue`]
+ if (result) result().then(mod => (mod.default.name = path))
+ else {
+ isComponent = false
+ }
+ return [
+ {
+ component: result,
+ icon: icon,
+ name: name,
+ meta: meta,
+ query: query,
+ path: '',
+ },
+ ]
+ }
+ return []
+ })()
+ : (() => {
+ return this.formatRoutes(children, false)
+ })(),
+ }
+ if (!isURL(path) && isComponent) aRouter.push(oRouter)
+ }
+ if (first) {
+ aRouter.forEach(ele => this.safe.$router.addRoute(ele))
+ } else {
+ return aRouter
+ }
+ },
+ }
+}
export const formatPath = (ele, first) => {
- const propsDefault = website.menu;
- const icon = ele[propsDefault.icon];
- ele[propsDefault.icon] = !icon ? propsDefault.iconDefault : icon;
- ele.meta = {
- keepAlive: ele.isOpen === 2,
- };
- const iframeComponent = 'components/iframe/main';
- const iframeSrc = href => {
- return href.replace(/&/g, '#');
- };
- const isChild = !!(ele[propsDefault.children] && ele[propsDefault.children].length !== 0);
- if (!isChild && first) {
- ele.component = 'views' + ele[propsDefault.path];
- if (isURL(ele[propsDefault.href])) {
- let href = ele[propsDefault.href];
- ele.component = iframeComponent;
- ele[propsDefault.query] = {
- url: iframeSrc(href),
- };
- }
- } else {
- ele[propsDefault.children] &&
- ele[propsDefault.children].forEach(child => {
- child.component = 'views' + child[propsDefault.path];
- child.meta = {
- keepAlive: child.isOpen === 2,
- };
- if (isURL(child[propsDefault.href])) {
- let href = child[propsDefault.href];
- child[propsDefault.path] = ele[propsDefault.path] + '/' + child.code;
- child.component = iframeComponent;
- child[propsDefault.query] = {
- url: iframeSrc(href),
- };
- }
- formatPath(child);
- });
- }
-};
-export default RouterPlugin;
+ const propsDefault = website.menu
+ const icon = ele[propsDefault.icon]
+ ele[propsDefault.icon] = !icon ? propsDefault.iconDefault : icon
+ ele.meta = {
+ keepAlive: ele.isOpen === 2,
+ }
+ const iframeComponent = 'components/iframe/main'
+ const iframeSrc = href => {
+ return href.replace(/&/g, '#')
+ }
+ const isChild = !!(ele[propsDefault.children] && ele[propsDefault.children].length !== 0)
+ if (!isChild && first) {
+ ele.component = 'views' + ele[propsDefault.path]
+ if (isURL(ele[propsDefault.href])) {
+ let href = ele[propsDefault.href]
+ ele.component = iframeComponent
+ ele[propsDefault.query] = {
+ url: iframeSrc(href),
+ }
+ }
+ } else {
+ ele[propsDefault.children] &&
+ ele[propsDefault.children].forEach(child => {
+ child.component = 'views' + child[propsDefault.path]
+ child.meta = {
+ keepAlive: child.isOpen === 2,
+ }
+ if (isURL(child[propsDefault.href])) {
+ let href = child[propsDefault.href]
+ child[propsDefault.path] = ele[propsDefault.path] + '/' + child.code
+ child.component = iframeComponent
+ child[propsDefault.query] = {
+ url: iframeSrc(href),
+ }
+ }
+ formatPath(child)
+ })
+ }
+}
+export default RouterPlugin
diff --git a/src/router/index.js b/src/router/index.js
index 14a8359..f814696 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,34 +1,34 @@
-import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router';
-import PageRouter from './page/';
-import ViewsRouter from './views/';
-import AvueRouter from './avue-router';
-import i18n from '@/lang';
-import Store from '@/store/';
+import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
+import PageRouter from './page/'
+import ViewsRouter from './views/'
+import AvueRouter from './avue-router'
+import i18n from '@/lang'
+import Store from '@/store/'
//创建路由
const Router = createRouter({
- base: import.meta.env.VITE_APP_BASE,
- history: createWebHashHistory(import.meta.env.VITE_APP_BASE),
- routes: [...PageRouter, ...ViewsRouter],
-});
+ base: import.meta.env.VITE_APP_BASE,
+ history: createWebHashHistory(import.meta.env.VITE_APP_BASE),
+ routes: [...PageRouter, ...ViewsRouter],
+})
AvueRouter.install({
- store: Store,
- router: Router,
- i18n: i18n,
-});
+ store: Store,
+ router: Router,
+ i18n: i18n,
+})
-Router.$avueRouter.formatRoutes(Store.getters.menuAll, true);
+Router.$avueRouter.formatRoutes(Store.getters.menuAll, true)
export function resetRouter() {
- // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限
- const newRouter = createRouter({
- history: createWebHashHistory(import.meta.env.VITE_APP_BASE),
- });
- Router.matcher = newRouter.matcher; // reset router
- AvueRouter.install(Vue, {
- router: Router,
- store: Store,
- i18n: i18n,
- });
+ // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限
+ const newRouter = createRouter({
+ history: createWebHashHistory(import.meta.env.VITE_APP_BASE),
+ })
+ Router.matcher = newRouter.matcher // reset router
+ AvueRouter.install(Vue, {
+ router: Router,
+ store: Store,
+ i18n: i18n,
+ })
}
-export default Router;
+export default Router
diff --git a/src/router/page/index.js b/src/router/page/index.js
index a937446..09a943f 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -1,72 +1,69 @@
-import Store from '@/store/';
+import Store from '@/store/'
export default [
- {
- path: '/login',
- name: '登录页',
- component: () =>
- import('@/page/login/index.vue'),
- meta: {
- keepAlive: true,
- isTab: false,
- isAuth: false,
- },
- },
- {
- path: '/oauth/redirect/:source',
- name: '第三方登录',
- component: () =>
- import('@/page/login/index.vue'),
- meta: {
- keepAlive: true,
- isTab: false,
- isAuth: false,
- },
- },
- {
- path: '/lock',
- name: '锁屏页',
- component: () =>
- import('@/page/lock/index.vue'),
- meta: {
- keepAlive: true,
- isTab: false,
- isAuth: false,
- },
- },
- {
- path: '/404',
- component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/404.vue'),
- name: '404',
- meta: {
- keepAlive: true,
- isTab: false,
- isAuth: false,
- },
- },
- {
- path: '/403',
- component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/403.vue'),
- name: '403',
- meta: {
- keepAlive: true,
- isTab: false,
- isAuth: false,
- },
- },
- {
- path: '/500',
- component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/500.vue'),
- name: '500',
- meta: {
- keepAlive: true,
- isTab: false,
- isAuth: false,
- },
- },
- {
- path: '/',
- name: '主页',
- redirect: '/index',
- },
-];
+ {
+ path: '/login',
+ name: '登录页',
+ component: () => import('@/page/login/index.vue'),
+ meta: {
+ keepAlive: true,
+ isTab: false,
+ isAuth: false,
+ },
+ },
+ {
+ path: '/oauth/redirect/:source',
+ name: '第三方登录',
+ component: () => import('@/page/login/index.vue'),
+ meta: {
+ keepAlive: true,
+ isTab: false,
+ isAuth: false,
+ },
+ },
+ {
+ path: '/lock',
+ name: '锁屏页',
+ component: () => import('@/page/lock/index.vue'),
+ meta: {
+ keepAlive: true,
+ isTab: false,
+ isAuth: false,
+ },
+ },
+ {
+ path: '/404',
+ component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/404.vue'),
+ name: '404',
+ meta: {
+ keepAlive: true,
+ isTab: false,
+ isAuth: false,
+ },
+ },
+ {
+ path: '/403',
+ component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/403.vue'),
+ name: '403',
+ meta: {
+ keepAlive: true,
+ isTab: false,
+ isAuth: false,
+ },
+ },
+ {
+ path: '/500',
+ component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/500.vue'),
+ name: '500',
+ meta: {
+ keepAlive: true,
+ isTab: false,
+ isAuth: false,
+ },
+ },
+ {
+ path: '/',
+ name: '主页',
+ redirect: '/index',
+ },
+]
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 500ca0f..b75a3e2 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1,51 +1,55 @@
-import Index from '@/layout/index.vue';
-import Store from '@/store/';
-import Layout from '@/page/index/layout.vue';
+import Index from '@/layout/index.vue'
+import Store from '@/store/'
+import Layout from '@/page/index/layout.vue'
export default [
- {
- path: '/',
- component: () => import('@/layout/index.vue'),
- redirect: '/index',
- children: [
- {
- path: 'index',
- name: '首页',
- meta: {
- i18n: 'dashboard',
- },
- component: () => import(/* webpackChunkName: "home" */ '@/views/Home/Home.vue'),
- },
- {
- path: 'signMachineNest',
- name: '单个机巢详情',
- meta: {
- i18n: 'dashboard',
- menu: false,
- },
- component: () => import(/* webpackChunkName: "TaskManage" */ '@/views/SignMachineNest/SignMachineNest.vue'),
- },
- {
- path: 'taskManage',
- name: '任务管理',
- meta: {
- i18n: 'dashboard',
- menu: false,
- },
- component: () => import(/* webpackChunkName: "TaskManage" */ '@/views/TaskManage/TaskManage.vue'),
- },
- ],
- },
- {
- path: '/info',
- component: () => import('@/layout/index.vue'),
- redirect: '/info/index',
- children: [
- {
- path: 'index',
- name: '个人信息',
- component: () => import('@/views/System/Userinfo.vue'),
- },
- ],
- },
-];
+ {
+ path: '/',
+ component: () => import('@/layout/index.vue'),
+ redirect: '/index',
+ children: [
+ {
+ path: 'index',
+ name: '首页',
+ meta: {
+ i18n: 'dashboard',
+ },
+ component: () => import(/* webpackChunkName: "home" */ '@/views/Home/Home.vue'),
+ },
+ {
+ path: 'signMachineNest',
+ name: '单个机巢详情',
+ meta: {
+ i18n: 'dashboard',
+ menu: false,
+ },
+ component: () =>
+ import(
+ /* webpackChunkName: "TaskManage" */ '@/views/SignMachineNest/SignMachineNest.vue'
+ ),
+ },
+ {
+ path: 'taskManage',
+ name: '任务管理',
+ meta: {
+ i18n: 'dashboard',
+ menu: false,
+ },
+ component: () =>
+ import(/* webpackChunkName: "TaskManage" */ '@/views/TaskManage/TaskManage.vue'),
+ },
+ ],
+ },
+ {
+ path: '/info',
+ component: () => import('@/layout/index.vue'),
+ redirect: '/info/index',
+ children: [
+ {
+ path: 'index',
+ name: '个人信息',
+ component: () => import('@/views/System/Userinfo.vue'),
+ },
+ ],
+ },
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index 22252dc..ae01a4a 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -1,38 +1,38 @@
const getters = {
- tag: state => state.tags.tag,
- language: state => state.common.language,
- setting: state => state.common.setting,
- userInfo: state => state.user.userInfo,
- colorName: state => state.common.colorName,
- themeName: state => state.common.themeName,
- isMacOs: (state, getters) => getters.themeName === 'mac-os',
- isRefresh: state => state.common.isRefresh,
- isSearch: state => state.common.isSearch,
- isHorizontal: state => state.common.setting.sidebar === 'horizontal',
- isCollapse: state => state.common.isCollapse,
- isLock: state => state.common.isLock,
- isFullScren: state => state.common.isFullScren,
- isMenu: state => state.common.isMenu,
- lockPasswd: state => state.common.lockPasswd,
- tagList: state => state.tags.tagList,
- tagsKeep: (state, getters) => {
- return getters.tagList
- .filter(ele => {
- return (ele.meta || {}).keepAlive;
- })
- .map(ele => ele.fullPath);
- },
- tagWel: state => state.tags.tagWel,
- token: state => state.user.token,
- roles: state => state.user.roles,
- permission: state => state.user.permission,
- menuId: state => state.user.menuId,
- menu: state => state.user.menu,
- menuAll: state => state.user.menuAll,
- logsList: state => state.logs.logsList,
- logsLen: state => state.logs.logsList.length || 0,
- logsFlag: (state, getters) => getters.logsLen === 0,
- flowRoutes: state => state.dict.flowRoutes,
- singleUavHome: state => state.home.singleUavHome,
-};
-export default getters;
+ tag: state => state.tags.tag,
+ language: state => state.common.language,
+ setting: state => state.common.setting,
+ userInfo: state => state.user.userInfo,
+ colorName: state => state.common.colorName,
+ themeName: state => state.common.themeName,
+ isMacOs: (state, getters) => getters.themeName === 'mac-os',
+ isRefresh: state => state.common.isRefresh,
+ isSearch: state => state.common.isSearch,
+ isHorizontal: state => state.common.setting.sidebar === 'horizontal',
+ isCollapse: state => state.common.isCollapse,
+ isLock: state => state.common.isLock,
+ isFullScren: state => state.common.isFullScren,
+ isMenu: state => state.common.isMenu,
+ lockPasswd: state => state.common.lockPasswd,
+ tagList: state => state.tags.tagList,
+ tagsKeep: (state, getters) => {
+ return getters.tagList
+ .filter(ele => {
+ return (ele.meta || {}).keepAlive
+ })
+ .map(ele => ele.fullPath)
+ },
+ tagWel: state => state.tags.tagWel,
+ token: state => state.user.token,
+ roles: state => state.user.roles,
+ permission: state => state.user.permission,
+ menuId: state => state.user.menuId,
+ menu: state => state.user.menu,
+ menuAll: state => state.user.menuAll,
+ logsList: state => state.logs.logsList,
+ logsLen: state => state.logs.logsList.length || 0,
+ logsFlag: (state, getters) => getters.logsLen === 0,
+ flowRoutes: state => state.dict.flowRoutes,
+ singleUavHome: state => state.home.singleUavHome,
+}
+export default getters
diff --git a/src/store/index.js b/src/store/index.js
index dda64e4..fabcab1 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1,22 +1,22 @@
-import { createStore } from 'vuex';
-import user from './modules/user';
-import common from './modules/common';
-import tags from './modules/tags';
-import logs from './modules/logs';
-import dict from './modules/dict';
-import getters from './getters';
-import home from '@/store/modules/home';
+import { createStore } from 'vuex'
+import user from './modules/user'
+import common from './modules/common'
+import tags from './modules/tags'
+import logs from './modules/logs'
+import dict from './modules/dict'
+import getters from './getters'
+import home from '@/store/modules/home'
const store = createStore({
- modules: {
- user,
- common,
- logs,
- tags,
- dict,
- home,
- },
- getters,
-});
+ modules: {
+ user,
+ common,
+ logs,
+ tags,
+ dict,
+ home,
+ },
+ getters,
+})
-export default store;
+export default store
diff --git a/src/store/modules/common.js b/src/store/modules/common.js
index 327732f..f798337 100644
--- a/src/store/modules/common.js
+++ b/src/store/modules/common.js
@@ -1,93 +1,93 @@
-import { setStore, getStore, removeStore } from 'utils/store';
-import website from '@/config/website';
+import { setStore, getStore, removeStore } from 'utils/store'
+import website from '@/config/website'
const common = {
- state: {
- language: getStore({ name: 'language' }) || 'zh-cn',
- isCollapse: false,
- isFullScren: false,
- isMenu: true,
- isSearch: false,
- isRefresh: true,
- isLock: getStore({ name: 'isLock' }),
- colorName: getStore({ name: 'colorName' }) || '#2C77F1',
- themeName: getStore({ name: 'themeName' }) || 'theme-go',
- lockPasswd: getStore({ name: 'lockPasswd' }) || '',
- website: website,
- setting: website.setting,
- // 地图设置
- mapSetting: {
- mode: 3, // 0为标准地图, 1为卫星地图
- roadLine: true,
- visual: '3D',
- isDark: false,
- },
- },
- mutations: {
- SET_LANGUAGE: (state, language) => {
- state.language = language;
- setStore({
- name: 'language',
- content: state.language,
- });
- },
- SET_COLLAPSE: state => {
- state.isCollapse = !state.isCollapse;
- },
- SET_IS_MENU: (state, menu) => {
- state.isMenu = menu;
- },
- SET_IS_REFRESH: (state, refresh) => {
- state.isRefresh = refresh;
- },
- SET_IS_SEARCH: (state, search) => {
- state.isSearch = search;
- },
- SET_FULLSCREN: state => {
- state.isFullScren = !state.isFullScren;
- },
- SET_LOCK: state => {
- state.isLock = true;
- setStore({
- name: 'isLock',
- content: state.isLock,
- type: 'session',
- });
- },
- SET_COLOR_NAME: (state, colorName) => {
- state.colorName = colorName;
- setStore({
- name: 'colorName',
- content: state.colorName,
- });
- },
- SET_THEME_NAME: (state, themeName) => {
- state.themeName = themeName;
- setStore({
- name: 'themeName',
- content: state.themeName,
- });
- },
- SET_LOCK_PASSWD: (state, lockPasswd) => {
- state.lockPasswd = lockPasswd;
- setStore({
- name: 'lockPasswd',
- content: state.lockPasswd,
- type: 'session',
- });
- },
- CLEAR_LOCK: state => {
- state.isLock = false;
- state.lockPasswd = '';
- removeStore({
- name: 'lockPasswd',
- type: 'session',
- });
- removeStore({
- name: 'isLock',
- type: 'session',
- });
- },
- },
-};
-export default common;
+ state: {
+ language: getStore({ name: 'language' }) || 'zh-cn',
+ isCollapse: false,
+ isFullScren: false,
+ isMenu: true,
+ isSearch: false,
+ isRefresh: true,
+ isLock: getStore({ name: 'isLock' }),
+ colorName: getStore({ name: 'colorName' }) || '#2C77F1',
+ themeName: getStore({ name: 'themeName' }) || 'theme-go',
+ lockPasswd: getStore({ name: 'lockPasswd' }) || '',
+ website: website,
+ setting: website.setting,
+ // 地图设置
+ mapSetting: {
+ mode: 3, // 0为标准地图, 1为卫星地图
+ roadLine: true,
+ visual: '3D',
+ isDark: false,
+ },
+ },
+ mutations: {
+ SET_LANGUAGE: (state, language) => {
+ state.language = language
+ setStore({
+ name: 'language',
+ content: state.language,
+ })
+ },
+ SET_COLLAPSE: state => {
+ state.isCollapse = !state.isCollapse
+ },
+ SET_IS_MENU: (state, menu) => {
+ state.isMenu = menu
+ },
+ SET_IS_REFRESH: (state, refresh) => {
+ state.isRefresh = refresh
+ },
+ SET_IS_SEARCH: (state, search) => {
+ state.isSearch = search
+ },
+ SET_FULLSCREN: state => {
+ state.isFullScren = !state.isFullScren
+ },
+ SET_LOCK: state => {
+ state.isLock = true
+ setStore({
+ name: 'isLock',
+ content: state.isLock,
+ type: 'session',
+ })
+ },
+ SET_COLOR_NAME: (state, colorName) => {
+ state.colorName = colorName
+ setStore({
+ name: 'colorName',
+ content: state.colorName,
+ })
+ },
+ SET_THEME_NAME: (state, themeName) => {
+ state.themeName = themeName
+ setStore({
+ name: 'themeName',
+ content: state.themeName,
+ })
+ },
+ SET_LOCK_PASSWD: (state, lockPasswd) => {
+ state.lockPasswd = lockPasswd
+ setStore({
+ name: 'lockPasswd',
+ content: state.lockPasswd,
+ type: 'session',
+ })
+ },
+ CLEAR_LOCK: state => {
+ state.isLock = false
+ state.lockPasswd = ''
+ removeStore({
+ name: 'lockPasswd',
+ type: 'session',
+ })
+ removeStore({
+ name: 'isLock',
+ type: 'session',
+ })
+ },
+ },
+}
+export default common
diff --git a/src/store/modules/dict.js b/src/store/modules/dict.js
index 69894ed..a7fdac5 100644
--- a/src/store/modules/dict.js
+++ b/src/store/modules/dict.js
@@ -1,36 +1,36 @@
-import { getStore, setStore } from '@/utils/store';
+import { getStore, setStore } from '@/utils/store'
-import { getDictionary } from '@/api/system/dict';
+import { getDictionary } from '@/api/system/dict'
const dict = {
- state: {
- flowRoutes: getStore({ name: 'flowRoutes' }) || {},
- },
- actions: {
- FlowRoutes({ commit }) {
- return new Promise((resolve, reject) => {
- getDictionary({ code: 'flow' })
- .then(res => {
- commit('SET_FLOW_ROUTES', res.data.data);
- resolve();
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- },
- mutations: {
- SET_FLOW_ROUTES: (state, data) => {
- state.flowRoutes = data.map(item => {
- return {
- routeKey: `${item.code}_${item.dictKey}`,
- routeValue: item.remark,
- };
- });
- setStore({ name: 'flowRoutes', content: state.flowRoutes });
- },
- },
-};
+ state: {
+ flowRoutes: getStore({ name: 'flowRoutes' }) || {},
+ },
+ actions: {
+ FlowRoutes({ commit }) {
+ return new Promise((resolve, reject) => {
+ getDictionary({ code: 'flow' })
+ .then(res => {
+ commit('SET_FLOW_ROUTES', res.data.data)
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+ },
+ mutations: {
+ SET_FLOW_ROUTES: (state, data) => {
+ state.flowRoutes = data.map(item => {
+ return {
+ routeKey: `${item.code}_${item.dictKey}`,
+ routeValue: item.remark,
+ }
+ })
+ setStore({ name: 'flowRoutes', content: state.flowRoutes })
+ },
+ },
+}
-export default dict;
+export default dict
diff --git a/src/store/modules/home.js b/src/store/modules/home.js
index 0a4e0c3..3c93ae4 100644
--- a/src/store/modules/home.js
+++ b/src/store/modules/home.js
@@ -1,4 +1,4 @@
-import { set } from "lodash";
+import { set } from 'lodash'
import { EDeviceTypeName } from '@/utils/staticData/enums'
const home = {
@@ -66,33 +66,32 @@
},
setDockOnfo: (state, info) => {
if (Object.keys(info.host).length === 0) return
-
- if (!state.deviceState.dockInfo[info.sn]) {
- state.deviceState.dockInfo[info.sn] = {}
- }
- state.deviceState.currentSn = info.sn
- state.deviceState.currentType = EDeviceTypeName.Dock
- const dock = state.deviceState.dockInfo[info.sn]
- if (info.host.mode_code !== undefined) {
- dock.basic_osd = info.host
- state.deviceState.drone_charge_state_new =
- dock.basic_osd.drone_charge_state
- return
- }
- if (info.host.sdr) {
- dock.link_osd = info.host
- return
- }
- if (info.host.job_number !== undefined) {
- dock.work_osd = info.host
- }
- },
- },
- getters:{
- test(state) {
- return state.singleUavHome.id.toString() + '65'
- }
- }
-};
-export default home;
+ if (!state.deviceState.dockInfo[info.sn]) {
+ state.deviceState.dockInfo[info.sn] = {}
+ }
+ state.deviceState.currentSn = info.sn
+ state.deviceState.currentType = EDeviceTypeName.Dock
+ const dock = state.deviceState.dockInfo[info.sn]
+ if (info.host.mode_code !== undefined) {
+ dock.basic_osd = info.host
+ state.deviceState.drone_charge_state_new = dock.basic_osd.drone_charge_state
+ return
+ }
+ if (info.host.sdr) {
+ dock.link_osd = info.host
+ return
+ }
+ if (info.host.job_number !== undefined) {
+ dock.work_osd = info.host
+ }
+ },
+ },
+ getters: {
+ test(state) {
+ return state.singleUavHome.id.toString() + '65'
+ },
+ },
+}
+
+export default home
diff --git a/src/store/modules/logs.js b/src/store/modules/logs.js
index b9d7d86..04734d6 100644
--- a/src/store/modules/logs.js
+++ b/src/store/modules/logs.js
@@ -1,49 +1,49 @@
-import { setStore, getStore } from 'utils/store';
-import dayjs from 'dayjs';
-import { sendLogs } from '@/api/user';
+import { setStore, getStore } from 'utils/store'
+import dayjs from 'dayjs'
+import { sendLogs } from '@/api/user'
const logs = {
- state: {
- logsList: getStore({ name: 'logsList' }) || [],
- },
- actions: {
- //发送错误日志
- SendLogs({ state, commit }) {
- return new Promise((resolve, reject) => {
- sendLogs(state.logsList)
- .then(() => {
- commit('CLEAR_LOGS');
- resolve();
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- },
- mutations: {
- ADD_LOGS: (state, { type, message, stack, info }) => {
- state.logsList.push(
- Object.assign(
- {
- url: window.location.href,
- time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
- },
- {
- type,
- message,
- stack,
- info: info.toString(),
- }
- )
- );
- setStore({ name: 'logsList', content: state.logsList });
- },
- CLEAR_LOGS: state => {
- state.logsList = [];
- setStore({ name: 'logsList', content: state.logsList });
- },
- },
-};
+ state: {
+ logsList: getStore({ name: 'logsList' }) || [],
+ },
+ actions: {
+ //发送错误日志
+ SendLogs({ state, commit }) {
+ return new Promise((resolve, reject) => {
+ sendLogs(state.logsList)
+ .then(() => {
+ commit('CLEAR_LOGS')
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+ },
+ mutations: {
+ ADD_LOGS: (state, { type, message, stack, info }) => {
+ state.logsList.push(
+ Object.assign(
+ {
+ url: window.location.href,
+ time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+ },
+ {
+ type,
+ message,
+ stack,
+ info: info.toString(),
+ }
+ )
+ )
+ setStore({ name: 'logsList', content: state.logsList })
+ },
+ CLEAR_LOGS: state => {
+ state.logsList = []
+ setStore({ name: 'logsList', content: state.logsList })
+ },
+ },
+}
-export default logs;
+export default logs
diff --git a/src/store/modules/tags.js b/src/store/modules/tags.js
index 1ec92a0..819c900 100644
--- a/src/store/modules/tags.js
+++ b/src/store/modules/tags.js
@@ -1,38 +1,38 @@
-import { setStore, getStore } from 'utils/store';
-import website from '@/config/website';
+import { setStore, getStore } from 'utils/store'
+import website from '@/config/website'
-const tagWel = website.fistPage;
+const tagWel = website.fistPage
const navs = {
- state: {
- tagList: getStore({ name: 'tagList' }) || [],
- tag: getStore({ name: 'tag' }) || {},
- tagWel: tagWel,
- },
- mutations: {
- ADD_TAG: (state, action) => {
- if (typeof action.name == 'function') action.name = action.name(action.query);
- state.tag = action;
- setStore({ name: 'tag', content: state.tag });
- if (state.tagList.some(ele => ele.fullPath == action.fullPath)) return;
- state.tagList.push(action);
- setStore({ name: 'tagList', content: state.tagList });
- },
- DEL_TAG: (state, action) => {
- state.tagList = state.tagList.filter(item => {
- return item.fullPath !== action.fullPath;
- });
- setStore({ name: 'tagList', content: state.tagList });
- },
- DEL_ALL_TAG: (state, tagList = []) => {
- state.tagList = tagList;
- setStore({ name: 'tagList', content: state.tagList });
- },
- DEL_TAG_OTHER: state => {
- state.tagList = state.tagList.filter(item => {
- return [state.tag.fullPath, website.fistPage.path].includes(item.fullPath);
- });
- setStore({ name: 'tagList', content: state.tagList });
- },
- },
-};
-export default navs;
+ state: {
+ tagList: getStore({ name: 'tagList' }) || [],
+ tag: getStore({ name: 'tag' }) || {},
+ tagWel: tagWel,
+ },
+ mutations: {
+ ADD_TAG: (state, action) => {
+ if (typeof action.name == 'function') action.name = action.name(action.query)
+ state.tag = action
+ setStore({ name: 'tag', content: state.tag })
+ if (state.tagList.some(ele => ele.fullPath == action.fullPath)) return
+ state.tagList.push(action)
+ setStore({ name: 'tagList', content: state.tagList })
+ },
+ DEL_TAG: (state, action) => {
+ state.tagList = state.tagList.filter(item => {
+ return item.fullPath !== action.fullPath
+ })
+ setStore({ name: 'tagList', content: state.tagList })
+ },
+ DEL_ALL_TAG: (state, tagList = []) => {
+ state.tagList = tagList
+ setStore({ name: 'tagList', content: state.tagList })
+ },
+ DEL_TAG_OTHER: state => {
+ state.tagList = state.tagList.filter(item => {
+ return [state.tag.fullPath, website.fistPage.path].includes(item.fullPath)
+ })
+ setStore({ name: 'tagList', content: state.tagList })
+ },
+ },
+}
+export default navs
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index de265d8..16ec216 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,401 +1,401 @@
-import { ELocalStorageKey } from '@/utils/http/enums';
+import { ELocalStorageKey } from '@/utils/http/enums'
import {
- setToken,
- setRefreshToken,
- removeToken,
- removeRefreshToken,
- getRefreshToken,
-} from '@/utils/auth';
-import { setStore, getStore } from '@/utils/store';
-import { validatenull } from '@/utils/validate';
-import { deepClone } from '@/utils/util';
+ setToken,
+ setRefreshToken,
+ removeToken,
+ removeRefreshToken,
+ getRefreshToken,
+} from '@/utils/auth'
+import { setStore, getStore } from '@/utils/store'
+import { validatenull } from '@/utils/validate'
+import { deepClone } from '@/utils/util'
import {
- loginByUsername,
- loginBySocial,
- loginBySso,
- loginByPhone,
- getUserInfo,
- logout,
- refreshToken,
- getButtons,
- registerUser,
-} from '@/api/user';
-import { getRoutes, getTopMenu } from '@/api/system/menu';
-import { formatPath } from '@/router/avue-router';
-import { ElMessage } from 'element-plus';
-import { encrypt } from '@/utils/sm2';
-import md5 from 'js-md5';
+ loginByUsername,
+ loginBySocial,
+ loginBySso,
+ loginByPhone,
+ getUserInfo,
+ logout,
+ refreshToken,
+ getButtons,
+ registerUser,
+} from '@/api/user'
+import { getRoutes, getTopMenu } from '@/api/system/menu'
+import { formatPath } from '@/router/avue-router'
+import { ElMessage } from 'element-plus'
+import { encrypt } from '@/utils/sm2'
+import md5 from 'js-md5'
const userInfoData = getStore({ name: 'userInfo' }) || {}
const user = {
- state: {
- // 当前选中的请求头
- selectedAreaCode: userInfoData?.detail?.areaCode || '',
- tenantId: getStore({ name: 'tenantId' }) || '',
- userInfo: userInfoData,
- permission: getStore({ name: 'permission' }) || {},
- roles: [],
- menuId: {},
- menu: getStore({ name: 'menu' }) || [],
- menuAll: getStore({ name: 'menuAll' }) || [],
- token: getStore({ name: 'token' }) || '',
- refreshToken: getStore({ name: 'refreshToken' }) || '',
- },
- actions: {
- //根据用户名登录
- LoginByUsername({ commit }, userInfo = {}) {
- return new Promise((resolve, reject) => {
- loginByUsername(
- userInfo.tenantId,
- userInfo.deptId,
- userInfo.roleId,
- userInfo.username,
- md5(userInfo.password),
- userInfo.type,
- userInfo.key,
- userInfo.code
- )
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('SET_USER_INFO', data);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //根据第三方信息登录
- LoginBySocial({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //根据单点信息登录
- LoginBySso({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- loginBySso(userInfo.state, userInfo.code)
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //根据手机信息登录
- LoginByPhone({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- loginByPhone(
- userInfo.tenantId,
- encrypt(userInfo.phone),
- userInfo.codeId,
- userInfo.codeValue
- )
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //用户注册
- RegisterUser({ commit }, userInfo = {}) {
- return new Promise((resolve, reject) => {
- registerUser(
- userInfo.tenantId,
- userInfo.name,
- userInfo.account,
- encrypt(userInfo.password),
- userInfo.phone,
- userInfo.email
- ).then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- reject(data.error_description);
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- });
- });
- },
- GetUserInfo({ commit }) {
- return new Promise((resolve, reject) => {
- getUserInfo()
- .then(res => {
- const data = res.data.data;
- commit('SET_ROLES', data.roles);
- resolve(data);
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //刷新token
- RefreshToken({ state, commit }, userInfo) {
- return new Promise((resolve, reject) => {
- refreshToken(
- getRefreshToken(),
- state.tenantId,
- !validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id,
- !validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id
- )
- .then(res => {
- const data = res.data;
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- resolve();
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- // 登出
- LogOut({ commit }) {
- return new Promise((resolve, reject) => {
- logout()
- .then(() => {
- commit('SET_TOKEN', '');
- commit('SET_MENU_ALL_NULL', []);
- commit('SET_MENU', []);
- commit('SET_ROLES', []);
- commit('DEL_ALL_TAG', []);
- commit('CLEAR_LOCK');
- removeToken();
- removeRefreshToken();
- removeToken();
- resolve();
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- //注销session
- FedLogOut({ commit }) {
- return new Promise(resolve => {
- commit('SET_TOKEN', '');
- commit('SET_MENU_ALL_NULL', []);
- commit('SET_MENU', []);
- commit('SET_ROLES', []);
- commit('DEL_ALL_TAG', []);
- commit('CLEAR_LOCK');
- removeToken();
- removeRefreshToken();
- removeToken();
- resolve();
- });
- },
- GetTopMenu() {
- return new Promise(resolve => {
- getTopMenu().then(res => {
- const data = res.data.data || [];
- resolve(data);
- });
- });
- },
- GetMenu({ commit, dispatch }, tenantId) {
- return new Promise(resolve => {
- getRoutes(tenantId).then(res => {
- const data = res.data.data;
- let menu = deepClone(data);
- menu.forEach(ele => formatPath(ele, true));
- commit('SET_MENU', menu);
- commit('SET_MENU_ALL', menu);
- dispatch('GetButtons');
- resolve(menu);
- });
- });
- },
- GetButtons({ commit }) {
- return new Promise(resolve => {
- getButtons().then(res => {
- const data = res.data.data;
- commit('SET_PERMISSION', data);
- resolve();
- });
- });
- },
- },
- mutations: {
- setSelectedAreaCode:(state, code) =>{
- state.selectedAreaCode = code
- },
- SET_TOKEN: (state, token) => {
- setToken(token);
- state.token = token;
- setStore({ name: 'token', content: state.token });
- console.log('顶顶顶111',token)
- window.localStorage.setItem(ELocalStorageKey.Token, token);
- },
- SET_REFRESH_TOKEN: (state, refreshToken) => {
- setRefreshToken(refreshToken);
- state.refreshToken = refreshToken;
- setStore({ name: 'refreshToken', content: state.refreshToken });
- },
- SET_MENU_ID(state, menuId) {
- state.menuId = menuId;
- },
- SET_TENANT_ID: (state, tenantId) => {
- state.tenantId = tenantId;
- setStore({ name: 'tenantId', content: state.tenantId });
- },
- SET_USER_INFO: (state, userInfo) => {
- if (validatenull(userInfo.user_id) && validatenull(userInfo.account)) {
- state.userInfo = { user_name: 'unauth', role_name: 'unauth', authority: 'unauth' };
- } else {
- if (validatenull(userInfo.avatar)) {
- userInfo.avatar = '/img/bg/img-logo.png';
- }
- if (!validatenull(userInfo.role_name)) {
- userInfo.roleName = userInfo.role_name;
- userInfo.authority = userInfo.role_name;
- }
- if (!validatenull(userInfo.user_id)) {
- userInfo.userId = userInfo.user_id;
- }
- if (!validatenull(userInfo.user_name)) {
- userInfo.userName = userInfo.user_name;
- }
- if (!validatenull(userInfo.tenant_id)) {
- userInfo.tenantId = userInfo.tenant_id;
- }
- if (!validatenull(userInfo.dept_id)) {
- userInfo.deptId = userInfo.dept_id;
- }
- if (!validatenull(userInfo.role_id)) {
- userInfo.roleId = userInfo.role_id;
- }
- if (!validatenull(userInfo.oauth_id)) {
- userInfo.oauthId = userInfo.oauth_id;
- }
- userInfo.selectedAreaCode = userInfo?.detail?.areaCode || '';
- state.userInfo = userInfo;
- }
- setStore({ name: 'userInfo', content: state.userInfo });
- },
- SET_MENU_ALL: (state, menuAll) => {
- let menu = state.menuAll;
- menuAll.forEach(ele => {
- let index = menu.findIndex(item => item.path === ele.path);
- if (index === -1) {
- menu.push(ele);
- } else {
- menu[index] = ele;
- }
- });
- state.menuAll = menu;
- setStore({ name: 'menuAll', content: state.menuAll });
- },
- SET_MENU_ALL_NULL: state => {
- state.menuAll = [];
- setStore({ name: 'menuAll', content: state.menuAll });
- },
- SET_MENU: (state, menu) => {
- state.menu = menu;
- setStore({ name: 'menu', content: state.menu });
- },
- SET_ROLES: (state, roles) => {
- state.roles = roles;
- },
- SET_PERMISSION: (state, permission) => {
- let result = [];
+ state: {
+ // 当前选中的请求头
+ selectedAreaCode: userInfoData?.detail?.areaCode || '',
+ tenantId: getStore({ name: 'tenantId' }) || '',
+ userInfo: userInfoData,
+ permission: getStore({ name: 'permission' }) || {},
+ roles: [],
+ menuId: {},
+ menu: getStore({ name: 'menu' }) || [],
+ menuAll: getStore({ name: 'menuAll' }) || [],
+ token: getStore({ name: 'token' }) || '',
+ refreshToken: getStore({ name: 'refreshToken' }) || '',
+ },
+ actions: {
+ //根据用户名登录
+ LoginByUsername({ commit }, userInfo = {}) {
+ return new Promise((resolve, reject) => {
+ loginByUsername(
+ userInfo.tenantId,
+ userInfo.deptId,
+ userInfo.roleId,
+ userInfo.username,
+ md5(userInfo.password),
+ userInfo.type,
+ userInfo.key,
+ userInfo.code
+ )
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('SET_USER_INFO', data)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //根据第三方信息登录
+ LoginBySocial({ commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //根据单点信息登录
+ LoginBySso({ commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ loginBySso(userInfo.state, userInfo.code)
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //根据手机信息登录
+ LoginByPhone({ commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ loginByPhone(
+ userInfo.tenantId,
+ encrypt(userInfo.phone),
+ userInfo.codeId,
+ userInfo.codeValue
+ )
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //用户注册
+ RegisterUser({ commit }, userInfo = {}) {
+ return new Promise((resolve, reject) => {
+ registerUser(
+ userInfo.tenantId,
+ userInfo.name,
+ userInfo.account,
+ encrypt(userInfo.password),
+ userInfo.phone,
+ userInfo.email
+ ).then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ reject(data.error_description)
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ })
+ },
+ GetUserInfo({ commit }) {
+ return new Promise((resolve, reject) => {
+ getUserInfo()
+ .then(res => {
+ const data = res.data.data
+ commit('SET_ROLES', data.roles)
+ resolve(data)
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //刷新token
+ RefreshToken({ state, commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ refreshToken(
+ getRefreshToken(),
+ state.tenantId,
+ !validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id,
+ !validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id
+ )
+ .then(res => {
+ const data = res.data
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+ // 登出
+ LogOut({ commit }) {
+ return new Promise((resolve, reject) => {
+ logout()
+ .then(() => {
+ commit('SET_TOKEN', '')
+ commit('SET_MENU_ALL_NULL', [])
+ commit('SET_MENU', [])
+ commit('SET_ROLES', [])
+ commit('DEL_ALL_TAG', [])
+ commit('CLEAR_LOCK')
+ removeToken()
+ removeRefreshToken()
+ removeToken()
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+ //注销session
+ FedLogOut({ commit }) {
+ return new Promise(resolve => {
+ commit('SET_TOKEN', '')
+ commit('SET_MENU_ALL_NULL', [])
+ commit('SET_MENU', [])
+ commit('SET_ROLES', [])
+ commit('DEL_ALL_TAG', [])
+ commit('CLEAR_LOCK')
+ removeToken()
+ removeRefreshToken()
+ removeToken()
+ resolve()
+ })
+ },
+ GetTopMenu() {
+ return new Promise(resolve => {
+ getTopMenu().then(res => {
+ const data = res.data.data || []
+ resolve(data)
+ })
+ })
+ },
+ GetMenu({ commit, dispatch }, tenantId) {
+ return new Promise(resolve => {
+ getRoutes(tenantId).then(res => {
+ const data = res.data.data
+ let menu = deepClone(data)
+ menu.forEach(ele => formatPath(ele, true))
+ commit('SET_MENU', menu)
+ commit('SET_MENU_ALL', menu)
+ dispatch('GetButtons')
+ resolve(menu)
+ })
+ })
+ },
+ GetButtons({ commit }) {
+ return new Promise(resolve => {
+ getButtons().then(res => {
+ const data = res.data.data
+ commit('SET_PERMISSION', data)
+ resolve()
+ })
+ })
+ },
+ },
+ mutations: {
+ setSelectedAreaCode: (state, code) => {
+ state.selectedAreaCode = code
+ },
+ SET_TOKEN: (state, token) => {
+ setToken(token)
+ state.token = token
+ setStore({ name: 'token', content: state.token })
+ console.log('顶顶顶111', token)
+ window.localStorage.setItem(ELocalStorageKey.Token, token)
+ },
+ SET_REFRESH_TOKEN: (state, refreshToken) => {
+ setRefreshToken(refreshToken)
+ state.refreshToken = refreshToken
+ setStore({ name: 'refreshToken', content: state.refreshToken })
+ },
+ SET_MENU_ID(state, menuId) {
+ state.menuId = menuId
+ },
+ SET_TENANT_ID: (state, tenantId) => {
+ state.tenantId = tenantId
+ setStore({ name: 'tenantId', content: state.tenantId })
+ },
+ SET_USER_INFO: (state, userInfo) => {
+ if (validatenull(userInfo.user_id) && validatenull(userInfo.account)) {
+ state.userInfo = { user_name: 'unauth', role_name: 'unauth', authority: 'unauth' }
+ } else {
+ if (validatenull(userInfo.avatar)) {
+ userInfo.avatar = '/img/bg/img-logo.png'
+ }
+ if (!validatenull(userInfo.role_name)) {
+ userInfo.roleName = userInfo.role_name
+ userInfo.authority = userInfo.role_name
+ }
+ if (!validatenull(userInfo.user_id)) {
+ userInfo.userId = userInfo.user_id
+ }
+ if (!validatenull(userInfo.user_name)) {
+ userInfo.userName = userInfo.user_name
+ }
+ if (!validatenull(userInfo.tenant_id)) {
+ userInfo.tenantId = userInfo.tenant_id
+ }
+ if (!validatenull(userInfo.dept_id)) {
+ userInfo.deptId = userInfo.dept_id
+ }
+ if (!validatenull(userInfo.role_id)) {
+ userInfo.roleId = userInfo.role_id
+ }
+ if (!validatenull(userInfo.oauth_id)) {
+ userInfo.oauthId = userInfo.oauth_id
+ }
+ userInfo.selectedAreaCode = userInfo?.detail?.areaCode || ''
+ state.userInfo = userInfo
+ }
+ setStore({ name: 'userInfo', content: state.userInfo })
+ },
+ SET_MENU_ALL: (state, menuAll) => {
+ let menu = state.menuAll
+ menuAll.forEach(ele => {
+ let index = menu.findIndex(item => item.path === ele.path)
+ if (index === -1) {
+ menu.push(ele)
+ } else {
+ menu[index] = ele
+ }
+ })
+ state.menuAll = menu
+ setStore({ name: 'menuAll', content: state.menuAll })
+ },
+ SET_MENU_ALL_NULL: state => {
+ state.menuAll = []
+ setStore({ name: 'menuAll', content: state.menuAll })
+ },
+ SET_MENU: (state, menu) => {
+ state.menu = menu
+ setStore({ name: 'menu', content: state.menu })
+ },
+ SET_ROLES: (state, roles) => {
+ state.roles = roles
+ },
+ SET_PERMISSION: (state, permission) => {
+ let result = []
- function getCode(list) {
- list.forEach(ele => {
- if (typeof ele === 'object') {
- const children = ele.children;
- const code = ele.code;
- if (children && children.length > 0) {
- getCode(children);
- } else {
- result.push(code);
- }
- }
- });
- }
+ function getCode(list) {
+ list.forEach(ele => {
+ if (typeof ele === 'object') {
+ const children = ele.children
+ const code = ele.code
+ if (children && children.length > 0) {
+ getCode(children)
+ } else {
+ result.push(code)
+ }
+ }
+ })
+ }
- getCode(permission);
- state.permission = {};
- result.forEach(ele => {
- state.permission[ele] = true;
- });
- setStore({ name: 'permission', content: state.permission, type: 'session' });
- },
- },
-};
-export default user;
+ getCode(permission)
+ state.permission = {}
+ result.forEach(ele => {
+ state.permission[ele] = true
+ })
+ setStore({ name: 'permission', content: state.permission, type: 'session' })
+ },
+ },
+}
+export default user
diff --git a/src/utils/auth.js b/src/utils/auth.js
index 123d7e5..72ce4cd 100644
--- a/src/utils/auth.js
+++ b/src/utils/auth.js
@@ -1,32 +1,32 @@
-import Cookies from 'js-cookie';
+import Cookies from 'js-cookie'
-const TokenKey = 'saber3-access-token';
-const RefreshTokenKey = 'saber3-refresh-token';
-const SessionId = 'JSESSIONID';
-const UserId = 'b-user-id';
+const TokenKey = 'saber3-access-token'
+const RefreshTokenKey = 'saber3-refresh-token'
+const SessionId = 'JSESSIONID'
+const UserId = 'b-user-id'
export function getToken() {
- return Cookies.get(TokenKey);
+ return Cookies.get(TokenKey)
}
export function setToken(token) {
- return Cookies.set(TokenKey, token);
+ return Cookies.set(TokenKey, token)
}
export function getRefreshToken() {
- return Cookies.get(RefreshTokenKey);
+ return Cookies.get(RefreshTokenKey)
}
export function setRefreshToken(token) {
- return Cookies.set(RefreshTokenKey, token);
+ return Cookies.set(RefreshTokenKey, token)
}
export function removeToken() {
- Cookies.remove(SessionId);
- Cookies.remove(UserId);
- return Cookies.remove(TokenKey);
+ Cookies.remove(SessionId)
+ Cookies.remove(UserId)
+ return Cookies.remove(TokenKey)
}
export function removeRefreshToken() {
- return Cookies.remove(RefreshTokenKey);
+ return Cookies.remove(RefreshTokenKey)
}
diff --git a/src/utils/cesium-tsa.js b/src/utils/cesium-tsa.js
index 06bb067..8e75522 100644
--- a/src/utils/cesium-tsa.js
+++ b/src/utils/cesium-tsa.js
@@ -1,1137 +1,1131 @@
-import * as Cesium from 'cesium';
-import AmapMercatorTilingScheme from './cesium/AmapMercatorTilingScheme/index';
-import store from '@/store';
-import { Terrain } from 'cesium';
-
+import * as Cesium from 'cesium'
+import AmapMercatorTilingScheme from './cesium/AmapMercatorTilingScheme/index'
+import store from '@/store'
+import { Terrain } from 'cesium'
// vite env
-const { VITE_APP_BASE } = import.meta.env;
+const { VITE_APP_BASE } = import.meta.env
-
-window.CESIUM_BASE_URL = `${VITE_APP_BASE}cesiumPu`;
+window.CESIUM_BASE_URL = `${VITE_APP_BASE}cesiumPu`
// 定义全局的viewer变量防止重复生成
-let viewer = null;
-let globalBaseMapLayers = [];
+let viewer = null
+let globalBaseMapLayers = []
-window.globalCesium = Cesium;
-window.$viewer = null;
+window.globalCesium = Cesium
+window.$viewer = null
-let customEntityDataSources = {};
+let customEntityDataSources = {}
-let customMapLayer = {};
+let customMapLayer = {}
let handlerEvents = {
- handler: null,
-};
+ handler: null,
+}
export default function cesiumOperation() {
- const TDT_Token = 'c6eea7dad4fa1e2d1e32ec0e7c9735db';
- // 天地图地图
- const TDT_IMG_C =
- 'https://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
- '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
- '&style=default&format=tiles&tk=' +
- TDT_Token;
- // 天地图注记
- const TDT_ZJ =
- 'https://{s}.tianditu.gov.cn/cia_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
- '&LAYER=cia&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
- '&style=default&format=tiles&tk=' +
- TDT_Token;
- // 标准地图注记
- const TID_STAND =
- 'https://{s}.tianditu.gov.cn/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0' +
- '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
- '&style=default&format=tiles&tk=' +
- TDT_Token;
- // 天地图图层变量
- const imageryProvider_tdt = new Cesium.WebMapTileServiceImageryProvider({
- url: TDT_IMG_C,
- layer: 'tdtImg_c',
- style: 'default',
- format: 'tiles',
- tileMatrixSetID: 'c',
- subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
- tilingScheme: new Cesium.GeographicTilingScheme(),
- tileMatrixLabels: [
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12',
- '13',
- '14',
- '15',
- '16',
- '17',
- '18',
- '19',
- ],
- maximumLevel: 17,
- });
- // 标准地图图层变量
- const imageryProvider_stand = new Cesium.UrlTemplateImageryProvider({
- url: 'https://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c',
- subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- // format: 'image/jpeg',
- // show: true,
- maximumLevel: 18,
- credit: 'stand_tc',
- });
- // 标准地图图层注解
- const imageryProvider_standZh = new Cesium.UrlTemplateImageryProvider({
- url: 'https://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c',
- subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- maximumLevel: 18,
- credit: 'stand_zj',
- });
- // 天地图中文注记加载
- const annotation = new Cesium.WebMapTileServiceImageryProvider({
- url: TDT_ZJ,
- layer: 'tdtZwImg_c',
- style: 'default',
- format: 'tiles',
- tileMatrixSetID: 'c',
- subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
- tilingScheme: new Cesium.GeographicTilingScheme(),
- tileMatrixLabels: [
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12',
- '13',
- '14',
- '15',
- '16',
- '17',
- '18',
- '19',
- ],
- maximumLevel: 50,
- });
+ const TDT_Token = 'c6eea7dad4fa1e2d1e32ec0e7c9735db'
+ // 天地图地图
+ const TDT_IMG_C =
+ 'https://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
+ '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
+ '&style=default&format=tiles&tk=' +
+ TDT_Token
+ // 天地图注记
+ const TDT_ZJ =
+ 'https://{s}.tianditu.gov.cn/cia_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
+ '&LAYER=cia&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
+ '&style=default&format=tiles&tk=' +
+ TDT_Token
+ // 标准地图注记
+ const TID_STAND =
+ 'https://{s}.tianditu.gov.cn/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0' +
+ '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
+ '&style=default&format=tiles&tk=' +
+ TDT_Token
+ // 天地图图层变量
+ const imageryProvider_tdt = new Cesium.WebMapTileServiceImageryProvider({
+ url: TDT_IMG_C,
+ layer: 'tdtImg_c',
+ style: 'default',
+ format: 'tiles',
+ tileMatrixSetID: 'c',
+ subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
+ tilingScheme: new Cesium.GeographicTilingScheme(),
+ tileMatrixLabels: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '14',
+ '15',
+ '16',
+ '17',
+ '18',
+ '19',
+ ],
+ maximumLevel: 17,
+ })
+ // 标准地图图层变量
+ const imageryProvider_stand = new Cesium.UrlTemplateImageryProvider({
+ url: 'https://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c',
+ subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+ // format: 'image/jpeg',
+ // show: true,
+ maximumLevel: 18,
+ credit: 'stand_tc',
+ })
+ // 标准地图图层注解
+ const imageryProvider_standZh = new Cesium.UrlTemplateImageryProvider({
+ url: 'https://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c',
+ subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+ maximumLevel: 18,
+ credit: 'stand_zj',
+ })
+ // 天地图中文注记加载
+ const annotation = new Cesium.WebMapTileServiceImageryProvider({
+ url: TDT_ZJ,
+ layer: 'tdtZwImg_c',
+ style: 'default',
+ format: 'tiles',
+ tileMatrixSetID: 'c',
+ subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
+ tilingScheme: new Cesium.GeographicTilingScheme(),
+ tileMatrixLabels: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '14',
+ '15',
+ '16',
+ '17',
+ '18',
+ '19',
+ ],
+ maximumLevel: 50,
+ })
- // 高德地图图层变量
- //高德矢量地图数据图层,自带注记
- const imageryProvider_ammapSL = new Cesium.UrlTemplateImageryProvider({
- url: 'https://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
- layer: 'tdtVecBasicLayer',
- style: 'default',
- format: 'image/png',
- tileMatrixSetID: 'GoogleMapsCompatible',
- subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- maximumLevel: 18,
- tilingScheme: new AmapMercatorTilingScheme(),
- credit: 'amap_SL',
- });
+ // 高德地图图层变量
+ //高德矢量地图数据图层,自带注记
+ const imageryProvider_ammapSL = new Cesium.UrlTemplateImageryProvider({
+ url: 'https://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
+ layer: 'tdtVecBasicLayer',
+ style: 'default',
+ format: 'image/png',
+ tileMatrixSetID: 'GoogleMapsCompatible',
+ subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+ maximumLevel: 18,
+ tilingScheme: new AmapMercatorTilingScheme(),
+ credit: 'amap_SL',
+ })
- //高德影像地图数据图层,自带注记
- const imageryProvider_ammap = new Cesium.UrlTemplateImageryProvider({
- url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
- layer: 'tdtVecBasicLayer',
- style: 'default',
- format: 'image/png',
- tileMatrixSetID: 'GoogleMapsCompatible',
- subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- maximumLevel: 18,
- tilingScheme: new AmapMercatorTilingScheme(),
- credit: 'amap_stand',
- });
- // 高德影像地图数据图层,注记
- const imageryProvider_ammapBz = new Cesium.UrlTemplateImageryProvider({
- url: 'https://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8',
- tilingScheme: new AmapMercatorTilingScheme(),
- minimumLevel: 3,
- });
+ //高德影像地图数据图层,自带注记
+ const imageryProvider_ammap = new Cesium.UrlTemplateImageryProvider({
+ url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
+ layer: 'tdtVecBasicLayer',
+ style: 'default',
+ format: 'image/png',
+ tileMatrixSetID: 'GoogleMapsCompatible',
+ subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
+ maximumLevel: 18,
+ tilingScheme: new AmapMercatorTilingScheme(),
+ credit: 'amap_stand',
+ })
+ // 高德影像地图数据图层,注记
+ const imageryProvider_ammapBz = new Cesium.UrlTemplateImageryProvider({
+ url: 'https://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8',
+ tilingScheme: new AmapMercatorTilingScheme(),
+ minimumLevel: 3,
+ })
- Cesium.Ion.defaultAccessToken =
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkMzg4MDk5YS05MWEzLTQ3NTYtOTYzNS04Yzk4MjU2MjI5N2YiLCJpZCI6MjE3OTM4LCJpYXQiOjE3MTY3NzIzOTR9.q1rzR7SRtIulQKTtJuv5HPUbp1av5E9RaOe-6voPDGc';
- const _init = async id => {
- const cesiumToken =
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkYTZlNGNlYS01NTU1LTQ1MGEtYmNlZS0yNTE2NDk5YWM2MjEiLCJpZCI6MTc5Njk2LCJpYXQiOjE3MDA1NDcwMjV9.qcl4AH2731cfFd0-I1ZLUINPXqvglLkDFD-UGR2zU5M';
- Cesium.Ion.defaultAccessToken = cesiumToken;
- Cesium.Camera.DEFAULT_VIEW_FACTOR = -0.45;
- // 西南东北,默认显示中国
- Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(66, 4, 135, 53.55);
- viewer = new Cesium.Viewer(id, {
- terrain: Terrain.fromWorldTerrain(),
- infoBox: false, // 禁用沙箱,解决控制台报错
- animation: false, // 左下角的动画仪表盘
- baseLayerPicker: false, // 右上角的图层选择按钮
- geocoder: false, // 搜索框
- homeButton: false, // home按钮
- sceneModePicker: false, // 模式切换按钮
- timeline: false, // 底部的时间轴
- navigationHelpButton: false, // 右上角的帮助按钮,
- selectionIndicator: false, // 是否显示选择指示器
- baseLayer: false,
- fullscreenButton: false,
- });
+ Cesium.Ion.defaultAccessToken =
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkMzg4MDk5YS05MWEzLTQ3NTYtOTYzNS04Yzk4MjU2MjI5N2YiLCJpZCI6MjE3OTM4LCJpYXQiOjE3MTY3NzIzOTR9.q1rzR7SRtIulQKTtJuv5HPUbp1av5E9RaOe-6voPDGc'
+ const _init = async id => {
+ const cesiumToken =
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkYTZlNGNlYS01NTU1LTQ1MGEtYmNlZS0yNTE2NDk5YWM2MjEiLCJpZCI6MTc5Njk2LCJpYXQiOjE3MDA1NDcwMjV9.qcl4AH2731cfFd0-I1ZLUINPXqvglLkDFD-UGR2zU5M'
+ Cesium.Ion.defaultAccessToken = cesiumToken
+ Cesium.Camera.DEFAULT_VIEW_FACTOR = -0.45
+ // 西南东北,默认显示中国
+ Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(66, 4, 135, 53.55)
+ viewer = new Cesium.Viewer(id, {
+ terrain: Terrain.fromWorldTerrain(),
+ infoBox: false, // 禁用沙箱,解决控制台报错
+ animation: false, // 左下角的动画仪表盘
+ baseLayerPicker: false, // 右上角的图层选择按钮
+ geocoder: false, // 搜索框
+ homeButton: false, // home按钮
+ sceneModePicker: false, // 模式切换按钮
+ timeline: false, // 底部的时间轴
+ navigationHelpButton: false, // 右上角的帮助按钮,
+ selectionIndicator: false, // 是否显示选择指示器
+ baseLayer: false,
+ fullscreenButton: false,
+ })
- // viewer.scene.globe.depthTestAgainstTerrain = true;
+ // viewer.scene.globe.depthTestAgainstTerrain = true;
- viewer.imageryLayers.removeAll();
+ viewer.imageryLayers.removeAll()
- globalBaseMapLayers = [];
+ globalBaseMapLayers = []
- viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(
- Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
- ); // 禁用双击
- viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100;
- viewer.scene.screenSpaceCameraController.maximumZoomDistance = 4500000;
- // viewer.scene.camera.setView({
- // destination: Cesium.Cartesian3.fromDegrees(115.856725497,28.624514734, 8000)
- // });
- // // 添加地形数据
+ viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(
+ Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
+ ) // 禁用双击
+ viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
+ viewer.scene.screenSpaceCameraController.maximumZoomDistance = 4500000
+ // viewer.scene.camera.setView({
+ // destination: Cesium.Cartesian3.fromDegrees(115.856725497,28.624514734, 8000)
+ // });
+ // // 添加地形数据
- // viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
- // url: 'https://data.marsgis.cn/terrain',
- // });
+ // viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
+ // url: 'https://data.marsgis.cn/terrain',
+ // });
- // viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
- // url: Cesium.IonResource.fromAssetId(1),
- // requestWaterMask: false,
- // requestVertexNormals: true,
- // })
+ // viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
+ // url: Cesium.IonResource.fromAssetId(1),
+ // requestWaterMask: false,
+ // requestVertexNormals: true,
+ // })
- window.$viewer = viewer;
- loadLAYER();
- };
+ window.$viewer = viewer
+ loadLAYER()
+ }
- const loadLAYER = () => {
- let mapLayers = [];
+ const loadLAYER = () => {
+ let mapLayers = []
- globalBaseMapLayers.length &&
- globalBaseMapLayers.forEach(item => {
- if (item.mapLayer) item.mapLayer.show = false;
- });
+ globalBaseMapLayers.length &&
+ globalBaseMapLayers.forEach(item => {
+ if (item.mapLayer) item.mapLayer.show = false
+ })
+ // 高德影像地图数据图层
+ if (store.state.common.mapSetting.mode === 3) {
+ mapLayers.push(
+ ...[
+ { key: 'imageryProvider_ammap', layer: imageryProvider_ammap },
+ { key: 'imageryProvider_ammapBz', layer: imageryProvider_ammapBz },
+ ]
+ )
+ }
+ // 高德地图矢量图层加载
+ if (store.state.common.mapSetting.mode === 2) {
+ mapLayers.push({
+ key: 'imageryProvider_ammapSL',
+ layer: imageryProvider_ammapSL,
+ })
+ }
- // 高德影像地图数据图层
- if (store.state.common.mapSetting.mode === 3) {
- mapLayers.push(
- ...[
- { key: 'imageryProvider_ammap', layer: imageryProvider_ammap },
- { key: 'imageryProvider_ammapBz', layer: imageryProvider_ammapBz },
- ]
- );
- }
- // 高德地图矢量图层加载
- if (store.state.common.mapSetting.mode === 2) {
- mapLayers.push({
- key: 'imageryProvider_ammapSL',
- layer: imageryProvider_ammapSL,
- });
- }
+ // 标准地图加载
+ if (store.state.common.mapSetting.mode === 0) {
+ mapLayers.push(
+ ...[
+ { key: 'imageryProvider_standZh', layer: imageryProvider_standZh },
+ { key: 'imageryProvider_stand', layer: imageryProvider_stand },
+ ]
+ )
+ }
- // 标准地图加载
- if (store.state.common.mapSetting.mode === 0) {
- mapLayers.push(
- ...[
- { key: 'imageryProvider_standZh', layer: imageryProvider_standZh },
- { key: 'imageryProvider_stand', layer: imageryProvider_stand },
- ]
- );
- }
+ // 路线图加载
+ if (
+ store.state.common.mapSetting.roadLine === true &&
+ store.state.common.mapSetting.mode === 1
+ ) {
+ mapLayers.push({ key: 'annotation', layer: annotation })
+ }
- // 路线图加载
- if (
- store.state.common.mapSetting.roadLine === true &&
- store.state.common.mapSetting.mode === 1
- ) {
- mapLayers.push({ key: 'annotation', layer: annotation });
- }
+ // 天地图图层加载
+ if (store.state.common.mapSetting.mode === 1) {
+ mapLayers.push({
+ key: 'imageryProvider_tdt',
+ layer: imageryProvider_tdt,
+ })
+ }
- // 天地图图层加载
- if (store.state.common.mapSetting.mode === 1) {
- mapLayers.push({
- key: 'imageryProvider_tdt',
- layer: imageryProvider_tdt,
- });
- }
+ // 创建一个Set来快速查找array2中的id
+ let keyBaseMap = new Set(globalBaseMapLayers.map(item => item.key))
+ let keyMapLayers = new Set(mapLayers.map(item => item.key))
- // 创建一个Set来快速查找array2中的id
- let keyBaseMap = new Set(globalBaseMapLayers.map(item => item.key));
- let keyMapLayers = new Set(mapLayers.map(item => item.key));
+ let keyExistBaseMap = mapLayers.filter(item => !keyBaseMap.has(item.key))
- let keyExistBaseMap = mapLayers.filter(item => !keyBaseMap.has(item.key));
+ let keyNoExistBaseMap = globalBaseMapLayers.filter(item => keyMapLayers.has(item.key))
- let keyNoExistBaseMap = globalBaseMapLayers.filter(item => keyMapLayers.has(item.key));
+ keyExistBaseMap.length &&
+ keyExistBaseMap.forEach(item => {
+ let curLayer = {
+ key: item.key,
+ mapLayer: viewer?.imageryLayers.addImageryProvider(item.layer),
+ }
- keyExistBaseMap.length &&
- keyExistBaseMap.forEach(item => {
- let curLayer = {
- key: item.key,
- mapLayer: viewer?.imageryLayers.addImageryProvider(item.layer),
- };
+ if (curLayer.mapLayer) curLayer.mapLayer.show = true
- if (curLayer.mapLayer) curLayer.mapLayer.show = true;
+ viewer?.imageryLayers.lowerToBottom(curLayer.mapLayer)
- viewer?.imageryLayers.lowerToBottom(curLayer.mapLayer);
+ globalBaseMapLayers.push(curLayer)
+ })
- globalBaseMapLayers.push(curLayer);
- });
+ keyNoExistBaseMap.length &&
+ keyNoExistBaseMap.forEach(item => {
+ if (item.mapLayer) item.mapLayer.show = true
- keyNoExistBaseMap.length &&
- keyNoExistBaseMap.forEach(item => {
- if (item.mapLayer) item.mapLayer.show = true;
+ viewer?.imageryLayers.lowerToBottom(item.mapLayer)
+ })
+ // 2D/3D切换
+ switchModel(store.state.common.mapSetting.visual)
+ }
- viewer?.imageryLayers.lowerToBottom(item.mapLayer);
- });
- // 2D/3D切换
- switchModel(store.state.common.mapSetting.visual);
- };
+ const addCustomLayers = (layerName, options) => {
+ if (options.type == 'arcgis') {
+ var imageryProvider = new Cesium.WebMapTileServiceImageryProvider({
+ url: options.src,
+ layer: options.title,
+ style: 'default',
+ format: 'image/png',
+ tileMatrixSetID: 'default',
+ tilingScheme: new Cesium.GeographicTilingScheme(),
+ tileMatrixLabels: [
+ '0',
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '14',
+ '15',
+ '16',
+ '17',
+ '18',
+ '19',
+ ],
+ })
- const addCustomLayers = (layerName, options) => {
- if (options.type == 'arcgis') {
- var imageryProvider = new Cesium.WebMapTileServiceImageryProvider({
- url: options.src,
- layer: options.title,
- style: 'default',
- format: 'image/png',
- tileMatrixSetID: 'default',
- tilingScheme: new Cesium.GeographicTilingScheme(),
- tileMatrixLabels: [
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12',
- '13',
- '14',
- '15',
- '16',
- '17',
- '18',
- '19',
- ],
- });
+ customMapLayer[layerName] = viewer?.imageryLayers.addImageryProvider(imageryProvider)
- customMapLayer[layerName] = viewer?.imageryLayers.addImageryProvider(imageryProvider);
+ // const layerProvider = new Cesium.ArcGisMapServerImageryProvider({
+ // url: options.src,
+ // tilingScheme: new Cesium.GeographicTilingScheme()
+ // })
+ // customMapLayer[layerName] = viewer?.imageryLayers.addImageryProvider(layerProvider)
+ }
+ }
- // const layerProvider = new Cesium.ArcGisMapServerImageryProvider({
- // url: options.src,
- // tilingScheme: new Cesium.GeographicTilingScheme()
- // })
- // customMapLayer[layerName] = viewer?.imageryLayers.addImageryProvider(layerProvider)
- }
- };
+ const removeCustomLayers = (layerName = '') => {
+ if (layerName) {
+ if (customMapLayer[layerName]) {
+ viewer?.imageryLayers.remove(customMapLayer[layerName])
- const removeCustomLayers = (layerName = '') => {
- if (layerName) {
- if (customMapLayer[layerName]) {
- viewer?.imageryLayers.remove(customMapLayer[layerName]);
+ delete customMapLayer[layerName]
+ }
+ } else {
+ for (let k in customMapLayer) {
+ viewer?.imageryLayers.remove(customMapLayer[k])
+ }
- delete customMapLayer[layerName];
- }
- } else {
- for (let k in customMapLayer) {
- viewer?.imageryLayers.remove(customMapLayer[k]);
- }
+ customMapLayer = {}
+ }
+ }
- customMapLayer = {};
- }
- };
+ // 切换不同背景图层
+ const patternMap = () => {
+ const imageryLayers = viewer?.scene.imageryLayers
+ // 切换为标准图层
+ if (store.state.common.mapSetting.mode === 0) {
+ const tdtImg_c = imageryLayers?._layers.find(v => v.imageryProvider._layer === 'tdtImg_c')
+ const tdtZwImg_c = imageryLayers?._layers.find(v => v.imageryProvider._layer === 'tdtZwImg_c')
+ viewer?.imageryLayers.remove(tdtImg_c)
+ viewer?.imageryLayers.remove(tdtZwImg_c)
+ } else {
+ const tdtStand_c = imageryLayers?._layers.find(
+ v => v.imageryProvider.credit?.html === 'stand_tc'
+ )
+ const tdtStand_zj = imageryLayers?._layers.find(
+ v => v.imageryProvider.credit?.html === 'stand_zj'
+ )
+ viewer?.imageryLayers.remove(tdtStand_c)
+ viewer?.imageryLayers.remove(tdtStand_zj)
+ }
+ loadLAYER()
+ }
- // 切换不同背景图层
- const patternMap = () => {
- const imageryLayers = viewer?.scene.imageryLayers;
- // 切换为标准图层
- if (store.state.common.mapSetting.mode === 0) {
- const tdtImg_c = imageryLayers?._layers.find(v => v.imageryProvider._layer === 'tdtImg_c');
- const tdtZwImg_c = imageryLayers?._layers.find(
- v => v.imageryProvider._layer === 'tdtZwImg_c'
- );
- viewer?.imageryLayers.remove(tdtImg_c);
- viewer?.imageryLayers.remove(tdtZwImg_c);
- } else {
- const tdtStand_c = imageryLayers?._layers.find(
- v => v.imageryProvider.credit?.html === 'stand_tc'
- );
- const tdtStand_zj = imageryLayers?._layers.find(
- v => v.imageryProvider.credit?.html === 'stand_zj'
- );
- viewer?.imageryLayers.remove(tdtStand_c);
- viewer?.imageryLayers.remove(tdtStand_zj);
- }
- loadLAYER();
- };
+ // 生成或删除路网图层
+ const roadPattern = flag => {
+ if (store.state.common.mapSetting.mode === 0) return
+ const imageryLayers = viewer?.scene.imageryLayers
+ const tdtZwImg_c = imageryLayers?._layers.find(v => v.imageryProvider._layer === 'tdtZwImg_c')
+ if (!flag) {
+ viewer?.imageryLayers.remove(tdtZwImg_c)
+ } else {
+ viewer?.imageryLayers.addImageryProvider(annotation)
+ }
+ }
- // 生成或删除路网图层
- const roadPattern = flag => {
- if (store.state.common.mapSetting.mode === 0) return;
- const imageryLayers = viewer?.scene.imageryLayers;
- const tdtZwImg_c = imageryLayers?._layers.find(v => v.imageryProvider._layer === 'tdtZwImg_c');
- if (!flag) {
- viewer?.imageryLayers.remove(tdtZwImg_c);
- } else {
- viewer?.imageryLayers.addImageryProvider(annotation);
- }
- };
+ // 二维三维切换
+ // 切换为二三维模式
+ const switchModel = type => {
+ switch (type) {
+ case '2D':
+ viewer?.scene.morphTo2D(0)
+ // viewer?.scene.camera.setView({
+ // orientation: {
+ // pitch: Cesium.Math.toRadians(-60),
+ // heading: Cesium.Math.toRadians(0),
+ // },
+ // });
+ break
+ case '3D':
+ viewer?.scene.morphTo3D(0)
+ // viewer?.scene.camera.setView({
+ // orientation: {
+ // pitch: Cesium.Math.toRadians(-90),
+ // heading: Cesium.Math.toRadians(0),
+ // },
+ // });
+ break
+ default:
+ break
+ }
+ }
- // 二维三维切换
- // 切换为二三维模式
- const switchModel = type => {
- switch (type) {
- case '2D':
- viewer?.scene.morphTo2D(0);
- // viewer?.scene.camera.setView({
- // orientation: {
- // pitch: Cesium.Math.toRadians(-60),
- // heading: Cesium.Math.toRadians(0),
- // },
- // });
- break;
- case '3D':
- viewer?.scene.morphTo3D(0);
- // viewer?.scene.camera.setView({
- // orientation: {
- // pitch: Cesium.Math.toRadians(-90),
- // heading: Cesium.Math.toRadians(0),
- // },
- // });
- break;
- default:
- break;
- }
- };
+ /**
+ * @description: 地图暗黑模式切换
+ * @param {*} viewer 地图实例
+ * @param {*} options 配置项
+ * @return {*}
+ */
+ const darkMap = (viewer, isDark = false, options) => {
+ const defaultOptions = {
+ brightness: 1,
+ contrast: 1,
+ gamma: 1,
+ hue: 0,
+ saturation: 1,
+ }
- /**
- * @description: 地图暗黑模式切换
- * @param {*} viewer 地图实例
- * @param {*} options 配置项
- * @return {*}
- */
- const darkMap = (viewer, isDark = false, options) => {
- const defaultOptions = {
- brightness: 1,
- contrast: 1,
- gamma: 1,
- hue: 0,
- saturation: 1,
- };
+ !isDark && Object.assign(options, defaultOptions)
- !isDark && Object.assign(options, defaultOptions);
+ const baseLayer = viewer.imageryLayers.get(0)
+ baseLayer.brightness = options.brightness || 0
+ baseLayer.contrast = options.contrast || 0
+ baseLayer.gamma = options.gamma || 2
+ baseLayer.hue = options.hue || 0
+ baseLayer.saturation = options.saturation || 0
- const baseLayer = viewer.imageryLayers.get(0);
- baseLayer.brightness = options.brightness || 0;
- baseLayer.contrast = options.contrast || 0;
- baseLayer.gamma = options.gamma || 2;
- baseLayer.hue = options.hue || 0;
- baseLayer.saturation = options.saturation || 0;
-
- const baseFragShader = viewer.scene.globe._surfaceShaderSet.baseFragmentShaderSource.sources;
- for (let i = 0; i < baseFragShader.length; i++) {
- const strS = 'color = czm_saturation(color, textureSaturation);\n#endif\n';
- let strT = 'color = czm_saturation(color, textureSaturation);\n#endif\n';
- if (options.invertColor) {
- strT += `
+ const baseFragShader = viewer.scene.globe._surfaceShaderSet.baseFragmentShaderSource.sources
+ for (let i = 0; i < baseFragShader.length; i++) {
+ const strS = 'color = czm_saturation(color, textureSaturation);\n#endif\n'
+ let strT = 'color = czm_saturation(color, textureSaturation);\n#endif\n'
+ if (options.invertColor) {
+ strT += `
color.r = 1.0 - color.r;
color.g = 1.0 - color.g;
color.b = 1.0 - color.b;
- `;
- }
- if (options.filterRGB.length > 0) {
- strT += `
+ `
+ }
+ if (options.filterRGB.length > 0) {
+ strT += `
color.r = color.r * ${options.filterRGB[0]}.0/255.0;
color.g = color.g * ${options.filterRGB[1]}.0/255.0;
color.b = color.b * ${options.filterRGB[2]}.0/255.0;
- `;
- }
- if (!isDark) {
- //恢复默认
- baseFragShader[i] = baseFragShader[i].replace(strT, strS);
- } else {
- // 替换为暗黑模式
- baseFragShader[i] = baseFragShader[i].replace(strS, strT);
- }
- }
- };
+ `
+ }
+ if (!isDark) {
+ //恢复默认
+ baseFragShader[i] = baseFragShader[i].replace(strT, strS)
+ } else {
+ // 替换为暗黑模式
+ baseFragShader[i] = baseFragShader[i].replace(strS, strT)
+ }
+ }
+ }
- const switchDarkModel = () => {
- const isDark = store.state.common.mapSetting.isDark;
- darkMap(viewer, isDark, {
- //反色
- invertColor: true,
- //滤色值 [176, 224, 230]
- filterRGB: [60, 145, 172],
- });
- };
+ const switchDarkModel = () => {
+ const isDark = store.state.common.mapSetting.isDark
+ darkMap(viewer, isDark, {
+ //反色
+ invertColor: true,
+ //滤色值 [176, 224, 230]
+ filterRGB: [60, 145, 172],
+ })
+ }
- //移除DataSource中所有实体
- const removeAllDataSource = () => {
- viewer?.dataSources.removeAll();
- };
+ //移除DataSource中所有实体
+ const removeAllDataSource = () => {
+ viewer?.dataSources.removeAll()
+ }
- // 清除所有标记点
- const removeAllPoint = () => {
- if (viewer) {
- viewer?.entities?.removeAll();
- // viewer?.scene?.primitives?.removeAll();
- }
- };
+ // 清除所有标记点
+ const removeAllPoint = () => {
+ if (viewer) {
+ viewer?.entities?.removeAll()
+ // viewer?.scene?.primitives?.removeAll();
+ }
+ }
- // 通过点ID删除
- const removeById = id => {
- viewer?.entities.removeById(id);
- const pointEntity = viewer?.entities.getById(id);
- if (pointEntity && pointEntity !== undefined) {
- viewer?.entities.remove(pointEntity);
- }
- };
+ // 通过点ID删除
+ const removeById = id => {
+ viewer?.entities.removeById(id)
+ const pointEntity = viewer?.entities.getById(id)
+ if (pointEntity && pointEntity !== undefined) {
+ viewer?.entities.remove(pointEntity)
+ }
+ }
- // 通过点ID获取实体
- const getEntityById = id => {
- const pointEntity = viewer?.entities.getById(id);
- return pointEntity;
- };
+ // 通过点ID获取实体
+ const getEntityById = id => {
+ const pointEntity = viewer?.entities.getById(id)
+ return pointEntity
+ }
- // 添加标记点
- const addPoint = pointOption => {
- if (!pointOption.longitude && !pointOption.latitude) return;
- const position = Cesium.Cartesian3.fromDegrees(
- pointOption.longitude,
- pointOption.latitude,
- pointOption?.altitude || 0
- );
- viewer?.entities.add({
- position,
- billboard: pointOption.billboard,
- point: pointOption.point,
- label: pointOption.label,
- id: pointOption.id,
- });
- };
+ // 添加标记点
+ const addPoint = pointOption => {
+ if (!pointOption.longitude && !pointOption.latitude) return
+ const position = Cesium.Cartesian3.fromDegrees(
+ pointOption.longitude,
+ pointOption.latitude,
+ pointOption?.altitude || 0
+ )
+ viewer?.entities.add({
+ position,
+ billboard: pointOption.billboard,
+ point: pointOption.point,
+ label: pointOption.label,
+ id: pointOption.id,
+ })
+ }
- const addPolyline = pointOption => {
- return viewer?.entities.add({
- polyline: pointOption.polyline,
- id: pointOption.id,
- });
- };
+ const addPolyline = pointOption => {
+ return viewer?.entities.add({
+ polyline: pointOption.polyline,
+ id: pointOption.id,
+ })
+ }
- // 更新图片实体位置
- function updateEntityPosition(longitude, latitude, id, params) {
- const entity = getEntityById(id);
- const position = Cesium.Cartesian3.fromDegrees(longitude, latitude);
- const heading = Cesium.Math.toRadians(-params.heading);
- if (Cesium.defined(entity)) {
- entity.position = position;
- entity.billboard.rotation = heading;
- }
- }
+ // 更新图片实体位置
+ function updateEntityPosition(longitude, latitude, id, params) {
+ const entity = getEntityById(id)
+ const position = Cesium.Cartesian3.fromDegrees(longitude, latitude)
+ const heading = Cesium.Math.toRadians(-params.heading)
+ if (Cesium.defined(entity)) {
+ entity.position = position
+ entity.billboard.rotation = heading
+ }
+ }
- // 飞行 flyto
- const flyTo = (pointOption, time = 4, height = 3000, orientation = {}) => {
- if (!pointOption.longitude && !pointOption.latitude) return;
- const destination = Cesium.Cartesian3.fromDegrees(
- pointOption.longitude,
- pointOption.latitude,
- height
- );
- const duration = time;
- viewer?.camera.flyTo({
- destination,
- duration,
- orientation,
- });
- };
+ // 飞行 flyto
+ const flyTo = (pointOption, time = 4, height = 3000, orientation = {}) => {
+ if (!pointOption.longitude && !pointOption.latitude) return
+ const destination = Cesium.Cartesian3.fromDegrees(
+ pointOption.longitude,
+ pointOption.latitude,
+ height
+ )
+ const duration = time
+ viewer?.camera.flyTo({
+ destination,
+ duration,
+ orientation,
+ })
+ }
- // 鼠标点击事件
- const addLeftClickEvent = (sid, cb, eventKey = 'handler') => {
- if (handlerEvents.handler) removeLeftClickEvent();
- if (handlerEvents[eventKey]) removeLeftClickEvent(eventKey);
+ // 鼠标点击事件
+ const addLeftClickEvent = (sid, cb, eventKey = 'handler') => {
+ if (handlerEvents.handler) removeLeftClickEvent()
+ if (handlerEvents[eventKey]) removeLeftClickEvent(eventKey)
- handlerEvents[eventKey] = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
- handlerEvents[eventKey].setInputAction(function (click) {
- const pick = viewer?.scene.pick(click.position);
+ handlerEvents[eventKey] = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
+ handlerEvents[eventKey].setInputAction(function (click) {
+ const pick = viewer?.scene.pick(click.position)
- if (pick && pick.primitive && pick.primitive?.customParams?.type == '3DTileset') {
- return cb(click, pick, viewer, handlerEvents[eventKey]);
- }
+ if (pick && pick.primitive && pick.primitive?.customParams?.type == '3DTileset') {
+ return cb(click, pick, viewer, handlerEvents[eventKey])
+ }
- if (pick && pick.id && (pick.id._id === sid || pick.id._id.includes(sid))) {
- cb(click, pick, viewer, handlerEvents[eventKey]);
- }
+ if (pick && pick.id && (pick.id._id === sid || pick.id._id.includes(sid))) {
+ cb(click, pick, viewer, handlerEvents[eventKey])
+ }
- if (sid === null) {
- cb(click, pick, viewer, handlerEvents[eventKey]);
- }
- }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
- };
+ if (sid === null) {
+ cb(click, pick, viewer, handlerEvents[eventKey])
+ }
+ }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
+ }
- // 移除鼠标点击事件
- const removeLeftClickEvent = (eventKey = 'handler') => {
- if (handlerEvents[eventKey] == null) return;
- handlerEvents[eventKey].removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+ // 移除鼠标点击事件
+ const removeLeftClickEvent = (eventKey = 'handler') => {
+ if (handlerEvents[eventKey] == null) return
+ handlerEvents[eventKey].removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
- handlerEvents[eventKey] = null;
- };
+ handlerEvents[eventKey] = null
+ }
- // 鼠标左键按下事件
- let leftDownClickHandler = { handler: null };
- const addLeftDownClickEvent = (sid, cb, eventKey = 'handler') => {
- if (leftDownClickHandler.handler) removeLeftDownClickEvent();
- if (leftDownClickHandler[eventKey]) removeLeftDownClickEvent(eventKey);
+ // 鼠标左键按下事件
+ let leftDownClickHandler = { handler: null }
+ const addLeftDownClickEvent = (sid, cb, eventKey = 'handler') => {
+ if (leftDownClickHandler.handler) removeLeftDownClickEvent()
+ if (leftDownClickHandler[eventKey]) removeLeftDownClickEvent(eventKey)
- leftDownClickHandler[eventKey] = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
+ leftDownClickHandler[eventKey] = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
- leftDownClickHandler[eventKey].setInputAction(function (click) {
- const pick = viewer?.scene.pick(click.position);
- cb(click, pick, viewer);
- }, Cesium.ScreenSpaceEventType.LEFT_DOWN);
- };
+ leftDownClickHandler[eventKey].setInputAction(function (click) {
+ const pick = viewer?.scene.pick(click.position)
+ cb(click, pick, viewer)
+ }, Cesium.ScreenSpaceEventType.LEFT_DOWN)
+ }
- // 移除鼠标左键按下事件
- const removeLeftDownClickEvent = (eventKey = 'handler') => {
- if (leftDownClickHandler[eventKey] == null) return;
- leftDownClickHandler[eventKey].removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOWN);
+ // 移除鼠标左键按下事件
+ const removeLeftDownClickEvent = (eventKey = 'handler') => {
+ if (leftDownClickHandler[eventKey] == null) return
+ leftDownClickHandler[eventKey].removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOWN)
- leftDownClickHandler[eventKey] = null;
- };
+ leftDownClickHandler[eventKey] = null
+ }
- // 鼠标右击事件
- let leftUpClickHandler = { handler: null };
- const addLeftUpClickEvent = (sid, cb, eventKey = 'handler') => {
- if (leftUpClickHandler.handler) removeLeftUpClickEvent();
- if (leftUpClickHandler[eventKey]) removeLeftUpClickEvent(eventKey);
+ // 鼠标右击事件
+ let leftUpClickHandler = { handler: null }
+ const addLeftUpClickEvent = (sid, cb, eventKey = 'handler') => {
+ if (leftUpClickHandler.handler) removeLeftUpClickEvent()
+ if (leftUpClickHandler[eventKey]) removeLeftUpClickEvent(eventKey)
- leftUpClickHandler[eventKey] = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
+ leftUpClickHandler[eventKey] = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
- leftUpClickHandler[eventKey].setInputAction(function (click) {
- const pick = viewer?.scene.pick(click.position);
- cb(click, pick, viewer);
- }, Cesium.ScreenSpaceEventType.LEFT_UP);
- };
+ leftUpClickHandler[eventKey].setInputAction(function (click) {
+ const pick = viewer?.scene.pick(click.position)
+ cb(click, pick, viewer)
+ }, Cesium.ScreenSpaceEventType.LEFT_UP)
+ }
- // 移除鼠标右键事件
- const removeLeftUpClickEvent = (eventKey = 'handler') => {
- if (leftUpClickHandler[eventKey] == null) return;
- leftUpClickHandler[eventKey].removeInputAction(Cesium.ScreenSpaceEventType.LEFT_UP);
+ // 移除鼠标右键事件
+ const removeLeftUpClickEvent = (eventKey = 'handler') => {
+ if (leftUpClickHandler[eventKey] == null) return
+ leftUpClickHandler[eventKey].removeInputAction(Cesium.ScreenSpaceEventType.LEFT_UP)
- leftUpClickHandler[eventKey] = null;
- };
+ leftUpClickHandler[eventKey] = null
+ }
- // 鼠标右击事件
- let rightClickHandler;
- const addRightClickEvent = (sid, cb) => {
- if (rightClickHandler) removeRightClickEvent();
+ // 鼠标右击事件
+ let rightClickHandler
+ const addRightClickEvent = (sid, cb) => {
+ if (rightClickHandler) removeRightClickEvent()
- rightClickHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
+ rightClickHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
- rightClickHandler.setInputAction(function (click) {
- const pick = viewer?.scene.pick(click.position);
- cb(click, pick, viewer);
- }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
- };
+ rightClickHandler.setInputAction(function (click) {
+ const pick = viewer?.scene.pick(click.position)
+ cb(click, pick, viewer)
+ }, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
+ }
- // 移除鼠标右键事件
- const removeRightClickEvent = () => {
- if (!rightClickHandler) return;
- rightClickHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK);
+ // 移除鼠标右键事件
+ const removeRightClickEvent = () => {
+ if (!rightClickHandler) return
+ rightClickHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK)
- rightClickHandler = null;
- };
+ rightClickHandler = null
+ }
- // 鼠标移动事件
- let LeftMounseHandler;
- const addLeftmounseEvent = (sid, cb) => {
- if (LeftMounseHandler) removeLeftmounseEvent();
- LeftMounseHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
- LeftMounseHandler.setInputAction(function (event) {
- const cartesian3 = viewer?.scene.globe.pick(
- viewer?.camera.getPickRay(event.startPosition),
- viewer?.scene
- );
- cb(cartesian3, viewer);
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- };
+ // 鼠标移动事件
+ let LeftMounseHandler
+ const addLeftmounseEvent = (sid, cb) => {
+ if (LeftMounseHandler) removeLeftmounseEvent()
+ LeftMounseHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
+ LeftMounseHandler.setInputAction(function (event) {
+ const cartesian3 = viewer?.scene.globe.pick(
+ viewer?.camera.getPickRay(event.startPosition),
+ viewer?.scene
+ )
+ cb(cartesian3, viewer)
+ }, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
+ }
- // 移除鼠标移动事件
- const removeLeftmounseEvent = () => {
- if (LeftMounseHandler == null) return;
- LeftMounseHandler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+ // 移除鼠标移动事件
+ const removeLeftmounseEvent = () => {
+ if (LeftMounseHandler == null) return
+ LeftMounseHandler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE)
- LeftMounseHandler = null;
- };
+ LeftMounseHandler = null
+ }
- let MounseHandler;
- const addMounseHandler = (sid, cb) => {
- if (MounseHandler == null) removeMounseEvent();
+ let MounseHandler
+ const addMounseHandler = (sid, cb) => {
+ if (MounseHandler == null) removeMounseEvent()
- MounseHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
+ MounseHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
- MounseHandler.setInputAction(function (movement) {
- let mouseInfo = _getMouseInfo(movement.endPosition);
+ MounseHandler.setInputAction(function (movement) {
+ let mouseInfo = _getMouseInfo(movement.endPosition)
- cb(mouseInfo, viewer);
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- };
+ cb(mouseInfo, viewer)
+ }, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
+ }
- const _getMouseInfo = position => {
- let scene = viewer.scene;
- let target = scene.pick(position);
- let cartesian = undefined;
- let surfaceCartesian = undefined;
- let wgs84Position = undefined;
- let wgs84SurfacePosition = undefined;
- if (scene.pickPositionSupported) {
- cartesian = scene.pickPosition(position);
- }
- if (cartesian) {
- let c = Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian);
- if (c) {
- wgs84Position = {
- lng: Cesium.Math.toDegrees(c.longitude),
- lat: Cesium.Math.toDegrees(c.latitude),
- alt: c.height,
- };
- }
- }
- if (
- scene.mode === Cesium.SceneMode.SCENE3D &&
- !(viewer.terrainProvider instanceof Cesium.EllipsoidTerrainProvider)
- ) {
- let ray = scene.camera.getPickRay(position);
- surfaceCartesian = scene.globe.pick(ray, scene);
- } else {
- surfaceCartesian = scene.camera.pickEllipsoid(position, Cesium.Ellipsoid.WGS84);
- }
- if (surfaceCartesian) {
- let c = Cesium.Ellipsoid.WGS84.cartesianToCartographic(surfaceCartesian);
- if (c) {
- wgs84SurfacePosition = {
- lng: Cesium.Math.toDegrees(c.longitude),
- lat: Cesium.Math.toDegrees(c.latitude),
- alt: c.height,
- };
- }
- }
+ const _getMouseInfo = position => {
+ let scene = viewer.scene
+ let target = scene.pick(position)
+ let cartesian = undefined
+ let surfaceCartesian = undefined
+ let wgs84Position = undefined
+ let wgs84SurfacePosition = undefined
+ if (scene.pickPositionSupported) {
+ cartesian = scene.pickPosition(position)
+ }
+ if (cartesian) {
+ let c = Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian)
+ if (c) {
+ wgs84Position = {
+ lng: Cesium.Math.toDegrees(c.longitude),
+ lat: Cesium.Math.toDegrees(c.latitude),
+ alt: c.height,
+ }
+ }
+ }
+ if (
+ scene.mode === Cesium.SceneMode.SCENE3D &&
+ !(viewer.terrainProvider instanceof Cesium.EllipsoidTerrainProvider)
+ ) {
+ let ray = scene.camera.getPickRay(position)
+ surfaceCartesian = scene.globe.pick(ray, scene)
+ } else {
+ surfaceCartesian = scene.camera.pickEllipsoid(position, Cesium.Ellipsoid.WGS84)
+ }
+ if (surfaceCartesian) {
+ let c = Cesium.Ellipsoid.WGS84.cartesianToCartographic(surfaceCartesian)
+ if (c) {
+ wgs84SurfacePosition = {
+ lng: Cesium.Math.toDegrees(c.longitude),
+ lat: Cesium.Math.toDegrees(c.latitude),
+ alt: c.height,
+ }
+ }
+ }
- return {
- target: target,
- windowPosition: position,
- position: cartesian,
- wgs84Position: wgs84Position,
- surfacePosition: surfaceCartesian,
- wgs84SurfacePosition: wgs84SurfacePosition,
- };
- };
+ return {
+ target: target,
+ windowPosition: position,
+ position: cartesian,
+ wgs84Position: wgs84Position,
+ surfacePosition: surfaceCartesian,
+ wgs84SurfacePosition: wgs84SurfacePosition,
+ }
+ }
- // 移除鼠标移动事件
- const removeMounseEvent = () => {
- if (MounseHandler == null) return;
- MounseHandler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+ // 移除鼠标移动事件
+ const removeMounseEvent = () => {
+ if (MounseHandler == null) return
+ MounseHandler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE)
- MounseHandler = null;
- };
+ MounseHandler = null
+ }
- // 视角变化时间
- let mapViewHandler = null;
- const addCameraMoveEvent = cb => {
- if (mapViewHandler) removeCameraMoveEvent();
+ // 视角变化时间
+ let mapViewHandler = null
+ const addCameraMoveEvent = cb => {
+ if (mapViewHandler) removeCameraMoveEvent()
- mapViewHandler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
- mapViewHandler.setInputAction(event => {
- cb(event);
- }, Cesium.ScreenSpaceEventType.WHEEL);
- };
+ mapViewHandler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
+ mapViewHandler.setInputAction(event => {
+ cb(event)
+ }, Cesium.ScreenSpaceEventType.WHEEL)
+ }
- const removeCameraMoveEvent = () => {
- if (mapViewHandler == null) return;
- mapViewHandler.removeInputAction(Cesium.ScreenSpaceEventType.WHEEL);
- mapViewHandler = null;
- };
+ const removeCameraMoveEvent = () => {
+ if (mapViewHandler == null) return
+ mapViewHandler.removeInputAction(Cesium.ScreenSpaceEventType.WHEEL)
+ mapViewHandler = null
+ }
- // 添加entity
- const addCustomEntityDataSource = (sourceName, entities) => {
- if (!customEntityDataSources[sourceName]) {
- customEntityDataSources[sourceName] = new Cesium.CustomDataSource();
- window.$viewer?.dataSources.add(customEntityDataSources[sourceName]);
- }
+ // 添加entity
+ const addCustomEntityDataSource = (sourceName, entities) => {
+ if (!customEntityDataSources[sourceName]) {
+ customEntityDataSources[sourceName] = new Cesium.CustomDataSource()
+ window.$viewer?.dataSources.add(customEntityDataSources[sourceName])
+ }
- let entity = customEntityDataSources[sourceName].entities.add(entities);
+ let entity = customEntityDataSources[sourceName].entities.add(entities)
- return entity;
- };
+ return entity
+ }
- const clearCustomEntityDataSource = sourceName => {
- if (customEntityDataSources[sourceName]) {
- customEntityDataSources[sourceName]?.entities.removeAll();
- }
- };
+ const clearCustomEntityDataSource = sourceName => {
+ if (customEntityDataSources[sourceName]) {
+ customEntityDataSources[sourceName]?.entities.removeAll()
+ }
+ }
- const removeAllCustomEntityDataSource = sourceName => {
- if (customEntityDataSources[sourceName]) {
- customEntityDataSources[sourceName]?.entities.removeAll();
- window.$viewer.dataSources.remove(customEntityDataSources[sourceName]);
- delete customEntityDataSources[sourceName];
- }
- };
+ const removeAllCustomEntityDataSource = sourceName => {
+ if (customEntityDataSources[sourceName]) {
+ customEntityDataSources[sourceName]?.entities.removeAll()
+ window.$viewer.dataSources.remove(customEntityDataSources[sourceName])
+ delete customEntityDataSources[sourceName]
+ }
+ }
- // 添加entity
- const addCustomImageryProviderDataSource = imageryLayers => {
- return viewer?.imageryLayers.addImageryProvider(imageryLayers);
- };
+ // 添加entity
+ const addCustomImageryProviderDataSource = imageryLayers => {
+ return viewer?.imageryLayers.addImageryProvider(imageryLayers)
+ }
- const showCustomImageryProviderDataSource = (imageryLayers, show) => {
- if (imageryLayers) {
- imageryLayers.show = show;
- }
- };
+ const showCustomImageryProviderDataSource = (imageryLayers, show) => {
+ if (imageryLayers) {
+ imageryLayers.show = show
+ }
+ }
- const removeAllCustomImageryProviderDataSource = imageryLayers => {
- if (imageryLayers) {
- viewer?.imageryLayers.remove(imageryLayers);
- }
- };
+ const removeAllCustomImageryProviderDataSource = imageryLayers => {
+ if (imageryLayers) {
+ viewer?.imageryLayers.remove(imageryLayers)
+ }
+ }
- // 添加范围的圆
- const addEllipse = ({ longitude, latitude, dist = 7000 }) => {
- if (!longitude && !latitude) return;
- // 定义起点位置
- const position = Cesium.Cartesian3.fromDegrees(longitude, latitude);
- // 画圆
+ // 添加范围的圆
+ const addEllipse = ({ longitude, latitude, dist = 7000 }) => {
+ if (!longitude && !latitude) return
+ // 定义起点位置
+ const position = Cesium.Cartesian3.fromDegrees(longitude, latitude)
+ // 画圆
- viewer?.entities.add({
- position,
- id: 'rangeEllipse',
- name: 'rangeEllipse',
- ellipse: {
- semiMinorAxis: dist,
- semiMajorAxis: dist,
- outline: true,
- material: Cesium.Color.CORNFLOWERBLUE.withAlpha(0.3),
- },
- });
- // 添加距离虚线
- // addDistLine({ longitude, latitude, dist });
- };
+ viewer?.entities.add({
+ position,
+ id: 'rangeEllipse',
+ name: 'rangeEllipse',
+ ellipse: {
+ semiMinorAxis: dist,
+ semiMajorAxis: dist,
+ outline: true,
+ material: Cesium.Color.CORNFLOWERBLUE.withAlpha(0.3),
+ },
+ })
+ // 添加距离虚线
+ // addDistLine({ longitude, latitude, dist });
+ }
- const addDistLine = ({ longitude, latitude, dist = 7 }) => {
- // 定义起点位置
- const startPosition = Cesium.Cartesian3.fromDegrees(longitude, latitude);
- // 计算目标位置(7公里处)
- const offsetCartesian = Cesium.Cartesian3.fromDegrees(
- longitude,
- latitude +
- Cesium.Math.toDegrees(
- dist / (Cesium.Ellipsoid.WGS84.maximumRadius * Math.cos(Cesium.Math.toRadians(latitude)))
- ) // 7公里的偏移
- );
- // 将目标位置转换为经纬度
- // const offsetCartographic = Cesium.Cartographic.fromCartesian(offsetCartesian);
- // const offsetLongitude = Cesium.Math.toDegrees(offsetCartographic.longitude);
- // const offsetLatitude = Cesium.Math.toDegrees(offsetCartographic.latitude);
- addPolyline({
- id: 'dist_line',
- polyline: {
- width: 5,
- positions: [startPosition, offsetCartesian],
- material: new Cesium.PolylineGlowMaterialProperty({
- glowPower: 0.2,
- taperPower: 0.5,
- color: Cesium.Color.CORNFLOWERBLUE,
- }),
- },
- });
- };
+ const addDistLine = ({ longitude, latitude, dist = 7 }) => {
+ // 定义起点位置
+ const startPosition = Cesium.Cartesian3.fromDegrees(longitude, latitude)
+ // 计算目标位置(7公里处)
+ const offsetCartesian = Cesium.Cartesian3.fromDegrees(
+ longitude,
+ latitude +
+ Cesium.Math.toDegrees(
+ dist / (Cesium.Ellipsoid.WGS84.maximumRadius * Math.cos(Cesium.Math.toRadians(latitude)))
+ ) // 7公里的偏移
+ )
+ // 将目标位置转换为经纬度
+ // const offsetCartographic = Cesium.Cartographic.fromCartesian(offsetCartesian);
+ // const offsetLongitude = Cesium.Math.toDegrees(offsetCartographic.longitude);
+ // const offsetLatitude = Cesium.Math.toDegrees(offsetCartographic.latitude);
+ addPolyline({
+ id: 'dist_line',
+ polyline: {
+ width: 5,
+ positions: [startPosition, offsetCartesian],
+ material: new Cesium.PolylineGlowMaterialProperty({
+ glowPower: 0.2,
+ taperPower: 0.5,
+ color: Cesium.Color.CORNFLOWERBLUE,
+ }),
+ },
+ })
+ }
- // 添加圆
- const addCircle = option => {
- if (!option.longitude && !option.latitude) return;
- // 定义起点位置
- const { longitude, latitude } = option;
- const position = Cesium.Cartesian3.fromDegrees(longitude, latitude);
- viewer.entities.add({
- position,
- id: option.id,
- ellipse: {
- semiMinorAxis: option.radius,
- semiMajorAxis: option.radius,
- height: option.height || 120,
- material: Cesium.Color.fromCssColorString(option.color).withAlpha(0.1),
- outline: true,
- outlineColor: Cesium.Color.fromCssColorString(option.color),
- outlineWidth: 3,
- },
- });
- };
+ // 添加圆
+ const addCircle = option => {
+ if (!option.longitude && !option.latitude) return
+ // 定义起点位置
+ const { longitude, latitude } = option
+ const position = Cesium.Cartesian3.fromDegrees(longitude, latitude)
+ viewer.entities.add({
+ position,
+ id: option.id,
+ ellipse: {
+ semiMinorAxis: option.radius,
+ semiMajorAxis: option.radius,
+ height: option.height || 120,
+ material: Cesium.Color.fromCssColorString(option.color).withAlpha(0.1),
+ outline: true,
+ outlineColor: Cesium.Color.fromCssColorString(option.color),
+ outlineWidth: 3,
+ },
+ })
+ }
- //
- /**
- * @description: 添加矩形
- * @param {*} option { id: string, color: string, positions: array[ lng,lat,height ] }
- * @return {*} void 0
- */
- const addPolygon = option => {
- if (option.positions.length === 0) return;
+ //
+ /**
+ * @description: 添加矩形
+ * @param {*} option { id: string, color: string, positions: array[ lng,lat,height ] }
+ * @return {*} void 0
+ */
+ const addPolygon = option => {
+ if (option.positions.length === 0) return
- let zIndex = {};
+ let zIndex = {}
- if (option.zIndex) {
- zIndex = {
- zIndex: option.zIndex,
- };
- }
+ if (option.zIndex) {
+ zIndex = {
+ zIndex: option.zIndex,
+ }
+ }
- // 定义起点位置
- viewer.entities.add({
- id: option.id,
- polygon: {
- hierarchy: Cesium.Cartesian3.fromDegreesArrayHeights(option.positions),
- material: Cesium.Color.fromCssColorString(option.color).withAlpha(0.1),
- extrudedHeight: 0,
- outline: true,
- outlineColor: Cesium.Color.fromCssColorString(option.color),
- outlineWidth: 3,
- },
- ...zIndex,
- });
- };
+ // 定义起点位置
+ viewer.entities.add({
+ id: option.id,
+ polygon: {
+ hierarchy: Cesium.Cartesian3.fromDegreesArrayHeights(option.positions),
+ material: Cesium.Color.fromCssColorString(option.color).withAlpha(0.1),
+ extrudedHeight: 0,
+ outline: true,
+ outlineColor: Cesium.Color.fromCssColorString(option.color),
+ outlineWidth: 3,
+ },
+ ...zIndex,
+ })
+ }
- // Cesium矢量切片是否加载完成
- const isLoadingCompleted = () => {
- return new Promise((resolve, reject) => {
- const helper = new Cesium.EventHelper();
- helper.add(viewer?.scene.globe.tileLoadProgressEvent, function (e) {
- if (e === 0) {
- resolve(true);
- }
- });
- });
- };
+ // Cesium矢量切片是否加载完成
+ const isLoadingCompleted = () => {
+ return new Promise((resolve, reject) => {
+ const helper = new Cesium.EventHelper()
+ helper.add(viewer?.scene.globe.tileLoadProgressEvent, function (e) {
+ if (e === 0) {
+ resolve(true)
+ }
+ })
+ })
+ }
- // 获取屏幕四个角经纬度
- const getScreenCorner = () => {
- const camera = viewer.scene.camera;
- const canvas = viewer.canvas;
+ // 获取屏幕四个角经纬度
+ const getScreenCorner = () => {
+ const camera = viewer.scene.camera
+ const canvas = viewer.canvas
- // 获取屏幕左下角和右上角的世界坐标
- const leftBottom = new Cesium.Cartesian2(0, canvas.clientHeight);
- const rightTop = new Cesium.Cartesian2(canvas.clientWidth, 0);
+ // 获取屏幕左下角和右上角的世界坐标
+ const leftBottom = new Cesium.Cartesian2(0, canvas.clientHeight)
+ const rightTop = new Cesium.Cartesian2(canvas.clientWidth, 0)
- // 将屏幕坐标转为世界坐标
- const leftBottomWorld = camera.pickEllipsoid(leftBottom, viewer.scene.globe.ellipsoid);
- const rightTopWorld = camera.pickEllipsoid(rightTop, viewer.scene.globe.ellipsoid);
+ // 将屏幕坐标转为世界坐标
+ const leftBottomWorld = camera.pickEllipsoid(leftBottom, viewer.scene.globe.ellipsoid)
+ const rightTopWorld = camera.pickEllipsoid(rightTop, viewer.scene.globe.ellipsoid)
- // 将世界坐标转为经纬度
- const leftBottomCartographic =
- viewer.scene.globe.ellipsoid.cartesianToCartographic(leftBottomWorld);
- const rightTopCartographic =
- viewer.scene.globe.ellipsoid.cartesianToCartographic(rightTopWorld);
+ // 将世界坐标转为经纬度
+ const leftBottomCartographic =
+ viewer.scene.globe.ellipsoid.cartesianToCartographic(leftBottomWorld)
+ const rightTopCartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(rightTopWorld)
- // 获取经纬度
- const leftBottomLonLat = [
- Cesium.Math.toDegrees(leftBottomCartographic.longitude),
- Cesium.Math.toDegrees(leftBottomCartographic.latitude),
- ];
- const rightTopLonLat = [
- Cesium.Math.toDegrees(rightTopCartographic.longitude),
- Cesium.Math.toDegrees(rightTopCartographic.latitude),
- ];
+ // 获取经纬度
+ const leftBottomLonLat = [
+ Cesium.Math.toDegrees(leftBottomCartographic.longitude),
+ Cesium.Math.toDegrees(leftBottomCartographic.latitude),
+ ]
+ const rightTopLonLat = [
+ Cesium.Math.toDegrees(rightTopCartographic.longitude),
+ Cesium.Math.toDegrees(rightTopCartographic.latitude),
+ ]
- // 返回四个角的经纬度
- return {
- lb: leftBottomLonLat,
- rb: [rightTopLonLat[0], leftBottomLonLat[1]], // 右下角
- rt: rightTopLonLat,
- lt: [leftBottomLonLat[0], rightTopLonLat[1]], // 左上角
- };
- };
+ // 返回四个角的经纬度
+ return {
+ lb: leftBottomLonLat,
+ rb: [rightTopLonLat[0], leftBottomLonLat[1]], // 右下角
+ rt: rightTopLonLat,
+ lt: [leftBottomLonLat[0], rightTopLonLat[1]], // 左上角
+ }
+ }
- // 加载3D建筑模型
- let tileset = null;
+ // 加载3D建筑模型
+ let tileset = null
- function setBuilding3dModel() {
- try {
- const resource = Cesium.IonResource.fromAssetId(96188);
- tileset = new Cesium.Cesium3DTileset({
- url: resource,
- });
+ function setBuilding3dModel() {
+ try {
+ const resource = Cesium.IonResource.fromAssetId(96188)
+ tileset = new Cesium.Cesium3DTileset({
+ url: resource,
+ })
- tileset.customParams = {
- type: '3DTileset',
- };
+ tileset.customParams = {
+ type: '3DTileset',
+ }
- viewer.scene.primitives.add(tileset);
- } catch (error) {
- console.log(`Error loading tileset: ${error}`);
- }
- }
+ viewer.scene.primitives.add(tileset)
+ } catch (error) {
+ console.log(`Error loading tileset: ${error}`)
+ }
+ }
- function removeBuilding3dModel() {
- if (tileset) {
- viewer.scene.primitives.remove(tileset);
- }
- }
+ function removeBuilding3dModel() {
+ if (tileset) {
+ viewer.scene.primitives.remove(tileset)
+ }
+ }
- const viewerDestory = () => {
- viewer && viewer.destroy();
- viewer = null;
- window.$viewer = null
- };
+ const viewerDestory = () => {
+ viewer && viewer.destroy()
+ viewer = null
+ window.$viewer = null
+ }
- let tilesetArr = [];
+ let tilesetArr = []
- const add3Dtileset = () => {
- let url = '/3Dtile/kjds/tileset.json';
+ const add3Dtileset = () => {
+ let url = '/3Dtile/kjds/tileset.json'
- let tileset = new Cesium.Cesium3DTileset({
- url: url,
- });
+ let tileset = new Cesium.Cesium3DTileset({
+ url: url,
+ })
- tileset.customParams = {
- type: '3DTileset',
- };
+ tileset.customParams = {
+ type: '3DTileset',
+ }
- tilesetArr.push(tileset);
+ tilesetArr.push(tileset)
- tilesetArr.forEach(i => viewer?.scene.primitives.add(i));
- };
+ tilesetArr.forEach(i => viewer?.scene.primitives.add(i))
+ }
- const remove3Dtileset = () => {
- if (tilesetArr.length > 0) {
- tilesetArr.forEach(i => viewer.scene.primitives.remove(i));
- }
+ const remove3Dtileset = () => {
+ if (tilesetArr.length > 0) {
+ tilesetArr.forEach(i => viewer.scene.primitives.remove(i))
+ }
- tilesetArr = [];
- };
+ tilesetArr = []
+ }
- let pointEditHandler;
- // 航点航线编辑相关事件
- const pointInitEvent = (lefet_down, mouse_move, left_up) => {
- if (!pointEditHandler) {
- pointEditHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas);
- }
+ let pointEditHandler
+ // 航点航线编辑相关事件
+ const pointInitEvent = (lefet_down, mouse_move, left_up) => {
+ if (!pointEditHandler) {
+ pointEditHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
+ }
- const events = {
- lefet_down,
- mouse_move,
- left_up,
- };
+ const events = {
+ lefet_down,
+ mouse_move,
+ left_up,
+ }
- pointEditBindEvent(events);
- pointEditBindEvent(events, Cesium.KeyboardEventModifier.CTRL);
- pointEditBindEvent(events, Cesium.KeyboardEventModifier.ALT);
- pointEditBindEvent(events, Cesium.KeyboardEventModifier.SHIFT);
- pointEditBindEvent(events, Cesium.KeyboardEventModifier.META);
- };
+ pointEditBindEvent(events)
+ pointEditBindEvent(events, Cesium.KeyboardEventModifier.CTRL)
+ pointEditBindEvent(events, Cesium.KeyboardEventModifier.ALT)
+ pointEditBindEvent(events, Cesium.KeyboardEventModifier.SHIFT)
+ pointEditBindEvent(events, Cesium.KeyboardEventModifier.META)
+ }
- const pointEditBindEvent = (events, e) => {
- if (pointEditHandler) {
- pointEditHandler.setInputAction(
- events.lefet_down(e),
- Cesium.ScreenSpaceEventType.LEFT_DOWN,
- e
- );
- pointEditHandler.setInputAction(
- events.mouse_move(e),
- Cesium.ScreenSpaceEventType.MOUSE_MOVE,
- e
- );
- pointEditHandler.setInputAction(events.left_up(e), Cesium.ScreenSpaceEventType.LEFT_UP, e);
- }
- };
+ const pointEditBindEvent = (events, e) => {
+ if (pointEditHandler) {
+ pointEditHandler.setInputAction(
+ events.lefet_down(e),
+ Cesium.ScreenSpaceEventType.LEFT_DOWN,
+ e
+ )
+ pointEditHandler.setInputAction(
+ events.mouse_move(e),
+ Cesium.ScreenSpaceEventType.MOUSE_MOVE,
+ e
+ )
+ pointEditHandler.setInputAction(events.left_up(e), Cesium.ScreenSpaceEventType.LEFT_UP, e)
+ }
+ }
- const pointUnInitEvent = () => {
- pointEditUnBindEvent();
- pointEditUnBindEvent(Cesium.KeyboardEventModifier.CTRL);
- pointEditUnBindEvent(Cesium.KeyboardEventModifier.ALT);
- pointEditUnBindEvent(Cesium.KeyboardEventModifier.SHIFT);
- pointEditUnBindEvent(Cesium.KeyboardEventModifier.META);
+ const pointUnInitEvent = () => {
+ pointEditUnBindEvent()
+ pointEditUnBindEvent(Cesium.KeyboardEventModifier.CTRL)
+ pointEditUnBindEvent(Cesium.KeyboardEventModifier.ALT)
+ pointEditUnBindEvent(Cesium.KeyboardEventModifier.SHIFT)
+ pointEditUnBindEvent(Cesium.KeyboardEventModifier.META)
- pointEditHandler = null;
- };
+ pointEditHandler = null
+ }
- const pointEditUnBindEvent = e => {
- pointEditHandler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOWN, e);
- pointEditHandler?.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE, e);
- pointEditHandler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_UP, e);
- };
+ const pointEditUnBindEvent = e => {
+ pointEditHandler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOWN, e)
+ pointEditHandler?.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE, e)
+ pointEditHandler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_UP, e)
+ }
- return {
- _init,
- patternMap,
- loadLAYER,
- roadPattern,
- switchModel,
- switchDarkModel,
- removeAllDataSource,
- removeAllPoint,
- removeById,
- getEntityById,
- addPoint,
- addPolyline,
- updateEntityPosition,
- flyTo,
- addLeftClickEvent,
- removeLeftClickEvent,
- addRightClickEvent,
- removeRightClickEvent,
- addLeftmounseEvent,
- removeLeftmounseEvent,
+ return {
+ _init,
+ patternMap,
+ loadLAYER,
+ roadPattern,
+ switchModel,
+ switchDarkModel,
+ removeAllDataSource,
+ removeAllPoint,
+ removeById,
+ getEntityById,
+ addPoint,
+ addPolyline,
+ updateEntityPosition,
+ flyTo,
+ addLeftClickEvent,
+ removeLeftClickEvent,
+ addRightClickEvent,
+ removeRightClickEvent,
+ addLeftmounseEvent,
+ removeLeftmounseEvent,
- addLeftUpClickEvent,
- removeLeftUpClickEvent,
+ addLeftUpClickEvent,
+ removeLeftUpClickEvent,
- addLeftDownClickEvent,
- removeLeftDownClickEvent,
+ addLeftDownClickEvent,
+ removeLeftDownClickEvent,
- addMounseHandler,
- removeMounseEvent,
+ addMounseHandler,
+ removeMounseEvent,
- addCameraMoveEvent,
- removeCameraMoveEvent,
- addCircle,
- addPolygon,
- addEllipse,
- isLoadingCompleted,
- getScreenCorner,
- setBuilding3dModel,
- removeBuilding3dModel,
+ addCameraMoveEvent,
+ removeCameraMoveEvent,
+ addCircle,
+ addPolygon,
+ addEllipse,
+ isLoadingCompleted,
+ getScreenCorner,
+ setBuilding3dModel,
+ removeBuilding3dModel,
- viewerDestory,
+ viewerDestory,
- globalCesium: window.globalCesium || Cesium,
+ globalCesium: window.globalCesium || Cesium,
- addCustomEntityDataSource,
- clearCustomEntityDataSource,
- removeAllCustomEntityDataSource,
- _getMouseInfo,
+ addCustomEntityDataSource,
+ clearCustomEntityDataSource,
+ removeAllCustomEntityDataSource,
+ _getMouseInfo,
- addCustomImageryProviderDataSource,
- showCustomImageryProviderDataSource,
- removeAllCustomImageryProviderDataSource,
+ addCustomImageryProviderDataSource,
+ showCustomImageryProviderDataSource,
+ removeAllCustomImageryProviderDataSource,
- addCustomLayers,
- removeCustomLayers,
- add3Dtileset,
- remove3Dtileset,
+ addCustomLayers,
+ removeCustomLayers,
+ add3Dtileset,
+ remove3Dtileset,
- // 航线规划---航点航线
- pointInitEvent,
- pointUnInitEvent,
- };
+ // 航线规划---航点航线
+ pointInitEvent,
+ pointUnInitEvent,
+ }
}
diff --git a/src/utils/cesium/AmapMercatorTilingScheme/CoordTransform.js b/src/utils/cesium/AmapMercatorTilingScheme/CoordTransform.js
index 5b1b4a5..dfc7074 100644
--- a/src/utils/cesium/AmapMercatorTilingScheme/CoordTransform.js
+++ b/src/utils/cesium/AmapMercatorTilingScheme/CoordTransform.js
@@ -1,178 +1,148 @@
// 定义一些常量
-const BD_FACTOR = (3.14159265358979324 * 3000.0) / 180.0;
-const PI = 3.1415926535897932384626;
-const RADIUS = 6378245.0;
-const EE = 0.00669342162296594323;
+const BD_FACTOR = (3.14159265358979324 * 3000.0) / 180.0
+const PI = 3.1415926535897932384626
+const RADIUS = 6378245.0
+const EE = 0.00669342162296594323
class CoordTransform {
- /**
- * BD-09(百度坐标系) To GCJ-02(火星坐标系)
- * @param lng
- * @param lat
- * @returns {number[]}
- */
- static BD09ToGCJ02(lng, lat) {
- let x = +lng - 0.0065;
- let y = +lat - 0.006;
- let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * BD_FACTOR);
- let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * BD_FACTOR);
- let gg_lng = z * Math.cos(theta);
- let gg_lat = z * Math.sin(theta);
- return [gg_lng, gg_lat];
- }
+ /**
+ * BD-09(百度坐标系) To GCJ-02(火星坐标系)
+ * @param lng
+ * @param lat
+ * @returns {number[]}
+ */
+ static BD09ToGCJ02(lng, lat) {
+ let x = +lng - 0.0065
+ let y = +lat - 0.006
+ let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * BD_FACTOR)
+ let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * BD_FACTOR)
+ let gg_lng = z * Math.cos(theta)
+ let gg_lat = z * Math.sin(theta)
+ return [gg_lng, gg_lat]
+ }
- /**
- * GCJ-02(火星坐标系) To BD-09(百度坐标系)
- * @param lng
- * @param lat
- * @returns {number[]}
- * @constructor
- */
- static GCJ02ToBD09(lng, lat) {
- lat = +lat;
- lng = +lng;
- let z =
- Math.sqrt(lng * lng + lat * lat) +
- 0.00002 * Math.sin(lat * BD_FACTOR);
- let theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * BD_FACTOR);
- let bd_lng = z * Math.cos(theta) + 0.0065;
- let bd_lat = z * Math.sin(theta) + 0.006;
- return [bd_lng, bd_lat];
- }
+ /**
+ * GCJ-02(火星坐标系) To BD-09(百度坐标系)
+ * @param lng
+ * @param lat
+ * @returns {number[]}
+ * @constructor
+ */
+ static GCJ02ToBD09(lng, lat) {
+ lat = +lat
+ lng = +lng
+ let z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * BD_FACTOR)
+ let theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * BD_FACTOR)
+ let bd_lng = z * Math.cos(theta) + 0.0065
+ let bd_lat = z * Math.sin(theta) + 0.006
+ return [bd_lng, bd_lat]
+ }
- /**
- * WGS-84(世界大地坐标系) To GCJ-02(火星坐标系)
- * @param lng
- * @param lat
- * @returns {number[]}
- */
- static WGS84ToGCJ02(lng, lat) {
- lat = +lat;
- lng = +lng;
- if (this.out_of_china(lng, lat)) {
- return [lng, lat];
- } else {
- let d = this.delta(lng, lat);
- return [lng + d[0], lat + d[1]];
- }
- }
+ /**
+ * WGS-84(世界大地坐标系) To GCJ-02(火星坐标系)
+ * @param lng
+ * @param lat
+ * @returns {number[]}
+ */
+ static WGS84ToGCJ02(lng, lat) {
+ lat = +lat
+ lng = +lng
+ if (this.out_of_china(lng, lat)) {
+ return [lng, lat]
+ } else {
+ let d = this.delta(lng, lat)
+ return [lng + d[0], lat + d[1]]
+ }
+ }
- /**
- * GCJ-02(火星坐标系) To WGS-84(世界大地坐标系)
- * @param lng
- * @param lat
- * @returns {number[]}
- * @constructor
- */
- static GCJ02ToWGS84(lng, lat) {
- lat = +lat;
- lng = +lng;
- if (this.out_of_china(lng, lat)) {
- return [lng, lat];
- } else {
- let d = this.delta(lng, lat);
- let mgLng = lng + d[0];
- let mgLat = lat + d[1];
- return [lng * 2 - mgLng, lat * 2 - mgLat];
- }
- }
+ /**
+ * GCJ-02(火星坐标系) To WGS-84(世界大地坐标系)
+ * @param lng
+ * @param lat
+ * @returns {number[]}
+ * @constructor
+ */
+ static GCJ02ToWGS84(lng, lat) {
+ lat = +lat
+ lng = +lng
+ if (this.out_of_china(lng, lat)) {
+ return [lng, lat]
+ } else {
+ let d = this.delta(lng, lat)
+ let mgLng = lng + d[0]
+ let mgLat = lat + d[1]
+ return [lng * 2 - mgLng, lat * 2 - mgLat]
+ }
+ }
- /**
- *
- * @param lng
- * @param lat
- * @returns {number[]}
- */
- static delta(lng, lat) {
- let dLng = this.transformLng(lng - 105, lat - 35);
- let dLat = this.transformLat(lng - 105, lat - 35);
- const radLat = (lat / 180) * PI;
- let magic = Math.sin(radLat);
- magic = 1 - EE * magic * magic;
- const sqrtMagic = Math.sqrt(magic);
- dLng = (dLng * 180) / ((RADIUS / sqrtMagic) * Math.cos(radLat) * PI);
- dLat =
- (dLat * 180) / (((RADIUS * (1 - EE)) / (magic * sqrtMagic)) * PI);
- return [dLng, dLat];
- }
+ /**
+ *
+ * @param lng
+ * @param lat
+ * @returns {number[]}
+ */
+ static delta(lng, lat) {
+ let dLng = this.transformLng(lng - 105, lat - 35)
+ let dLat = this.transformLat(lng - 105, lat - 35)
+ const radLat = (lat / 180) * PI
+ let magic = Math.sin(radLat)
+ magic = 1 - EE * magic * magic
+ const sqrtMagic = Math.sqrt(magic)
+ dLng = (dLng * 180) / ((RADIUS / sqrtMagic) * Math.cos(radLat) * PI)
+ dLat = (dLat * 180) / (((RADIUS * (1 - EE)) / (magic * sqrtMagic)) * PI)
+ return [dLng, dLat]
+ }
- /**
- *
- * @param lng
- * @param lat
- * @returns {number}
- */
- static transformLng(lng, lat) {
- lat = +lat;
- lng = +lng;
- let ret =
- 300.0 +
- lng +
- 2.0 * lat +
- 0.1 * lng * lng +
- 0.1 * lng * lat +
- 0.1 * Math.sqrt(Math.abs(lng));
- ret +=
- ((20.0 * Math.sin(6.0 * lng * PI) +
- 20.0 * Math.sin(2.0 * lng * PI)) *
- 2.0) /
- 3.0;
- ret +=
- ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) *
- 2.0) /
- 3.0;
- ret +=
- ((150.0 * Math.sin((lng / 12.0) * PI) +
- 300.0 * Math.sin((lng / 30.0) * PI)) *
- 2.0) /
- 3.0;
- return ret;
- }
+ /**
+ *
+ * @param lng
+ * @param lat
+ * @returns {number}
+ */
+ static transformLng(lng, lat) {
+ lat = +lat
+ lng = +lng
+ let ret =
+ 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng))
+ ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0
+ ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0
+ ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0
+ return ret
+ }
- /**
- *
- * @param lng
- * @param lat
- * @returns {number}
- */
- static transformLat(lng, lat) {
- lat = +lat;
- lng = +lng;
- let ret =
- -100.0 +
- 2.0 * lng +
- 3.0 * lat +
- 0.2 * lat * lat +
- 0.1 * lng * lat +
- 0.2 * Math.sqrt(Math.abs(lng));
- ret +=
- ((20.0 * Math.sin(6.0 * lng * PI) +
- 20.0 * Math.sin(2.0 * lng * PI)) *
- 2.0) /
- 3.0;
- ret +=
- ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) *
- 2.0) /
- 3.0;
- ret +=
- ((160.0 * Math.sin((lat / 12.0) * PI) +
- 320 * Math.sin((lat * PI) / 30.0)) *
- 2.0) /
- 3.0;
- return ret;
- }
+ /**
+ *
+ * @param lng
+ * @param lat
+ * @returns {number}
+ */
+ static transformLat(lng, lat) {
+ lat = +lat
+ lng = +lng
+ let ret =
+ -100.0 +
+ 2.0 * lng +
+ 3.0 * lat +
+ 0.2 * lat * lat +
+ 0.1 * lng * lat +
+ 0.2 * Math.sqrt(Math.abs(lng))
+ ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0
+ ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0
+ ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0
+ return ret
+ }
- /**
- * 判断是否在国内。不在国内不做偏移
- * @param lng
- * @param lat
- * @returns {boolean}
- */
- static out_of_china(lng, lat) {
- lat = +lat;
- lng = +lng;
- return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);
- }
+ /**
+ * 判断是否在国内。不在国内不做偏移
+ * @param lng
+ * @param lat
+ * @returns {boolean}
+ */
+ static out_of_china(lng, lat) {
+ lat = +lat
+ lng = +lng
+ return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55)
+ }
}
-export default CoordTransform;
+export default CoordTransform
diff --git a/src/utils/cesium/AmapMercatorTilingScheme/index.js b/src/utils/cesium/AmapMercatorTilingScheme/index.js
index 6b81249..dee4295 100644
--- a/src/utils/cesium/AmapMercatorTilingScheme/index.js
+++ b/src/utils/cesium/AmapMercatorTilingScheme/index.js
@@ -8,46 +8,40 @@
* Copyright (c) 2024 by GuLiMmo, All Rights Reserved.
*/
import {
- WebMercatorProjection,
- WebMercatorTilingScheme,
- Math,
- Cartographic,
- Cartesian2,
-} from 'cesium';
-import CoordTransform from './CoordTransform';
+ WebMercatorProjection,
+ WebMercatorTilingScheme,
+ Math,
+ Cartographic,
+ Cartesian2,
+} from 'cesium'
+import CoordTransform from './CoordTransform'
class AmapMercatorTilingScheme extends WebMercatorTilingScheme {
- constructor() {
- super();
+ constructor() {
+ super()
- let projection = new WebMercatorProjection();
+ let projection = new WebMercatorProjection()
- this._projection.project = function (cartographic, result) {
- result = CoordTransform.WGS84ToGCJ02(
- Math.toDegrees(cartographic.longitude),
- Math.toDegrees(cartographic.latitude),
- );
- result = projection.project(
- new Cartographic(
- Math.toRadians(result[0]),
- Math.toRadians(result[1]),
- ),
- );
- return new Cartesian2(result.x, result.y);
- };
+ this._projection.project = function (cartographic, result) {
+ result = CoordTransform.WGS84ToGCJ02(
+ Math.toDegrees(cartographic.longitude),
+ Math.toDegrees(cartographic.latitude)
+ )
+ result = projection.project(
+ new Cartographic(Math.toRadians(result[0]), Math.toRadians(result[1]))
+ )
+ return new Cartesian2(result.x, result.y)
+ }
- this._projection.unproject = function (cartesian, result) {
- let cartographic = projection.unproject(cartesian);
- result = CoordTransform.GCJ02ToWGS84(
- Math.toDegrees(cartographic.longitude),
- Math.toDegrees(cartographic.latitude),
- );
- return new Cartographic(
- Math.toRadians(result[0]),
- Math.toRadians(result[1]),
- );
- };
- }
+ this._projection.unproject = function (cartesian, result) {
+ let cartographic = projection.unproject(cartesian)
+ result = CoordTransform.GCJ02ToWGS84(
+ Math.toDegrees(cartographic.longitude),
+ Math.toDegrees(cartographic.latitude)
+ )
+ return new Cartographic(Math.toRadians(result[0]), Math.toRadians(result[1]))
+ }
+ }
}
-export default AmapMercatorTilingScheme;
+export default AmapMercatorTilingScheme
diff --git a/src/utils/cesium/ImageTrailMaterial.js b/src/utils/cesium/ImageTrailMaterial.js
index 1e1092c..272ed12 100644
--- a/src/utils/cesium/ImageTrailMaterial.js
+++ b/src/utils/cesium/ImageTrailMaterial.js
@@ -1,85 +1,80 @@
-import * as Cesium from 'cesium';
+import * as Cesium from 'cesium'
/**
* 定义Cesium材质对象
*/
class ImageTrailMaterial {
- constructor(options = {}) {
- this._definitionChanged = new Cesium.Event();
- this._color = void 0;
- this._colorSubscription = void 0;
- this._speed = void 0;
- this._speedSubscription = void 0;
- this._image = void 0;
- this._imageSubscription = void 0;
- this._repeat = void 0;
- this._repeatSubscription = void 0;
- this.color = options.color || Cesium.Color.fromBytes(0, 0, 255, 255);
- this.speed = options.speed || 1;
- this.image = options.image;
- this.repeat = new Cesium.Cartesian2(
- options.repeat?.x || 1,
- options.repeat?.y || 1,
- );
- }
+ constructor(options = {}) {
+ this._definitionChanged = new Cesium.Event()
+ this._color = void 0
+ this._colorSubscription = void 0
+ this._speed = void 0
+ this._speedSubscription = void 0
+ this._image = void 0
+ this._imageSubscription = void 0
+ this._repeat = void 0
+ this._repeatSubscription = void 0
+ this.color = options.color || Cesium.Color.fromBytes(0, 0, 255, 255)
+ this.speed = options.speed || 1
+ this.image = options.image
+ this.repeat = new Cesium.Cartesian2(options.repeat?.x || 1, options.repeat?.y || 1)
+ }
- get isConstant() {
- return false;
- }
+ get isConstant() {
+ return false
+ }
- get definitionChanged() {
- return this._definitionChanged;
- }
+ get definitionChanged() {
+ return this._definitionChanged
+ }
- getType() {
- return Cesium.Material.ImageTrailMaterialType;
- }
+ getType() {
+ return Cesium.Material.ImageTrailMaterialType
+ }
- getValue(time, result) {
- if (!result) {
- result = {};
- }
- result.color = Cesium.Property.getValueOrUndefined(this._color, time);
- result.image = Cesium.Property.getValueOrUndefined(this._image, time);
- result.repeat = Cesium.Property.getValueOrUndefined(this._repeat, time);
- result.speed = this._speed;
- return result;
- }
+ getValue(time, result) {
+ if (!result) {
+ result = {}
+ }
+ result.color = Cesium.Property.getValueOrUndefined(this._color, time)
+ result.image = Cesium.Property.getValueOrUndefined(this._image, time)
+ result.repeat = Cesium.Property.getValueOrUndefined(this._repeat, time)
+ result.speed = this._speed
+ return result
+ }
- equals(other) {
- return (
- this === other ||
- (other instanceof ImageTrailMaterial &&
- Cesium.Property.equals(this._color, other._color) &&
- Cesium.Property.equals(this._image, other._image) &&
- Cesium.Property.equals(this._repeat, other._repeat) &&
- Cesium.Property.equals(this._speed, other._speed))
- );
- }
+ equals(other) {
+ return (
+ this === other ||
+ (other instanceof ImageTrailMaterial &&
+ Cesium.Property.equals(this._color, other._color) &&
+ Cesium.Property.equals(this._image, other._image) &&
+ Cesium.Property.equals(this._repeat, other._repeat) &&
+ Cesium.Property.equals(this._speed, other._speed))
+ )
+ }
}
Object.defineProperties(ImageTrailMaterial.prototype, {
- color: Cesium.createPropertyDescriptor('color'),
- speed: Cesium.createPropertyDescriptor('speed'),
- image: Cesium.createPropertyDescriptor('image'),
- repeat: Cesium.createPropertyDescriptor('repeat'),
-});
+ color: Cesium.createPropertyDescriptor('color'),
+ speed: Cesium.createPropertyDescriptor('speed'),
+ image: Cesium.createPropertyDescriptor('image'),
+ repeat: Cesium.createPropertyDescriptor('repeat'),
+})
//材质类型
-Cesium.Material.ImageTrailMaterialType = 'PolylineImageTrail';
+Cesium.Material.ImageTrailMaterialType = 'PolylineImageTrail'
//添加材质到缓冲区中
-Cesium.Material._materialCache.addMaterial(
- Cesium.Material.ImageTrailMaterialType,
- {
- fabric: {
- type: Cesium.Material.ImageTrailMaterialType,
- //uniform变量
- uniforms: {
- color: new Cesium.Color(1.0, 0.0, 0.0, 0.7),
- image: Cesium.Material.DefaultImageId,
- speed: 1,
- repeat: new Cesium.Cartesian2(1, 1),
- },
- //
- source: `
+Cesium.Material._materialCache.addMaterial(Cesium.Material.ImageTrailMaterialType, {
+ fabric: {
+ type: Cesium.Material.ImageTrailMaterialType,
+ //uniform变量
+ uniforms: {
+ color: new Cesium.Color(1.0, 0.0, 0.0, 0.7),
+ image: Cesium.Material.DefaultImageId,
+ speed: 1,
+ repeat: new Cesium.Cartesian2(1, 1),
+ },
+ //
+ source: `
uniform sampler2D image;
uniform float speed;
uniform vec4 color;
@@ -95,13 +90,12 @@
return material;
}
`,
- },
- translucent: function () {
- return true;
- },
- },
-);
-export default ImageTrailMaterial;
+ },
+ translucent: function () {
+ return true
+ },
+})
+export default ImageTrailMaterial
//之前的航线材质编写
// source: `
diff --git a/src/utils/cesium/common.js b/src/utils/cesium/common.js
index b93ec12..db8e80d 100644
--- a/src/utils/cesium/common.js
+++ b/src/utils/cesium/common.js
@@ -6,189 +6,154 @@
* @FilePath: /bigScreen/src/utils/cesium/common.js
* @Description:
*/
-import * as Cesium from 'cesium';
-import JsZip from 'jszip';
-import _ from 'lodash';
-import axios from 'axios';
-import { analyzeKmzFile, XMLToJSON } from './kmz';
-import { getCenterPoint, getLnglatDist, getShortestDistance } from './mapUtil';
+import * as Cesium from 'cesium'
+import JsZip from 'jszip'
+import _ from 'lodash'
+import axios from 'axios'
+import { analyzeKmzFile, XMLToJSON } from './kmz'
+import { getCenterPoint, getLnglatDist, getShortestDistance } from './mapUtil'
// 图斑航线计算
export const polygonRoutePlanning = (polygonList, startPostion) => {
- // 起始点位
- const { longitude, latitude } = startPostion;
- // 计算中心点
- const polygonCenterArr = polygonList.map((polygon) => {
- const newPolygon = [
- ...new Set(polygon.map((lnglat) => lnglat.join(','))),
- ];
- return {
- center: getCenterPoint(polygon),
- polygon: newPolygon.map((item) => item.split(',')),
- };
- });
- // 机场到中心点的距离排序
- const airportDistanceArr = polygonCenterArr.sort((prev, next) => {
- const prevDistance = getLnglatDist(
- longitude,
- latitude,
- prev.center.lng,
- prev.center.lat,
- );
- const nextDistance = getLnglatDist(
- longitude,
- latitude,
- next.center.lng,
- next.center.lat,
- );
- return prevDistance - nextDistance;
- });
+ // 起始点位
+ const { longitude, latitude } = startPostion
+ // 计算中心点
+ const polygonCenterArr = polygonList.map(polygon => {
+ const newPolygon = [...new Set(polygon.map(lnglat => lnglat.join(',')))]
+ return {
+ center: getCenterPoint(polygon),
+ polygon: newPolygon.map(item => item.split(',')),
+ }
+ })
+ // 机场到中心点的距离排序
+ const airportDistanceArr = polygonCenterArr.sort((prev, next) => {
+ const prevDistance = getLnglatDist(longitude, latitude, prev.center.lng, prev.center.lat)
+ const nextDistance = getLnglatDist(longitude, latitude, next.center.lng, next.center.lat)
+ return prevDistance - nextDistance
+ })
- const sortPolygon = [];
- function getFirstPolygon(arr, start) {
- const { slongitude, slatitude } = start;
- // 机场到中心点的距离排序
- const airportDistanceArr = arr.sort((prev, next) => {
- const prevDistance = getLnglatDist(
- slongitude,
- slatitude,
- prev.center.lng,
- prev.center.lat,
- );
- const nextDistance = getLnglatDist(
- slongitude,
- slatitude,
- next.center.lng,
- next.center.lat,
- );
- return prevDistance - nextDistance;
- });
- const polygon = _.cloneDeep(airportDistanceArr[0]);
- if (polygon === void 0) return;
- sortPolygon.push(polygon);
- airportDistanceArr.splice(0, 1);
- if (airportDistanceArr.length > 0) {
- getFirstPolygon(airportDistanceArr, {
- slongitude: polygon.center.lng,
- slatitude: polygon.center.lat,
- });
- }
- }
- getFirstPolygon(polygonCenterArr, {
- slongitude: longitude,
- slatitude: latitude,
- });
- // 计算图斑内点位飞行顺序
- let result = [[longitude, latitude]];
- sortPolygon.forEach((item, index) => {
- const { polygon } = item;
- // 取出当前图斑之前最后一个点
- const prevPolygon = result[result.length - 1];
- const [slng, slat] = prevPolygon;
- const nextPolygon = airportDistanceArr[index + 1];
- // 求出距离上一个点最近的点,作为第一个点
- const sequence = polygon.sort((prev, next) => {
- const [prevLng, prevLat] = prev;
- const [nextLng, nextLat] = next;
- const prevDistance = getLnglatDist(slng, slat, prevLng, prevLat);
- const nextDistance = getLnglatDist(slng, slat, nextLng, nextLat);
- return prevDistance - nextDistance;
- });
- // 第一个点位
- const firstLnglat = [...sequence[0]];
- // 去除第一个点位
- const cloneSequence = _.cloneDeep(sequence);
- cloneSequence.splice(0, 1);
- if (nextPolygon) {
- // 获取两个经纬度组两个最近的点位
- const { index: lnglatIndex } = getShortestDistance(
- cloneSequence,
- nextPolygon.polygon,
- );
- const lastLnglat = _.cloneDeep(cloneSequence[lnglatIndex[0]]);
- // 删除飞行的最后一个点
- cloneSequence.splice(lnglatIndex[0], 1);
- const centerLnglatList = cloneSequence.sort((prev, next) => {
- const [prevLng, prevLat] = prev;
- const [nextLng, nextLat] = next;
- const prevDistance = getLnglatDist(
- longitude,
- latitude,
- prevLng,
- prevLat,
- );
- const nextDistance = getLnglatDist(
- longitude,
- latitude,
- nextLng,
- nextLat,
- );
- return prevDistance - nextDistance;
- });
- result = [...result, firstLnglat, ...centerLnglatList, lastLnglat];
- } else {
- // const last = polygon.sort((prev, next) => {
- // const [prevLng, prevLat] = prev;
- // const [nextLng, nextLat] = next;
- // const prevDistance = getLnglatDist(longitude, latitude, prevLng, prevLat);
- // const nextDistance = getLnglatDist(longitude, latitude, nextLng, nextLat);
- // return prevDistance - nextDistance;
- // });
- result = [...result, ...sequence];
- // result = [...result, ...last]
- }
- });
- return result;
-};
+ const sortPolygon = []
+ function getFirstPolygon(arr, start) {
+ const { slongitude, slatitude } = start
+ // 机场到中心点的距离排序
+ const airportDistanceArr = arr.sort((prev, next) => {
+ const prevDistance = getLnglatDist(slongitude, slatitude, prev.center.lng, prev.center.lat)
+ const nextDistance = getLnglatDist(slongitude, slatitude, next.center.lng, next.center.lat)
+ return prevDistance - nextDistance
+ })
+ const polygon = _.cloneDeep(airportDistanceArr[0])
+ if (polygon === void 0) return
+ sortPolygon.push(polygon)
+ airportDistanceArr.splice(0, 1)
+ if (airportDistanceArr.length > 0) {
+ getFirstPolygon(airportDistanceArr, {
+ slongitude: polygon.center.lng,
+ slatitude: polygon.center.lat,
+ })
+ }
+ }
+ getFirstPolygon(polygonCenterArr, {
+ slongitude: longitude,
+ slatitude: latitude,
+ })
+ // 计算图斑内点位飞行顺序
+ let result = [[longitude, latitude]]
+ sortPolygon.forEach((item, index) => {
+ const { polygon } = item
+ // 取出当前图斑之前最后一个点
+ const prevPolygon = result[result.length - 1]
+ const [slng, slat] = prevPolygon
+ const nextPolygon = airportDistanceArr[index + 1]
+ // 求出距离上一个点最近的点,作为第一个点
+ const sequence = polygon.sort((prev, next) => {
+ const [prevLng, prevLat] = prev
+ const [nextLng, nextLat] = next
+ const prevDistance = getLnglatDist(slng, slat, prevLng, prevLat)
+ const nextDistance = getLnglatDist(slng, slat, nextLng, nextLat)
+ return prevDistance - nextDistance
+ })
+ // 第一个点位
+ const firstLnglat = [...sequence[0]]
+ // 去除第一个点位
+ const cloneSequence = _.cloneDeep(sequence)
+ cloneSequence.splice(0, 1)
+ if (nextPolygon) {
+ // 获取两个经纬度组两个最近的点位
+ const { index: lnglatIndex } = getShortestDistance(cloneSequence, nextPolygon.polygon)
+ const lastLnglat = _.cloneDeep(cloneSequence[lnglatIndex[0]])
+ // 删除飞行的最后一个点
+ cloneSequence.splice(lnglatIndex[0], 1)
+ const centerLnglatList = cloneSequence.sort((prev, next) => {
+ const [prevLng, prevLat] = prev
+ const [nextLng, nextLat] = next
+ const prevDistance = getLnglatDist(longitude, latitude, prevLng, prevLat)
+ const nextDistance = getLnglatDist(longitude, latitude, nextLng, nextLat)
+ return prevDistance - nextDistance
+ })
+ result = [...result, firstLnglat, ...centerLnglatList, lastLnglat]
+ } else {
+ // const last = polygon.sort((prev, next) => {
+ // const [prevLng, prevLat] = prev;
+ // const [nextLng, nextLat] = next;
+ // const prevDistance = getLnglatDist(longitude, latitude, prevLng, prevLat);
+ // const nextDistance = getLnglatDist(longitude, latitude, nextLng, nextLat);
+ // return prevDistance - nextDistance;
+ // });
+ result = [...result, ...sequence]
+ // result = [...result, ...last]
+ }
+ })
+ return result
+}
-export const getWaylineFilePoints = async (fileUrl) => {
- const fileRes = await analyzeKmzFile(fileUrl);
- const waylineContent = await fileRes['fileInfoObj']?.['wpmz/waylines.wpml'];
- const xml = XMLToJSON(waylineContent);
- const placemarkArr = xml?.Document?.Folder.Placemark;
- const points = placemarkArr.map((placemark) => {
- const lnglat = placemark.Point.coordinates?.['#text'].split(',');
- return {
- longitude: lnglat[0],
- latitude: lnglat[1],
- };
- });
- return points;
-};
+export const getWaylineFilePoints = async fileUrl => {
+ const fileRes = await analyzeKmzFile(fileUrl)
+ const waylineContent = await fileRes['fileInfoObj']?.['wpmz/waylines.wpml']
+ const xml = XMLToJSON(waylineContent)
+ const placemarkArr = xml?.Document?.Folder.Placemark
+ const points = placemarkArr.map(placemark => {
+ const lnglat = placemark.Point.coordinates?.['#text'].split(',')
+ return {
+ longitude: lnglat[0],
+ latitude: lnglat[1],
+ }
+ })
+ return points
+}
// 传入方向,计算移动点位经纬度
export function movePosition(lon, lat, heading, direction) {
- // 计算朝向角度的弧度值(Cesium 是基于地理坐标系,heading=0 指向正北)
- const headingRad = Cesium.Math.toRadians(heading);
- const moveStep = 0.00005; // 移动步长
- let newLon = lon;
- let newLat = lat;
+ // 计算朝向角度的弧度值(Cesium 是基于地理坐标系,heading=0 指向正北)
+ const headingRad = Cesium.Math.toRadians(heading)
+ const moveStep = 0.00005 // 移动步长
+ let newLon = lon
+ let newLat = lat
- switch (direction) {
- case "W": // 向前(heading 方向)
- newLon += moveStep * Math.sin(headingRad);
- newLat += moveStep * Math.cos(headingRad);
- break;
+ switch (direction) {
+ case 'W': // 向前(heading 方向)
+ newLon += moveStep * Math.sin(headingRad)
+ newLat += moveStep * Math.cos(headingRad)
+ break
- case "S": // 向后(反方向)
- newLon -= moveStep * Math.sin(headingRad);
- newLat -= moveStep * Math.cos(headingRad);
- break;
+ case 'S': // 向后(反方向)
+ newLon -= moveStep * Math.sin(headingRad)
+ newLat -= moveStep * Math.cos(headingRad)
+ break
- case "D": // 向右(heading + 90°)
- newLon += moveStep * Math.cos(headingRad);
- newLat -= moveStep * Math.sin(headingRad);
- break;
+ case 'D': // 向右(heading + 90°)
+ newLon += moveStep * Math.cos(headingRad)
+ newLat -= moveStep * Math.sin(headingRad)
+ break
- case "A": // 向左(heading - 90°)
- newLon -= moveStep * Math.cos(headingRad);
- newLat += moveStep * Math.sin(headingRad);
- break;
+ case 'A': // 向左(heading - 90°)
+ newLon -= moveStep * Math.cos(headingRad)
+ newLat += moveStep * Math.sin(headingRad)
+ break
- default:
- console.warn("无效方向");
- return null;
- }
+ default:
+ console.warn('无效方向')
+ return null
+ }
- return { longitude: newLon, latitude: newLat };
+ return { longitude: newLon, latitude: newLat }
}
diff --git a/src/utils/cesium/compressImage.js b/src/utils/cesium/compressImage.js
index 7c99c18..0b09680 100644
--- a/src/utils/cesium/compressImage.js
+++ b/src/utils/cesium/compressImage.js
@@ -7,49 +7,49 @@
* @return {*}
*/
function compressImage(src, quality, maxWidth, callback) {
- const img = new Image();
- img.setAttribute('crossOrigin', 'Anonymous');
- img.onload = function () {
- const canvas = document.createElement('canvas');
- const ctx = canvas.getContext('2d');
- let width = img.width;
- let height = img.height;
+ const img = new Image()
+ img.setAttribute('crossOrigin', 'Anonymous')
+ img.onload = function () {
+ const canvas = document.createElement('canvas')
+ const ctx = canvas.getContext('2d')
+ let width = img.width
+ let height = img.height
- if (width > maxWidth) {
- height *= maxWidth / width;
- width = maxWidth;
- }
+ if (width > maxWidth) {
+ height *= maxWidth / width
+ width = maxWidth
+ }
- canvas.width = width;
- canvas.height = height;
- ctx.drawImage(img, 0, 0, width, height);
+ canvas.width = width
+ canvas.height = height
+ ctx.drawImage(img, 0, 0, width, height)
- const newData = canvas.toDataURL('image/jpeg', quality);
- // 使用atob()将base64转换为二进制字符串
- const binaryString = window.atob(newData.split(',')[1]);
- const mimeString = newData.split(',')[0].split(':')[1].split(';')[0];
- // 创建Blob对象
- const array = [];
- for (let i = 0; i < binaryString.length; i++) {
- array.push(binaryString.charCodeAt(i));
- }
- const blob = new Blob([new Uint8Array(array)], { type: mimeString });
+ const newData = canvas.toDataURL('image/jpeg', quality)
+ // 使用atob()将base64转换为二进制字符串
+ const binaryString = window.atob(newData.split(',')[1])
+ const mimeString = newData.split(',')[0].split(':')[1].split(';')[0]
+ // 创建Blob对象
+ const array = []
+ for (let i = 0; i < binaryString.length; i++) {
+ array.push(binaryString.charCodeAt(i))
+ }
+ const blob = new Blob([new Uint8Array(array)], { type: mimeString })
- callback(blob);
- };
- img.src = src;
+ callback(blob)
+ }
+ img.src = src
- return src;
+ return src
}
export default function imageCompress(src, quality, maxWidth) {
- // 使用例子
- return compressImage(src, quality, maxWidth, function (blob) {
- // 创建一个新的图片URL
- const imageUrl = URL.createObjectURL(blob);
- // 可以在这里使用imageUrl,比如设置为img元素的src
- // document.getElementById('your-image-element').src = imageUrl;
- // 当不需要这个URL的时候,释放它
- URL.revokeObjectURL(imageUrl);
- });
+ // 使用例子
+ return compressImage(src, quality, maxWidth, function (blob) {
+ // 创建一个新的图片URL
+ const imageUrl = URL.createObjectURL(blob)
+ // 可以在这里使用imageUrl,比如设置为img元素的src
+ // document.getElementById('your-image-element').src = imageUrl;
+ // 当不需要这个URL的时候,释放它
+ URL.revokeObjectURL(imageUrl)
+ })
}
diff --git a/src/utils/cesium/compressImage2.js b/src/utils/cesium/compressImage2.js
index 0fa39fc..e28a427 100644
--- a/src/utils/cesium/compressImage2.js
+++ b/src/utils/cesium/compressImage2.js
@@ -8,39 +8,39 @@
* Copyright (c) 2024 by GuLiMmo, All Rights Reserved.
*/
export default function compressImage(
- src,
- maxWidth,
- maxHeight,
- outputFormat = 'image/jpeg',
- quality = 0.7,
+ src,
+ maxWidth,
+ maxHeight,
+ outputFormat = 'image/jpeg',
+ quality = 0.7
) {
- return new Promise((resolve, reject) => {
- const image = new Image();
- image.setAttribute('crossOrigin', 'Anonymous');
- image.src = src;
- image.onload = () => {
- let width = image.width;
- let height = image.height;
+ return new Promise((resolve, reject) => {
+ const image = new Image()
+ image.setAttribute('crossOrigin', 'Anonymous')
+ image.src = src
+ image.onload = () => {
+ let width = image.width
+ let height = image.height
- if (width > maxWidth) {
- height *= maxWidth / width;
- width = maxWidth;
- }
+ if (width > maxWidth) {
+ height *= maxWidth / width
+ width = maxWidth
+ }
- if (height > maxHeight) {
- width *= maxHeight / height;
- height = maxHeight;
- }
+ if (height > maxHeight) {
+ width *= maxHeight / height
+ height = maxHeight
+ }
- const canvas = document.createElement('canvas');
- canvas.width = width;
- canvas.height = height;
- const ctx = canvas.getContext('2d');
- ctx.drawImage(image, 0, 0, width, height);
+ const canvas = document.createElement('canvas')
+ canvas.width = width
+ canvas.height = height
+ const ctx = canvas.getContext('2d')
+ ctx.drawImage(image, 0, 0, width, height)
- const newDataUrl = canvas.toDataURL(outputFormat, quality);
- resolve(newDataUrl);
- };
- image.onerror = reject;
- });
+ const newDataUrl = canvas.toDataURL(outputFormat, quality)
+ resolve(newDataUrl)
+ }
+ image.onerror = reject
+ })
}
diff --git a/src/utils/cesium/frustum/CreateFrustum.js b/src/utils/cesium/frustum/CreateFrustum.js
index 745a1ca..00a8423 100644
--- a/src/utils/cesium/frustum/CreateFrustum.js
+++ b/src/utils/cesium/frustum/CreateFrustum.js
@@ -1,275 +1,255 @@
// * 创建视锥
-import * as Cesium from 'cesium';
+import * as Cesium from 'cesium'
/* eslint-disable new-cap */
/* eslint-disable no-undef */
export default class CreateFrustum {
- constructor(viewer, options) {
- this.position = options.position;
- this.viewer = viewer;
- this.fov = options.fov || 0;
- this.near = options.near || 0;
- this.far = options.far || 0;
- this.heading = options.heading || 0;
- this.pitch = options.pitch || 0;
- this.roll = options.roll || 0;
- this.width = options.width;
- this.height = options.height;
- this.add();
- }
+ constructor(viewer, options) {
+ this.position = options.position
+ this.viewer = viewer
+ this.fov = options.fov || 0
+ this.near = options.near || 0
+ this.far = options.far || 0
+ this.heading = options.heading || 0
+ this.pitch = options.pitch || 0
+ this.roll = options.roll || 0
+ this.width = options.width
+ this.height = options.height
+ this.add()
+ }
- UpdateWidth(value) {
- this.width = value;
- this.add();
- }
- UpdateHeight(value) {
- this.height = value;
- this.add();
- }
- UpdateFov(value) {
- this.fov = value;
- this.add();
- }
- UpdateNear(value) {
- this.near = value;
- this.add();
- }
- UpdateFar(value) {
- this.far = value;
- this.add();
- }
- UpdateHeading(value) {
- this.heading = value;
- this.add();
- }
- UpdatePitch(value) {
- this.pitch = value;
- this.add();
- }
- UpdateRoll(value) {
- this.roll = value;
- this.add();
- }
- UpdataPosition(position) {
- if (!position) return;
- this.position = position;
- this.add();
- }
+ UpdateWidth(value) {
+ this.width = value
+ this.add()
+ }
+ UpdateHeight(value) {
+ this.height = value
+ this.add()
+ }
+ UpdateFov(value) {
+ this.fov = value
+ this.add()
+ }
+ UpdateNear(value) {
+ this.near = value
+ this.add()
+ }
+ UpdateFar(value) {
+ this.far = value
+ this.add()
+ }
+ UpdateHeading(value) {
+ this.heading = value
+ this.add()
+ }
+ UpdatePitch(value) {
+ this.pitch = value
+ this.add()
+ }
+ UpdateRoll(value) {
+ this.roll = value
+ this.add()
+ }
+ UpdataPosition(position) {
+ if (!position) return
+ this.position = position
+ this.add()
+ }
- // 更新视锥体的姿态
- Update(position, headingPitchRoll) {
- this.position = Cesium.Cartesian3.fromDegrees(
- position.longitude,
- position.latitude,
- position.altitude,
- );
- this.orientation = Cesium.Transforms.headingPitchRollQuaternion(
- this.position,
- new Cesium.HeadingPitchRoll.fromDegrees(
- headingPitchRoll.heading,
- headingPitchRoll.pitch,
- headingPitchRoll.roll,
- ),
- );
- this.add();
- }
+ // 更新视锥体的姿态
+ Update(position, headingPitchRoll) {
+ this.position = Cesium.Cartesian3.fromDegrees(
+ position.longitude,
+ position.latitude,
+ position.altitude
+ )
+ this.orientation = Cesium.Transforms.headingPitchRollQuaternion(
+ this.position,
+ new Cesium.HeadingPitchRoll.fromDegrees(
+ headingPitchRoll.heading,
+ headingPitchRoll.pitch,
+ headingPitchRoll.roll
+ )
+ )
+ this.add()
+ }
- // 创建视锥体和轮廓线
- add() {
- this.clear();
- this.addFrustum();
- this.addOutline();
- this.addCenterline();
- }
+ // 创建视锥体和轮廓线
+ add() {
+ this.clear()
+ this.addFrustum()
+ this.addOutline()
+ this.addCenterline()
+ }
- // 清除视锥体和轮廓线
- clear() {
- this.clearFrustum();
- this.clearOutline();
- this.clearCenterline();
- }
+ // 清除视锥体和轮廓线
+ clear() {
+ this.clearFrustum()
+ this.clearOutline()
+ this.clearCenterline()
+ }
- // 清除视锥体
- clearFrustum() {
- if (this.frustumPrimitive) {
- this.viewer.scene.primitives.remove(this.frustumPrimitive);
- this.frustumPrimitive = null;
- }
- }
+ // 清除视锥体
+ clearFrustum() {
+ if (this.frustumPrimitive) {
+ this.viewer.scene.primitives.remove(this.frustumPrimitive)
+ this.frustumPrimitive = null
+ }
+ }
- // 清除轮廓线
- clearOutline() {
- if (this.outlinePrimitive) {
- this.viewer.scene.primitives.remove(this.outlinePrimitive);
- this.outlinePrimitive = null;
- }
- }
+ // 清除轮廓线
+ clearOutline() {
+ if (this.outlinePrimitive) {
+ this.viewer.scene.primitives.remove(this.outlinePrimitive)
+ this.outlinePrimitive = null
+ }
+ }
- clearCenterline() {
- if (this.centerDataSource) {
- this.centerDataSource.entities.removeAll();
- this.viewer.dataSources.remove(this.centerDataSource);
- this.centerDataSource = null;
- }
- }
+ clearCenterline() {
+ if (this.centerDataSource) {
+ this.centerDataSource.entities.removeAll()
+ this.viewer.dataSources.remove(this.centerDataSource)
+ this.centerDataSource = null
+ }
+ }
- // 创建视锥体
- addFrustum() {
- const frustum = new Cesium.PerspectiveFrustum({
- // 查看的视场角,绕Z轴旋转,以弧度方式输入
- fov: Cesium.Math.toRadians(this.fov),
- // 视锥体的宽度/高度
- aspectRatio: this.width / this.height,
- // 近面距视点的距离
- near: this.near,
- // 远面距视点的距离
- far: this.far,
- });
- const position = Cesium.Cartesian3.fromDegrees(
- this.position.longitude,
- this.position.latitude,
- this.position.altitude,
- );
- const geometry = new Cesium.FrustumGeometry({
- frustum: frustum,
- origin: position,
- orientation: Cesium.Transforms.headingPitchRollQuaternion(
- position,
- new Cesium.HeadingPitchRoll.fromDegrees(
- this.heading,
- this.pitch,
- this.roll,
- ),
- ),
- vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
- });
- const instance = new Cesium.GeometryInstance({
- geometry: geometry,
- attributes: {
- color: Cesium.ColorGeometryInstanceAttribute.fromColor(
- Cesium.Color.fromBytes(0, 213, 144, 20),
- ),
- },
- });
- const primitive = new Cesium.Primitive({
- geometryInstances: instance,
- appearance: new Cesium.PerInstanceColorAppearance({
- closed: true,
- flat: true,
- }),
- asynchronous: false,
- });
- this.frustumPrimitive = this.viewer.scene.primitives.add(primitive);
- }
+ // 创建视锥体
+ addFrustum() {
+ const frustum = new Cesium.PerspectiveFrustum({
+ // 查看的视场角,绕Z轴旋转,以弧度方式输入
+ fov: Cesium.Math.toRadians(this.fov),
+ // 视锥体的宽度/高度
+ aspectRatio: this.width / this.height,
+ // 近面距视点的距离
+ near: this.near,
+ // 远面距视点的距离
+ far: this.far,
+ })
+ const position = Cesium.Cartesian3.fromDegrees(
+ this.position.longitude,
+ this.position.latitude,
+ this.position.altitude
+ )
+ const geometry = new Cesium.FrustumGeometry({
+ frustum: frustum,
+ origin: position,
+ orientation: Cesium.Transforms.headingPitchRollQuaternion(
+ position,
+ new Cesium.HeadingPitchRoll.fromDegrees(this.heading, this.pitch, this.roll)
+ ),
+ vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
+ })
+ const instance = new Cesium.GeometryInstance({
+ geometry: geometry,
+ attributes: {
+ color: Cesium.ColorGeometryInstanceAttribute.fromColor(
+ Cesium.Color.fromBytes(0, 213, 144, 20)
+ ),
+ },
+ })
+ const primitive = new Cesium.Primitive({
+ geometryInstances: instance,
+ appearance: new Cesium.PerInstanceColorAppearance({
+ closed: true,
+ flat: true,
+ }),
+ asynchronous: false,
+ })
+ this.frustumPrimitive = this.viewer.scene.primitives.add(primitive)
+ }
- // 创建轮廓线
- addOutline() {
- const frustum = new Cesium.PerspectiveFrustum({
- // 查看的视场角度,绕Z轴旋转,以弧度方式输入
- // The angle of the field of view (FOV), in radians.
- // This angle will be used as the horizontal FOV if the width is greater than the height, otherwise it will be the vertical FOV.
- fov: Cesium.Math.toRadians(this.fov),
- // 视锥体的宽度/高度
- aspectRatio: this.width / this.height,
- // 近面距视点的距离
- near: this.near,
- // 远面距视点的距离
- far: this.far,
- });
- const position = Cesium.Cartesian3.fromDegrees(
- this.position.longitude,
- this.position.latitude,
- this.position.altitude,
- );
- const geometry = new Cesium.FrustumOutlineGeometry({
- frustum: frustum,
- origin: position,
- orientation: Cesium.Transforms.headingPitchRollQuaternion(
- position,
- new Cesium.HeadingPitchRoll.fromDegrees(
- this.heading,
- this.pitch,
- this.roll,
- ),
- ),
- vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
- });
- const instance = new Cesium.GeometryInstance({
- geometry: geometry,
- attributes: {
- color: Cesium.ColorGeometryInstanceAttribute.fromColor(
- Cesium.Color.fromBytes(0, 213, 144, 255),
- ),
- },
- });
- const primitive = new Cesium.Primitive({
- geometryInstances: instance,
- appearance: new Cesium.PerInstanceColorAppearance({
- closed: true,
- flat: true,
- }),
- asynchronous: false,
- });
- this.outlinePrimitive = this.viewer.scene.primitives.add(primitive);
- }
+ // 创建轮廓线
+ addOutline() {
+ const frustum = new Cesium.PerspectiveFrustum({
+ // 查看的视场角度,绕Z轴旋转,以弧度方式输入
+ // The angle of the field of view (FOV), in radians.
+ // This angle will be used as the horizontal FOV if the width is greater than the height, otherwise it will be the vertical FOV.
+ fov: Cesium.Math.toRadians(this.fov),
+ // 视锥体的宽度/高度
+ aspectRatio: this.width / this.height,
+ // 近面距视点的距离
+ near: this.near,
+ // 远面距视点的距离
+ far: this.far,
+ })
+ const position = Cesium.Cartesian3.fromDegrees(
+ this.position.longitude,
+ this.position.latitude,
+ this.position.altitude
+ )
+ const geometry = new Cesium.FrustumOutlineGeometry({
+ frustum: frustum,
+ origin: position,
+ orientation: Cesium.Transforms.headingPitchRollQuaternion(
+ position,
+ new Cesium.HeadingPitchRoll.fromDegrees(this.heading, this.pitch, this.roll)
+ ),
+ vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
+ })
+ const instance = new Cesium.GeometryInstance({
+ geometry: geometry,
+ attributes: {
+ color: Cesium.ColorGeometryInstanceAttribute.fromColor(
+ Cesium.Color.fromBytes(0, 213, 144, 255)
+ ),
+ },
+ })
+ const primitive = new Cesium.Primitive({
+ geometryInstances: instance,
+ appearance: new Cesium.PerInstanceColorAppearance({
+ closed: true,
+ flat: true,
+ }),
+ asynchronous: false,
+ })
+ this.outlinePrimitive = this.viewer.scene.primitives.add(primitive)
+ }
- addCenterline() {
- this.centerDataSource = new Cesium.CustomDataSource();
- this.viewer.dataSources.add(this.centerDataSource);
+ addCenterline() {
+ this.centerDataSource = new Cesium.CustomDataSource()
+ this.viewer.dataSources.add(this.centerDataSource)
- const position = Cesium.Cartesian3.fromDegrees(
- this.position.longitude,
- this.position.latitude,
- this.position.altitude,
- );
+ const position = Cesium.Cartesian3.fromDegrees(
+ this.position.longitude,
+ this.position.latitude,
+ this.position.altitude
+ )
- let matrix = Cesium.Matrix3.fromQuaternion(
- Cesium.Transforms.headingPitchRollQuaternion(
- position,
- new Cesium.HeadingPitchRoll.fromDegrees(
- this.heading,
- this.pitch,
- this.roll,
- ),
- ),
- new Cesium.Matrix3(),
- );
+ let matrix = Cesium.Matrix3.fromQuaternion(
+ Cesium.Transforms.headingPitchRollQuaternion(
+ position,
+ new Cesium.HeadingPitchRoll.fromDegrees(this.heading, this.pitch, this.roll)
+ ),
+ new Cesium.Matrix3()
+ )
- let right1 = Cesium.Matrix3.getColumn(matrix, 0, new Cesium.Cartesian3());
- let up1 = Cesium.Matrix3.getColumn(matrix, 1, new Cesium.Cartesian3());
- let direction = Cesium.Matrix3.getColumn(
- matrix,
- 2,
- new Cesium.Cartesian3(),
- );
+ let right1 = Cesium.Matrix3.getColumn(matrix, 0, new Cesium.Cartesian3())
+ let up1 = Cesium.Matrix3.getColumn(matrix, 1, new Cesium.Cartesian3())
+ let direction = Cesium.Matrix3.getColumn(matrix, 2, new Cesium.Cartesian3())
- // const direction = new Cartesian3(-0.10668226241650887, 0.8103322335050215, -0.5761775474872814)
+ // const direction = new Cartesian3(-0.10668226241650887, 0.8103322335050215, -0.5761775474872814)
- let frontDirect = Cesium.Cartesian3.multiplyByScalar(
- direction,
- this.far,
- new Cesium.Cartesian3(),
- );
- let bottomCenter = Cesium.Cartesian3.add(
- position,
- frontDirect,
- new Cesium.Cartesian3(),
- );
+ let frontDirect = Cesium.Cartesian3.multiplyByScalar(
+ direction,
+ this.far,
+ new Cesium.Cartesian3()
+ )
+ let bottomCenter = Cesium.Cartesian3.add(position, frontDirect, new Cesium.Cartesian3())
- // 创建Entity来显示中心线
- this.centerDataSource.entities.add({
- name: 'Center Line of Frustum',
- polyline: {
- positions: [position, bottomCenter],
- width: 1,
- // material: Cesium.Color.RED.withAlpha(0.5)
- material: new Cesium.PolylineDashMaterialProperty({
- color: Cesium.Color.fromBytes(0, 213, 144, 255),
- dashLength: 30.0,
- gapColor: Cesium.Color.TRANSPARENT,
- gapWidth: 1.0,
- }),
- },
- });
- }
+ // 创建Entity来显示中心线
+ this.centerDataSource.entities.add({
+ name: 'Center Line of Frustum',
+ polyline: {
+ positions: [position, bottomCenter],
+ width: 1,
+ // material: Cesium.Color.RED.withAlpha(0.5)
+ material: new Cesium.PolylineDashMaterialProperty({
+ color: Cesium.Color.fromBytes(0, 213, 144, 255),
+ dashLength: 30.0,
+ gapColor: Cesium.Color.TRANSPARENT,
+ gapWidth: 1.0,
+ }),
+ },
+ })
+ }
}
diff --git a/src/utils/cesium/kmz.js b/src/utils/cesium/kmz.js
index 66e63a8..4ef1af9 100644
--- a/src/utils/cesium/kmz.js
+++ b/src/utils/cesium/kmz.js
@@ -1,91 +1,82 @@
-import axios from 'axios';
-import JsZip from 'jszip';
+import axios from 'axios'
+import JsZip from 'jszip'
-const noWmpl = ['Folder', 'Placemark', 'Point', 'coordinates'];
+const noWmpl = ['Folder', 'Placemark', 'Point', 'coordinates']
/**
* @description: 读取kmz文件解析出kml文件
* @param {string} filePath 文件地址
* @return {*}
*/
-export const analyzeKmzFile = (filePath) => {
- return (
- axios({
- url: filePath,
- method: 'get',
- responseType: 'arraybuffer',
- authorization: false
- })
- // .get(filePath, { responseType: 'arraybuffer' },)
- .then((fileRes) => fileRes.data)
- .then((kmzData) => JsZip.loadAsync(kmzData)) // 解压kmz文件
- .then((zipFile) => {
- const files = {};
- Object.keys(zipFile.files).forEach((key) => {
- files[key] = zipFile.files[key].async('text');
- });
- return {
- zip: zipFile,
- fileInfoObj: files,
- };
- })
- );
-};
+export const analyzeKmzFile = filePath => {
+ return (
+ axios({
+ url: filePath,
+ method: 'get',
+ responseType: 'arraybuffer',
+ authorization: false,
+ })
+ // .get(filePath, { responseType: 'arraybuffer' },)
+ .then(fileRes => fileRes.data)
+ .then(kmzData => JsZip.loadAsync(kmzData)) // 解压kmz文件
+ .then(zipFile => {
+ const files = {}
+ Object.keys(zipFile.files).forEach(key => {
+ files[key] = zipFile.files[key].async('text')
+ })
+ return {
+ zip: zipFile,
+ fileInfoObj: files,
+ }
+ })
+ )
+}
export const getKmlParams = (source, isWpml, params) => {
- let regx = null;
- if (isWpml) {
- if (params.mode) {
- regx = new RegExp(
- `<wpml:${params.name}>${params.findRegx}<\\/wpml:${params.name}>`,
- params.mode,
- );
- } else {
- regx = new RegExp(
- `<wpml:${params.name}>${params.findRegx}<\\/wpml:${params.name}>`,
- );
- }
- } else {
- if (params.mode) {
- regx = new RegExp(
- `<${params.name}>${params.findRegx}<\\/${params.name}>`,
- params.mode,
- );
- } else {
- regx = new RegExp(
- `<${params.name}>${params.findRegx}<\\/${params.name}>`,
- );
- }
- }
- return source?.match(regx);
-};
+ let regx = null
+ if (isWpml) {
+ if (params.mode) {
+ regx = new RegExp(
+ `<wpml:${params.name}>${params.findRegx}<\\/wpml:${params.name}>`,
+ params.mode
+ )
+ } else {
+ regx = new RegExp(`<wpml:${params.name}>${params.findRegx}<\\/wpml:${params.name}>`)
+ }
+ } else {
+ if (params.mode) {
+ regx = new RegExp(`<${params.name}>${params.findRegx}<\\/${params.name}>`, params.mode)
+ } else {
+ regx = new RegExp(`<${params.name}>${params.findRegx}<\\/${params.name}>`)
+ }
+ }
+ return source?.match(regx)
+}
-export const generateKmlFormat = (settingParmas) => {
- let paramGroup = '';
- Object.keys(settingParmas).forEach((key) => {
- if (
- Object.prototype.toString.call(settingParmas[key]) === '[object Object]'
- ) {
- let parmaStr = '';
- Object.keys(settingParmas[key]).forEach((v) => {
- const xml = noWmpl.includes(key)
- ? `<${v}>${settingParmas[key][v]}</${v}>`
- : `<wpml:${v}>${settingParmas[key][v]}</wpml:${v}>`;
- parmaStr += xml;
- });
- const xml = noWmpl.includes(key)
- ? `<${key}>${parmaStr}</${key}>`
- : `<wpml:${key}>${parmaStr}</wpml:${key}>`;
- paramGroup += xml;
- } else {
- const xml = noWmpl.includes(key)
- ? `<${key}>${settingParmas[key]}</${key}>`
- : `<wpml:${key}>${settingParmas[key]}</wpml:${key}>`;
- paramGroup += xml;
- }
- });
- return paramGroup;
-};
+export const generateKmlFormat = settingParmas => {
+ let paramGroup = ''
+ Object.keys(settingParmas).forEach(key => {
+ if (Object.prototype.toString.call(settingParmas[key]) === '[object Object]') {
+ let parmaStr = ''
+ Object.keys(settingParmas[key]).forEach(v => {
+ const xml = noWmpl.includes(key)
+ ? `<${v}>${settingParmas[key][v]}</${v}>`
+ : `<wpml:${v}>${settingParmas[key][v]}</wpml:${v}>`
+ parmaStr += xml
+ })
+ const xml = noWmpl.includes(key)
+ ? `<${key}>${parmaStr}</${key}>`
+ : `<wpml:${key}>${parmaStr}</wpml:${key}>`
+ paramGroup += xml
+ } else {
+ const xml = noWmpl.includes(key)
+ ? `<${key}>${settingParmas[key]}</${key}>`
+ : `<wpml:${key}>${settingParmas[key]}</wpml:${key}>`
+ paramGroup += xml
+ }
+ })
+ return paramGroup
+}
/**
* @description: JSON转XML
@@ -94,125 +85,125 @@
* @return {*} string
*/
export const JSONToXML = (obj, rootName, isEnd) => {
- let xml = '';
+ let xml = ''
- const buildXml = (obj, rootName) => {
- let xml = '';
- if (Array.isArray(obj)) {
- obj.forEach((item) => {
- const str = !noWmpl.includes(rootName) && isEnd ? 'wpml:' : '';
- xml += `<${str}${rootName}>${buildXml(item)}</${str}${rootName}>`;
- });
- } else if (typeof obj === 'object') {
- Object.keys(obj).forEach((key) => {
- if (key === '#text') {
- xml += obj[key];
- } else {
- const str = !noWmpl.includes(key) && isEnd ? 'wpml:' : '';
- if (key === 'Placemark') {
- xml += `${buildXml(obj[key], key)}`;
- } else if (key === 'action') {
- if (Array.isArray(obj[key])) {
- xml += `${buildXml(obj[key], key)}`;
- } else {
- xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>`;
- }
- } else {
- xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>`;
- }
- }
- });
- } else {
- xml += obj;
- }
- return xml;
- };
+ const buildXml = (obj, rootName) => {
+ let xml = ''
+ if (Array.isArray(obj)) {
+ obj.forEach(item => {
+ const str = !noWmpl.includes(rootName) && isEnd ? 'wpml:' : ''
+ xml += `<${str}${rootName}>${buildXml(item)}</${str}${rootName}>`
+ })
+ } else if (typeof obj === 'object') {
+ Object.keys(obj).forEach(key => {
+ if (key === '#text') {
+ xml += obj[key]
+ } else {
+ const str = !noWmpl.includes(key) && isEnd ? 'wpml:' : ''
+ if (key === 'Placemark') {
+ xml += `${buildXml(obj[key], key)}`
+ } else if (key === 'action') {
+ if (Array.isArray(obj[key])) {
+ xml += `${buildXml(obj[key], key)}`
+ } else {
+ xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>`
+ }
+ } else {
+ xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>`
+ }
+ }
+ })
+ } else {
+ xml += obj
+ }
+ return xml
+ }
- const header = isEnd ? '<?xml version="1.0" encoding="UTF-8"?>' : '';
- xml += `${header}
+ const header = isEnd ? '<?xml version="1.0" encoding="UTF-8"?>' : ''
+ xml += `${header}
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.5">
<Document>
${buildXml(obj, rootName)}
</Document>
- </kml>`;
- return xml;
-};
+ </kml>`
+ return xml
+}
-export const getTagNameFromXml = (xmlString) => {
- const parser = new DOMParser();
- const xmlDoc = parser.parseFromString(xmlString, 'text/xml');
- const element = xmlDoc.documentElement;
- if (element && element.tagName) {
- return element.tagName; // 返回的是类似 "WPML:USEGLOBALHEADINGPARAM" 的全大写形式
- }
- return null;
-};
+export const getTagNameFromXml = xmlString => {
+ const parser = new DOMParser()
+ const xmlDoc = parser.parseFromString(xmlString, 'text/xml')
+ const element = xmlDoc.documentElement
+ if (element && element.tagName) {
+ return element.tagName // 返回的是类似 "WPML:USEGLOBALHEADINGPARAM" 的全大写形式
+ }
+ return null
+}
// 将xml转为json
-const deepParse = (xml) => {
- let obj = {};
- // 如果是文档节点,遍历其子节点
- if (xml.nodeType === 1) {
- // element node
- // 处理子节点
- if (xml.childNodes.length > 0) {
- for (let i = 0; i < xml.childNodes.length; i++) {
- const item = xml.childNodes[i];
- const nodeName = item.nodeName.replace('wpml:', '');
+const deepParse = xml => {
+ let obj = {}
+ // 如果是文档节点,遍历其子节点
+ if (xml.nodeType === 1) {
+ // element node
+ // 处理子节点
+ if (xml.childNodes.length > 0) {
+ for (let i = 0; i < xml.childNodes.length; i++) {
+ const item = xml.childNodes[i]
+ const nodeName = item.nodeName.replace('wpml:', '')
- // 检查是否是文本节点
- if (item.nodeType === 3) {
- // text node
- // 处理文本节点的内容
- if (item.nodeValue.trim() !== '') {
- obj[nodeName] = item.nodeValue.trim();
- }
- } else if (item.nodeType === 1) {
- // element node
- // 递归调用处理子节点
- if (obj[nodeName] === undefined) {
- const nodeValue = deepParse(item);
- if (nodeValue[nodeName] === undefined) {
- obj[nodeName] = nodeValue;
- } else {
- obj[nodeName] = nodeValue[nodeName];
- }
- } else {
- if (!obj[nodeName].push) {
- const old = obj[nodeName];
- obj[nodeName] = [];
- obj[nodeName].push(old);
- }
- const nodeValue = deepParse(item);
- if (nodeValue[nodeName] === undefined) {
- obj[nodeName].push(nodeValue);
- }
- }
- }
- }
- }
- } else if (xml.nodeType === 3) {
- // text node
- // 处理文本节点的内容
- obj = xml.nodeValue.trim();
- }
- return obj;
-};
+ // 检查是否是文本节点
+ if (item.nodeType === 3) {
+ // text node
+ // 处理文本节点的内容
+ if (item.nodeValue.trim() !== '') {
+ obj[nodeName] = item.nodeValue.trim()
+ }
+ } else if (item.nodeType === 1) {
+ // element node
+ // 递归调用处理子节点
+ if (obj[nodeName] === undefined) {
+ const nodeValue = deepParse(item)
+ if (nodeValue[nodeName] === undefined) {
+ obj[nodeName] = nodeValue
+ } else {
+ obj[nodeName] = nodeValue[nodeName]
+ }
+ } else {
+ if (!obj[nodeName].push) {
+ const old = obj[nodeName]
+ obj[nodeName] = []
+ obj[nodeName].push(old)
+ }
+ const nodeValue = deepParse(item)
+ if (nodeValue[nodeName] === undefined) {
+ obj[nodeName].push(nodeValue)
+ }
+ }
+ }
+ }
+ }
+ } else if (xml.nodeType === 3) {
+ // text node
+ // 处理文本节点的内容
+ obj = xml.nodeValue.trim()
+ }
+ return obj
+}
/**
* @description: XML转JSON
* @param {string} xmlStr xml字符串
* @return {*} string
*/
-export const XMLToJSON = (xmlStr) => {
- const parser = new DOMParser();
- const xmlDoc = parser.parseFromString(xmlStr, 'text/xml');
- const xmlObj = deepParse(xmlDoc.documentElement);
- if (Reflect.has(xmlObj, 'Document')) {
- return xmlObj;
- } else {
- return {
- Document: xmlObj,
- };
- }
-};
+export const XMLToJSON = xmlStr => {
+ const parser = new DOMParser()
+ const xmlDoc = parser.parseFromString(xmlStr, 'text/xml')
+ const xmlObj = deepParse(xmlDoc.documentElement)
+ if (Reflect.has(xmlObj, 'Document')) {
+ return xmlObj
+ } else {
+ return {
+ Document: xmlObj,
+ }
+ }
+}
diff --git a/src/utils/cesium/mapUtil.js b/src/utils/cesium/mapUtil.js
index 9d3433a..176ecca 100644
--- a/src/utils/cesium/mapUtil.js
+++ b/src/utils/cesium/mapUtil.js
@@ -1,148 +1,134 @@
-import * as Cesium from 'cesium';
-import * as turf from '@turf/turf';
+import * as Cesium from 'cesium'
+import * as turf from '@turf/turf'
export const getLngLatDistance = (lat1, lng1, lat2, lng2) => {
- const radLat1 = (lat1 * Math.PI) / 180.0
- const radLat2 = (lat2 * Math.PI) / 180.0
- const a = radLat1 - radLat2
- const b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0
- let s =
- 2 *
- Math.asin(
- Math.sqrt(
- Math.pow(Math.sin(a / 2), 2) +
- Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2),
- ),
- )
- s = s * 6378.137 // EARTH_RADIUS;
- s = Math.round(s * 10000) / 10000
- return s * 1000
+ const radLat1 = (lat1 * Math.PI) / 180.0
+ const radLat2 = (lat2 * Math.PI) / 180.0
+ const a = radLat1 - radLat2
+ const b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0
+ let s =
+ 2 *
+ Math.asin(
+ Math.sqrt(
+ Math.pow(Math.sin(a / 2), 2) +
+ Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)
+ )
+ )
+ s = s * 6378.137 // EARTH_RADIUS;
+ s = Math.round(s * 10000) / 10000
+ return s * 1000
}
// 获取限polyline长度
-export const getPolylineLength = (entity) => {
- let length = 0
+export const getPolylineLength = entity => {
+ let length = 0
- // 获取Polyline的所有顶点位置
- const positions = entity.polyline.positions.getValue()
+ // 获取Polyline的所有顶点位置
+ const positions = entity.polyline.positions.getValue()
- for (let i = 0; i < positions.length - 1; ++i) {
- const startPosition = positions[i]
- const endPosition = positions[i + 1]
+ for (let i = 0; i < positions.length - 1; ++i) {
+ const startPosition = positions[i]
+ const endPosition = positions[i + 1]
- // 使用Cesium提供的distanceBetween函数计算两个顶点之间的距离
- const distance = Cesium.Cartesian3.distance(startPosition, endPosition)
+ // 使用Cesium提供的distanceBetween函数计算两个顶点之间的距离
+ const distance = Cesium.Cartesian3.distance(startPosition, endPosition)
- // 将每个顶点之间的距离相加得到总长度
- length += distance
- }
+ // 将每个顶点之间的距离相加得到总长度
+ length += distance
+ }
- return length
+ return length
}
// 创建三角广告牌
export const createTriangleMarker = (title, color) => {
- // 创建canvas绘制广告牌
- const billboard = document.createElement('canvas')
- billboard.width = 30
- billboard.height = 30
- const ctx = billboard.getContext('2d')
- ctx.beginPath()
- ctx.moveTo(0, 0)
- ctx.lineTo(30, 0)
- ctx.lineTo(15, 22)
- ctx.fillStyle = color
- ctx.fill()
- ctx.font = '18px serif'
- ctx.fillStyle = '#ffffff'
- ctx.fillText(title, 10, 15)
- ctx.closePath()
- return billboard
+ // 创建canvas绘制广告牌
+ const billboard = document.createElement('canvas')
+ billboard.width = 30
+ billboard.height = 30
+ const ctx = billboard.getContext('2d')
+ ctx.beginPath()
+ ctx.moveTo(0, 0)
+ ctx.lineTo(30, 0)
+ ctx.lineTo(15, 22)
+ ctx.fillStyle = color
+ ctx.fill()
+ ctx.font = '18px serif'
+ ctx.fillStyle = '#ffffff'
+ ctx.fillText(title, 10, 15)
+ ctx.closePath()
+ return billboard
}
export const createCircleBillboard = (title, color) => {
- const billboard = document.createElement('canvas')
- const ctx = billboard.getContext('2d')
- ctx.beginPath()
- ctx.ellipse(150, 90, 11, 11, 0, 0, Math.PI * 2)
- ctx.fillStyle = color
- ctx.fill()
- ctx.font = 'bold 15px serif'
- ctx.textAlign = 'center'
- ctx.fillStyle = '#ffffff'
- ctx.fillText(title, 150, 95)
- ctx.closePath()
- return billboard
+ const billboard = document.createElement('canvas')
+ const ctx = billboard.getContext('2d')
+ ctx.beginPath()
+ ctx.ellipse(150, 90, 11, 11, 0, 0, Math.PI * 2)
+ ctx.fillStyle = color
+ ctx.fill()
+ ctx.font = 'bold 15px serif'
+ ctx.textAlign = 'center'
+ ctx.fillStyle = '#ffffff'
+ ctx.fillText(title, 150, 95)
+ ctx.closePath()
+ return billboard
}
// 获取当前经纬度海拔
export const getHaeHeight = (start, end) => {
- const ellipsoid = Cesium.Ellipsoid.WGS84 // 选择合适的椭圆体模型
- // const { longitude, latitude, height } = start
- // const { longitude: endLng, latitude: endLat, height: endHeight } = end
- // const startC3Position = new Cesium.Cartographic(longitude, latitude, height)
- // const endC3Position = new Cesium.Cartographic(endLng, endLat, endHeight)
- // const startCartesianPosition = ellipsoid.cartographicToCartesian(startC3Position)
- // const endCartesianPosition = ellipsoid.cartographicToCartesian(endC3Position)
- // // 计算两个位置之间的距离
- // const distance = new Cesium.EllipsoidGeodesic(startCartesianPosition, endCartesianPosition, ellipsoid)
- // return distance
- const { longitude, latitude, height } = end
- const cartographic = Cesium.Cartographic.fromDegrees(
- longitude,
- latitude,
- height,
- )
- const cartesianPosition = ellipsoid.cartographicToCartesian(cartographic)
- const haeHeight = ellipsoid.cartesianToCartographic(cartesianPosition).height
- return haeHeight
+ const ellipsoid = Cesium.Ellipsoid.WGS84 // 选择合适的椭圆体模型
+ // const { longitude, latitude, height } = start
+ // const { longitude: endLng, latitude: endLat, height: endHeight } = end
+ // const startC3Position = new Cesium.Cartographic(longitude, latitude, height)
+ // const endC3Position = new Cesium.Cartographic(endLng, endLat, endHeight)
+ // const startCartesianPosition = ellipsoid.cartographicToCartesian(startC3Position)
+ // const endCartesianPosition = ellipsoid.cartographicToCartesian(endC3Position)
+ // // 计算两个位置之间的距离
+ // const distance = new Cesium.EllipsoidGeodesic(startCartesianPosition, endCartesianPosition, ellipsoid)
+ // return distance
+ const { longitude, latitude, height } = end
+ const cartographic = Cesium.Cartographic.fromDegrees(longitude, latitude, height)
+ const cartesianPosition = ellipsoid.cartographicToCartesian(cartographic)
+ const haeHeight = ellipsoid.cartesianToCartographic(cartesianPosition).height
+ return haeHeight
}
// Cesium Cartesian3 转正常经纬度
export const cartesian3Convert = (cartesian3Position, viewer) => {
- // 转换为经纬度
- const ellipsoid = viewer.scene.globe.ellipsoid
- const cartographicPosition = Cesium.Cartographic.fromCartesian(
- cartesian3Position,
- ellipsoid,
- )
- const longitude = Cesium.Math.toDegrees(cartographicPosition.longitude)
- const latitude = Cesium.Math.toDegrees(cartographicPosition.latitude)
- const height = cartographicPosition.height
+ // 转换为经纬度
+ const ellipsoid = viewer.scene.globe.ellipsoid
+ const cartographicPosition = Cesium.Cartographic.fromCartesian(cartesian3Position, ellipsoid)
+ const longitude = Cesium.Math.toDegrees(cartographicPosition.longitude)
+ const latitude = Cesium.Math.toDegrees(cartographicPosition.latitude)
+ const height = cartographicPosition.height
- // console.log('经度: ' + longitude);
- // console.log('纬度: ' + latitude);
- // console.log('高度: ' + height);
+ // console.log('经度: ' + longitude);
+ // console.log('纬度: ' + latitude);
+ // console.log('高度: ' + height);
- return {
- longitude,
- latitude,
- height,
- }
+ return {
+ longitude,
+ latitude,
+ height,
+ }
}
// Cesium Cartesian2 转正常经纬度
export const cartesian2Convert = (position, viewer) => {
- const ellipsoid = viewer.scene.globe.ellipsoid
- const c3Position = viewer.scene.globe.pick(
- viewer.camera.getPickRay(position),
- viewer.scene,
- )
- const c2Postion = ellipsoid.cartesianToCartographic(c3Position)
- const longitude = Cesium.Math.toDegrees(c2Postion.longitude)
- const latitude = Cesium.Math.toDegrees(c2Postion.latitude)
- return { longitude, latitude }
+ const ellipsoid = viewer.scene.globe.ellipsoid
+ const c3Position = viewer.scene.globe.pick(viewer.camera.getPickRay(position), viewer.scene)
+ const c2Postion = ellipsoid.cartesianToCartographic(c3Position)
+ const longitude = Cesium.Math.toDegrees(c2Postion.longitude)
+ const latitude = Cesium.Math.toDegrees(c2Postion.latitude)
+ return { longitude, latitude }
}
// 根据经纬度获取距离
export const getLnglatDist = (lng1, lat1, lng2, lat2) => {
- const start = new Cesium.Cartesian3.fromDegrees(
- Number(lng1),
- Number(lat1),
- 0,
- )
- const end = new Cesium.Cartesian3.fromDegrees(Number(lng2), Number(lat2), 0)
- return Cesium.Cartesian3.distance(start, end)
+ const start = new Cesium.Cartesian3.fromDegrees(Number(lng1), Number(lat1), 0)
+ const end = new Cesium.Cartesian3.fromDegrees(Number(lng2), Number(lat2), 0)
+ return Cesium.Cartesian3.distance(start, end)
}
/**
@@ -150,37 +136,37 @@
* @param coordinateList {Array<Array<Object>>} [[{lat, lng}]]
* @return { Object } {lat lng}
*/
-export const getCenterPoint = (coordinateList) => {
- coordinateList = coordinateList.map((item) => {
- const [lng, lat] = item
- return [{ lat, lng }]
- })
- const geoCoordinateListFlat = coordinateList.reduce((s, v) => {
- return (s = s.concat(v))
- }, [])
- const total = geoCoordinateListFlat.length
- let X = 0
- let Y = 0
- let Z = 0
- for (const g of geoCoordinateListFlat) {
- const lat = (g.lat * Math.PI) / 180
- const lon = (g.lng * Math.PI) / 180
- const x = Math.cos(lat) * Math.cos(lon)
- const y = Math.cos(lat) * Math.sin(lon)
- const z = Math.sin(lat)
- X += x
- Y += y
- Z += z
- }
+export const getCenterPoint = coordinateList => {
+ coordinateList = coordinateList.map(item => {
+ const [lng, lat] = item
+ return [{ lat, lng }]
+ })
+ const geoCoordinateListFlat = coordinateList.reduce((s, v) => {
+ return (s = s.concat(v))
+ }, [])
+ const total = geoCoordinateListFlat.length
+ let X = 0
+ let Y = 0
+ let Z = 0
+ for (const g of geoCoordinateListFlat) {
+ const lat = (g.lat * Math.PI) / 180
+ const lon = (g.lng * Math.PI) / 180
+ const x = Math.cos(lat) * Math.cos(lon)
+ const y = Math.cos(lat) * Math.sin(lon)
+ const z = Math.sin(lat)
+ X += x
+ Y += y
+ Z += z
+ }
- X = X / total
- Y = Y / total
- Z = Z / total
- const Lon = Math.atan2(Y, X)
- const Hyp = Math.sqrt(X * X + Y * Y)
- const Lat = Math.atan2(Z, Hyp)
+ X = X / total
+ Y = Y / total
+ Z = Z / total
+ const Lon = Math.atan2(Y, X)
+ const Hyp = Math.sqrt(X * X + Y * Y)
+ const Lat = Math.atan2(Z, Hyp)
- return { lng: (Lon * 180) / Math.PI, lat: (Lat * 180) / Math.PI }
+ return { lng: (Lon * 180) / Math.PI, lat: (Lat * 180) / Math.PI }
}
/**
@@ -190,183 +176,174 @@
* @return {*} { index: 1 }
*/
export const getShortestDistance = (lnglat1, lnglat2) => {
- const arr = []
- lnglat1.forEach((v, i) => {
- const [lng, lat] = v
- lnglat2.forEach((s, i2) => {
- const [vLng, vLat] = s
- const distance = getLnglatDist(lng, lat, vLng, vLat)
- arr.push({
- distance,
- index: [i, i2],
- lnglat: [v, s],
- })
- })
- })
- const newArr = arr.sort((a, b) => a.distance - b.distance)
- return newArr[0]
+ const arr = []
+ lnglat1.forEach((v, i) => {
+ const [lng, lat] = v
+ lnglat2.forEach((s, i2) => {
+ const [vLng, vLat] = s
+ const distance = getLnglatDist(lng, lat, vLng, vLat)
+ arr.push({
+ distance,
+ index: [i, i2],
+ lnglat: [v, s],
+ })
+ })
+ })
+ const newArr = arr.sort((a, b) => a.distance - b.distance)
+ return newArr[0]
}
// 获取当前经纬度地形数据
export const getLnglatAltitude = (longitude, latitude, viewer) => {
- return new Promise((resolve, reject) => {
- // 假设 viewer 已经初始化并且 terrainProvider 是有效的
- const terrainProvider = viewer?.terrainProvider
+ return new Promise((resolve, reject) => {
+ // 假设 viewer 已经初始化并且 terrainProvider 是有效的
+ const terrainProvider = viewer?.terrainProvider
- // 创建 Cartographic 对象
- const cartographic = Cesium.Cartographic.fromDegrees(longitude, latitude)
+ // 创建 Cartographic 对象
+ const cartographic = Cesium.Cartographic.fromDegrees(longitude, latitude)
- // 获取地形数据的Promise
- const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, [
- cartographic,
- ])
+ // 获取地形数据的Promise
+ const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, [cartographic])
- // 使用 Cesium.when 处理 Promise
- promise
- .then(function (updatedPositions) {
- // updatedPositions 是一个数组,包含更新后的 Cartographic 对象
- const updatedPosition = updatedPositions[0]
- const height = updatedPosition.height
+ // 使用 Cesium.when 处理 Promise
+ promise
+ .then(function (updatedPositions) {
+ // updatedPositions 是一个数组,包含更新后的 Cartographic 对象
+ const updatedPosition = updatedPositions[0]
+ const height = updatedPosition.height
- resolve({
- longitude,
- latitude,
- height,
- })
- // 在这里,你可以使用 height 值进行后续操作
- })
- .catch(function (error) {
- // console.error('获取高程时发生错误:', error);
- reject(error)
- })
- })
+ resolve({
+ longitude,
+ latitude,
+ height,
+ })
+ // 在这里,你可以使用 height 值进行后续操作
+ })
+ .catch(function (error) {
+ // console.error('获取高程时发生错误:', error);
+ reject(error)
+ })
+ })
}
// 批量获取经纬度对应高度信息
export const getPositionsHeight = (data, viewer, droneHeight = null) => {
- return new Promise((resolve, reject) => {
- if (!data || !data.length) {
- resolve([])
+ return new Promise((resolve, reject) => {
+ if (!data || !data.length) {
+ resolve([])
- return
- }
+ return
+ }
- // 假设 viewer 已经初始化并且 terrainProvider 是有效的
- const terrainProvider = viewer?.terrainProvider
+ // 假设 viewer 已经初始化并且 terrainProvider 是有效的
+ const terrainProvider = viewer?.terrainProvider
- // 创建 Cartographic 对象
- const cartographics = data.map((item) => {
- const [lng, lat] = item?.['Point']?.['coordinates']?.['#text'].split(',')
+ // 创建 Cartographic 对象
+ const cartographics = data.map(item => {
+ const [lng, lat] = item?.['Point']?.['coordinates']?.['#text'].split(',')
- return Cesium.Cartographic.fromDegrees(Number(lng), Number(lat))
- })
+ return Cesium.Cartographic.fromDegrees(Number(lng), Number(lat))
+ })
- // 获取地形数据的Promise
- const promise = Cesium.sampleTerrainMostDetailed(
- terrainProvider,
- cartographics,
- )
+ // 获取地形数据的Promise
+ const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, cartographics)
- // 使用 Cesium.when 处理 Promise
- promise
- .then(function (updatedPositions) {
- // updatedPositions 是一个数组,包含更新后的 Cartographic 对象
- const newPosition = updatedPositions.map((item, index) => {
- const longitude = Cesium.Math.toDegrees(item.longitude)
- const latitude = Cesium.Math.toDegrees(item.latitude)
+ // 使用 Cesium.when 处理 Promise
+ promise
+ .then(function (updatedPositions) {
+ // updatedPositions 是一个数组,包含更新后的 Cartographic 对象
+ const newPosition = updatedPositions.map((item, index) => {
+ const longitude = Cesium.Math.toDegrees(item.longitude)
+ const latitude = Cesium.Math.toDegrees(item.latitude)
- let FinalHeight = Number(data[index]?.['ellipsoidHeight']?.['#text']) + Number(item.height)
+ let FinalHeight =
+ Number(data[index]?.['ellipsoidHeight']?.['#text']) + Number(item.height)
- if (droneHeight) {
- FinalHeight = Number(data[index]?.['ellipsoidHeight']?.['#text']) + droneHeight
- }
+ if (droneHeight) {
+ FinalHeight = Number(data[index]?.['ellipsoidHeight']?.['#text']) + droneHeight
+ }
- return {
- ...data[index],
- longitude,
- latitude,
- FinalHeight,
- customHeight: Number(item.height),
- }
- })
+ return {
+ ...data[index],
+ longitude,
+ latitude,
+ FinalHeight,
+ customHeight: Number(item.height),
+ }
+ })
- resolve(newPosition)
- // 在这里,你可以使用 height 值进行后续操作
- })
- .catch(function (error) {
- // console.error('获取高程时发生错误:', error);
- reject(error)
- })
- })
+ resolve(newPosition)
+ // 在这里,你可以使用 height 值进行后续操作
+ })
+ .catch(function (error) {
+ // console.error('获取高程时发生错误:', error);
+ reject(error)
+ })
+ })
}
// 获取面中最高点
export const getPolygonMaxHeight = (turfPolygon, viewer) => {
- return new Promise((resolve, reject) => {
- const turfExtent = turf.bbox(turfPolygon)
+ return new Promise((resolve, reject) => {
+ const turfExtent = turf.bbox(turfPolygon)
- const turfSamplePoints = turf.pointGrid(turfExtent, 0.01, {
- units: 'kilometers',
- mask: turfPolygon,
- })
+ const turfSamplePoints = turf.pointGrid(turfExtent, 0.01, {
+ units: 'kilometers',
+ mask: turfPolygon,
+ })
- // 假设 viewer 已经初始化并且 terrainProvider 是有效的
- const terrainProvider = viewer?.terrainProvider
+ // 假设 viewer 已经初始化并且 terrainProvider 是有效的
+ const terrainProvider = viewer?.terrainProvider
- const cesiumSamplePoints = []
- for (let i = 0; i < turfSamplePoints.features.length; i++) {
- const coord = turfSamplePoints.features[i].geometry.coordinates
- cesiumSamplePoints.push(
- Cesium.Cartographic.fromDegrees(coord[0], coord[1]),
- )
- }
+ const cesiumSamplePoints = []
+ for (let i = 0; i < turfSamplePoints.features.length; i++) {
+ const coord = turfSamplePoints.features[i].geometry.coordinates
+ cesiumSamplePoints.push(Cesium.Cartographic.fromDegrees(coord[0], coord[1]))
+ }
- // 获取地形数据的Promise
- const promise = Cesium.sampleTerrainMostDetailed(
- terrainProvider,
- cesiumSamplePoints,
- )
+ // 获取地形数据的Promise
+ const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, cesiumSamplePoints)
- promise
- .then(function (updatedPositions) {
- const newPosition = updatedPositions.map((item) => Number(item.height))
+ promise
+ .then(function (updatedPositions) {
+ const newPosition = updatedPositions.map(item => Number(item.height))
- resolve(Math.max(...newPosition))
- })
- .catch(function (error) {
- reject(error)
- })
- })
+ resolve(Math.max(...newPosition))
+ })
+ .catch(function (error) {
+ reject(error)
+ })
+ })
}
// 展示当前的高度
-export const getWaylineShowHeight = (positions) => {
- const { lng, lat } = getCenterPoint(positions)
- let maxDist = 0
- positions.forEach((item) => {
- const [lng1, lat1] = item
- let pointsDist = getLnglatDist(lng1, lat1, lng, lat)
- if (pointsDist > maxDist) {
- maxDist = pointsDist
- }
- })
- return {
- lng,
- lat,
- showHeight: maxDist * 8,
- }
+export const getWaylineShowHeight = positions => {
+ const { lng, lat } = getCenterPoint(positions)
+ let maxDist = 0
+ positions.forEach(item => {
+ const [lng1, lat1] = item
+ let pointsDist = getLnglatDist(lng1, lat1, lng, lat)
+ if (pointsDist > maxDist) {
+ maxDist = pointsDist
+ }
+ })
+ return {
+ lng,
+ lat,
+ showHeight: maxDist * 8,
+ }
}
// 获取当前面是否有交叉点
-export const isIntersection = (coordinates) => {
- const polyDikuai = turf.polygon([coordinates])
- const result = turf.kinks(polyDikuai)
- const resultFeatures = result.features
- if (resultFeatures.length == 0) {
- //无相交
- return false
- } else {
- //有相交
- return true
- }
+export const isIntersection = coordinates => {
+ const polyDikuai = turf.polygon([coordinates])
+ const result = turf.kinks(polyDikuai)
+ const resultFeatures = result.features
+ if (resultFeatures.length == 0) {
+ //无相交
+ return false
+ } else {
+ //有相交
+ return true
+ }
}
diff --git a/src/utils/cesium/use-kmz-tsa.js b/src/utils/cesium/use-kmz-tsa.js
index 6d914a3..c24de6a 100644
--- a/src/utils/cesium/use-kmz-tsa.js
+++ b/src/utils/cesium/use-kmz-tsa.js
@@ -1,685 +1,675 @@
-import _ from 'lodash';
-import JSZIP from 'jszip';
-import { JSONToXML } from './kmz';
-import { getDateFromTimestamp } from '@/utils/date';
+import _ from 'lodash'
+import JSZIP from 'jszip'
+import { JSONToXML } from './kmz'
+import { getDateFromTimestamp } from '@/utils/date'
export default function kmzFile() {
- // 云台信息
- const droneModel = {
- 52: '0',
- 53: '1',
- 66: '0',
- 67: '1',
- 80: '0',
- 81: '1',
- };
- // 创建图斑航线
- const create = async (waylineBasicInfo, lnglats, spotList) => {
- try {
- const date = new Date();
- const username = window.localStorage.getItem('bs_username');
- const updateTime = date.getTime();
- const fileName = '图斑航线规划_' + date.getTime();
- // 无人机机型、云台型号、航线高度
- const { droneEnumValue, payloadEnumValue, height } = waylineBasicInfo;
- const defaultHeight = height || 100;
- // 起始点位 (参考点位-具体以机场为准)
- const startPoint = lnglats[0];
- const takeOffPoint = [startPoint[1], startPoint[0], 0].join(',');
- // template.xml对象模版
- const fileTemplate = {
- author: { '#text': username },
- createTime: { '#text': updateTime },
- updateTime: { '#text': updateTime },
- missionConfig: {
- // 飞向首航点模式
- flyToWaylineMode: { '#text': 'safely' },
- // 航线结束动作
- finishAction: { '#text': 'goHome' },
- // 失控是否继续执行航线
- exitOnRCLost: { '#text': 'goContinue' },
- // 失控动作类型
- executeRCLostAction: { '#text': 'goBack' },
- // 安全起飞高度
- takeOffSecurityHeight: { '#text': 20 },
- // 参考起飞点
- takeOffRefPoint: { '#text': takeOffPoint },
- // 参考起飞点海拔高度
- takeOffRefPointAGLHeight: { '#text': 0 },
- // 全局航线过渡速度
- globalTransitionalSpeed: { '#text': 10 },
- // 全局返航高度
- globalRTHHeight: { '#text': defaultHeight },
- // 无人机参数
- droneInfo: {
- droneEnumValue: { '#text': droneEnumValue },
- droneSubEnumValue: {
- '#text': droneModel[payloadEnumValue],
- },
- },
- // 云台参数
- payloadInfo: {
- payloadEnumValue: { '#text': payloadEnumValue },
- payloadSubEnumValue: {
- '#text': droneModel[payloadEnumValue],
- },
- payloadPositionIndex: { '#text': 0 },
- },
- },
- Folder: {
- // 预定义模板类型 - 航点飞行
- templateType: { '#text': 'waypoint' },
- // 是否使用全局航线过渡速度
- useGlobalTransitionalSpeed: { '#text': 0 },
- templateId: { '#text': 0 },
- // 坐标系参数信息
- waylineCoordinateSysParam: {
- // 经纬度坐标系 - 固定值
- coordinateMode: { '#text': 'WGS84' },
- // 航点高程参考平面 - 相对高度
- heightMode: { '#text': 'relativeToStartPoint' },
- },
- // 全局航线飞行速度
- autoFlightSpeed: { '#text': 10 },
- // 云台俯仰角控制模式
- gimbalPitchMode: { '#text': 'usePointSetting' },
- // 全局高度
- globalHeight: { '#text': '100' },
- // 全局偏航角模式参数 - 可使用当前默认值
- globalWaypointHeadingParam: {
- waypointHeadingMode: { '#text': 'followWayline' },
- waypointHeadingAngle: { '#text': 0 },
- waypointPoiPoint: {
- '#text': '0.000000,0.000000,0.000000',
- },
- waypointHeadingPathMode: { '#text': 'followBadArc' },
- waypointHeadingPoiIndex: { '#text': 0 },
- },
- // 全局航点类型 - 直线飞行,飞行器到点停
- globalWaypointTurnMode: {
- '#text': 'toPointAndStopWithDiscontinuityCurvature',
- },
- // 全局航段轨迹是否尽量贴合直线
- globalUseStraightLine: { '#text': 1 },
- // 航点点位信息 - 位置、事件等
- Placemark: [],
- // payloadParam: {
- // payloadPositionIndex: { '#text': 0 },
- // focusMode: { '#text': 'firstPoint' },
- // meteringMode: { '#text': 'average' },
- // returnMode: { '#text': 'singleReturnFirst' },
- // samplingRate: { '#text': '240000' },
- // scanningMode: { '#text': 'repetitive' },
- // imageFormat: { '#text': 'wide,zoom' },
- // },
- },
- };
- // 航点创建
- const polygonNo = {
- no: '',
- index: 0,
- };
- lnglats.forEach((lnglat, index) => {
- const obj = spotList.find((spot) =>
- spot.dkfw.find((item) => _.isEqual(item, lnglat)),
- );
- let fileSuffix = '';
- if (obj) {
- if (polygonNo.no === obj.dkbh) {
- polygonNo.index++;
- } else {
- polygonNo.no = obj.dkbh;
- polygonNo.index = 1;
- }
- fileSuffix = `图斑航线拍摄(${obj.dkbh}-${polygonNo.index})`;
- } else {
- fileSuffix = '图斑航线拍摄(起点)';
- }
- const placemark = {
- Point: {
- // 航点经纬度
- coordinates: { '#text': `${lnglat[0]},${lnglat[1]}` },
- },
- // 航点index
- index: { '#text': index },
- // 全局航线高度(椭球高)
- ellipsoidHeight: { '#text': defaultHeight },
- // 全局航线高度 (EGM96海拔高/相对起飞点高度/AGL相对地面高度)
- height: { '#text': defaultHeight },
- // 航点飞行速度
- waypointSpeed: { '#text': 10 },
- // 沿航线方向 - 可使用当前默认值
- waypointHeadingParam: {
- waypointHeadingMode: { '#text': 'followWayline' },
- waypointHeadingAngle: { '#text': 0 },
- waypointPoiPoint: {
- '#text': '0.000000,0.000000,0.000000',
- },
- waypointHeadingPathMode: { '#text': 'followBadArc' },
- waypointHeadingPoiIndex: { '#text': 0 },
- },
- // 航点类型
- waypointTurnParam: {
- waypointTurnMode: {
- '#text': 'toPointAndStopWithDiscontinuityCurvature',
- },
- waypointTurnDampingDist: { '#text': 0.2 },
- },
- // 是否全局参数
- useGlobalHeight: { '#text': 1 },
- useGlobalSpeed: { '#text': 1 },
- useGlobalHeadingParam: { '#text': 1 },
- useGlobalTurnParam: { '#text': 1 },
- useStraightLine: { '#text': 1 },
- // 事件组
- actionGroup: {
- actionGroupId: { '#text': index },
- actionGroupStartIndex: { '#text': index },
- actionGroupEndIndex: { '#text': index },
- actionGroupMode: { '#text': 'sequence' },
- actionTrigger: {
- actionTriggerType: { '#text': 'reachPoint' },
- },
- // 单个事件 - 如果是多个事件action可改成数组 action: [{}]
- action: {
- actionId: { '#text': 0 },
- actionActuatorFunc: { '#text': 'takePhoto' },
- actionActuatorFuncParam: {
- fileSuffix: { '#text': fileSuffix },
- payloadPositionIndex: { '#text': '0' },
- useGlobalPayloadLensIndex: { '#text': '1' },
- },
- },
- },
- };
- fileTemplate.Folder.Placemark.push(placemark);
- });
- const fileWaylines = waylinesContext(fileTemplate);
+ // 云台信息
+ const droneModel = {
+ 52: '0',
+ 53: '1',
+ 66: '0',
+ 67: '1',
+ 80: '0',
+ 81: '1',
+ }
+ // 创建图斑航线
+ const create = async (waylineBasicInfo, lnglats, spotList) => {
+ try {
+ const date = new Date()
+ const username = window.localStorage.getItem('bs_username')
+ const updateTime = date.getTime()
+ const fileName = '图斑航线规划_' + date.getTime()
+ // 无人机机型、云台型号、航线高度
+ const { droneEnumValue, payloadEnumValue, height } = waylineBasicInfo
+ const defaultHeight = height || 100
+ // 起始点位 (参考点位-具体以机场为准)
+ const startPoint = lnglats[0]
+ const takeOffPoint = [startPoint[1], startPoint[0], 0].join(',')
+ // template.xml对象模版
+ const fileTemplate = {
+ author: { '#text': username },
+ createTime: { '#text': updateTime },
+ updateTime: { '#text': updateTime },
+ missionConfig: {
+ // 飞向首航点模式
+ flyToWaylineMode: { '#text': 'safely' },
+ // 航线结束动作
+ finishAction: { '#text': 'goHome' },
+ // 失控是否继续执行航线
+ exitOnRCLost: { '#text': 'goContinue' },
+ // 失控动作类型
+ executeRCLostAction: { '#text': 'goBack' },
+ // 安全起飞高度
+ takeOffSecurityHeight: { '#text': 20 },
+ // 参考起飞点
+ takeOffRefPoint: { '#text': takeOffPoint },
+ // 参考起飞点海拔高度
+ takeOffRefPointAGLHeight: { '#text': 0 },
+ // 全局航线过渡速度
+ globalTransitionalSpeed: { '#text': 10 },
+ // 全局返航高度
+ globalRTHHeight: { '#text': defaultHeight },
+ // 无人机参数
+ droneInfo: {
+ droneEnumValue: { '#text': droneEnumValue },
+ droneSubEnumValue: {
+ '#text': droneModel[payloadEnumValue],
+ },
+ },
+ // 云台参数
+ payloadInfo: {
+ payloadEnumValue: { '#text': payloadEnumValue },
+ payloadSubEnumValue: {
+ '#text': droneModel[payloadEnumValue],
+ },
+ payloadPositionIndex: { '#text': 0 },
+ },
+ },
+ Folder: {
+ // 预定义模板类型 - 航点飞行
+ templateType: { '#text': 'waypoint' },
+ // 是否使用全局航线过渡速度
+ useGlobalTransitionalSpeed: { '#text': 0 },
+ templateId: { '#text': 0 },
+ // 坐标系参数信息
+ waylineCoordinateSysParam: {
+ // 经纬度坐标系 - 固定值
+ coordinateMode: { '#text': 'WGS84' },
+ // 航点高程参考平面 - 相对高度
+ heightMode: { '#text': 'relativeToStartPoint' },
+ },
+ // 全局航线飞行速度
+ autoFlightSpeed: { '#text': 10 },
+ // 云台俯仰角控制模式
+ gimbalPitchMode: { '#text': 'usePointSetting' },
+ // 全局高度
+ globalHeight: { '#text': '100' },
+ // 全局偏航角模式参数 - 可使用当前默认值
+ globalWaypointHeadingParam: {
+ waypointHeadingMode: { '#text': 'followWayline' },
+ waypointHeadingAngle: { '#text': 0 },
+ waypointPoiPoint: {
+ '#text': '0.000000,0.000000,0.000000',
+ },
+ waypointHeadingPathMode: { '#text': 'followBadArc' },
+ waypointHeadingPoiIndex: { '#text': 0 },
+ },
+ // 全局航点类型 - 直线飞行,飞行器到点停
+ globalWaypointTurnMode: {
+ '#text': 'toPointAndStopWithDiscontinuityCurvature',
+ },
+ // 全局航段轨迹是否尽量贴合直线
+ globalUseStraightLine: { '#text': 1 },
+ // 航点点位信息 - 位置、事件等
+ Placemark: [],
+ // payloadParam: {
+ // payloadPositionIndex: { '#text': 0 },
+ // focusMode: { '#text': 'firstPoint' },
+ // meteringMode: { '#text': 'average' },
+ // returnMode: { '#text': 'singleReturnFirst' },
+ // samplingRate: { '#text': '240000' },
+ // scanningMode: { '#text': 'repetitive' },
+ // imageFormat: { '#text': 'wide,zoom' },
+ // },
+ },
+ }
+ // 航点创建
+ const polygonNo = {
+ no: '',
+ index: 0,
+ }
+ lnglats.forEach((lnglat, index) => {
+ const obj = spotList.find(spot => spot.dkfw.find(item => _.isEqual(item, lnglat)))
+ let fileSuffix = ''
+ if (obj) {
+ if (polygonNo.no === obj.dkbh) {
+ polygonNo.index++
+ } else {
+ polygonNo.no = obj.dkbh
+ polygonNo.index = 1
+ }
+ fileSuffix = `图斑航线拍摄(${obj.dkbh}-${polygonNo.index})`
+ } else {
+ fileSuffix = '图斑航线拍摄(起点)'
+ }
+ const placemark = {
+ Point: {
+ // 航点经纬度
+ coordinates: { '#text': `${lnglat[0]},${lnglat[1]}` },
+ },
+ // 航点index
+ index: { '#text': index },
+ // 全局航线高度(椭球高)
+ ellipsoidHeight: { '#text': defaultHeight },
+ // 全局航线高度 (EGM96海拔高/相对起飞点高度/AGL相对地面高度)
+ height: { '#text': defaultHeight },
+ // 航点飞行速度
+ waypointSpeed: { '#text': 10 },
+ // 沿航线方向 - 可使用当前默认值
+ waypointHeadingParam: {
+ waypointHeadingMode: { '#text': 'followWayline' },
+ waypointHeadingAngle: { '#text': 0 },
+ waypointPoiPoint: {
+ '#text': '0.000000,0.000000,0.000000',
+ },
+ waypointHeadingPathMode: { '#text': 'followBadArc' },
+ waypointHeadingPoiIndex: { '#text': 0 },
+ },
+ // 航点类型
+ waypointTurnParam: {
+ waypointTurnMode: {
+ '#text': 'toPointAndStopWithDiscontinuityCurvature',
+ },
+ waypointTurnDampingDist: { '#text': 0.2 },
+ },
+ // 是否全局参数
+ useGlobalHeight: { '#text': 1 },
+ useGlobalSpeed: { '#text': 1 },
+ useGlobalHeadingParam: { '#text': 1 },
+ useGlobalTurnParam: { '#text': 1 },
+ useStraightLine: { '#text': 1 },
+ // 事件组
+ actionGroup: {
+ actionGroupId: { '#text': index },
+ actionGroupStartIndex: { '#text': index },
+ actionGroupEndIndex: { '#text': index },
+ actionGroupMode: { '#text': 'sequence' },
+ actionTrigger: {
+ actionTriggerType: { '#text': 'reachPoint' },
+ },
+ // 单个事件 - 如果是多个事件action可改成数组 action: [{}]
+ action: {
+ actionId: { '#text': 0 },
+ actionActuatorFunc: { '#text': 'takePhoto' },
+ actionActuatorFuncParam: {
+ fileSuffix: { '#text': fileSuffix },
+ payloadPositionIndex: { '#text': '0' },
+ useGlobalPayloadLensIndex: { '#text': '1' },
+ },
+ },
+ },
+ }
+ fileTemplate.Folder.Placemark.push(placemark)
+ })
+ const fileWaylines = waylinesContext(fileTemplate)
- return {
- fileName,
- template: fileTemplate,
- waylines: fileWaylines,
- };
- } catch (error) {
- console.log(error);
- return false;
- }
- };
+ return {
+ fileName,
+ template: fileTemplate,
+ waylines: fileWaylines,
+ }
+ } catch (error) {
+ console.log(error)
+ return false
+ }
+ }
- // 创建正常航线
- const createNoramlWaylines = (waylineBasicInfo, lnglats) => {
- try {
- const date = new Date();
- const username = window.localStorage.getItem('bs_username');
- const updateTime = date.getTime();
- const { year, month, day, hours, minutes } =
- getDateFromTimestamp(updateTime);
- const fileName = '新建航线_' + year + month + day + hours + minutes;
- // 无人机机型、云台型号、航线高度
- const { droneEnumValue, payloadEnumValue, height, waylineName } =
- waylineBasicInfo;
- const defaultHeight = height || 100;
- // 起始点位 (参考点位-具体以机场为准)
- const startPoint = lnglats[0];
- const takeOffPoint = [startPoint.latitude, startPoint.longitude, 0].join(
- ',',
- );
- // template.xml对象模版
- const fileTemplate = {
- author: { '#text': username },
- createTime: { '#text': updateTime },
- updateTime: { '#text': updateTime },
- missionConfig: {
- // 飞向首航点模式
- flyToWaylineMode: { '#text': 'safely' },
- // 航线结束动作
- finishAction: { '#text': 'goHome' },
- // 失控是否继续执行航线
- exitOnRCLost: { '#text': 'goContinue' },
- // 失控动作类型
- executeRCLostAction: { '#text': 'goBack' },
- // 安全起飞高度
- takeOffSecurityHeight: { '#text': 20 },
- // 参考起飞点
- takeOffRefPoint: { '#text': takeOffPoint },
- // 参考起飞点海拔高度
- takeOffRefPointAGLHeight: { '#text': 0 },
- // 全局航线过渡速度
- globalTransitionalSpeed: { '#text': 10 },
- // 全局返航高度
- globalRTHHeight: { '#text': defaultHeight },
- // 无人机参数
- droneInfo: {
- droneEnumValue: { '#text': droneEnumValue },
- droneSubEnumValue: {
- '#text': droneModel[payloadEnumValue],
- },
- },
- // 是否自动绕行(暂未验证M30T机型使用此参数后会不会无法起飞)
- autoRerouteInfo: {
- missionAutoRerouteMode: { '#text': 1 },
- transitionalAutoRerouteMode: { '#text': 1 },
- },
- // 云台参数
- payloadInfo: {
- payloadEnumValue: { '#text': payloadEnumValue },
- payloadSubEnumValue: {
- '#text': droneModel[payloadEnumValue],
- },
- payloadPositionIndex: { '#text': 0 },
- },
- },
- Folder: {
- // 预定义模板类型 - 航点飞行
- templateType: { '#text': 'waypoint' },
- // 是否使用全局航线过渡速度
- useGlobalTransitionalSpeed: { '#text': 0 },
- templateId: { '#text': 0 },
- // 坐标系参数信息
- waylineCoordinateSysParam: {
- // 经纬度坐标系 - 固定值
- coordinateMode: { '#text': 'WGS84' },
- // 航点高程参考平面 - 相对高度
- heightMode: { '#text': 'relativeToStartPoint' },
- },
- // 全局航线飞行速度
- autoFlightSpeed: { '#text': 10 },
- // 云台俯仰角控制模式
- gimbalPitchMode: { '#text': 'usePointSetting' },
- // 全局高度
- globalHeight: { '#text': '100' },
- // 全局偏航角模式参数 - 可使用当前默认值
- globalWaypointHeadingParam: {
- waypointHeadingMode: { '#text': 'followWayline' },
- waypointHeadingAngle: { '#text': 0 },
- waypointPoiPoint: {
- '#text': '0.000000,0.000000,0.000000',
- },
- waypointHeadingPathMode: { '#text': 'followBadArc' },
- waypointHeadingPoiIndex: { '#text': 0 },
- },
- // 全局航点类型 - 直线飞行,飞行器到点停
- globalWaypointTurnMode: {
- '#text': 'toPointAndStopWithDiscontinuityCurvature',
- },
- // 全局航段轨迹是否尽量贴合直线
- globalUseStraightLine: { '#text': 1 },
- // 航点点位信息 - 位置、事件等
- Placemark: [],
- payloadParam: {
- payloadPositionIndex: { '#text': 0 },
- focusMode: { '#text': 'firstPoint' },
- meteringMode: { '#text': 'average' },
- returnMode: { '#text': 'singleReturnFirst' },
- samplingRate: { '#text': '240000' },
- scanningMode: { '#text': 'repetitive' },
- imageFormat: { '#text': 'wide,zoom' },
- },
- },
- };
- lnglats.forEach((lnglat, index) => {
- const placemark = {
- Point: {
- // 航点经纬度
- coordinates: {
- '#text': `${lnglat.longitude},${lnglat.latitude}`,
- },
- },
- // 航点index
- index: { '#text': index },
- // 全局航线高度(椭球高)
- ellipsoidHeight: { '#text': lnglat.height },
- // 全局航线高度 (EGM96海拔高/相对起飞点高度/AGL相对地面高度)
- height: { '#text': lnglat.height },
- // 航点飞行速度
- waypointSpeed: { '#text': lnglat?.speed || 10 },
- // 沿航线方向 - 可使用当前默认值
- waypointHeadingParam: {
- waypointHeadingMode: { '#text': 'followWayline' },
- waypointHeadingAngle: { '#text': 0 },
- waypointPoiPoint: {
- '#text': '0.000000,0.000000,0.000000',
- },
- waypointHeadingPathMode: { '#text': 'followBadArc' },
- waypointHeadingPoiIndex: { '#text': 0 },
- },
- // 航点类型
- waypointTurnParam: {
- waypointTurnMode: {
- '#text': 'toPointAndStopWithDiscontinuityCurvature',
- },
- waypointTurnDampingDist: { '#text': 0.2 },
- },
- // 是否全局参数
- useGlobalHeight: { '#text': 1 },
- useGlobalSpeed: { '#text': 0 },
- useGlobalHeadingParam: { '#text': 1 },
- useGlobalTurnParam: { '#text': 1 },
- useStraightLine: { '#text': 1 },
- };
- if (lnglat?.actions) {
- const actionGroup = {
- actionGroupId: { '#text': index },
- actionGroupStartIndex: { '#text': index },
- actionGroupEndIndex: { '#text': index },
- actionGroupMode: { '#text': 'sequence' },
- actionTrigger: {
- actionTriggerType: { '#text': 'reachPoint' },
- },
- // 单个事件 - 如果是多个事件action可改成数组 action: [{}]
- // action: [{
- // actionId: { '#text': 0 },
- // actionActuatorFunc: { '#text': '' },
- // actionActuatorFuncParam: {},
- // }],
- action: [],
- };
- lnglat?.actions.forEach((action, index) => {
- const singleAction = {
- actionId: { '#text': index },
- actionActuatorFunc: { '#text': '' },
- actionActuatorFuncParam: {},
- };
- // actionGroup.action['actionActuatorFunc'] = { '#text': action.key }
- // action.params.forEach(p => {
- // if (p.value || p.value !== '') {
- // actionGroup.action['actionActuatorFuncParam'][p.key] = { '#text': p.value }
- // }
- // })
- singleAction['actionActuatorFunc'] = {
- '#text': action.key,
- };
- action.params.forEach((p) => {
- if (p.value || p.value !== '') {
- singleAction['actionActuatorFuncParam'][p.key] = {
- '#text': p.value,
- };
- }
- });
- if (lnglat?.actions.length > 1) {
- actionGroup.action.push(singleAction);
- } else {
- actionGroup.action = singleAction;
- }
- });
- placemark.actionGroup = actionGroup;
- }
- fileTemplate.Folder.Placemark.push(placemark);
- });
- const fileWaylines = waylinesContext(fileTemplate);
- return {
- fileName: waylineName || fileName,
- template: fileTemplate,
- waylines: fileWaylines,
- };
- } catch (error) {
- console.log(error);
- return error;
- }
- };
+ // 创建正常航线
+ const createNoramlWaylines = (waylineBasicInfo, lnglats) => {
+ try {
+ const date = new Date()
+ const username = window.localStorage.getItem('bs_username')
+ const updateTime = date.getTime()
+ const { year, month, day, hours, minutes } = getDateFromTimestamp(updateTime)
+ const fileName = '新建航线_' + year + month + day + hours + minutes
+ // 无人机机型、云台型号、航线高度
+ const { droneEnumValue, payloadEnumValue, height, waylineName } = waylineBasicInfo
+ const defaultHeight = height || 100
+ // 起始点位 (参考点位-具体以机场为准)
+ const startPoint = lnglats[0]
+ const takeOffPoint = [startPoint.latitude, startPoint.longitude, 0].join(',')
+ // template.xml对象模版
+ const fileTemplate = {
+ author: { '#text': username },
+ createTime: { '#text': updateTime },
+ updateTime: { '#text': updateTime },
+ missionConfig: {
+ // 飞向首航点模式
+ flyToWaylineMode: { '#text': 'safely' },
+ // 航线结束动作
+ finishAction: { '#text': 'goHome' },
+ // 失控是否继续执行航线
+ exitOnRCLost: { '#text': 'goContinue' },
+ // 失控动作类型
+ executeRCLostAction: { '#text': 'goBack' },
+ // 安全起飞高度
+ takeOffSecurityHeight: { '#text': 20 },
+ // 参考起飞点
+ takeOffRefPoint: { '#text': takeOffPoint },
+ // 参考起飞点海拔高度
+ takeOffRefPointAGLHeight: { '#text': 0 },
+ // 全局航线过渡速度
+ globalTransitionalSpeed: { '#text': 10 },
+ // 全局返航高度
+ globalRTHHeight: { '#text': defaultHeight },
+ // 无人机参数
+ droneInfo: {
+ droneEnumValue: { '#text': droneEnumValue },
+ droneSubEnumValue: {
+ '#text': droneModel[payloadEnumValue],
+ },
+ },
+ // 是否自动绕行(暂未验证M30T机型使用此参数后会不会无法起飞)
+ autoRerouteInfo: {
+ missionAutoRerouteMode: { '#text': 1 },
+ transitionalAutoRerouteMode: { '#text': 1 },
+ },
+ // 云台参数
+ payloadInfo: {
+ payloadEnumValue: { '#text': payloadEnumValue },
+ payloadSubEnumValue: {
+ '#text': droneModel[payloadEnumValue],
+ },
+ payloadPositionIndex: { '#text': 0 },
+ },
+ },
+ Folder: {
+ // 预定义模板类型 - 航点飞行
+ templateType: { '#text': 'waypoint' },
+ // 是否使用全局航线过渡速度
+ useGlobalTransitionalSpeed: { '#text': 0 },
+ templateId: { '#text': 0 },
+ // 坐标系参数信息
+ waylineCoordinateSysParam: {
+ // 经纬度坐标系 - 固定值
+ coordinateMode: { '#text': 'WGS84' },
+ // 航点高程参考平面 - 相对高度
+ heightMode: { '#text': 'relativeToStartPoint' },
+ },
+ // 全局航线飞行速度
+ autoFlightSpeed: { '#text': 10 },
+ // 云台俯仰角控制模式
+ gimbalPitchMode: { '#text': 'usePointSetting' },
+ // 全局高度
+ globalHeight: { '#text': '100' },
+ // 全局偏航角模式参数 - 可使用当前默认值
+ globalWaypointHeadingParam: {
+ waypointHeadingMode: { '#text': 'followWayline' },
+ waypointHeadingAngle: { '#text': 0 },
+ waypointPoiPoint: {
+ '#text': '0.000000,0.000000,0.000000',
+ },
+ waypointHeadingPathMode: { '#text': 'followBadArc' },
+ waypointHeadingPoiIndex: { '#text': 0 },
+ },
+ // 全局航点类型 - 直线飞行,飞行器到点停
+ globalWaypointTurnMode: {
+ '#text': 'toPointAndStopWithDiscontinuityCurvature',
+ },
+ // 全局航段轨迹是否尽量贴合直线
+ globalUseStraightLine: { '#text': 1 },
+ // 航点点位信息 - 位置、事件等
+ Placemark: [],
+ payloadParam: {
+ payloadPositionIndex: { '#text': 0 },
+ focusMode: { '#text': 'firstPoint' },
+ meteringMode: { '#text': 'average' },
+ returnMode: { '#text': 'singleReturnFirst' },
+ samplingRate: { '#text': '240000' },
+ scanningMode: { '#text': 'repetitive' },
+ imageFormat: { '#text': 'wide,zoom' },
+ },
+ },
+ }
+ lnglats.forEach((lnglat, index) => {
+ const placemark = {
+ Point: {
+ // 航点经纬度
+ coordinates: {
+ '#text': `${lnglat.longitude},${lnglat.latitude}`,
+ },
+ },
+ // 航点index
+ index: { '#text': index },
+ // 全局航线高度(椭球高)
+ ellipsoidHeight: { '#text': lnglat.height },
+ // 全局航线高度 (EGM96海拔高/相对起飞点高度/AGL相对地面高度)
+ height: { '#text': lnglat.height },
+ // 航点飞行速度
+ waypointSpeed: { '#text': lnglat?.speed || 10 },
+ // 沿航线方向 - 可使用当前默认值
+ waypointHeadingParam: {
+ waypointHeadingMode: { '#text': 'followWayline' },
+ waypointHeadingAngle: { '#text': 0 },
+ waypointPoiPoint: {
+ '#text': '0.000000,0.000000,0.000000',
+ },
+ waypointHeadingPathMode: { '#text': 'followBadArc' },
+ waypointHeadingPoiIndex: { '#text': 0 },
+ },
+ // 航点类型
+ waypointTurnParam: {
+ waypointTurnMode: {
+ '#text': 'toPointAndStopWithDiscontinuityCurvature',
+ },
+ waypointTurnDampingDist: { '#text': 0.2 },
+ },
+ // 是否全局参数
+ useGlobalHeight: { '#text': 1 },
+ useGlobalSpeed: { '#text': 0 },
+ useGlobalHeadingParam: { '#text': 1 },
+ useGlobalTurnParam: { '#text': 1 },
+ useStraightLine: { '#text': 1 },
+ }
+ if (lnglat?.actions) {
+ const actionGroup = {
+ actionGroupId: { '#text': index },
+ actionGroupStartIndex: { '#text': index },
+ actionGroupEndIndex: { '#text': index },
+ actionGroupMode: { '#text': 'sequence' },
+ actionTrigger: {
+ actionTriggerType: { '#text': 'reachPoint' },
+ },
+ // 单个事件 - 如果是多个事件action可改成数组 action: [{}]
+ // action: [{
+ // actionId: { '#text': 0 },
+ // actionActuatorFunc: { '#text': '' },
+ // actionActuatorFuncParam: {},
+ // }],
+ action: [],
+ }
+ lnglat?.actions.forEach((action, index) => {
+ const singleAction = {
+ actionId: { '#text': index },
+ actionActuatorFunc: { '#text': '' },
+ actionActuatorFuncParam: {},
+ }
+ // actionGroup.action['actionActuatorFunc'] = { '#text': action.key }
+ // action.params.forEach(p => {
+ // if (p.value || p.value !== '') {
+ // actionGroup.action['actionActuatorFuncParam'][p.key] = { '#text': p.value }
+ // }
+ // })
+ singleAction['actionActuatorFunc'] = {
+ '#text': action.key,
+ }
+ action.params.forEach(p => {
+ if (p.value || p.value !== '') {
+ singleAction['actionActuatorFuncParam'][p.key] = {
+ '#text': p.value,
+ }
+ }
+ })
+ if (lnglat?.actions.length > 1) {
+ actionGroup.action.push(singleAction)
+ } else {
+ actionGroup.action = singleAction
+ }
+ })
+ placemark.actionGroup = actionGroup
+ }
+ fileTemplate.Folder.Placemark.push(placemark)
+ })
+ const fileWaylines = waylinesContext(fileTemplate)
+ return {
+ fileName: waylineName || fileName,
+ template: fileTemplate,
+ waylines: fileWaylines,
+ }
+ } catch (error) {
+ console.log(error)
+ return error
+ }
+ }
- // 创建面状航线
- const createPlanarWayline = (waylineBasicInfo, lnglats) => {};
+ // 创建面状航线
+ const createPlanarWayline = (waylineBasicInfo, lnglats) => {}
- // 创建点状航线
- const createPointWayLines = (
- waylineBasicInfo,
- points,
- settingInfo,
- dockPosition,
- ) => {
- try {
- const { droneEnumValue, payloadEnumValue, waylineName } =
- waylineBasicInfo;
+ // 创建点状航线
+ const createPointWayLines = (waylineBasicInfo, points, settingInfo, dockPosition) => {
+ try {
+ const { droneEnumValue, payloadEnumValue, waylineName } = waylineBasicInfo
- const { imageFormat, heightMode, globalHeight, autoFlightSpeed,gimbalPitchMode,
- waypointTurnMode,waypointHeadingMode,finishAction,globalTransitionalSpeed } =
- settingInfo;
+ const {
+ imageFormat,
+ heightMode,
+ globalHeight,
+ autoFlightSpeed,
+ gimbalPitchMode,
+ waypointTurnMode,
+ waypointHeadingMode,
+ finishAction,
+ globalTransitionalSpeed,
+ } = settingInfo
- const date = new Date();
- const username = window.localStorage.getItem('bs_username');
- const updateTime = date.getTime();
- const { year, month, day, hours, minutes } =
- getDateFromTimestamp(updateTime);
- const fileName = '新建航线_' + year + month + day + hours + minutes;
- // 无人机机型、云台型号、航线高度
+ const date = new Date()
+ const username = window.localStorage.getItem('bs_username')
+ const updateTime = date.getTime()
+ const { year, month, day, hours, minutes } = getDateFromTimestamp(updateTime)
+ const fileName = '新建航线_' + year + month + day + hours + minutes
+ // 无人机机型、云台型号、航线高度
- const defaultHeight = 100;
- // 起始点位 (参考点位-具体以机场为准)
- const takeOffPoint = [
- dockPosition.latitude,
- dockPosition.longitude,
- 0,
- ].join(',');
+ const defaultHeight = 100
+ // 起始点位 (参考点位-具体以机场为准)
+ const takeOffPoint = [dockPosition.latitude, dockPosition.longitude, 0].join(',')
- // template.xml对象模版
- const fileTemplate = {
- author: { '#text': username },
- createTime: { '#text': updateTime },
- updateTime: { '#text': updateTime },
- missionConfig: {
- // 飞向首航点模式
- flyToWaylineMode: { '#text': 'safely' },
- // 航线结束动作
- finishAction: { '#text': finishAction || 'goHome' },
- // 失控是否继续执行航线
- exitOnRCLost: { '#text': 'executeLostAction' },
- // 失控动作类型
- executeRCLostAction: { '#text': 'goBack' },
- // 安全起飞高度
- takeOffSecurityHeight: { '#text': 120 },
- // 参考起飞点
- takeOffRefPoint: { '#text': takeOffPoint },
- // 参考起飞点海拔高度
- takeOffRefPointAGLHeight: { '#text': 0 },
- // 全局航线过渡速度
- globalTransitionalSpeed: { '#text': globalTransitionalSpeed || 10 },
- // 全局返航高度
- globalRTHHeight: { '#text': defaultHeight },
- // 无人机参数
- droneInfo: {
- droneEnumValue: { '#text': droneEnumValue },
- droneSubEnumValue: {
- '#text': droneModel[payloadEnumValue],
- },
- },
- // 是否自动绕行(暂未验证M30T机型使用此参数后会不会无法起飞)
- autoRerouteInfo: {
- missionAutoRerouteMode: { '#text': 1 },
- transitionalAutoRerouteMode: { '#text': 1 },
- },
- // 云台参数
- payloadInfo: {
- payloadEnumValue: { '#text': payloadEnumValue },
- payloadSubEnumValue: {
- '#text': droneModel[payloadEnumValue],
- },
- payloadPositionIndex: { '#text': 0 },
- },
- },
- Folder: {
- // 预定义模板类型 - 航点飞行
- templateType: { '#text': 'waypoint' },
- // 是否使用全局航线过渡速度
- useGlobalTransitionalSpeed: { '#text': 0 },
- templateId: { '#text': 0 },
- // 坐标系参数信息
- waylineCoordinateSysParam: {
- // 经纬度坐标系 - 固定值
- coordinateMode: { '#text': 'WGS84' },
- // 航点高程参考平面 - 相对高度
- heightMode: heightMode,
- },
- // 全局航线飞行速度
- autoFlightSpeed: { '#text': autoFlightSpeed || 10 },
- // 云台俯仰角控制模式
- gimbalPitchMode: { '#text': gimbalPitchMode || 'manual' },
- // 全局高度
- globalHeight: { '#text': globalHeight || '100' },
- // 全局偏航角模式参数 - 可使用当前默认值
- globalWaypointHeadingParam: {
- waypointHeadingMode: { '#text': waypointHeadingMode || 'followWayline' },
- waypointHeadingAngle: { '#text': 0 },
- waypointPoiPoint: {
- '#text': '0.000000,0.000000,0.000000',
- },
- waypointHeadingPathMode: { '#text': 'followBadArc' },
- waypointHeadingPoiIndex: { '#text': 0 },
- },
- // 全局航点类型 - 直线飞行,飞行器到点停
- globalWaypointTurnMode: {
- '#text': waypointTurnMode || 'toPointAndStopWithDiscontinuityCurvature',
- },
- // 全局航段轨迹是否尽量贴合直线
- globalUseStraightLine: { '#text': 1 },
- // 航点点位信息 - 位置、事件等
- Placemark: [],
- payloadParam: {
- payloadPositionIndex: { '#text': 0 },
- focusMode: { '#text': 'firstPoint' },
- meteringMode: { '#text': 'average' },
- returnMode: { '#text': 'singleReturnFirst' },
- samplingRate: { '#text': '240000' },
- scanningMode: { '#text': 'repetitive' },
- imageFormat: imageFormat,
- },
- },
- };
- points.length &&
- points.forEach((detail, ind) => {
- const { Point, index, height, ellipsoidHeight, actionGroup,waypointSpeed } = detail;
+ // template.xml对象模版
+ const fileTemplate = {
+ author: { '#text': username },
+ createTime: { '#text': updateTime },
+ updateTime: { '#text': updateTime },
+ missionConfig: {
+ // 飞向首航点模式
+ flyToWaylineMode: { '#text': 'safely' },
+ // 航线结束动作
+ finishAction: { '#text': finishAction || 'goHome' },
+ // 失控是否继续执行航线
+ exitOnRCLost: { '#text': 'executeLostAction' },
+ // 失控动作类型
+ executeRCLostAction: { '#text': 'goBack' },
+ // 安全起飞高度
+ takeOffSecurityHeight: { '#text': 120 },
+ // 参考起飞点
+ takeOffRefPoint: { '#text': takeOffPoint },
+ // 参考起飞点海拔高度
+ takeOffRefPointAGLHeight: { '#text': 0 },
+ // 全局航线过渡速度
+ globalTransitionalSpeed: { '#text': globalTransitionalSpeed || 10 },
+ // 全局返航高度
+ globalRTHHeight: { '#text': defaultHeight },
+ // 无人机参数
+ droneInfo: {
+ droneEnumValue: { '#text': droneEnumValue },
+ droneSubEnumValue: {
+ '#text': droneModel[payloadEnumValue],
+ },
+ },
+ // 是否自动绕行(暂未验证M30T机型使用此参数后会不会无法起飞)
+ autoRerouteInfo: {
+ missionAutoRerouteMode: { '#text': 1 },
+ transitionalAutoRerouteMode: { '#text': 1 },
+ },
+ // 云台参数
+ payloadInfo: {
+ payloadEnumValue: { '#text': payloadEnumValue },
+ payloadSubEnumValue: {
+ '#text': droneModel[payloadEnumValue],
+ },
+ payloadPositionIndex: { '#text': 0 },
+ },
+ },
+ Folder: {
+ // 预定义模板类型 - 航点飞行
+ templateType: { '#text': 'waypoint' },
+ // 是否使用全局航线过渡速度
+ useGlobalTransitionalSpeed: { '#text': 0 },
+ templateId: { '#text': 0 },
+ // 坐标系参数信息
+ waylineCoordinateSysParam: {
+ // 经纬度坐标系 - 固定值
+ coordinateMode: { '#text': 'WGS84' },
+ // 航点高程参考平面 - 相对高度
+ heightMode: heightMode,
+ },
+ // 全局航线飞行速度
+ autoFlightSpeed: { '#text': autoFlightSpeed || 10 },
+ // 云台俯仰角控制模式
+ gimbalPitchMode: { '#text': gimbalPitchMode || 'manual' },
+ // 全局高度
+ globalHeight: { '#text': globalHeight || '100' },
+ // 全局偏航角模式参数 - 可使用当前默认值
+ globalWaypointHeadingParam: {
+ waypointHeadingMode: { '#text': waypointHeadingMode || 'followWayline' },
+ waypointHeadingAngle: { '#text': 0 },
+ waypointPoiPoint: {
+ '#text': '0.000000,0.000000,0.000000',
+ },
+ waypointHeadingPathMode: { '#text': 'followBadArc' },
+ waypointHeadingPoiIndex: { '#text': 0 },
+ },
+ // 全局航点类型 - 直线飞行,飞行器到点停
+ globalWaypointTurnMode: {
+ '#text': waypointTurnMode || 'toPointAndStopWithDiscontinuityCurvature',
+ },
+ // 全局航段轨迹是否尽量贴合直线
+ globalUseStraightLine: { '#text': 1 },
+ // 航点点位信息 - 位置、事件等
+ Placemark: [],
+ payloadParam: {
+ payloadPositionIndex: { '#text': 0 },
+ focusMode: { '#text': 'firstPoint' },
+ meteringMode: { '#text': 'average' },
+ returnMode: { '#text': 'singleReturnFirst' },
+ samplingRate: { '#text': '240000' },
+ scanningMode: { '#text': 'repetitive' },
+ imageFormat: imageFormat,
+ },
+ },
+ }
+ points.length &&
+ points.forEach((detail, ind) => {
+ const { Point, index, height, ellipsoidHeight, actionGroup, waypointSpeed } = detail
- const placemark = {
- Point,
- // 航点index
- index,
- // 全局航线高度(椭球高)
- ellipsoidHeight,
- // 全局航线高度 (EGM96海拔高/相对起飞点高度/AGL相对地面高度)
- height,
- // 航点飞行速度
- waypointSpeed: { '#text': waypointSpeed || 10 },
- // 沿航线方向 - 可使用当前默认值
- waypointHeadingParam: {
- waypointHeadingMode: { '#text': waypointHeadingMode || 'followWayline' },
- waypointHeadingAngle: { '#text': 0 },
- waypointPoiPoint: {
- '#text': '0.000000,0.000000,0.000000',
- },
- waypointHeadingPathMode: { '#text': 'followBadArc' },
- waypointHeadingPoiIndex: { '#text': 0 },
- },
- // 航点类型
- waypointTurnParam: {
- waypointTurnMode: {
- '#text': waypointTurnMode || 'toPointAndStopWithDiscontinuityCurvature',
- },
- waypointTurnDampingDist: { '#text': 0.2 },
- },
- // 是否全局参数
- useGlobalHeight: { '#text': 1 },
- useGlobalSpeed: { '#text': 0 },
- useGlobalHeadingParam: { '#text': 1 },
- useGlobalTurnParam: { '#text': 1 },
- useStraightLine: { '#text': 1 },
- };
- if (actionGroup) {
- placemark.actionGroup = actionGroup;
- }
+ const placemark = {
+ Point,
+ // 航点index
+ index,
+ // 全局航线高度(椭球高)
+ ellipsoidHeight,
+ // 全局航线高度 (EGM96海拔高/相对起飞点高度/AGL相对地面高度)
+ height,
+ // 航点飞行速度
+ waypointSpeed: { '#text': waypointSpeed || 10 },
+ // 沿航线方向 - 可使用当前默认值
+ waypointHeadingParam: {
+ waypointHeadingMode: {
+ '#text': waypointHeadingMode || 'followWayline',
+ },
+ waypointHeadingAngle: { '#text': 0 },
+ waypointPoiPoint: {
+ '#text': '0.000000,0.000000,0.000000',
+ },
+ waypointHeadingPathMode: { '#text': 'followBadArc' },
+ waypointHeadingPoiIndex: { '#text': 0 },
+ },
+ // 航点类型
+ waypointTurnParam: {
+ waypointTurnMode: {
+ '#text': waypointTurnMode || 'toPointAndStopWithDiscontinuityCurvature',
+ },
+ waypointTurnDampingDist: { '#text': 0.2 },
+ },
+ // 是否全局参数
+ useGlobalHeight: { '#text': 1 },
+ useGlobalSpeed: { '#text': 0 },
+ useGlobalHeadingParam: { '#text': 1 },
+ useGlobalTurnParam: { '#text': 1 },
+ useStraightLine: { '#text': 1 },
+ }
+ if (actionGroup) {
+ placemark.actionGroup = actionGroup
+ }
- fileTemplate.Folder.Placemark.push(placemark);
- });
+ fileTemplate.Folder.Placemark.push(placemark)
+ })
- const fileWaylines = waylinesContext(fileTemplate);
- return {
- fileName: waylineName || fileName,
- template: fileTemplate,
- waylines: fileWaylines,
- };
- } catch (error) {
- console.log(error);
- return error;
- }
- };
+ const fileWaylines = waylinesContext(fileTemplate)
+ return {
+ fileName: waylineName || fileName,
+ template: fileTemplate,
+ waylines: fileWaylines,
+ }
+ } catch (error) {
+ console.log(error)
+ return error
+ }
+ }
- const save = async (fileInfo) => {
- const JsZip = new JSZIP();
- const { fileName, template, waylines } = fileInfo;
- const templateXml = JSONToXML(template, '', true);
- const waylinesWpml = JSONToXML(waylines, '', true);
- JsZip.file('wpmz/template.kml', templateXml);
- JsZip.file('wpmz/waylines.wpml', waylinesWpml);
- const fileBlob = await JsZip.generateAsync({ type: 'blob' });
- // saveAs(kmzFile, `${fileName}.kmz`)
- return fileBlob;
- };
+ const save = async fileInfo => {
+ const JsZip = new JSZIP()
+ const { fileName, template, waylines } = fileInfo
+ const templateXml = JSONToXML(template, '', true)
+ const waylinesWpml = JSONToXML(waylines, '', true)
+ JsZip.file('wpmz/template.kml', templateXml)
+ JsZip.file('wpmz/waylines.wpml', waylinesWpml)
+ const fileBlob = await JsZip.generateAsync({ type: 'blob' })
+ // saveAs(kmzFile, `${fileName}.kmz`)
+ return fileBlob
+ }
- const waylinesContext = (templateJson) => {
- const waylinesObj = {
- // 标准模版
- missionConfig: {
- flyToWaylineMode: null,
- finishAction: null,
- exitOnRCLost: null,
- executeRCLostAction: null,
- takeOffSecurityHeight: null,
- globalTransitionalSpeed: null,
- globalRTHHeight: null,
- droneInfo: null,
- payloadInfo: null,
- },
- Folder: {
- templateId: null,
- executeHeightMode: null,
- waylineId: null,
- autoFlightSpeed: null,
- /*
+ const waylinesContext = templateJson => {
+ const waylinesObj = {
+ // 标准模版
+ missionConfig: {
+ flyToWaylineMode: null,
+ finishAction: null,
+ exitOnRCLost: null,
+ executeRCLostAction: null,
+ takeOffSecurityHeight: null,
+ globalTransitionalSpeed: null,
+ globalRTHHeight: null,
+ droneInfo: null,
+ payloadInfo: null,
+ },
+ Folder: {
+ templateId: null,
+ executeHeightMode: null,
+ waylineId: null,
+ autoFlightSpeed: null,
+ /*
waylines.wpml和template.xml的Placemark通用
不同点:
waylineId = templateId
ellipsoidHeight、 height 替换成 executeHeight
*/
- Placemark: null,
- },
- };
- Object.keys(waylinesObj).forEach((key) => {
- if (
- Object.prototype.toString.call(waylinesObj[key]) === '[object Object]'
- ) {
- Object.keys(waylinesObj[key]).forEach((item) => {
- waylinesObj[key][item] = templateJson[key][item];
- if (item === 'executeHeightMode') {
- waylinesObj[key][item] =
- templateJson[key].waylineCoordinateSysParam.heightMode;
- }
- if (item === 'waylineId') {
- waylinesObj[key][item] = templateJson[key].templateId;
- }
- if (item === 'Placemark') {
- const placemarks = _.cloneDeep(templateJson[key][item]);
- placemarks.forEach((placemark) => {
- placemark.executeHeight = {
- '#text': placemark.ellipsoidHeight?.['#text'] || '',
- };
- delete placemark.ellipsoidHeight;
- delete placemark.height;
- });
- waylinesObj[key][item] = placemarks;
- }
- });
- } else {
- waylinesObj[key] = templateJson[key];
- }
- });
- return waylinesObj;
- };
+ Placemark: null,
+ },
+ }
+ Object.keys(waylinesObj).forEach(key => {
+ if (Object.prototype.toString.call(waylinesObj[key]) === '[object Object]') {
+ Object.keys(waylinesObj[key]).forEach(item => {
+ waylinesObj[key][item] = templateJson[key][item]
+ if (item === 'executeHeightMode') {
+ waylinesObj[key][item] = templateJson[key].waylineCoordinateSysParam.heightMode
+ }
+ if (item === 'waylineId') {
+ waylinesObj[key][item] = templateJson[key].templateId
+ }
+ if (item === 'Placemark') {
+ const placemarks = _.cloneDeep(templateJson[key][item])
+ placemarks.forEach(placemark => {
+ placemark.executeHeight = {
+ '#text': placemark.ellipsoidHeight?.['#text'] || '',
+ }
+ delete placemark.ellipsoidHeight
+ delete placemark.height
+ })
+ waylinesObj[key][item] = placemarks
+ }
+ })
+ } else {
+ waylinesObj[key] = templateJson[key]
+ }
+ })
+ return waylinesObj
+ }
- return {
- create,
- createNoramlWaylines,
- createPlanarWayline,
- createPointWayLines,
- save,
- };
+ return {
+ create,
+ createNoramlWaylines,
+ createPlanarWayline,
+ createPointWayLines,
+ save,
+ }
}
diff --git a/src/utils/crypto.js b/src/utils/crypto.js
index 4bbd03a..8293bbf 100644
--- a/src/utils/crypto.js
+++ b/src/utils/crypto.js
@@ -1,94 +1,94 @@
-import CryptoJS from 'crypto-js';
+import CryptoJS from 'crypto-js'
export default class crypto {
- /**
- * token加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致
- * @type {string}
- */
- static cryptoKey = '请配置cryptoKey';
- /**
- * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致
- * @type {string}
- */
- static aesKey = '请配置aesKey';
- /**
- * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致
- * @type {string}
- */
- static desKey = '请配置desKey';
+ /**
+ * token加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致
+ * @type {string}
+ */
+ static cryptoKey = '请配置cryptoKey'
+ /**
+ * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致
+ * @type {string}
+ */
+ static aesKey = '请配置aesKey'
+ /**
+ * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致
+ * @type {string}
+ */
+ static desKey = '请配置desKey'
- /**
- * aes 加密方法
- * @param data
- * @returns {*}
- */
- static encrypt(data) {
- return this.encryptAES(data, this.aesKey);
- }
+ /**
+ * aes 加密方法
+ * @param data
+ * @returns {*}
+ */
+ static encrypt(data) {
+ return this.encryptAES(data, this.aesKey)
+ }
- /**
- * aes 解密方法
- * @param data
- * @returns {*}
- */
- static decrypt(data) {
- return this.decryptAES(data, this.aesKey);
- }
+ /**
+ * aes 解密方法
+ * @param data
+ * @returns {*}
+ */
+ static decrypt(data) {
+ return this.decryptAES(data, this.aesKey)
+ }
- /**
- * aes 加密方法,同java:AesUtil.encryptToBase64(text, aesKey);
- */
- static encryptAES(data, key) {
- const dataBytes = CryptoJS.enc.Utf8.parse(data);
- const keyBytes = CryptoJS.enc.Utf8.parse(key);
- const encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, {
- iv: keyBytes,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- });
- return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
- }
+ /**
+ * aes 加密方法,同java:AesUtil.encryptToBase64(text, aesKey);
+ */
+ static encryptAES(data, key) {
+ const dataBytes = CryptoJS.enc.Utf8.parse(data)
+ const keyBytes = CryptoJS.enc.Utf8.parse(key)
+ const encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, {
+ iv: keyBytes,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7,
+ })
+ return CryptoJS.enc.Base64.stringify(encrypted.ciphertext)
+ }
- /**
- * aes 解密方法,同java:AesUtil.decryptFormBase64ToString(encrypt, aesKey);
- */
- static decryptAES(data, key) {
- const keyBytes = CryptoJS.enc.Utf8.parse(key);
- const decrypted = CryptoJS.AES.decrypt(data, keyBytes, {
- iv: keyBytes,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- });
- return CryptoJS.enc.Utf8.stringify(decrypted);
- }
+ /**
+ * aes 解密方法,同java:AesUtil.decryptFormBase64ToString(encrypt, aesKey);
+ */
+ static decryptAES(data, key) {
+ const keyBytes = CryptoJS.enc.Utf8.parse(key)
+ const decrypted = CryptoJS.AES.decrypt(data, keyBytes, {
+ iv: keyBytes,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7,
+ })
+ return CryptoJS.enc.Utf8.stringify(decrypted)
+ }
- /**
- * des 加密方法,同java:DesUtil.encryptToBase64(text, desKey)
- */
- static encryptDES(data, key) {
- const keyHex = CryptoJS.enc.Utf8.parse(key);
- const encrypted = CryptoJS.DES.encrypt(data, keyHex, {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7,
- });
- return encrypted.toString();
- }
+ /**
+ * des 加密方法,同java:DesUtil.encryptToBase64(text, desKey)
+ */
+ static encryptDES(data, key) {
+ const keyHex = CryptoJS.enc.Utf8.parse(key)
+ const encrypted = CryptoJS.DES.encrypt(data, keyHex, {
+ mode: CryptoJS.mode.ECB,
+ padding: CryptoJS.pad.Pkcs7,
+ })
+ return encrypted.toString()
+ }
- /**
- * des 解密方法,同java:DesUtil.decryptFormBase64(encryptBase64, desKey);
- */
- static decryptDES(data, key) {
- const keyHex = CryptoJS.enc.Utf8.parse(key);
- const decrypted = CryptoJS.DES.decrypt(
- {
- ciphertext: CryptoJS.enc.Base64.parse(data),
- },
- keyHex,
- {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7,
- }
- );
- return decrypted.toString(CryptoJS.enc.Utf8);
- }
+ /**
+ * des 解密方法,同java:DesUtil.decryptFormBase64(encryptBase64, desKey);
+ */
+ static decryptDES(data, key) {
+ const keyHex = CryptoJS.enc.Utf8.parse(key)
+ const decrypted = CryptoJS.DES.decrypt(
+ {
+ ciphertext: CryptoJS.enc.Base64.parse(data),
+ },
+ keyHex,
+ {
+ mode: CryptoJS.mode.ECB,
+ padding: CryptoJS.pad.Pkcs7,
+ }
+ )
+ return decrypted.toString(CryptoJS.enc.Utf8)
+ }
}
diff --git a/src/utils/date.js b/src/utils/date.js
index 35d9eb7..0c54b10 100644
--- a/src/utils/date.js
+++ b/src/utils/date.js
@@ -1,58 +1,58 @@
export const calcDate = (date1, date2) => {
- let date3 = date2 - date1;
+ let date3 = date2 - date1
- let days = Math.floor(date3 / (24 * 3600 * 1000));
+ let days = Math.floor(date3 / (24 * 3600 * 1000))
- let leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
- let hours = Math.floor(leave1 / (3600 * 1000));
+ let leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
+ let hours = Math.floor(leave1 / (3600 * 1000))
- let leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
- let minutes = Math.floor(leave2 / (60 * 1000));
+ let leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
+ let minutes = Math.floor(leave2 / (60 * 1000))
- let leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
- let seconds = Math.round(date3 / 1000);
- return {
- leave1,
- leave2,
- leave3,
- days: days,
- hours: hours,
- minutes: minutes,
- seconds: seconds,
- };
-};
+ let leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
+ let seconds = Math.round(date3 / 1000)
+ return {
+ leave1,
+ leave2,
+ leave3,
+ days: days,
+ hours: hours,
+ minutes: minutes,
+ seconds: seconds,
+ }
+}
/**
* 日期格式化
*/
export function dateFormat(date, format) {
- format = format || 'yyyy-MM-dd hh:mm:ss';
- if (date !== 'Invalid Date') {
- let o = {
- 'M+': date.getMonth() + 1, //month
- 'd+': date.getDate(), //day
- 'h+': date.getHours(), //hour
- 'm+': date.getMinutes(), //minute
- 's+': date.getSeconds(), //second
- 'q+': Math.floor((date.getMonth() + 3) / 3), //quarter
- S: date.getMilliseconds(), //millisecond
- };
- if (/(y+)/.test(format))
- format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
- for (let k in o)
- if (new RegExp('(' + k + ')').test(format))
- format = format.replace(
- RegExp.$1,
- RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
- );
- return format;
- }
- return '';
+ format = format || 'yyyy-MM-dd hh:mm:ss'
+ if (date !== 'Invalid Date') {
+ let o = {
+ 'M+': date.getMonth() + 1, //month
+ 'd+': date.getDate(), //day
+ 'h+': date.getHours(), //hour
+ 'm+': date.getMinutes(), //minute
+ 's+': date.getSeconds(), //second
+ 'q+': Math.floor((date.getMonth() + 3) / 3), //quarter
+ S: date.getMilliseconds(), //millisecond
+ }
+ if (/(y+)/.test(format))
+ format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
+ for (let k in o)
+ if (new RegExp('(' + k + ')').test(format))
+ format = format.replace(
+ RegExp.$1,
+ RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
+ )
+ return format
+ }
+ return ''
}
/**
* 当前时间戳
*/
export function dateNow() {
- return dateFormat(new Date(), 'yyyyMMddhhmmss');
+ return dateFormat(new Date(), 'yyyyMMddhhmmss')
}
diff --git a/src/utils/flow.js b/src/utils/flow.js
index 7c9e918..5528893 100644
--- a/src/utils/flow.js
+++ b/src/utils/flow.js
@@ -4,7 +4,7 @@
* @returns {string}
*/
export function flowCategory(category) {
- return `flow_${category}`;
+ return `flow_${category}`
}
/**
@@ -13,8 +13,8 @@
* @param key
*/
export function flowRoute(routes, key) {
- const data = routes.filter(d => {
- return d.routeKey === key;
- });
- return data.length === 0 ? [] : data[0].routeValue;
+ const data = routes.filter(d => {
+ return d.routeKey === key
+ })
+ return data.length === 0 ? [] : data[0].routeValue
}
diff --git a/src/utils/formatter.js b/src/utils/formatter.js
index 003fae2..69ba132 100644
--- a/src/utils/formatter.js
+++ b/src/utils/formatter.js
@@ -1,39 +1,42 @@
-import {validatenull} from "@/utils/validate";
+import { validatenull } from '@/utils/validate'
/**
* 格式化工具类
*/
export default class formatter {
- static prettyCode(str) {
- try {
- // 为空则返回空
- if (validatenull(str)) {
- return '';
- }
- // 解析并格式化JSON字符串
- str = JSON.stringify(JSON.parse(str), null, 2);
+ static prettyCode(str) {
+ try {
+ // 为空则返回空
+ if (validatenull(str)) {
+ return ''
+ }
+ // 解析并格式化JSON字符串
+ str = JSON.stringify(JSON.parse(str), null, 2)
- // 使用HTML实体进行替换(不改变&符号)
- str = str.replace(/</g, '<').replace(/>/g, '>');
+ // 使用HTML实体进行替换(不改变&符号)
+ str = str.replace(/</g, '<').replace(/>/g, '>')
- // 返回格式化的字符串,并添加样式类
- return str.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
- let cls = 'number';
- if (/^"/.test(match)) {
- if (/:$/.test(match)) {
- cls = 'key';
- } else {
- cls = 'string';
- }
- } else if (/true|false/.test(match)) {
- cls = 'boolean';
- } else if (/null/.test(match)) {
- cls = 'null';
- }
- return match;
- });
- } catch (e) {
- return str;
- }
- }
+ // 返回格式化的字符串,并添加样式类
+ return str.replace(
+ /("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,
+ function (match) {
+ let cls = 'number'
+ if (/^"/.test(match)) {
+ if (/:$/.test(match)) {
+ cls = 'key'
+ } else {
+ cls = 'string'
+ }
+ } else if (/true|false/.test(match)) {
+ cls = 'boolean'
+ } else if (/null/.test(match)) {
+ cls = 'null'
+ }
+ return match
+ }
+ )
+ } catch (e) {
+ return str
+ }
+ }
}
diff --git a/src/utils/func.js b/src/utils/func.js
index ac6fe0e..fdcdf39 100644
--- a/src/utils/func.js
+++ b/src/utils/func.js
@@ -2,309 +2,309 @@
* 通用工具类
*/
export default class func {
- /**
- * 不为空
- * @param val
- * @returns {boolean}
- */
- static notEmpty(val) {
- return !this.isEmpty(val);
- }
+ /**
+ * 不为空
+ * @param val
+ * @returns {boolean}
+ */
+ static notEmpty(val) {
+ return !this.isEmpty(val)
+ }
- /**
- * 是否为定义
- * @param val
- * @returns {boolean}
- */
- static isUndefined(val) {
- return val === null || typeof val === 'undefined';
- }
+ /**
+ * 是否为定义
+ * @param val
+ * @returns {boolean}
+ */
+ static isUndefined(val) {
+ return val === null || typeof val === 'undefined'
+ }
- /**
- * 为空
- * @param val
- * @returns {boolean}
- */
- static isEmpty(val) {
- if (
- val === null ||
- typeof val === 'undefined' ||
- (typeof val === 'string' && val === '' && val !== 'undefined')
- ) {
- return true;
- }
- return false;
- }
+ /**
+ * 为空
+ * @param val
+ * @returns {boolean}
+ */
+ static isEmpty(val) {
+ if (
+ val === null ||
+ typeof val === 'undefined' ||
+ (typeof val === 'string' && val === '' && val !== 'undefined')
+ ) {
+ return true
+ }
+ return false
+ }
- /**
- * 强转int型
- * @param val
- * @param defaultValue
- * @returns {number}
- */
- static toInt(val, defaultValue) {
- if (this.isEmpty(val)) {
- return defaultValue === undefined ? -1 : defaultValue;
- }
- const num = parseInt(val, 0);
- return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num;
- }
+ /**
+ * 强转int型
+ * @param val
+ * @param defaultValue
+ * @returns {number}
+ */
+ static toInt(val, defaultValue) {
+ if (this.isEmpty(val)) {
+ return defaultValue === undefined ? -1 : defaultValue
+ }
+ const num = parseInt(val, 0)
+ return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num
+ }
- /**
- * 转为数字型(转换失败则返回原值)
- * @param val
- */
- static toNumber(val) {
- if (this.isEmpty(val)) {
- return '';
- }
- const num = parseFloat(val);
- return Number.isNaN(num) ? val : num;
- }
+ /**
+ * 转为数字型(转换失败则返回原值)
+ * @param val
+ */
+ static toNumber(val) {
+ if (this.isEmpty(val)) {
+ return ''
+ }
+ const num = parseFloat(val)
+ return Number.isNaN(num) ? val : num
+ }
- /**
- * Json强转为Form类型
- * @param obj
- * @returns {FormData}
- */
- static toFormData(obj) {
- const data = new FormData();
- Object.keys(obj).forEach(key => {
- data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key]);
- });
- return data;
- }
+ /**
+ * Json强转为Form类型
+ * @param obj
+ * @returns {FormData}
+ */
+ static toFormData(obj) {
+ const data = new FormData()
+ Object.keys(obj).forEach(key => {
+ data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key])
+ })
+ return data
+ }
- /**
- * date类转为字符串格式
- * @param date
- * @param format
- * @returns {null}
- */
- static format(date, format = 'YYYY-MM-DD HH:mm:ss') {
- return date ? date.format(format) : null;
- }
+ /**
+ * date类转为字符串格式
+ * @param date
+ * @param format
+ * @returns {null}
+ */
+ static format(date, format = 'YYYY-MM-DD HH:mm:ss') {
+ return date ? date.format(format) : null
+ }
- /**
- * data类格式化
- * @param timestamp
- * @returns {string}
- */
- static formatDateTime(timestamp) {
- return this.formatDate(new Date(timestamp));
- }
+ /**
+ * data类格式化
+ * @param timestamp
+ * @returns {string}
+ */
+ static formatDateTime(timestamp) {
+ return this.formatDate(new Date(timestamp))
+ }
- /**
- * data类格式化
- * @param date
- * @returns {string}
- */
- static formatDate(date) {
- const pad = num => (num < 10 ? '0' + num : num);
+ /**
+ * data类格式化
+ * @param date
+ * @returns {string}
+ */
+ static formatDate(date) {
+ const pad = num => (num < 10 ? '0' + num : num)
- const year = date.getFullYear();
- const month = pad(date.getMonth() + 1); // 月份从0开始,所以+1
- const day = pad(date.getDate());
- const hour = pad(date.getHours());
- const minute = pad(date.getMinutes());
- const second = pad(date.getSeconds());
+ const year = date.getFullYear()
+ const month = pad(date.getMonth() + 1) // 月份从0开始,所以+1
+ const day = pad(date.getDate())
+ const hour = pad(date.getHours())
+ const minute = pad(date.getMinutes())
+ const second = pad(date.getSeconds())
- return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
- }
+ return `${year}-${month}-${day} ${hour}:${minute}:${second}`
+ }
- /**
- * 格式化时区解决时间差问题
- * @param datetime
- * @returns {string}
- */
- static toLocalISOString(datetime) {
- let timezoneOffset = datetime.getTimezoneOffset() * 60000; // 获取当前时区与UTC的时间差(以毫秒为单位)
- let localDatetime = new Date(datetime - timezoneOffset); // 调整时间,得到当前时区时间
- return localDatetime.toISOString();
- }
+ /**
+ * 格式化时区解决时间差问题
+ * @param datetime
+ * @returns {string}
+ */
+ static toLocalISOString(datetime) {
+ let timezoneOffset = datetime.getTimezoneOffset() * 60000 // 获取当前时区与UTC的时间差(以毫秒为单位)
+ let localDatetime = new Date(datetime - timezoneOffset) // 调整时间,得到当前时区时间
+ return localDatetime.toISOString()
+ }
- /**
- * 根据逗号联合
- * @param arr
- * @returns {string}
- */
- static join(arr) {
- return Array.isArray(arr) ? arr.join(',') : arr;
- }
+ /**
+ * 根据逗号联合
+ * @param arr
+ * @returns {string}
+ */
+ static join(arr) {
+ return Array.isArray(arr) ? arr.join(',') : arr
+ }
- /**
- * 根据逗号分隔
- * @param str
- * @returns {string}
- */
- static split(str) {
- return str ? String(str).split(',') : '';
- }
+ /**
+ * 根据逗号分隔
+ * @param str
+ * @returns {string}
+ */
+ static split(str) {
+ return str ? String(str).split(',') : ''
+ }
- /**
- * 转换空字符串
- * @param str
- * @returns {string|*}
- */
- static toStr(str) {
- if (typeof str === 'undefined' || str === null) {
- return '';
- }
- return str;
- }
+ /**
+ * 转换空字符串
+ * @param str
+ * @returns {string|*}
+ */
+ static toStr(str) {
+ if (typeof str === 'undefined' || str === null) {
+ return ''
+ }
+ return str
+ }
- /**
- * 判断是否为数组
- * @param param
- * @returns {boolean}
- */
- static isArrayAndNotEmpty(param) {
- return Array.isArray(param) && param.length > 0;
- }
+ /**
+ * 判断是否为数组
+ * @param param
+ * @returns {boolean}
+ */
+ static isArrayAndNotEmpty(param) {
+ return Array.isArray(param) && param.length > 0
+ }
- /**
- * 格式化URL
- * @param url
- * @returns {*|string}
- */
- static formatUrl(url) {
- if (!url) return url;
- if (url.startsWith('http://') || url.startsWith('https://')) {
- return url;
- } else {
- return `http://${url}`;
- }
- }
+ /**
+ * 格式化URL
+ * @param url
+ * @returns {*|string}
+ */
+ static formatUrl(url) {
+ if (!url) return url
+ if (url.startsWith('http://') || url.startsWith('https://')) {
+ return url
+ } else {
+ return `http://${url}`
+ }
+ }
- /**
- * bytes转换为kb单位
- * @param bytes
- * @returns {string}
- */
- static bytesToKB(bytes) {
- const kb = bytes / 1024;
- return kb.toFixed(2);
- }
+ /**
+ * bytes转换为kb单位
+ * @param bytes
+ * @returns {string}
+ */
+ static bytesToKB(bytes) {
+ const kb = bytes / 1024
+ return kb.toFixed(2)
+ }
- /**
- * json数组转换成key value字符串
- * @param jsonArray "[{enumKey: 'key', enumValue: 'value'}]"
- * @returns {*}
- */
- static jsonArrayToKeyValue(jsonArray) {
- if (this.isEmpty(jsonArray)) {
- return '';
- }
- return jsonArray.map(item => `${item.enumKey}:${item.enumValue}`).join(';');
- }
+ /**
+ * json数组转换成key value字符串
+ * @param jsonArray "[{enumKey: 'key', enumValue: 'value'}]"
+ * @returns {*}
+ */
+ static jsonArrayToKeyValue(jsonArray) {
+ if (this.isEmpty(jsonArray)) {
+ return ''
+ }
+ return jsonArray.map(item => `${item.enumKey}:${item.enumValue}`).join(';')
+ }
- /**
- * key value字符串转换成json数组
- * @param keyValue key:value;key:value
- * @returns {*[]}
- */
- static keyValueToJsonArray(keyValue) {
- if (this.isEmpty(keyValue)) {
- return [];
- }
- return keyValue.split(';').map((kv, index) => {
- const [key, value] = kv.split(':');
- return {
- id: index,
- enumKey: key,
- enumValue: value,
- };
- });
- }
+ /**
+ * key value字符串转换成json数组
+ * @param keyValue key:value;key:value
+ * @returns {*[]}
+ */
+ static keyValueToJsonArray(keyValue) {
+ if (this.isEmpty(keyValue)) {
+ return []
+ }
+ return keyValue.split(';').map((kv, index) => {
+ const [key, value] = kv.split(':')
+ return {
+ id: index,
+ enumKey: key,
+ enumValue: value,
+ }
+ })
+ }
- /**
- * 检查字符串str中是否包含子字符串val
- * @param {string} str 要检查的字符串
- * @param {string} val 要查找的子字符串
- * @return {boolean} 如果str包含val则返回true,否则返回false
- */
- static contains(str, val) {
- // 检查str是否为字符串且不为空
- if (typeof str === 'string' && str.length > 0) {
- return str.includes(val);
- }
- return false;
- }
+ /**
+ * 检查字符串str中是否包含子字符串val
+ * @param {string} str 要检查的字符串
+ * @param {string} val 要查找的子字符串
+ * @return {boolean} 如果str包含val则返回true,否则返回false
+ */
+ static contains(str, val) {
+ // 检查str是否为字符串且不为空
+ if (typeof str === 'string' && str.length > 0) {
+ return str.includes(val)
+ }
+ return false
+ }
- /**
- * 截取字符串
- * @param str 字符串
- * @param len 截取长度
- * @returns {*|string}
- */
- static truncateString(str, len = 20) {
- if (str.length > len) {
- return str.slice(0, len) + '...';
- }
- return str;
- }
+ /**
+ * 截取字符串
+ * @param str 字符串
+ * @param len 截取长度
+ * @returns {*|string}
+ */
+ static truncateString(str, len = 20) {
+ if (str.length > len) {
+ return str.slice(0, len) + '...'
+ }
+ return str
+ }
- /**
- * 驼峰转下划线
- * @param str
- * @returns {*}
- */
- static camelCaseString(str) {
- return str.replace(/_([a-z])/g, g => g[1].toUpperCase());
- }
+ /**
+ * 驼峰转下划线
+ * @param str
+ * @returns {*}
+ */
+ static camelCaseString(str) {
+ return str.replace(/_([a-z])/g, g => g[1].toUpperCase())
+ }
- /**
- * 生成随机字符串
- * @param length 长度
- * @returns {string}
- */
- static strGenerate(length) {
- const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
- const maxLength = 256;
- if (length > maxLength) {
- throw new Error(`长度最大值不能超过 ${maxLength}`);
- }
+ /**
+ * 生成随机字符串
+ * @param length 长度
+ * @returns {string}
+ */
+ static strGenerate(length) {
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
+ const maxLength = 256
+ if (length > maxLength) {
+ throw new Error(`长度最大值不能超过 ${maxLength}`)
+ }
- return Array.from({ length }, () =>
- characters.charAt(Math.floor(Math.random() * characters.length))
- ).join('');
- }
+ return Array.from({ length }, () =>
+ characters.charAt(Math.floor(Math.random() * characters.length))
+ ).join('')
+ }
- /**
- * 生成UUID
- * @returns {string}
- */
- static generateUUID() {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- const r = (Math.random() * 16) | 0,
- v = c === 'x' ? r : (r & 0x3) | 0x8;
- return v.toString(16);
- });
- }
+ /**
+ * 生成UUID
+ * @returns {string}
+ */
+ static generateUUID() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ const r = (Math.random() * 16) | 0,
+ v = c === 'x' ? r : (r & 0x3) | 0x8
+ return v.toString(16)
+ })
+ }
- /**
- * 过滤空对象
- * @param obj
- * @returns {Object}
- */
- static filterEmptyObject(obj) {
- return Object.fromEntries(
- Object.entries(obj).filter(
- ([, value]) => value !== '' && value !== null && value !== undefined
- )
- );
- }
+ /**
+ * 过滤空对象
+ * @param obj
+ * @returns {Object}
+ */
+ static filterEmptyObject(obj) {
+ return Object.fromEntries(
+ Object.entries(obj).filter(
+ ([, value]) => value !== '' && value !== null && value !== undefined
+ )
+ )
+ }
- /**
- * 获取用户租户ID
- * @param userInfo
- * @returns {string}
- */
- static getUserTenantId(userInfo) {
- if (userInfo && userInfo.tenant_id) {
- return userInfo.tenant_id;
- } else if (userInfo && userInfo.tenantId) {
- return userInfo.tenantId;
- }
- }
+ /**
+ * 获取用户租户ID
+ * @param userInfo
+ * @returns {string}
+ */
+ static getUserTenantId(userInfo) {
+ if (userInfo && userInfo.tenant_id) {
+ return userInfo.tenant_id
+ } else if (userInfo && userInfo.tenantId) {
+ return userInfo.tenantId
+ }
+ }
}
diff --git a/src/utils/http/config.js b/src/utils/http/config.js
index 41da14e..2930d33 100644
--- a/src/utils/http/config.js
+++ b/src/utils/http/config.js
@@ -1,52 +1,55 @@
export const CURRENT_CONFIG = {
- // license
- appId: '136971', // You need to go to the development website to apply.
- appKey: '3e56cb20958060caeb1071cdb32400e', // You need to go to the development website to apply.
- appLicense:
- 'eS2rczbPpEUZZkOuek7hB1fugv3TE0RdKyEU319A2cxmVKs7Bc11RadcPcHnQJjBq/Peja5R6bp2IILCypa2lskCUGXkXHmqxdPIVTyMQpkZtjM+eXLut/VHPdXVZOvYxKFMVel6jfEyd4rWL9jBI1N34rCvwSgad6T49mRC8R0=', // You need to go to the development website to apply
- // http
- // http://172.16.13.64:8100
- // baseURL: 'http://192.168.1.133:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
- // baseURL: 'http://192.168.1.133:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
- baseURL: 'http://192.168.1.198:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
- // ws: 'ws//127.0.0.1:6789/api/v1/ws',
- // ws://192.168.1.198:1883/
- websocketURL: 'ws://192.168.1.198:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws'
- // websocketURL: 'ws://192.168.1.133:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws'
- // websocketURL: 'wss://dev.jxpskj.com:36789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws'
+ // license
+ appId: '136971', // You need to go to the development website to apply.
+ appKey: '3e56cb20958060caeb1071cdb32400e', // You need to go to the development website to apply.
+ appLicense:
+ 'eS2rczbPpEUZZkOuek7hB1fugv3TE0RdKyEU319A2cxmVKs7Bc11RadcPcHnQJjBq/Peja5R6bp2IILCypa2lskCUGXkXHmqxdPIVTyMQpkZtjM+eXLut/VHPdXVZOvYxKFMVel6jfEyd4rWL9jBI1N34rCvwSgad6T49mRC8R0=', // You need to go to the development website to apply
+ // http
+ // http://172.16.13.64:8100
+ // baseURL: 'http://192.168.1.133:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
+ // baseURL: 'http://192.168.1.133:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
+ baseURL: 'http://192.168.1.198:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/'
+ // ws: 'ws//127.0.0.1:6789/api/v1/ws',
+ // ws://192.168.1.198:1883/
+ websocketURL: 'ws://192.168.1.198:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws'
+ // websocketURL: 'ws://192.168.1.133:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws'
+ // websocketURL: 'wss://dev.jxpskj.com:36789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws'
- // livestreaming
- // RTMP Note: This IP is the address of the streaming server. If you want to see livestream on web page, you need to convert the RTMP stream to WebRTC stream.
- // rtmpURL: 'rtmp://www.yb.zhbhd.top:30005/uav/', // Example: 'rtmp://192.168.1.1/live/'
- rtmpURL: import.meta.env.VITE_APP_ENV === 'production'?'rtmp://101.132.85.201/live/':'rtmp://139.196.74.78/live/',
- rtmpURL2: 'rtmp://www.ainfo.top:735/uav/', // Example: 'rtmp://192.168.1.1/live/'
- // GB28181 Note:If you don't know what these parameters mean, you can go to Pilot2 and select the GB28181 page in the cloud platform. Where the parameters same as these parameters.
- // gbServerIp: '171.34.76.175',
- // gbServerPort: '15060',
- // gbServerId: '34020000002000000001',
- // gbPassword: '12345678',
- // gbAgentId: '34020000001320000001',
- // gbAgentPort: '8080',
- // gbAgentChannel: '34020000001320000001',
- gbServerIp: '139.196.74.78',
- gbServerPort: '8116',
- gbServerId: '41010500002000000001',
- gbAgentId: '41010500002000000002',
- gbPassword: '12345678',
- gbAgentPort: '7080',
- gbAgentChannel: '41010500002000000003',
- // RTSP
- rtspUserName: 'Please enter the username.',
- rtspPassword: 'Please enter the password.',
- rtspPort: '8554',
- // Agora
- agoraAPPID: '0a472a3b0f1543ab9e66d1ad4e6a91c8',
- agoraToken:
- '007eJxTYLgR7L7yzoUww9Lj530XRDExB/68L/1CN1Ps7vnJmn/vWfQqMBgkmpgbJRonGaQZmpoYJyZZppqZpRgmppikmiVaGiZbrDzKnNoQyMhg98uLmZEBAkF8ZobEzAoGBgB1nB/x',
- agoraChannel: 'aix',
+ // livestreaming
+ // RTMP Note: This IP is the address of the streaming server. If you want to see livestream on web page, you need to convert the RTMP stream to WebRTC stream.
+ // rtmpURL: 'rtmp://www.yb.zhbhd.top:30005/uav/', // Example: 'rtmp://192.168.1.1/live/'
+ rtmpURL:
+ import.meta.env.VITE_APP_ENV === 'production'
+ ? 'rtmp://101.132.85.201/live/'
+ : 'rtmp://139.196.74.78/live/',
+ rtmpURL2: 'rtmp://www.ainfo.top:735/uav/', // Example: 'rtmp://192.168.1.1/live/'
+ // GB28181 Note:If you don't know what these parameters mean, you can go to Pilot2 and select the GB28181 page in the cloud platform. Where the parameters same as these parameters.
+ // gbServerIp: '171.34.76.175',
+ // gbServerPort: '15060',
+ // gbServerId: '34020000002000000001',
+ // gbPassword: '12345678',
+ // gbAgentId: '34020000001320000001',
+ // gbAgentPort: '8080',
+ // gbAgentChannel: '34020000001320000001',
+ gbServerIp: '139.196.74.78',
+ gbServerPort: '8116',
+ gbServerId: '41010500002000000001',
+ gbAgentId: '41010500002000000002',
+ gbPassword: '12345678',
+ gbAgentPort: '7080',
+ gbAgentChannel: '41010500002000000003',
+ // RTSP
+ rtspUserName: 'Please enter the username.',
+ rtspPassword: 'Please enter the password.',
+ rtspPort: '8554',
+ // Agora
+ agoraAPPID: '0a472a3b0f1543ab9e66d1ad4e6a91c8',
+ agoraToken:
+ '007eJxTYLgR7L7yzoUww9Lj530XRDExB/68L/1CN1Ps7vnJmn/vWfQqMBgkmpgbJRonGaQZmpoYJyZZppqZpRgmppikmiVaGiZbrDzKnNoQyMhg98uLmZEBAkF8ZobEzAoGBgB1nB/x',
+ agoraChannel: 'aix',
- // map
- // You can apply on the AMap website.
- amapKey: '5221d3ca929a7bf59c301be186c03791',
- amapSearchKey: '6c3ea75b215f0c0efcbcfdf13273991b',
-};
+ // map
+ // You can apply on the AMap website.
+ amapKey: '5221d3ca929a7bf59c301be186c03791',
+ amapSearchKey: '6c3ea75b215f0c0efcbcfdf13273991b',
+}
diff --git a/src/utils/http/enums.js b/src/utils/http/enums.js
index aef42ef..932d2c4 100644
--- a/src/utils/http/enums.js
+++ b/src/utils/http/enums.js
@@ -1,14 +1,14 @@
export const ELocalStorageKey = {
- Username: 'bs_username',
- WorkspaceId: 'bs_workspace_id',
- NormalToken: 'x-auth-token',
- Token: 'bs_x-auth-token',
- PlatformName: 'bs_platform_name',
- WorkspaceName: 'bs_workspace_name',
- WorkspaceDesc: 'bs_workspace_desc',
- Flag: 'bs_flag',
- UserId: 'bs_user_id',
- Device: 'bs_device',
- GatewayOnline: 'bs_gateway_online',
- UserInfo: 'bs_user_info',
-};
\ No newline at end of file
+ Username: 'bs_username',
+ WorkspaceId: 'bs_workspace_id',
+ NormalToken: 'x-auth-token',
+ Token: 'bs_x-auth-token',
+ PlatformName: 'bs_platform_name',
+ WorkspaceName: 'bs_workspace_name',
+ WorkspaceDesc: 'bs_workspace_desc',
+ Flag: 'bs_flag',
+ UserId: 'bs_user_id',
+ Device: 'bs_device',
+ GatewayOnline: 'bs_gateway_online',
+ UserInfo: 'bs_user_info',
+}
diff --git a/src/utils/module.js b/src/utils/module.js
index 6b34053..f3c21a7 100644
--- a/src/utils/module.js
+++ b/src/utils/module.js
@@ -1,39 +1,39 @@
-let flowInstance = null;
-let formInstance = null;
-let formDesignInstance = null;
+let flowInstance = null
+let formInstance = null
+let formDesignInstance = null
export function loadFlowModule(app) {
- if (!flowInstance) {
- flowInstance = import('@saber/nf-design-base-elp')
- .then(module => {
- app.use(module.default);
- return module;
- })
- .catch(error => console.error('failed to load module:', error));
- }
- return flowInstance;
+ if (!flowInstance) {
+ flowInstance = import('@saber/nf-design-base-elp')
+ .then(module => {
+ app.use(module.default)
+ return module
+ })
+ .catch(error => console.error('failed to load module:', error))
+ }
+ return flowInstance
}
export function loadFormModule(app) {
- if (!formInstance) {
- formInstance = import('@saber/nf-form-elp')
- .then(module => {
- app.use(module.default);
- return module;
- })
- .catch(error => console.error('failed to load module:', error));
- }
- return formInstance;
+ if (!formInstance) {
+ formInstance = import('@saber/nf-form-elp')
+ .then(module => {
+ app.use(module.default)
+ return module
+ })
+ .catch(error => console.error('failed to load module:', error))
+ }
+ return formInstance
}
export function loadFormDesignModule(app) {
- if (!formDesignInstance) {
- formDesignInstance = import('@saber/nf-form-design-elp')
- .then(module => {
- app.use(module.default);
- return module;
- })
- .catch(error => console.error('failed to load module:', error));
- }
- return formDesignInstance;
+ if (!formDesignInstance) {
+ formDesignInstance = import('@saber/nf-form-design-elp')
+ .then(module => {
+ app.use(module.default)
+ return module
+ })
+ .catch(error => console.error('failed to load module:', error))
+ }
+ return formDesignInstance
}
diff --git a/src/utils/rem.js b/src/utils/rem.js
index 1062416..741e12b 100644
--- a/src/utils/rem.js
+++ b/src/utils/rem.js
@@ -1,5 +1,5 @@
export function onResize() {
- const resize = ()=> {
+ const resize = () => {
const scale = document.documentElement.clientWidth / 192
document.documentElement.style.fontSize = scale + 'px'
}
@@ -8,6 +8,5 @@
}
export const pxToRem = width => {
- return width * 0.1 + 'rem';
-};
-
+ return width * 0.1 + 'rem'
+}
diff --git a/src/utils/sensitive.js b/src/utils/sensitive.js
index 91c4226..8fcf1e8 100644
--- a/src/utils/sensitive.js
+++ b/src/utils/sensitive.js
@@ -1,81 +1,81 @@
export const sensitive = {
- /**
- * 初始化敏感数据管理器
- * @param {Object} config 配置项
- * @param {Array} config.fields 需要脱敏的字段列表
- * @returns {Object} 敏感数据管理器实例
- */
- create(config = {}) {
- const sensitiveFields = config.fields || [];
- let initialMaskedData = {};
+ /**
+ * 初始化敏感数据管理器
+ * @param {Object} config 配置项
+ * @param {Array} config.fields 需要脱敏的字段列表
+ * @returns {Object} 敏感数据管理器实例
+ */
+ create(config = {}) {
+ const sensitiveFields = config.fields || []
+ let initialMaskedData = {}
- return {
- /**
- * 保存初始的脱敏数据
- * @param {Object} data 包含脱敏数据的对象
- */
- saveInitialData(data) {
- initialMaskedData = {};
- sensitiveFields.forEach(field => {
- if (data[field]) {
- initialMaskedData[field] = data[field];
- }
- });
- },
+ return {
+ /**
+ * 保存初始的脱敏数据
+ * @param {Object} data 包含脱敏数据的对象
+ */
+ saveInitialData(data) {
+ initialMaskedData = {}
+ sensitiveFields.forEach(field => {
+ if (data[field]) {
+ initialMaskedData[field] = data[field]
+ }
+ })
+ },
- /**
- * 获取要提交的数据,过滤掉未修改的敏感字段
- * @param {Object} formData 表单数据
- * @returns {Object} 过滤后的提交数据
- */
- getSubmitData(formData) {
- const submitData = { ...formData };
+ /**
+ * 获取要提交的数据,过滤掉未修改的敏感字段
+ * @param {Object} formData 表单数据
+ * @returns {Object} 过滤后的提交数据
+ */
+ getSubmitData(formData) {
+ const submitData = { ...formData }
- sensitiveFields.forEach(field => {
- // 如果敏感字段的值与初始值相同,删除该字段
- if (submitData[field] === initialMaskedData[field]) {
- delete submitData[field];
- }
- });
+ sensitiveFields.forEach(field => {
+ // 如果敏感字段的值与初始值相同,删除该字段
+ if (submitData[field] === initialMaskedData[field]) {
+ delete submitData[field]
+ }
+ })
- return submitData;
- },
+ return submitData
+ },
- /**
- * 更新脱敏数据
- * @param {Object} newMaskedData 新的脱敏数据
- */
- updateMaskedData(newMaskedData) {
- Object.assign(initialMaskedData, newMaskedData);
- },
+ /**
+ * 更新脱敏数据
+ * @param {Object} newMaskedData 新的脱敏数据
+ */
+ updateMaskedData(newMaskedData) {
+ Object.assign(initialMaskedData, newMaskedData)
+ },
- /**
- * 判断敏感数据是否被修改
- * @returns {boolean}
- */
- isModified(formData) {
- return sensitiveFields.some(field => formData[field] !== initialMaskedData[field]);
- },
+ /**
+ * 判断敏感数据是否被修改
+ * @returns {boolean}
+ */
+ isModified(formData) {
+ return sensitiveFields.some(field => formData[field] !== initialMaskedData[field])
+ },
- /**
- * 获取已修改的敏感字段列表
- * @returns {Array}
- */
- getModifiedFields(formData) {
- return sensitiveFields.filter(field => formData[field] !== initialMaskedData[field]);
- },
+ /**
+ * 获取已修改的敏感字段列表
+ * @returns {Array}
+ */
+ getModifiedFields(formData) {
+ return sensitiveFields.filter(field => formData[field] !== initialMaskedData[field])
+ },
- /**
- * 重置为初始状态
- * @param {Object} formData 表单数据对象
- */
- reset(formData) {
- sensitiveFields.forEach(field => {
- if (initialMaskedData[field]) {
- formData[field] = initialMaskedData[field];
- }
- });
- },
- };
- },
-};
+ /**
+ * 重置为初始状态
+ * @param {Object} formData 表单数据对象
+ */
+ reset(formData) {
+ sensitiveFields.forEach(field => {
+ if (initialMaskedData[field]) {
+ formData[field] = initialMaskedData[field]
+ }
+ })
+ },
+ }
+ },
+}
diff --git a/src/utils/sm2.js b/src/utils/sm2.js
index 9df9880..c090592 100644
--- a/src/utils/sm2.js
+++ b/src/utils/sm2.js
@@ -1,5 +1,5 @@
-import website from '@/config/website';
-import smCrypto from 'sm-crypto';
+import website from '@/config/website'
+import smCrypto from 'sm-crypto'
/**
* sm2 加密方法
@@ -7,9 +7,9 @@
* @returns {*}
*/
export function encrypt(data) {
- try {
- return smCrypto.sm2.doEncrypt(data, website.oauth2.publicKey, 0);
- } catch {
- return '';
- }
+ try {
+ return smCrypto.sm2.doEncrypt(data, website.oauth2.publicKey, 0)
+ } catch {
+ return ''
+ }
}
diff --git a/src/utils/staticData/device.js b/src/utils/staticData/device.js
index c1f74d8..fd3c571 100644
--- a/src/utils/staticData/device.js
+++ b/src/utils/staticData/device.js
@@ -2,274 +2,274 @@
// domain
export const DOMAIN = {
- DRONE: '0', // 飞行器
- PAYLOAD: '1', // 负载
- RC: '2', // 遥控
- DOCK: '3', // 机场
-};
+ DRONE: '0', // 飞行器
+ PAYLOAD: '1', // 负载
+ RC: '2', // 遥控
+ DOCK: '3', // 机场
+}
// 设备sub_type 从0升序
export const DEVICE_SUB_TYPE = {
- ZERO: 0,
- ONE: 1,
- TWO: 2,
- THREE: 3,
- UNKNOWN: 65535,
-};
+ ZERO: 0,
+ ONE: 1,
+ TWO: 2,
+ THREE: 3,
+ UNKNOWN: 65535,
+}
// DJI飞机类型
export const DRONE_TYPE = {
- M30: 67,
- M300: 60,
- Mavic3EnterpriseAdvanced: 77,
- M350: 89,
-};
+ M30: 67,
+ M300: 60,
+ Mavic3EnterpriseAdvanced: 77,
+ M350: 89,
+}
// DJI负载类型枚举值
export const PAYLOAD_TYPE = {
- FPV: 39,
- H20: 42,
- H20T: 43,
- H20N: 61,
- EP600: 50,
- EP800: 90742,
- M30D: 52,
- M30T: 53,
- XT2: 26,
- XTS: 41,
- Z30: 20,
- DockTopCamera: 165,
- M3E: 66,
- M3T: 67,
- // UNKNOWN = 65535
-};
+ FPV: 39,
+ H20: 42,
+ H20T: 43,
+ H20N: 61,
+ EP600: 50,
+ EP800: 90742,
+ M30D: 52,
+ M30T: 53,
+ XT2: 26,
+ XTS: 41,
+ Z30: 20,
+ DockTopCamera: 165,
+ M3E: 66,
+ M3T: 67,
+ // UNKNOWN = 65535
+}
// RC type
export const RC_TYPE = {
- RC: 56,
- RCPlus: 119,
- RC144: 144,
-};
+ RC: 56,
+ RCPlus: 119,
+ RC144: 144,
+}
// DOCK type
export const DOCK_TYPE = {
- Dock: 1,
-};
+ Dock: 1,
+}
export const DEVICE_MODEL_KEY = {
- M30: `${DOMAIN.DRONE}-${DRONE_TYPE.M30}-${DEVICE_SUB_TYPE.ZERO}`,
- M30T: `${DOMAIN.DRONE}-${DRONE_TYPE.M30}-${DEVICE_SUB_TYPE.ONE}`,
- M3E: `${DOMAIN.DRONE}-${DRONE_TYPE.Mavic3EnterpriseAdvanced}-${DEVICE_SUB_TYPE.ZERO}`,
- M3T: `${DOMAIN.DRONE}-${DRONE_TYPE.Mavic3EnterpriseAdvanced}-${DEVICE_SUB_TYPE.ONE}`,
- M300: `${DOMAIN.DRONE}-${DRONE_TYPE.M300}-${DEVICE_SUB_TYPE.ZERO}`,
- M350: `${DOMAIN.DRONE}-${DRONE_TYPE.M350}-${DEVICE_SUB_TYPE.ZERO}`,
- FPV: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.FPV}-${DEVICE_SUB_TYPE.ZERO}`,
- H20: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.H20}-${DEVICE_SUB_TYPE.ZERO}`,
- H20T: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.H20T}-${DEVICE_SUB_TYPE.ZERO}`,
- H20N: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.H20N}-${DEVICE_SUB_TYPE.ZERO}`,
- EP600: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.EP600}-${DEVICE_SUB_TYPE.UNKNOWN}`,
- EP800: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.EP800}-${DEVICE_SUB_TYPE.ZERO}`,
- M30Camera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M30D}-${DEVICE_SUB_TYPE.ZERO}`,
- M30TCamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M30T}-${DEVICE_SUB_TYPE.ZERO}`,
- M3ECamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M3E}-${DEVICE_SUB_TYPE.ZERO}`,
- M3TCamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M3T}-${DEVICE_SUB_TYPE.ZERO}`,
- XT2: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.XT2}-${DEVICE_SUB_TYPE.ZERO}`,
- XTS: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.XTS}-${DEVICE_SUB_TYPE.ZERO}`,
- Z30: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.Z30}-${DEVICE_SUB_TYPE.ZERO}`,
- DockTopCamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.DockTopCamera}-${DEVICE_SUB_TYPE.ZERO}`,
- RC: `${DOMAIN.RC}-${RC_TYPE.RC}-${DEVICE_SUB_TYPE.ZERO}`,
- RCPlus: `${DOMAIN.RC}-${RC_TYPE.RCPlus}-${DEVICE_SUB_TYPE.ZERO}`,
- Dock: `${DOMAIN.DOCK}-${DOCK_TYPE.Dock}-${DEVICE_SUB_TYPE.ZERO}`,
-};
+ M30: `${DOMAIN.DRONE}-${DRONE_TYPE.M30}-${DEVICE_SUB_TYPE.ZERO}`,
+ M30T: `${DOMAIN.DRONE}-${DRONE_TYPE.M30}-${DEVICE_SUB_TYPE.ONE}`,
+ M3E: `${DOMAIN.DRONE}-${DRONE_TYPE.Mavic3EnterpriseAdvanced}-${DEVICE_SUB_TYPE.ZERO}`,
+ M3T: `${DOMAIN.DRONE}-${DRONE_TYPE.Mavic3EnterpriseAdvanced}-${DEVICE_SUB_TYPE.ONE}`,
+ M300: `${DOMAIN.DRONE}-${DRONE_TYPE.M300}-${DEVICE_SUB_TYPE.ZERO}`,
+ M350: `${DOMAIN.DRONE}-${DRONE_TYPE.M350}-${DEVICE_SUB_TYPE.ZERO}`,
+ FPV: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.FPV}-${DEVICE_SUB_TYPE.ZERO}`,
+ H20: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.H20}-${DEVICE_SUB_TYPE.ZERO}`,
+ H20T: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.H20T}-${DEVICE_SUB_TYPE.ZERO}`,
+ H20N: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.H20N}-${DEVICE_SUB_TYPE.ZERO}`,
+ EP600: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.EP600}-${DEVICE_SUB_TYPE.UNKNOWN}`,
+ EP800: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.EP800}-${DEVICE_SUB_TYPE.ZERO}`,
+ M30Camera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M30D}-${DEVICE_SUB_TYPE.ZERO}`,
+ M30TCamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M30T}-${DEVICE_SUB_TYPE.ZERO}`,
+ M3ECamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M3E}-${DEVICE_SUB_TYPE.ZERO}`,
+ M3TCamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.M3T}-${DEVICE_SUB_TYPE.ZERO}`,
+ XT2: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.XT2}-${DEVICE_SUB_TYPE.ZERO}`,
+ XTS: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.XTS}-${DEVICE_SUB_TYPE.ZERO}`,
+ Z30: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.Z30}-${DEVICE_SUB_TYPE.ZERO}`,
+ DockTopCamera: `${DOMAIN.PAYLOAD}-${PAYLOAD_TYPE.DockTopCamera}-${DEVICE_SUB_TYPE.ZERO}`,
+ RC: `${DOMAIN.RC}-${RC_TYPE.RC}-${DEVICE_SUB_TYPE.ZERO}`,
+ RCPlus: `${DOMAIN.RC}-${RC_TYPE.RCPlus}-${DEVICE_SUB_TYPE.ZERO}`,
+ Dock: `${DOMAIN.DOCK}-${DOCK_TYPE.Dock}-${DEVICE_SUB_TYPE.ZERO}`,
+}
export const DEVICE_NAME = {
- // drone
- [DEVICE_MODEL_KEY.M30]: 'M30',
- [DEVICE_MODEL_KEY.M30T]: 'M30T',
- [DEVICE_MODEL_KEY.M3E]: 'Mavic 3E',
- [DEVICE_MODEL_KEY.M3T]: 'Mavic 3T',
- // [DEVICE_MODEL_KEY.M3M]: 'Mavic 3M',
- [DEVICE_MODEL_KEY.M300]: 'M300 RTK',
- [DEVICE_MODEL_KEY.M350]: 'M350 RTK',
+ // drone
+ [DEVICE_MODEL_KEY.M30]: 'M30',
+ [DEVICE_MODEL_KEY.M30T]: 'M30T',
+ [DEVICE_MODEL_KEY.M3E]: 'Mavic 3E',
+ [DEVICE_MODEL_KEY.M3T]: 'Mavic 3T',
+ // [DEVICE_MODEL_KEY.M3M]: 'Mavic 3M',
+ [DEVICE_MODEL_KEY.M300]: 'M300 RTK',
+ [DEVICE_MODEL_KEY.M350]: 'M350 RTK',
- // payload
- [DEVICE_MODEL_KEY.FPV]: 'FPV',
- [DEVICE_MODEL_KEY.H20]: 'H20',
- [DEVICE_MODEL_KEY.H20T]: 'H20T',
- [DEVICE_MODEL_KEY.H20N]: 'H20N',
- [DEVICE_MODEL_KEY.EP600]: 'P1',
- [DEVICE_MODEL_KEY.EP800]: 'L1',
- [DEVICE_MODEL_KEY.M30Camera]: 'M30 Camera',
- [DEVICE_MODEL_KEY.M30TCamera]: 'M30T Camera',
- [DEVICE_MODEL_KEY.M3ECamera]: 'Mavic 3E',
- [DEVICE_MODEL_KEY.M3TCamera]: 'Mavic 3T',
- // [DEVICE_MODEL_KEY.M3MCamera]: 'Mavic 3M',
- [DEVICE_MODEL_KEY.XT2]: 'XT2',
- [DEVICE_MODEL_KEY.XTS]: 'XTS',
- [DEVICE_MODEL_KEY.Z30]: 'Z30',
- [DEVICE_MODEL_KEY.DockTopCamera]: 'Dock Camera',
+ // payload
+ [DEVICE_MODEL_KEY.FPV]: 'FPV',
+ [DEVICE_MODEL_KEY.H20]: 'H20',
+ [DEVICE_MODEL_KEY.H20T]: 'H20T',
+ [DEVICE_MODEL_KEY.H20N]: 'H20N',
+ [DEVICE_MODEL_KEY.EP600]: 'P1',
+ [DEVICE_MODEL_KEY.EP800]: 'L1',
+ [DEVICE_MODEL_KEY.M30Camera]: 'M30 Camera',
+ [DEVICE_MODEL_KEY.M30TCamera]: 'M30T Camera',
+ [DEVICE_MODEL_KEY.M3ECamera]: 'Mavic 3E',
+ [DEVICE_MODEL_KEY.M3TCamera]: 'Mavic 3T',
+ // [DEVICE_MODEL_KEY.M3MCamera]: 'Mavic 3M',
+ [DEVICE_MODEL_KEY.XT2]: 'XT2',
+ [DEVICE_MODEL_KEY.XTS]: 'XTS',
+ [DEVICE_MODEL_KEY.Z30]: 'Z30',
+ [DEVICE_MODEL_KEY.DockTopCamera]: 'Dock Camera',
- // rc
- [DEVICE_MODEL_KEY.RC]: 'RC',
- [DEVICE_MODEL_KEY.RCPlus]: 'RC Plus',
+ // rc
+ [DEVICE_MODEL_KEY.RC]: 'RC',
+ [DEVICE_MODEL_KEY.RCPlus]: 'RC Plus',
- // dock
- [DEVICE_MODEL_KEY.Dock]: 'Dock',
-};
+ // dock
+ [DEVICE_MODEL_KEY.Dock]: 'Dock',
+}
export const ControlSource = {
- A: 'A',
- B: 'B',
-};
+ A: 'A',
+ B: 'B',
+}
export const RainfallEnum = {
- 正常: 0,
- 小雨: 1,
- 中雨: 2,
- 大雨: 3,
- 0: '正常',
- 1: '小雨',
- 2: '中雨',
- 3: '大雨',
-};
+ 正常: 0,
+ 小雨: 1,
+ 中雨: 2,
+ 大雨: 3,
+ 0: '正常',
+ 1: '小雨',
+ 2: '中雨',
+ 3: '大雨',
+}
export const DroneInDockEnum = {
- 舱外: 0,
- 舱内: 1,
- 0: '舱外',
- 1: '舱内',
-};
+ 舱外: 0,
+ 舱内: 1,
+ 0: '舱外',
+ 1: '舱内',
+}
export const EModeText = {
- 待机: 0,
- 起飞准备: 1,
- 起飞准备完毕: 2,
- 手动飞行: 3,
- 自动起飞: 4,
- 航线飞行: 5,
- 全景拍照: 6,
- 智能跟随: 7,
- 'ADS-B躲避': 8,
- 自动返航: 9,
- 自动降落: 10,
- 强制降落: 11,
- 三桨叶降落: 12,
- 升级中: 13,
- 未连接: 14,
- APAS: 15,
- 虚拟摇杆状态: 16,
- 指令飞行: 17,
- 0: '待机',
- 1: '起飞准备',
- 2: '起飞准备完毕',
- 3: '手动飞行',
- 4: '自动起飞',
- 5: '航线飞行',
- 6: '全景拍照',
- 7: '智能跟随',
- 8: 'ADS-B躲避',
- 9: '自动返航',
- 10: '自动降落',
- 11: '强制降落',
- 12: '三桨叶降落',
- 13: '升级中',
- 14: '未连接',
- 15: 'APAS',
- 16: '虚拟摇杆状态',
- 17: '指令飞行',
-};
+ 待机: 0,
+ 起飞准备: 1,
+ 起飞准备完毕: 2,
+ 手动飞行: 3,
+ 自动起飞: 4,
+ 航线飞行: 5,
+ 全景拍照: 6,
+ 智能跟随: 7,
+ 'ADS-B躲避': 8,
+ 自动返航: 9,
+ 自动降落: 10,
+ 强制降落: 11,
+ 三桨叶降落: 12,
+ 升级中: 13,
+ 未连接: 14,
+ APAS: 15,
+ 虚拟摇杆状态: 16,
+ 指令飞行: 17,
+ 0: '待机',
+ 1: '起飞准备',
+ 2: '起飞准备完毕',
+ 3: '手动飞行',
+ 4: '自动起飞',
+ 5: '航线飞行',
+ 6: '全景拍照',
+ 7: '智能跟随',
+ 8: 'ADS-B躲避',
+ 9: '自动返航',
+ 10: '自动降落',
+ 11: '强制降落',
+ 12: '三桨叶降落',
+ 13: '升级中',
+ 14: '未连接',
+ 15: 'APAS',
+ 16: '虚拟摇杆状态',
+ 17: '指令飞行',
+}
export const EModeCode = {
- Standby: 0,
- Preparing: 1,
- Ready: 2,
- Manual: 3,
- Automatic: 4,
- Waypoint: 5,
- Panoramic: 6,
- Active_Track: 7,
- ADS_B: 8,
- Return_To_Home: 9,
- Landing: 10,
- Forced_Landing: 11,
- Three_Blades_Landing: 12,
- Upgrading: 13,
- Disconnected: 14,
-};
+ Standby: 0,
+ Preparing: 1,
+ Ready: 2,
+ Manual: 3,
+ Automatic: 4,
+ Waypoint: 5,
+ Panoramic: 6,
+ Active_Track: 7,
+ ADS_B: 8,
+ Return_To_Home: 9,
+ Landing: 10,
+ Forced_Landing: 11,
+ Three_Blades_Landing: 12,
+ Upgrading: 13,
+ Disconnected: 14,
+}
export const EGear = {
- A: 0,
- P: 1,
- NAV: 2,
- FPV: 3,
- FARM: 4,
- S: 5,
- F: 6,
- M: 7,
- G: 8,
- T: 9,
- 0: 'A',
- 1: 'P',
- 2: 'NAV',
- 3: 'FPV',
- 4: 'FARM',
- 5: 'S',
- 6: 'F',
- 7: 'M',
- 8: 'G',
- 9: 'T',
-};
+ A: 0,
+ P: 1,
+ NAV: 2,
+ FPV: 3,
+ FARM: 4,
+ S: 5,
+ F: 6,
+ M: 7,
+ G: 8,
+ T: 9,
+ 0: 'A',
+ 1: 'P',
+ 2: 'NAV',
+ 3: 'FPV',
+ 4: 'FARM',
+ 5: 'S',
+ 6: 'F',
+ 7: 'M',
+ 8: 'G',
+ 9: 'T',
+}
export const EDeviceType = {
- M30: '0-67-0',
- M30T: '0-67-1',
- M300: '0-60-0',
- M350: DEVICE_MODEL_KEY.M350,
- Z30: '1-20-0',
- XT2: '1-26-0',
- FPV: '1-39-0',
- XTS: '1-41-0',
- H20: '1-42-0',
- H20T: '1-43-0',
- P1: '1-50-65535',
- M30_Camera: '1-52-0',
- M30T_Camera: '1-53-0',
- H20N: '1-61-0',
- DJI_Dock_Camera: '1-165-0',
- L1: '1-90742-0',
- M3E: '0-77-0',
- M3D: '0-91-0',
- M3TD: '0-91-1',
- M3E_Camera: '1-66-0',
- M3T_Camera: '0-67-1',
- M3D_Camera: '1-80-0',
- M3TD_Camera: '1-81-0'
-};
+ M30: '0-67-0',
+ M30T: '0-67-1',
+ M300: '0-60-0',
+ M350: DEVICE_MODEL_KEY.M350,
+ Z30: '1-20-0',
+ XT2: '1-26-0',
+ FPV: '1-39-0',
+ XTS: '1-41-0',
+ H20: '1-42-0',
+ H20T: '1-43-0',
+ P1: '1-50-65535',
+ M30_Camera: '1-52-0',
+ M30T_Camera: '1-53-0',
+ H20N: '1-61-0',
+ DJI_Dock_Camera: '1-165-0',
+ L1: '1-90742-0',
+ M3E: '0-77-0',
+ M3D: '0-91-0',
+ M3TD: '0-91-1',
+ M3E_Camera: '1-66-0',
+ M3T_Camera: '0-67-1',
+ M3D_Camera: '1-80-0',
+ M3TD_Camera: '1-81-0',
+}
export const EDockModeText = {
- 已断开连接: -1,
- 设备空闲中: 0,
- 现场调试: 1,
- 远程调试: 2,
- 固件升级中: 3,
- 设备工作中: 4,
- '-1': '已断开连接',
- 0: '设备空闲中',
- 1: '现场调试',
- 2: '远程调试',
- 3: '固件升级中',
- 4: '设备工作中',
-};
+ 已断开连接: -1,
+ 设备空闲中: 0,
+ 现场调试: 1,
+ 远程调试: 2,
+ 固件升级中: 3,
+ 设备工作中: 4,
+ '-1': '已断开连接',
+ 0: '设备空闲中',
+ 1: '现场调试',
+ 2: '远程调试',
+ 3: '固件升级中',
+ 4: '设备工作中',
+}
export const EDockModeCode = {
- Disconnected: '-1',
- Idle: 0,
- Debugging: 1,
- Remote_Debugging: 2,
- Upgrading: 3,
- Working: 4,
- '-1': 'Disconnected',
- 0: 'Idle',
- 1: 'Debugging',
- 2: 'Remote_Debugging',
- 3: 'Upgrading',
- 4: 'Working',
-};
\ No newline at end of file
+ Disconnected: '-1',
+ Idle: 0,
+ Debugging: 1,
+ Remote_Debugging: 2,
+ Upgrading: 3,
+ Working: 4,
+ '-1': 'Disconnected',
+ 0: 'Idle',
+ 1: 'Debugging',
+ 2: 'Remote_Debugging',
+ 3: 'Upgrading',
+ 4: 'Working',
+}
diff --git a/src/utils/staticData/enums.js b/src/utils/staticData/enums.js
index 76ef2c1..6b29538 100644
--- a/src/utils/staticData/enums.js
+++ b/src/utils/staticData/enums.js
@@ -1,111 +1,111 @@
-export const ERouterName = {};
+export const ERouterName = {}
export const ELocalStorageKey = {
- Username: 'username',
- WorkspaceId: 'workspace_id',
- Token: 'x-auth-token',
- PlatformName: 'platform_name',
- WorkspaceName: 'workspace_name',
- WorkspaceDesc: 'workspace_desc',
- Flag: 'flag',
- UserId: 'user_id',
- Device: 'device',
- GatewayOnline: 'gateway_online',
- UserInfo: 'user_info',
-};
+ Username: 'username',
+ WorkspaceId: 'workspace_id',
+ Token: 'x-auth-token',
+ PlatformName: 'platform_name',
+ WorkspaceName: 'workspace_name',
+ WorkspaceDesc: 'workspace_desc',
+ Flag: 'flag',
+ UserId: 'user_id',
+ Device: 'device',
+ GatewayOnline: 'gateway_online',
+ UserInfo: 'user_info',
+}
export const EBizCode = {
- GatewayOsd: 'gateway_osd',
- DeviceOsd: 'device_osd',
- DockOsd: 'dock_osd',
- MapElementCreate: 'map_element_create',
- MapElementUpdate: 'map_element_update',
- MapElementDelete: 'map_element_delete',
- DeviceOnline: 'device_online',
- DeviceOffline: 'device_offline',
- DeviceHms: 'device_hms',
+ GatewayOsd: 'gateway_osd',
+ DeviceOsd: 'device_osd',
+ DockOsd: 'dock_osd',
+ MapElementCreate: 'map_element_create',
+ MapElementUpdate: 'map_element_update',
+ MapElementDelete: 'map_element_delete',
+ DeviceOnline: 'device_online',
+ DeviceOffline: 'device_offline',
+ DeviceHms: 'device_hms',
- PsdkWidgetValues: 'psdk_widget_values', // psdk 负载设备属性值
+ PsdkWidgetValues: 'psdk_widget_values', // psdk 负载设备属性值
- VideoSurveillance: 'live_status', // 视频监控
+ VideoSurveillance: 'live_status', // 视频监控
- SpeakerAudioPlayStartProgress: 'speaker_audio_play_start_progress', // 喊话器-音频播放进度通知
+ SpeakerAudioPlayStartProgress: 'speaker_audio_play_start_progress', // 喊话器-音频播放进度通知
- // 机场任务
- FlightTaskProgress: 'flighttask_progress', // 机场任务执行进度
- FlightTaskMediaProgress: 'file_upload_callback', // 机场任务媒体上传进度
- FlightTaskMediaHighestPriority: 'highest_priority_upload_flighttask_media', // 机场任务媒体优先级上报
+ // 机场任务
+ FlightTaskProgress: 'flighttask_progress', // 机场任务执行进度
+ FlightTaskMediaProgress: 'file_upload_callback', // 机场任务媒体上传进度
+ FlightTaskMediaHighestPriority: 'highest_priority_upload_flighttask_media', // 机场任务媒体优先级上报
- // 设备指令
- DeviceReboot: 'device_reboot', // 机场重启
- DroneOpen: 'drone_open', // 飞行器开机
- DroneClose: 'drone_close', // 飞行器关机
- DeviceFormat: 'device_format', // 机场数据格式化
- DroneFormat: 'drone_format', // 飞行器数据格式化
- CoverOpen: 'cover_open', // 打开舱盖
- CoverClose: 'cover_close', // 关闭舱盖
- PutterOpen: 'putter_open', // 推杆展开
- PutterClose: 'putter_close', // 推杆闭合
- ChargeOpen: 'charge_open', // 打开充电
- ChargeClose: 'charge_close', // 关闭充电
+ // 设备指令
+ DeviceReboot: 'device_reboot', // 机场重启
+ DroneOpen: 'drone_open', // 飞行器开机
+ DroneClose: 'drone_close', // 飞行器关机
+ DeviceFormat: 'device_format', // 机场数据格式化
+ DroneFormat: 'drone_format', // 飞行器数据格式化
+ CoverOpen: 'cover_open', // 打开舱盖
+ CoverClose: 'cover_close', // 关闭舱盖
+ PutterOpen: 'putter_open', // 推杆展开
+ PutterClose: 'putter_close', // 推杆闭合
+ ChargeOpen: 'charge_open', // 打开充电
+ ChargeClose: 'charge_close', // 关闭充电
- // 设备升级
- DeviceUpgrade: 'ota_progress', // 设备升级
+ // 设备升级
+ DeviceUpgrade: 'ota_progress', // 设备升级
- // 设备日志
- DeviceLogUploadProgress: 'fileupload_progress', // 设备日志上传
+ // 设备日志
+ DeviceLogUploadProgress: 'fileupload_progress', // 设备日志上传
- // 飞行指令消息
- ControlSourceChange: 'control_source_change', // 控制权更新
- FlyToPointProgress: 'fly_to_point_progress', // 飞向目标点
- TakeoffToPointProgress: 'takeoff_to_point_progress', // 一键起飞
- JoystickInvalidNotify: 'joystick_invalid_notify', // 设备端退出drc模式
- DrcStatusNotify: 'drc_status_notify', // 飞行控制模式状态
-};
+ // 飞行指令消息
+ ControlSourceChange: 'control_source_change', // 控制权更新
+ FlyToPointProgress: 'fly_to_point_progress', // 飞向目标点
+ TakeoffToPointProgress: 'takeoff_to_point_progress', // 一键起飞
+ JoystickInvalidNotify: 'joystick_invalid_notify', // 设备端退出drc模式
+ DrcStatusNotify: 'drc_status_notify', // 飞行控制模式状态
+}
export const EBizCodeMessage = {
- [EBizCode.DeviceOnline]: '设备在线',
- [EBizCode.DeviceOffline]: '设备离线',
+ [EBizCode.DeviceOnline]: '设备在线',
+ [EBizCode.DeviceOffline]: '设备离线',
- [EBizCode.DeviceOsd]: '设备osd',
- [EBizCode.GatewayOsd]: '网关osd',
- [EBizCode.DockOsd]: '机场osd',
+ [EBizCode.DeviceOsd]: '设备osd',
+ [EBizCode.GatewayOsd]: '网关osd',
+ [EBizCode.DockOsd]: '机场osd',
- [EBizCode.MapElementCreate]: '地图元素创建',
- [EBizCode.MapElementUpdate]: '地图元素更新',
- [EBizCode.MapElementDelete]: '地图元素删除',
+ [EBizCode.MapElementCreate]: '地图元素创建',
+ [EBizCode.MapElementUpdate]: '地图元素更新',
+ [EBizCode.MapElementDelete]: '地图元素删除',
- [EBizCode.FlightTaskProgress]: '机场任务执行进度',
+ [EBizCode.FlightTaskProgress]: '机场任务执行进度',
- [EBizCode.DeviceHms]: '设备hms',
- [EBizCode.DeviceReboot]: '设备重启',
- [EBizCode.DroneOpen]: '机场打开',
- [EBizCode.DroneClose]: '机场关闭',
+ [EBizCode.DeviceHms]: '设备hms',
+ [EBizCode.DeviceReboot]: '设备重启',
+ [EBizCode.DroneOpen]: '机场打开',
+ [EBizCode.DroneClose]: '机场关闭',
- [EBizCode.PutterOpen]: '推杆展开',
- [EBizCode.PutterClose]: '推杆闭合',
+ [EBizCode.PutterOpen]: '推杆展开',
+ [EBizCode.PutterClose]: '推杆闭合',
- [EBizCode.ChargeOpen]: '打开充电',
- [EBizCode.ChargeClose]: '关闭充电',
+ [EBizCode.ChargeOpen]: '打开充电',
+ [EBizCode.ChargeClose]: '关闭充电',
- [EBizCode.ControlSourceChange]: '控制权更新',
- [EBizCode.FlyToPointProgress]: '飞向目标点',
- [EBizCode.TakeoffToPointProgress]: '一键起飞',
- [EBizCode.DrcStatusNotify]: '飞行控制模式状态',
- [EBizCode.JoystickInvalidNotify]: '设备端退出drc模式',
-};
+ [EBizCode.ControlSourceChange]: '控制权更新',
+ [EBizCode.FlyToPointProgress]: '飞向目标点',
+ [EBizCode.TakeoffToPointProgress]: '一键起飞',
+ [EBizCode.DrcStatusNotify]: '飞行控制模式状态',
+ [EBizCode.JoystickInvalidNotify]: '设备端退出drc模式',
+}
export const EDeviceTypeName = {
- Aircraft: 0,
- Gateway: 2,
- Dock: 3,
-};
+ Aircraft: 0,
+ Gateway: 2,
+ Dock: 3,
+}
export const EHmsLevel = {
- NOTICE: 0,
- CAUTION: 1,
- WARN: 2,
- 0: 'NOTICE',
- 1: 'CAUTION',
- 2: 'WARN',
-};
+ NOTICE: 0,
+ CAUTION: 1,
+ WARN: 2,
+ 0: 'NOTICE',
+ 1: 'CAUTION',
+ 2: 'WARN',
+}
diff --git a/src/utils/store.js b/src/utils/store.js
index d007dc9..4be5b31 100644
--- a/src/utils/store.js
+++ b/src/utils/store.js
@@ -1,103 +1,103 @@
-import { validatenull } from 'utils/validate';
-import website from '@/config/website';
+import { validatenull } from 'utils/validate'
+import website from '@/config/website'
-const keyName = website.key + '-';
+const keyName = website.key + '-'
/**
* 存储localStorage
*/
export const setStore = (params = {}) => {
- let { name, content, type } = params;
- name = keyName + name;
- let obj = {
- dataType: typeof content,
- content: content,
- type: type,
- datetime: new Date().getTime(),
- };
- if (type) window.sessionStorage.setItem(name, JSON.stringify(obj));
- else window.localStorage.setItem(name, JSON.stringify(obj));
-};
+ let { name, content, type } = params
+ name = keyName + name
+ let obj = {
+ dataType: typeof content,
+ content: content,
+ type: type,
+ datetime: new Date().getTime(),
+ }
+ if (type) window.sessionStorage.setItem(name, JSON.stringify(obj))
+ else window.localStorage.setItem(name, JSON.stringify(obj))
+}
/**
* 获取localStorage
*/
export const getStore = (params = {}) => {
- let { name, debug } = params;
- name = keyName + name;
- let obj = {},
- content;
- obj = window.sessionStorage.getItem(name);
- if (validatenull(obj)) obj = window.localStorage.getItem(name);
- if (validatenull(obj)) return;
- try {
- obj = JSON.parse(obj);
- } catch {
- return obj;
- }
- if (debug) {
- return obj;
- }
- if (obj.dataType == 'string') {
- content = obj.content;
- } else if (obj.dataType == 'number') {
- content = Number(obj.content);
- } else if (obj.dataType == 'boolean') {
- content = eval(obj.content);
- } else if (obj.dataType == 'object') {
- content = obj.content;
- }
- return content;
-};
+ let { name, debug } = params
+ name = keyName + name
+ let obj = {},
+ content
+ obj = window.sessionStorage.getItem(name)
+ if (validatenull(obj)) obj = window.localStorage.getItem(name)
+ if (validatenull(obj)) return
+ try {
+ obj = JSON.parse(obj)
+ } catch {
+ return obj
+ }
+ if (debug) {
+ return obj
+ }
+ if (obj.dataType == 'string') {
+ content = obj.content
+ } else if (obj.dataType == 'number') {
+ content = Number(obj.content)
+ } else if (obj.dataType == 'boolean') {
+ content = eval(obj.content)
+ } else if (obj.dataType == 'object') {
+ content = obj.content
+ }
+ return content
+}
/**
* 删除localStorage
*/
export const removeStore = (params = {}) => {
- let { name, type } = params;
- name = keyName + name;
- if (type) {
- window.sessionStorage.removeItem(name);
- } else {
- window.localStorage.removeItem(name);
- }
-};
+ let { name, type } = params
+ name = keyName + name
+ if (type) {
+ window.sessionStorage.removeItem(name)
+ } else {
+ window.localStorage.removeItem(name)
+ }
+}
/**
* 获取全部localStorage
*/
export const getAllStore = (params = {}) => {
- let list = [];
- let { type } = params;
- if (type) {
- for (let i = 0; i <= window.sessionStorage.length; i++) {
- list.push({
- name: window.sessionStorage.key(i),
- content: getStore({
- name: window.sessionStorage.key(i),
- type: 'session',
- }),
- });
- }
- } else {
- for (let i = 0; i <= window.localStorage.length; i++) {
- list.push({
- name: window.localStorage.key(i),
- content: getStore({
- name: window.localStorage.key(i),
- }),
- });
- }
- }
- return list;
-};
+ let list = []
+ let { type } = params
+ if (type) {
+ for (let i = 0; i <= window.sessionStorage.length; i++) {
+ list.push({
+ name: window.sessionStorage.key(i),
+ content: getStore({
+ name: window.sessionStorage.key(i),
+ type: 'session',
+ }),
+ })
+ }
+ } else {
+ for (let i = 0; i <= window.localStorage.length; i++) {
+ list.push({
+ name: window.localStorage.key(i),
+ content: getStore({
+ name: window.localStorage.key(i),
+ }),
+ })
+ }
+ }
+ return list
+}
/**
* 清空全部localStorage
*/
export const clearStore = (params = {}) => {
- let { type } = params;
- if (type) {
- window.sessionStorage.clear();
- } else {
- window.localStorage.clear();
- }
-};
+ let { type } = params
+ if (type) {
+ window.sessionStorage.clear()
+ } else {
+ window.localStorage.clear()
+ }
+}
diff --git a/src/utils/util.js b/src/utils/util.js
index 7de4a4e..8a7051b 100644
--- a/src/utils/util.js
+++ b/src/utils/util.js
@@ -1,176 +1,176 @@
-import { validatenull } from './validate';
-import sha256 from 'crypto-js/sha256';
-import Base64 from 'crypto-js/enc-base64';
+import { validatenull } from './validate'
+import sha256 from 'crypto-js/sha256'
+import Base64 from 'crypto-js/enc-base64'
//表单序列化
export const serialize = data => {
- let list = [];
- Object.keys(data).forEach(ele => {
- list.push(`${ele}=${data[ele]}`);
- });
- return list.join('&');
-};
+ let list = []
+ Object.keys(data).forEach(ele => {
+ list.push(`${ele}=${data[ele]}`)
+ })
+ return list.join('&')
+}
export const getObjType = obj => {
- var toString = Object.prototype.toString;
- var map = {
- '[object Boolean]': 'boolean',
- '[object Number]': 'number',
- '[object String]': 'string',
- '[object Function]': 'function',
- '[object Array]': 'array',
- '[object Date]': 'date',
- '[object RegExp]': 'regExp',
- '[object Undefined]': 'undefined',
- '[object Null]': 'null',
- '[object Object]': 'object',
- };
- if (obj instanceof Element) {
- return 'element';
- }
- return map[toString.call(obj)];
-};
+ var toString = Object.prototype.toString
+ var map = {
+ '[object Boolean]': 'boolean',
+ '[object Number]': 'number',
+ '[object String]': 'string',
+ '[object Function]': 'function',
+ '[object Array]': 'array',
+ '[object Date]': 'date',
+ '[object RegExp]': 'regExp',
+ '[object Undefined]': 'undefined',
+ '[object Null]': 'null',
+ '[object Object]': 'object',
+ }
+ if (obj instanceof Element) {
+ return 'element'
+ }
+ return map[toString.call(obj)]
+}
/**
* 对象深拷贝
*/
export const deepClone = data => {
- var type = getObjType(data);
- var obj;
- if (type === 'array') {
- obj = [];
- } else if (type === 'object') {
- obj = {};
- } else {
- //不再具有下一层次
- return data;
- }
- if (type === 'array') {
- for (var i = 0, len = data.length; i < len; i++) {
- obj.push(deepClone(data[i]));
- }
- } else if (type === 'object') {
- for (var key in data) {
- obj[key] = deepClone(data[key]);
- }
- }
- return obj;
-};
+ var type = getObjType(data)
+ var obj
+ if (type === 'array') {
+ obj = []
+ } else if (type === 'object') {
+ obj = {}
+ } else {
+ //不再具有下一层次
+ return data
+ }
+ if (type === 'array') {
+ for (var i = 0, len = data.length; i < len; i++) {
+ obj.push(deepClone(data[i]))
+ }
+ } else if (type === 'object') {
+ for (var key in data) {
+ obj[key] = deepClone(data[key])
+ }
+ }
+ return obj
+}
/**
* 设置灰度模式
*/
export const toggleGrayMode = status => {
- if (status) {
- document.body.className = document.body.className + ' grayMode';
- } else {
- document.body.className = document.body.className.replace(' grayMode', '');
- }
-};
+ if (status) {
+ document.body.className = document.body.className + ' grayMode'
+ } else {
+ document.body.className = document.body.className.replace(' grayMode', '')
+ }
+}
/**
* 设置主题
*/
export const setTheme = name => {
- document.body.className = name;
-};
+ document.body.className = name
+}
/**
* 加密处理
*/
export const encryption = params => {
- let { data = {}, type, param, key } = params;
- let result = JSON.parse(JSON.stringify(data));
- if (type == 'Base64') {
- param.forEach(ele => {
- result[ele] = Base64.stringify(result[ele]);
- });
- } else if (type == 'Aes') {
- param.forEach(ele => {
- result[ele] = sha256(result[ele], key);
- });
- }
- return result;
-};
+ let { data = {}, type, param, key } = params
+ let result = JSON.parse(JSON.stringify(data))
+ if (type == 'Base64') {
+ param.forEach(ele => {
+ result[ele] = Base64.stringify(result[ele])
+ })
+ } else if (type == 'Aes') {
+ param.forEach(ele => {
+ result[ele] = sha256(result[ele], key)
+ })
+ }
+ return result
+}
/**
* 浏览器判断是否全屏
*/
export const fullscreenToggel = () => {
- if (fullscreenEnable()) {
- exitFullScreen();
- } else {
- reqFullScreen();
- }
-};
+ if (fullscreenEnable()) {
+ exitFullScreen()
+ } else {
+ reqFullScreen()
+ }
+}
/**
* esc监听全屏
*/
export const listenfullscreen = callback => {
- function listen() {
- callback();
- }
+ function listen() {
+ callback()
+ }
- document.addEventListener('fullscreenchange', function () {
- listen();
- });
- document.addEventListener('mozfullscreenchange', function () {
- listen();
- });
- document.addEventListener('webkitfullscreenchange', function () {
- listen();
- });
- document.addEventListener('msfullscreenchange', function () {
- listen();
- });
-};
+ document.addEventListener('fullscreenchange', function () {
+ listen()
+ })
+ document.addEventListener('mozfullscreenchange', function () {
+ listen()
+ })
+ document.addEventListener('webkitfullscreenchange', function () {
+ listen()
+ })
+ document.addEventListener('msfullscreenchange', function () {
+ listen()
+ })
+}
/**
* 浏览器判断是否全屏
*/
export const fullscreenEnable = () => {
- var isFullscreen =
- document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen;
- return isFullscreen;
-};
+ var isFullscreen =
+ document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen
+ return isFullscreen
+}
/**
* 浏览器全屏
*/
export const reqFullScreen = () => {
- if (document.documentElement.requestFullScreen) {
- document.documentElement.requestFullScreen();
- } else if (document.documentElement.webkitRequestFullScreen) {
- document.documentElement.webkitRequestFullScreen();
- } else if (document.documentElement.mozRequestFullScreen) {
- document.documentElement.mozRequestFullScreen();
- }
-};
+ if (document.documentElement.requestFullScreen) {
+ document.documentElement.requestFullScreen()
+ } else if (document.documentElement.webkitRequestFullScreen) {
+ document.documentElement.webkitRequestFullScreen()
+ } else if (document.documentElement.mozRequestFullScreen) {
+ document.documentElement.mozRequestFullScreen()
+ }
+}
/**
* 浏览器退出全屏
*/
export const exitFullScreen = () => {
- if (document.documentElement.requestFullScreen) {
- document.exitFullScreen();
- } else if (document.documentElement.webkitRequestFullScreen) {
- document.webkitCancelFullScreen();
- } else if (document.documentElement.mozRequestFullScreen) {
- document.mozCancelFullScreen();
- }
-};
+ if (document.documentElement.requestFullScreen) {
+ document.exitFullScreen()
+ } else if (document.documentElement.webkitRequestFullScreen) {
+ document.webkitCancelFullScreen()
+ } else if (document.documentElement.mozRequestFullScreen) {
+ document.mozCancelFullScreen()
+ }
+}
/**
* 递归寻找子类的父类
*/
export const findParent = (menu, id) => {
- for (let i = 0; i < menu.length; i++) {
- if (menu[i].children.length != 0) {
- for (let j = 0; j < menu[i].children.length; j++) {
- if (menu[i].children[j].id == id) {
- return menu[i];
- } else {
- if (menu[i].children[j].children.length != 0) {
- return findParent(menu[i].children[j].children, id);
- }
- }
- }
- }
- }
-};
+ for (let i = 0; i < menu.length; i++) {
+ if (menu[i].children.length != 0) {
+ for (let j = 0; j < menu[i].children.length; j++) {
+ if (menu[i].children[j].id == id) {
+ return menu[i]
+ } else {
+ if (menu[i].children[j].children.length != 0) {
+ return findParent(menu[i].children[j].children, id)
+ }
+ }
+ }
+ }
+ }
+}
/**
* 判断2个对象属性和值是否相等
*/
@@ -180,157 +180,157 @@
*/
export const loadStyle = url => {
- const link = document.createElement('link');
- link.type = 'text/css';
- link.rel = 'stylesheet';
- link.href = url;
- const head = document.getElementsByTagName('head')[0];
- head.appendChild(link);
-};
+ const link = document.createElement('link')
+ link.type = 'text/css'
+ link.rel = 'stylesheet'
+ link.href = url
+ const head = document.getElementsByTagName('head')[0]
+ head.appendChild(link)
+}
/**
* 判断路由是否相等
*/
export const diff = (obj1, obj2) => {
- delete obj1.close;
- var o1 = obj1 instanceof Object;
- var o2 = obj2 instanceof Object;
- if (!o1 || !o2) {
- /* 判断不是对象 */
- return obj1 === obj2;
- }
+ delete obj1.close
+ var o1 = obj1 instanceof Object
+ var o2 = obj2 instanceof Object
+ if (!o1 || !o2) {
+ /* 判断不是对象 */
+ return obj1 === obj2
+ }
- if (Object.keys(obj1).length !== Object.keys(obj2).length) {
- return false;
- //Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
- }
+ if (Object.keys(obj1).length !== Object.keys(obj2).length) {
+ return false
+ //Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
+ }
- for (var attr in obj1) {
- var t1 = obj1[attr] instanceof Object;
- var t2 = obj2[attr] instanceof Object;
- if (t1 && t2) {
- return diff(obj1[attr], obj2[attr]);
- } else if (obj1[attr] !== obj2[attr]) {
- return false;
- }
- }
- return true;
-};
+ for (var attr in obj1) {
+ var t1 = obj1[attr] instanceof Object
+ var t2 = obj2[attr] instanceof Object
+ if (t1 && t2) {
+ return diff(obj1[attr], obj2[attr])
+ } else if (obj1[attr] !== obj2[attr]) {
+ return false
+ }
+ }
+ return true
+}
/**
* 根据字典的value显示label
*/
export const findByvalue = (dic, value) => {
- let result = '';
- if (validatenull(dic)) return value;
- if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') {
- let index = 0;
- index = findArray(dic, value);
- if (index != -1) {
- result = dic[index].label;
- } else {
- result = value;
- }
- } else if (value instanceof Array) {
- result = [];
- let index = 0;
- value.forEach(ele => {
- index = findArray(dic, ele);
- if (index != -1) {
- result.push(dic[index].label);
- } else {
- result.push(value);
- }
- });
- result = result.toString();
- }
- return result;
-};
+ let result = ''
+ if (validatenull(dic)) return value
+ if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') {
+ let index = 0
+ index = findArray(dic, value)
+ if (index != -1) {
+ result = dic[index].label
+ } else {
+ result = value
+ }
+ } else if (value instanceof Array) {
+ result = []
+ let index = 0
+ value.forEach(ele => {
+ index = findArray(dic, ele)
+ if (index != -1) {
+ result.push(dic[index].label)
+ } else {
+ result.push(value)
+ }
+ })
+ result = result.toString()
+ }
+ return result
+}
/**
* 根据字典的value查找对应的index
*/
export const findArray = (dic, value) => {
- for (let i = 0; i < dic.length; i++) {
- if (dic[i].value == value) {
- return i;
- }
- }
- return -1;
-};
+ for (let i = 0; i < dic.length; i++) {
+ if (dic[i].value == value) {
+ return i
+ }
+ }
+ return -1
+}
/**
* 生成随机len位数字
*/
export const randomLenNum = (len, date) => {
- let random = '';
- random = Math.ceil(Math.random() * 100000000000000)
- .toString()
- .substr(0, len ? len : 4);
- if (date) random = random + Date.now();
- return random;
-};
+ let random = ''
+ random = Math.ceil(Math.random() * 100000000000000)
+ .toString()
+ .substr(0, len ? len : 4)
+ if (date) random = random + Date.now()
+ return random
+}
/**
* 打开小窗口
*/
export const openWindow = (url, title, w, h) => {
- // Fixes dual-screen position Most browsers Firefox
- const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left;
- const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top;
+ // Fixes dual-screen position Most browsers Firefox
+ const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left
+ const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top
- const width = window.innerWidth
- ? window.innerWidth
- : document.documentElement.clientWidth
- ? document.documentElement.clientWidth
- : screen.width;
- const height = window.innerHeight
- ? window.innerHeight
- : document.documentElement.clientHeight
- ? document.documentElement.clientHeight
- : screen.height;
+ const width = window.innerWidth
+ ? window.innerWidth
+ : document.documentElement.clientWidth
+ ? document.documentElement.clientWidth
+ : screen.width
+ const height = window.innerHeight
+ ? window.innerHeight
+ : document.documentElement.clientHeight
+ ? document.documentElement.clientHeight
+ : screen.height
- const left = width / 2 - w / 2 + dualScreenLeft;
- const top = height / 2 - h / 2 + dualScreenTop;
- const newWindow = window.open(
- url,
- title,
- 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' +
- w +
- ', height=' +
- h +
- ', top=' +
- top +
- ', left=' +
- left
- );
+ const left = width / 2 - w / 2 + dualScreenLeft
+ const top = height / 2 - h / 2 + dualScreenTop
+ const newWindow = window.open(
+ url,
+ title,
+ 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' +
+ w +
+ ', height=' +
+ h +
+ ', top=' +
+ top +
+ ', left=' +
+ left
+ )
- // Puts focus on the newWindow
- if (window.focus) {
- newWindow.focus();
- }
-};
+ // Puts focus on the newWindow
+ if (window.focus) {
+ newWindow.focus()
+ }
+}
export const getScreen = isCollapse => {
- if (document.body.clientWidth <= 768) {
- return !isCollapse;
- } else {
- return isCollapse;
- }
-};
+ if (document.body.clientWidth <= 768) {
+ return !isCollapse
+ } else {
+ return isCollapse
+ }
+}
/**
* 获取顶部地址栏地址
*/
export const getTopUrl = () => {
- return window.location.href.split('/#/')[0];
-};
+ return window.location.href.split('/#/')[0]
+}
/**
* 获取url参数
* @param name 参数名
*/
export const getQueryString = name => {
- let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
- let r = window.location.search.substr(1).match(reg);
- if (r != null) return unescape(decodeURI(r[2]));
- return null;
-};
+ let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
+ let r = window.location.search.substr(1).match(reg)
+ if (r != null) return unescape(decodeURI(r[2]))
+ return null
+}
/**
* 下载文件
@@ -338,29 +338,29 @@
* @param {String} name - 文件名,eg: test.png
*/
export const downloadFileBlob = (path, name) => {
- const xhr = new XMLHttpRequest();
- xhr.open('get', path);
- xhr.responseType = 'blob';
- xhr.send();
- xhr.onload = function () {
- if (this.status === 200 || this.status === 304) {
- // 如果是IE10及以上,不支持download属性,采用msSaveOrOpenBlob方法,但是IE10以下也不支持msSaveOrOpenBlob
- if ('msSaveOrOpenBlob' in navigator) {
- navigator.msSaveOrOpenBlob(this.response, name);
- return;
- }
- const url = URL.createObjectURL(this.response);
- const a = document.createElement('a');
- a.style.display = 'none';
- a.href = url;
- a.download = name;
- document.body.appendChild(a);
- a.click();
- document.body.removeChild(a);
- URL.revokeObjectURL(url);
- }
- };
-};
+ const xhr = new XMLHttpRequest()
+ xhr.open('get', path)
+ xhr.responseType = 'blob'
+ xhr.send()
+ xhr.onload = function () {
+ if (this.status === 200 || this.status === 304) {
+ // 如果是IE10及以上,不支持download属性,采用msSaveOrOpenBlob方法,但是IE10以下也不支持msSaveOrOpenBlob
+ if ('msSaveOrOpenBlob' in navigator) {
+ navigator.msSaveOrOpenBlob(this.response, name)
+ return
+ }
+ const url = URL.createObjectURL(this.response)
+ const a = document.createElement('a')
+ a.style.display = 'none'
+ a.href = url
+ a.download = name
+ document.body.appendChild(a)
+ a.click()
+ document.body.removeChild(a)
+ URL.revokeObjectURL(url)
+ }
+ }
+}
/**
* 下载文件
@@ -368,26 +368,26 @@
* @param {String} name - 文件名,eg: test.png
*/
export const downloadFileBase64 = (path, name) => {
- const xhr = new XMLHttpRequest();
- xhr.open('get', path);
- xhr.responseType = 'blob';
- xhr.send();
- xhr.onload = function () {
- if (this.status === 200 || this.status === 304) {
- const fileReader = new FileReader();
- fileReader.readAsDataURL(this.response);
- fileReader.onload = function () {
- const a = document.createElement('a');
- a.style.display = 'none';
- a.href = this.result;
- a.download = name;
- document.body.appendChild(a);
- a.click();
- document.body.removeChild(a);
- };
- }
- };
-};
+ const xhr = new XMLHttpRequest()
+ xhr.open('get', path)
+ xhr.responseType = 'blob'
+ xhr.send()
+ xhr.onload = function () {
+ if (this.status === 200 || this.status === 304) {
+ const fileReader = new FileReader()
+ fileReader.readAsDataURL(this.response)
+ fileReader.onload = function () {
+ const a = document.createElement('a')
+ a.style.display = 'none'
+ a.href = this.result
+ a.download = name
+ document.body.appendChild(a)
+ a.click()
+ document.body.removeChild(a)
+ }
+ }
+ }
+}
/**
* 下载excel
@@ -395,8 +395,8 @@
* @param {String} filename 文件名称
*/
export const downloadXls = (fileArrayBuffer, filename) => {
- downloadFile(fileArrayBuffer, filename, 'application/vnd.ms-excel,charset=utf-8');
-};
+ downloadFile(fileArrayBuffer, filename, 'application/vnd.ms-excel,charset=utf-8')
+}
/**
* 下载json
@@ -404,8 +404,8 @@
* @param {String} filename 文件名称
*/
export const downloadJson = (fileArrayBuffer, filename) => {
- downloadFile(fileArrayBuffer, filename, 'application/json,charset=utf-8');
-};
+ downloadFile(fileArrayBuffer, filename, 'application/json,charset=utf-8')
+}
/**
* 下载文件
@@ -414,20 +414,20 @@
* @param mimeType 文件类型
*/
export const downloadFile = (fileArrayBuffer, filename, mimeType = 'application/octet-stream') => {
- let data = new Blob([fileArrayBuffer], { type: mimeType });
- if (typeof window.chrome !== 'undefined') {
- // Chrome
- let link = document.createElement('a');
- link.href = window.URL.createObjectURL(data);
- link.download = filename;
- link.click();
- } else if (typeof window.navigator.msSaveBlob !== 'undefined') {
- // IE
- let blob = new Blob([data], { type: 'application/force-download' });
- window.navigator.msSaveBlob(blob, filename);
- } else {
- // Firefox
- let file = new File([data], filename, { type: 'application/force-download' });
- window.open(URL.createObjectURL(file));
- }
-};
+ let data = new Blob([fileArrayBuffer], { type: mimeType })
+ if (typeof window.chrome !== 'undefined') {
+ // Chrome
+ let link = document.createElement('a')
+ link.href = window.URL.createObjectURL(data)
+ link.download = filename
+ link.click()
+ } else if (typeof window.navigator.msSaveBlob !== 'undefined') {
+ // IE
+ let blob = new Blob([data], { type: 'application/force-download' })
+ window.navigator.msSaveBlob(blob, filename)
+ } else {
+ // Firefox
+ let file = new File([data], filename, { type: 'application/force-download' })
+ window.open(URL.createObjectURL(file))
+ }
+}
diff --git a/src/utils/validate.js b/src/utils/validate.js
index cc55c08..d3b3f5e 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -3,15 +3,15 @@
*/
export function isvalidUsername(str) {
- const valid_map = ['admin', 'editor'];
- return valid_map.indexOf(str.trim()) >= 0;
+ const valid_map = ['admin', 'editor']
+ return valid_map.indexOf(str.trim()) >= 0
}
/* 合法uri*/
export function validateURL(textval) {
- const urlregex =
- /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
- return urlregex.test(textval);
+ const urlregex =
+ /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
+ return urlregex.test(textval)
}
/**
@@ -19,7 +19,7 @@
* @param {*} s
*/
export function isEmail(s) {
- return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s);
+ return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
/**
@@ -27,7 +27,7 @@
* @param {*} s
*/
export function isMobile(s) {
- return /^1[0-9]{10}$/.test(s);
+ return /^1[0-9]{10}$/.test(s)
}
/**
@@ -35,7 +35,7 @@
* @param {*} s
*/
export function isPhone(s) {
- return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s);
+ return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
/**
@@ -43,40 +43,40 @@
* @param {*} s
*/
export function isURL(s) {
- return /^http[s]?:\/\/.*/.test(s);
+ return /^http[s]?:\/\/.*/.test(s)
}
/* 小写字母*/
export function validateLowerCase(str) {
- const reg = /^[a-z]+$/;
- return reg.test(str);
+ const reg = /^[a-z]+$/
+ return reg.test(str)
}
/* 大写字母*/
export function validateUpperCase(str) {
- const reg = /^[A-Z]+$/;
- return reg.test(str);
+ const reg = /^[A-Z]+$/
+ return reg.test(str)
}
/* 大小写字母*/
export function validatAlphabets(str) {
- const reg = /^[A-Za-z]+$/;
- return reg.test(str);
+ const reg = /^[A-Za-z]+$/
+ return reg.test(str)
}
/*验证pad还是pc*/
export const vaildatePc = function () {
- const userAgentInfo = navigator.userAgent;
- const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];
- let flag = true;
- for (var v = 0; v < Agents.length; v++) {
- if (userAgentInfo.indexOf(Agents[v]) > 0) {
- flag = false;
- break;
- }
- }
- return flag;
-};
+ const userAgentInfo = navigator.userAgent
+ const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']
+ let flag = true
+ for (var v = 0; v < Agents.length; v++) {
+ if (userAgentInfo.indexOf(Agents[v]) > 0) {
+ flag = false
+ break
+ }
+ }
+ return flag
+}
/**
* validate email
@@ -84,178 +84,178 @@
* @returns {boolean}
*/
export function validateEmail(email) {
- const re =
- /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(email);
+ const re =
+ /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+ return re.test(email)
}
/**
* 判断身份证号码
*/
export function cardid(code) {
- let list = [];
- let result = true;
- let msg = '';
- var city = {
- 11: '北京',
- 12: '天津',
- 13: '河北',
- 14: '山西',
- 15: '内蒙古',
- 21: '辽宁',
- 22: '吉林',
- 23: '黑龙江 ',
- 31: '上海',
- 32: '江苏',
- 33: '浙江',
- 34: '安徽',
- 35: '福建',
- 36: '江西',
- 37: '山东',
- 41: '河南',
- 42: '湖北 ',
- 43: '湖南',
- 44: '广东',
- 45: '广西',
- 46: '海南',
- 50: '重庆',
- 51: '四川',
- 52: '贵州',
- 53: '云南',
- 54: '西藏 ',
- 61: '陕西',
- 62: '甘肃',
- 63: '青海',
- 64: '宁夏',
- 65: '新疆',
- 71: '台湾',
- 81: '香港',
- 82: '澳门',
- 91: '国外 ',
- };
- if (!validatenull(code)) {
- if (code.length === 18) {
- if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
- msg = '证件号码格式错误';
- } else if (!city[code.substr(0, 2)]) {
- msg = '地址编码错误';
- } else {
- //18位身份证需要验证最后一位校验位
- code = code.split('');
- //∑(ai×Wi)(mod 11)
- //加权因子
- var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
- //校验位
- var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'];
- var sum = 0;
- var ai = 0;
- var wi = 0;
- for (var i = 0; i < 17; i++) {
- ai = code[i];
- wi = factor[i];
- sum += ai * wi;
- }
- if (parity[sum % 11] !== code[17]) {
- msg = '证件号码校验位错误';
- } else {
- result = false;
- }
- }
- } else {
- msg = '证件号码长度不为18位';
- }
- } else {
- msg = '证件号码不能为空';
- }
- list.push(result);
- list.push(msg);
- return list;
+ let list = []
+ let result = true
+ let msg = ''
+ var city = {
+ 11: '北京',
+ 12: '天津',
+ 13: '河北',
+ 14: '山西',
+ 15: '内蒙古',
+ 21: '辽宁',
+ 22: '吉林',
+ 23: '黑龙江 ',
+ 31: '上海',
+ 32: '江苏',
+ 33: '浙江',
+ 34: '安徽',
+ 35: '福建',
+ 36: '江西',
+ 37: '山东',
+ 41: '河南',
+ 42: '湖北 ',
+ 43: '湖南',
+ 44: '广东',
+ 45: '广西',
+ 46: '海南',
+ 50: '重庆',
+ 51: '四川',
+ 52: '贵州',
+ 53: '云南',
+ 54: '西藏 ',
+ 61: '陕西',
+ 62: '甘肃',
+ 63: '青海',
+ 64: '宁夏',
+ 65: '新疆',
+ 71: '台湾',
+ 81: '香港',
+ 82: '澳门',
+ 91: '国外 ',
+ }
+ if (!validatenull(code)) {
+ if (code.length === 18) {
+ if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
+ msg = '证件号码格式错误'
+ } else if (!city[code.substr(0, 2)]) {
+ msg = '地址编码错误'
+ } else {
+ //18位身份证需要验证最后一位校验位
+ code = code.split('')
+ //∑(ai×Wi)(mod 11)
+ //加权因子
+ var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
+ //校验位
+ var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x']
+ var sum = 0
+ var ai = 0
+ var wi = 0
+ for (var i = 0; i < 17; i++) {
+ ai = code[i]
+ wi = factor[i]
+ sum += ai * wi
+ }
+ if (parity[sum % 11] !== code[17]) {
+ msg = '证件号码校验位错误'
+ } else {
+ result = false
+ }
+ }
+ } else {
+ msg = '证件号码长度不为18位'
+ }
+ } else {
+ msg = '证件号码不能为空'
+ }
+ list.push(result)
+ list.push(msg)
+ return list
}
/**
* 判断手机号码是否正确
*/
export function isvalidatemobile(phone) {
- let list = [];
- let result = true;
- let msg = '';
- var isPhone = /^0\d{2,3}-?\d{7,8}$/;
- //增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
- if (!validatenull(phone)) {
- if (phone.length === 11) {
- if (isPhone.test(phone)) {
- msg = '手机号码格式不正确';
- } else {
- result = false;
- }
- } else {
- msg = '手机号码长度不为11位';
- }
- } else {
- msg = '手机号码不能为空';
- }
- list.push(result);
- list.push(msg);
- return list;
+ let list = []
+ let result = true
+ let msg = ''
+ var isPhone = /^0\d{2,3}-?\d{7,8}$/
+ //增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
+ if (!validatenull(phone)) {
+ if (phone.length === 11) {
+ if (isPhone.test(phone)) {
+ msg = '手机号码格式不正确'
+ } else {
+ result = false
+ }
+ } else {
+ msg = '手机号码长度不为11位'
+ }
+ } else {
+ msg = '手机号码不能为空'
+ }
+ list.push(result)
+ list.push(msg)
+ return list
}
/**
* 判断姓名是否正确
*/
export function validatename(name) {
- var regName = /^[\u4e00-\u9fa5]{2,4}$/;
- if (!regName.test(name)) return false;
- return true;
+ var regName = /^[\u4e00-\u9fa5]{2,4}$/
+ if (!regName.test(name)) return false
+ return true
}
/**
* 判断是否为整数
*/
export function validatenum(num, type) {
- let regName = /[^\d.]/g;
- if (type === 1) {
- if (!regName.test(num)) return false;
- } else if (type === 2) {
- regName = /[^\d]/g;
- if (!regName.test(num)) return false;
- }
- return true;
+ let regName = /[^\d.]/g
+ if (type === 1) {
+ if (!regName.test(num)) return false
+ } else if (type === 2) {
+ regName = /[^\d]/g
+ if (!regName.test(num)) return false
+ }
+ return true
}
/**
* 判断是否为小数
*/
export function validatenumord(num, type) {
- let regName = /[^\d.]/g;
- if (type === 1) {
- if (!regName.test(num)) return false;
- } else if (type === 2) {
- regName = /[^\d.]/g;
- if (!regName.test(num)) return false;
- }
- return true;
+ let regName = /[^\d.]/g
+ if (type === 1) {
+ if (!regName.test(num)) return false
+ } else if (type === 2) {
+ regName = /[^\d.]/g
+ if (!regName.test(num)) return false
+ }
+ return true
}
/**
* 判断是否为空
*/
export function validatenull(val) {
- if (typeof val == 'boolean') {
- return false;
- }
- if (typeof val == 'number') {
- return false;
- }
- if (val instanceof Array) {
- if (val.length === 0) return true;
- } else if (val instanceof Object) {
- if (JSON.stringify(val) === '{}') return true;
- } else {
- if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '')
- return true;
- return false;
- }
- return false;
+ if (typeof val == 'boolean') {
+ return false
+ }
+ if (typeof val == 'number') {
+ return false
+ }
+ if (val instanceof Array) {
+ if (val.length === 0) return true
+ } else if (val instanceof Object) {
+ if (JSON.stringify(val) === '{}') return true
+ } else {
+ if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '')
+ return true
+ return false
+ }
+ return false
}
/**
@@ -264,22 +264,22 @@
* @returns {boolean} - 如果是对象或可解析的 JSON 字符串,返回 true;否则返回 false
*/
export function validatejson(val) {
- // 直接判断是否为对象(排除 null 和数组)
- if (val !== null && typeof val === 'object') {
- return true;
- }
+ // 直接判断是否为对象(排除 null 和数组)
+ if (val !== null && typeof val === 'object') {
+ return true
+ }
- // 尝试解析字符串为 JSON
- if (typeof val === 'string') {
- try {
- const obj = JSON.parse(val);
- // 解析后还需判断是否为对象或数组
- return obj !== null && typeof obj === 'object';
- } catch (e) {
- return false;
- }
- }
+ // 尝试解析字符串为 JSON
+ if (typeof val === 'string') {
+ try {
+ const obj = JSON.parse(val)
+ // 解析后还需判断是否为对象或数组
+ return obj !== null && typeof obj === 'object'
+ } catch (e) {
+ return false
+ }
+ }
- // 非对象、非数组、非字符串,或者字符串不是 JSON
- return false;
+ // 非对象、非数组、非字符串,或者字符串不是 JSON
+ return false
}
diff --git a/src/utils/websocket/connect-websocket.js b/src/utils/websocket/connect-websocket.js
index 1108462..d98941d 100644
--- a/src/utils/websocket/connect-websocket.js
+++ b/src/utils/websocket/connect-websocket.js
@@ -1,15 +1,15 @@
-import ConnectWebSocket from '@/websocket';
-import { getWebsocketUrl } from '@/websocket/util/config';
+import ConnectWebSocket from '@/websocket'
+import { getWebsocketUrl } from '@/websocket/util/config'
/**
* 接收一个message函数
* @param messageHandler
*/
export function useConnectWebSocket(messageHandler, url) {
- const webSocket = new ConnectWebSocket(url || getWebsocketUrl());
+ const webSocket = new ConnectWebSocket(url || getWebsocketUrl())
- webSocket?.registerMessageHandler(messageHandler);
- webSocket?.initSocket();
+ webSocket?.registerMessageHandler(messageHandler)
+ webSocket?.initSocket()
- return webSocket;
+ return webSocket
}
diff --git a/src/utils/websocket/drone-ws-control.js b/src/utils/websocket/drone-ws-control.js
index f4e56fd..9e5be0f 100644
--- a/src/utils/websocket/drone-ws-control.js
+++ b/src/utils/websocket/drone-ws-control.js
@@ -1,145 +1,118 @@
// import { EventBus } from '@/eventBus/event-bus';
-import { EBizCode, EBizCodeMessage } from '@/utils/staticData/enums';
-import { ControlSource } from '@/utils/staticData/device';
+import { EBizCode, EBizCodeMessage } from '@/utils/staticData/enums'
+import { ControlSource } from '@/utils/staticData/device'
export default {
- data() {
- return {
- droneControlSource: '',
- payloadControlSource: '',
- ControlSource: ControlSource,
- };
- },
- methods: {
- useDroneControlWsEvent(sn, payloadSn, funcs) {
- const _this = this;
- this.droneControlSource = this.ControlSource.A;
- this.payloadControlSource = this.ControlSource.B;
+ data() {
+ return {
+ droneControlSource: '',
+ payloadControlSource: '',
+ ControlSource: ControlSource,
+ }
+ },
+ methods: {
+ useDroneControlWsEvent(sn, payloadSn, funcs) {
+ const _this = this
+ this.droneControlSource = this.ControlSource.A
+ this.payloadControlSource = this.ControlSource.B
- function onControlSourceChange(data) {
- if (
- data.type === 1 &&
- data.sn === sn
- ) {
- _this.droneControlSource = data.control_source;
- _this.$store.commit(
- 'SET_DRONE_CONTROL_SOURCE',
- _this.droneControlSource,
- );
- // _this.$message.info(`飞行控制改为 ${_this.droneControlSource}`)
- // _this._showMessage.info(`飞行控制改为 ${_this.droneControlSource}`)
- return;
- }
- if (
- data.type === 2 &&
- data.sn === payloadSn
- ) {
- _this.payloadControlSource = data.control_source;
- // _this.$message.info(`负载控制改为 ${_this.payloadControlSource}.`)
- // _this._showMessage.info(`负载控制改为 ${_this.payloadControlSource}.`)
- }
- }
+ function onControlSourceChange(data) {
+ if (data.type === 1 && data.sn === sn) {
+ _this.droneControlSource = data.control_source
+ _this.$store.commit('SET_DRONE_CONTROL_SOURCE', _this.droneControlSource)
+ // _this.$message.info(`飞行控制改为 ${_this.droneControlSource}`)
+ // _this._showMessage.info(`飞行控制改为 ${_this.droneControlSource}`)
+ return
+ }
+ if (data.type === 2 && data.sn === payloadSn) {
+ _this.payloadControlSource = data.control_source
+ // _this.$message.info(`负载控制改为 ${_this.payloadControlSource}.`)
+ // _this._showMessage.info(`负载控制改为 ${_this.payloadControlSource}.`)
+ }
+ }
- function handleProgress(key, message, error) {
- if (error !== 0) {
- // _this.$notify.closeAll()
- // _this.$notify.error({
- // title: key + '错误码:' + error,
- // message: message,
- // duration: 30
- // })
- // _this._showMessage.warning(key + '错误码:' + error)
- _this._showMessage.warning(key);
- } else {
- // _this.$notify.closeAll()
- // _this.$notify.info({
- // title: key,
- // message: message,
- // duration: 30
- // })
- _this._showMessage.info(message);
- }
- }
+ function handleProgress(key, message, error) {
+ if (error !== 0) {
+ // _this.$notify.closeAll()
+ // _this.$notify.error({
+ // title: key + '错误码:' + error,
+ // message: message,
+ // duration: 30
+ // })
+ // _this._showMessage.warning(key + '错误码:' + error)
+ _this._showMessage.warning(key)
+ } else {
+ // _this.$notify.closeAll()
+ // _this.$notify.info({
+ // title: key,
+ // message: message,
+ // duration: 30
+ // })
+ _this._showMessage.info(message)
+ }
+ }
- function handleDroneControlWsEvent(payload) {
- if (!payload) {
- return;
- }
- switch (payload.biz_code) {
- case EBizCode.ControlSourceChange: {
- onControlSourceChange(payload.data);
- break;
- }
- case EBizCode.FlyToPointProgress: {
- const {
- sn: deviceSn,
- result,
- message: msg,
- } = payload.data;
- if (deviceSn !== sn) return;
- handleProgress(
- EBizCodeMessage[EBizCode.FlyToPointProgress],
- `设备(编码: ${deviceSn}) ${msg}`,
- result,
- );
- break;
- }
- case EBizCode.TakeoffToPointProgress: {
- const {
- sn: deviceSn,
- result,
- message: msg,
- } = payload.data;
- if (deviceSn !== sn) return;
- handleProgress(
- EBizCodeMessage[EBizCode.TakeoffToPointProgress],
- `设备(编码: ${deviceSn}) ${msg}`,
- result,
- );
- break;
- }
- case EBizCode.JoystickInvalidNotify: {
- const {
- sn: deviceSn,
- result,
- message: msg,
- } = payload.data;
- if (deviceSn !== sn) return;
- handleProgress(
- EBizCodeMessage[EBizCode.JoystickInvalidNotify],
- `设备(编码: ${deviceSn}) ${msg}`,
- result,
- );
- break;
- }
- case EBizCode.DrcStatusNotify: {
- const {
- sn: deviceSn,
- result,
- message: msg,
- } = payload.data;
- break;
- }
- }
- }
+ function handleDroneControlWsEvent(payload) {
+ if (!payload) {
+ return
+ }
+ switch (payload.biz_code) {
+ case EBizCode.ControlSourceChange: {
+ onControlSourceChange(payload.data)
+ break
+ }
+ case EBizCode.FlyToPointProgress: {
+ const { sn: deviceSn, result, message: msg } = payload.data
+ if (deviceSn !== sn) return
+ handleProgress(
+ EBizCodeMessage[EBizCode.FlyToPointProgress],
+ `设备(编码: ${deviceSn}) ${msg}`,
+ result
+ )
+ break
+ }
+ case EBizCode.TakeoffToPointProgress: {
+ const { sn: deviceSn, result, message: msg } = payload.data
+ if (deviceSn !== sn) return
+ handleProgress(
+ EBizCodeMessage[EBizCode.TakeoffToPointProgress],
+ `设备(编码: ${deviceSn}) ${msg}`,
+ result
+ )
+ break
+ }
+ case EBizCode.JoystickInvalidNotify: {
+ const { sn: deviceSn, result, message: msg } = payload.data
+ if (deviceSn !== sn) return
+ handleProgress(
+ EBizCodeMessage[EBizCode.JoystickInvalidNotify],
+ `设备(编码: ${deviceSn}) ${msg}`,
+ result
+ )
+ break
+ }
+ case EBizCode.DrcStatusNotify: {
+ const { sn: deviceSn, result, message: msg } = payload.data
+ break
+ }
+ }
+ }
- return {
- handleDroneControlWsEvent,
- };
- },
- },
- mounted() {
- this.$EventBus.$on(
- 'droneControlWs',
- this.useDroneControlWsEvent(this.sn, this.payloadSelectInfo.value)
- .handleDroneControlWsEvent,
- );
- },
- beforeDestroy() {
- this.$EventBus.$off(
- 'droneControlWs',
- this.useDroneControlWsEvent(this.sn, this.payloadSelectInfo.value)
- .handleDroneControlWsEvent,
- );
- },
-};
+ return {
+ handleDroneControlWsEvent,
+ }
+ },
+ },
+ mounted() {
+ this.$EventBus.$on(
+ 'droneControlWs',
+ this.useDroneControlWsEvent(this.sn, this.payloadSelectInfo.value).handleDroneControlWsEvent
+ )
+ },
+ beforeDestroy() {
+ this.$EventBus.$off(
+ 'droneControlWs',
+ this.useDroneControlWsEvent(this.sn, this.payloadSelectInfo.value).handleDroneControlWsEvent
+ )
+ },
+}
diff --git a/src/views/Home/Footer.vue b/src/views/Home/Footer.vue
index ddbb6f4..fbe52c5 100644
--- a/src/views/Home/Footer.vue
+++ b/src/views/Home/Footer.vue
@@ -1,128 +1,128 @@
<template>
- <div class="footer">
- <img
- v-for="item in list"
- :class="item.className"
- :src="item.active ? item.activeImg : item.img"
- alt=""
- @click="imgClick(item)"
- />
- </div>
- <div class="intelligent-introduction-flying">
- <img class="orthophoto" src="@/assets/images/intelligent-introduction-flying.png" alt="" />
- </div>
+ <div class="footer">
+ <img
+ v-for="item in list"
+ :class="item.className"
+ :src="item.active ? item.activeImg : item.img"
+ alt=""
+ @click="imgClick(item)"
+ />
+ </div>
+ <div class="intelligent-introduction-flying">
+ <img class="orthophoto" src="@/assets/images/intelligent-introduction-flying.png" alt="" />
+ </div>
</template>
<script setup>
-import img1 from '@/assets/images/home/footer/machine-nest.png';
-import activeImg1 from '@/assets/images/home/footer/machine-nest1.png';
-import img2 from '@/assets/images/home/footer/event.png';
-import activeImg2 from '@/assets/images/home/footer/event1.png';
-import img3 from '@/assets/images/home/footer/panorama.png';
-import activeImg3 from '@/assets/images/home/footer/panorama1.png';
-import img4 from '@/assets/images/home/footer/3D.png';
-import activeImg4 from '@/assets/images/home/footer/3D1.png';
-import img5 from '@/assets/images/home/footer/orthophoto.png';
-import activeImg5 from '@/assets/images/home/footer/orthophoto1.png';
+import img1 from '@/assets/images/home/footer/machine-nest.png'
+import activeImg1 from '@/assets/images/home/footer/machine-nest1.png'
+import img2 from '@/assets/images/home/footer/event.png'
+import activeImg2 from '@/assets/images/home/footer/event1.png'
+import img3 from '@/assets/images/home/footer/panorama.png'
+import activeImg3 from '@/assets/images/home/footer/panorama1.png'
+import img4 from '@/assets/images/home/footer/3D.png'
+import activeImg4 from '@/assets/images/home/footer/3D1.png'
+import img5 from '@/assets/images/home/footer/orthophoto.png'
+import activeImg5 from '@/assets/images/home/footer/orthophoto1.png'
-import { useUavHome } from '@/views/Home/useUavHome/useUavHome';
-import { useEventOperate } from '@/views/Home/useEventOperate/useEventOperate';
+import { useUavHome } from '@/views/Home/useUavHome/useUavHome'
+import { useEventOperate } from '@/views/Home/useEventOperate/useEventOperate'
// 机巢聚合
-const { init, removeAll } = useUavHome();
+const { init, removeAll } = useUavHome('device');
// 事件聚合
-const { init: eventInit, removeAll: eventRemove } = useEventOperate();
+const { init: eventInit, removeAll: eventRemove } = useUavHome('event');
const list = ref([
- {
- name: 'event1',
- img: img1,
- activeImg: activeImg1,
- active: true,
- className: 'machine-nest',
- init: init,
- removeAll: removeAll,
- },
- {
- name: 'event2',
- img: img2,
- activeImg: activeImg2,
- active: false,
- className: 'event',
- init: eventInit,
- removeAll: eventRemove,
- },
- { name: 'event3', img: img3, activeImg: activeImg3, active: false, className: 'panorama' },
- { name: 'event4', img: img4, activeImg: activeImg4, active: false, className: 'threeD' },
- { name: 'event5', img: img5, activeImg: activeImg5, active: false, className: 'orthophoto' },
-]);
+ {
+ name: 'event1',
+ img: img1,
+ activeImg: activeImg1,
+ active: true,
+ className: 'machine-nest',
+ init: init,
+ removeAll: removeAll,
+ },
+ {
+ name: 'event2',
+ img: img2,
+ activeImg: activeImg2,
+ active: false,
+ className: 'event',
+ init: eventInit,
+ removeAll: eventRemove,
+ },
+ { name: 'event3', img: img3, activeImg: activeImg3, active: false, className: 'panorama' },
+ { name: 'event4', img: img4, activeImg: activeImg4, active: false, className: 'threeD' },
+ { name: 'event5', img: img5, activeImg: activeImg5, active: false, className: 'orthophoto' },
+])
const imgClick = toItem => {
const fromItem = list.value.find(item => item.active);
if (fromItem.name === toItem.name) return;
fromItem?.removeAll?.();
- nextTick(()=>{
+ nextTick(() => {
toItem?.init?.();
- })
+ });
list.value = list.value.map(item => ({ ...item, active: item.name === toItem.name }));
};
// 销毁前钩子
onBeforeUnmount(() => {
- if (!window.$viewer) return;
removeAll();
+ eventRemove()
});
onMounted(() => {
- nextTick(() => {
- init();
- });
-});
+ nextTick(() => {
+ init()
+ })
+})
</script>
<style scoped lang="scss">
.footer {
- position: absolute;
- bottom: 84px;
- left: 624px;
+ position: absolute;
+ bottom: 84px;
+ left: 624px;
- img {
- width: 103px;
- height: 119px;
- cursor: pointer;
- }
+ img {
+ width: 103px;
+ height: 119px;
+ cursor: pointer;
+ }
- .event {
- position: relative;
- left: 40px;
- bottom: 15px;
- }
+ .event {
+ position: relative;
+ left: 40px;
+ bottom: 15px;
+ }
- .panorama {
- position: relative;
- left: 80px;
- bottom: 34px;
- }
+ .panorama {
+ position: relative;
+ left: 80px;
+ bottom: 34px;
+ }
- .threeD {
- position: relative;
- left: 120px;
- bottom: 15px;
- }
+ .threeD {
+ position: relative;
+ left: 120px;
+ bottom: 15px;
+ }
- .orthophoto {
- position: relative;
- left: 160px;
- }
+ .orthophoto {
+ position: relative;
+ left: 160px;
+ }
}
.intelligent-introduction-flying {
- position: absolute;
- left: 888px;
- bottom: 23px;
+ position: absolute;
+ left: 888px;
+ bottom: 23px;
- img {
- width: 146px;
- height: 54px;
- }
+ img {
+ width: 146px;
+ height: 54px;
+ }
}
</style>
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 9ce5980..cf44de4 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -26,7 +26,7 @@
const singleUavHome = computed(() => store.state.home.singleUavHome);
-onBeforeUnmount(()=>{
+onUnmounted(()=>{
store.commit('setSingleUavHome',null);
viewerDestory()
})
diff --git a/src/views/Home/components/HomeLeft/InspectionRaskDetails.vue b/src/views/Home/components/HomeLeft/InspectionRaskDetails.vue
index 4e921be..d24f168 100644
--- a/src/views/Home/components/HomeLeft/InspectionRaskDetails.vue
+++ b/src/views/Home/components/HomeLeft/InspectionRaskDetails.vue
@@ -1,222 +1,225 @@
<!-- 巡检任务详情 -->
<template>
- <common-title title="巡检任务情况" :style="{ marginLeft: pxToRem(14) }" @details="detailsFun">
- </common-title>
- <div class="inspection-rask-details">
- <div class="inspection-num">
- <div class="total">
- <div class="value">{{ total }}</div>
- <div class="name">总任务数</div>
- </div>
- <div class="status">
- <div v-for="item in list">
- <div :style="{ color: item.color }" class="value">{{ jobStatistics[item.field] }}</div>
- <div class="name">{{ item.name }}</div>
- </div>
- </div>
- </div>
- <CommonDateTime :style="{ top: pxToRem(19) }" v-model="newTime" @change="getData" />
- <div class="chart-container" ref="chartRef"></div>
- </div>
+ <common-title title="巡检任务情况" :style="{ marginLeft: pxToRem(14) }" @details="detailsFun">
+ </common-title>
+ <div class="inspection-rask-details">
+ <div class="inspection-num">
+ <div class="total">
+ <div class="value">{{ total }}</div>
+ <div class="name">总任务数</div>
+ </div>
+ <div class="status">
+ <div v-for="item in list">
+ <div :style="{ color: item.color }" class="value">
+ {{ jobStatistics[item.field] }}
+ </div>
+ <div class="name">{{ item.name }}</div>
+ </div>
+ </div>
+ </div>
+ <CommonDateTime :style="{ top: pxToRem(19) }" v-model="newTime" @change="getData" />
+ <div class="chart-container" ref="chartRef"></div>
+ </div>
</template>
<script setup>
-import * as echarts from 'echarts';
-import { pxToRem } from '@/utils/rem';
-import CommonTitle from '@/components/CommonTitle.vue';
-import CommonDateTime from '@/components/CommonDateTime.vue';
-import { getJobNumBar, getJobStatistics, getTotalJobNum } from '@/api/home';
-import dayjs from 'dayjs';
+import * as echarts from 'echarts'
+import { pxToRem } from '@/utils/rem'
+import CommonTitle from '@/components/CommonTitle.vue'
+import CommonDateTime from '@/components/CommonDateTime.vue'
+import { getJobNumBar, getJobStatistics, getTotalJobNum } from '@/api/home'
+import dayjs from 'dayjs'
-const currenDate = dayjs().format('YYYY-MM-DD');
-const newTime = ref([currenDate, currenDate]);
+const currenDate = dayjs().format('YYYY-MM-DD')
+const newTime = ref([currenDate, currenDate])
const list = ref([
- { name: '计划执行', value: 89, color: '#FFFFFF', field: 'planned_executions' },
- { name: '执行中', value: 100, color: '#FFA768', field: 'running_num' },
- { name: '待执行', value: 66, color: '#FFE17E', field: 'pending_executions' },
- { name: '已执行', value: 10, color: '#8EFFAC', field: 'executed' },
- { name: '执行失败', value: 10, color: '#FF8E8E', field: 'failed_executions' },
-]);
+ { name: '计划执行', value: 89, color: '#FFFFFF', field: 'planned_executions' },
+ { name: '执行中', value: 100, color: '#FFA768', field: 'running_num' },
+ { name: '待执行', value: 66, color: '#FFE17E', field: 'pending_executions' },
+ { name: '已执行', value: 10, color: '#8EFFAC', field: 'executed' },
+ { name: '执行失败', value: 10, color: '#FF8E8E', field: 'failed_executions' },
+])
const option = {
- grid: {
- top: '15%',
- left: '3%',
- right: '4%',
- bottom: '3%',
- containLabel: true,
- },
- tooltip: {
- trigger: 'axis',
- backgroundColor: 'rgba(0,0,0,0.7)',
- borderColor: '#0070FF',
- borderWidth: 1,
- textStyle: {
- color: '#fff',
- },
- formatter: '{b}: {c}次',
- },
- xAxis: {
- type: 'category',
- data: ['1',],
- axisLine: {
- show: false, // 隐藏轴线
- },
- axisTick: {
- show: true,
- length: 2,
- lineStyle: {
- color: '#ffffff',
- },
- },
- axisLabel: {
- color: '#ffffff',
- margin: 8,
- },
- },
- yAxis: {
- type: 'value',
- axisLine: {
- lineStyle: {
- color: '#ffffff',
- },
- },
- axisLabel: {
- color: '#ffffff',
- },
- splitLine: {
- lineStyle: {
- color: 'rgba(255, 255, 255, 0.1)',
- },
- },
- },
- series: {
- data: [10],
- type: 'bar',
- barWidth: '60%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#1EE7E7' },
- { offset: 1, color: 'rgba(0, 112, 255, 0.1)' },
- ]),
- },
- },
-};
+ grid: {
+ top: '15%',
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: 'rgba(0,0,0,0.7)',
+ borderColor: '#0070FF',
+ borderWidth: 1,
+ textStyle: {
+ color: '#fff',
+ },
+ formatter: '{b}: {c}次',
+ },
+ xAxis: {
+ type: 'category',
+ data: ['1'],
+ axisLine: {
+ show: false, // 隐藏轴线
+ },
+ axisTick: {
+ show: true,
+ length: 2,
+ lineStyle: {
+ color: '#ffffff',
+ },
+ },
+ axisLabel: {
+ color: '#ffffff',
+ margin: 8,
+ },
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ lineStyle: {
+ color: '#ffffff',
+ },
+ },
+ axisLabel: {
+ color: '#ffffff',
+ },
+ splitLine: {
+ lineStyle: {
+ color: 'rgba(255, 255, 255, 0.1)',
+ },
+ },
+ },
+ series: {
+ data: [10],
+ type: 'bar',
+ barWidth: '60%',
+ itemStyle: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ { offset: 0, color: '#1EE7E7' },
+ { offset: 1, color: 'rgba(0, 112, 255, 0.1)' },
+ ]),
+ },
+ },
+}
const detailsFun = () => {
- console.log('details');
-};
+ console.log('details')
+}
-let chart = null;
+let chart = null
// TODAY,CURRENT_WEEK,CURRENT_MONTH,CURRENT_YEAR
-const getData = (value,date_enum) => {
- const params = {
- date_enum,
- // start_date: newTime.value[0],
- // end_date: newTime.value[1]
- };
- getJobStatistics(params).then(res => {
- jobStatistics.value = res.data?.data || {};
- });
- getJobNumBar(params).then(res => {
- option.xAxis.data = res.data?.data.map(item => item.name);
- option.series.data = res.data?.data.map(item => item.value);
- chart.setOption(option);
- });
-};
+const getData = (value, date_enum) => {
+ const params = {
+ date_enum,
+ // start_date: newTime.value[0],
+ // end_date: newTime.value[1]
+ }
+ getJobStatistics(params).then(res => {
+ jobStatistics.value = res.data?.data || {}
+ })
+ getJobNumBar(params).then(res => {
+ option.xAxis.data = res.data?.data.map(item => item.name)
+ option.series.data = res.data?.data.map(item => item.value)
+ chart.setOption(option)
+ })
+}
-const chartRef = ref(null);
-const total = ref(0);
+const chartRef = ref(null)
+const total = ref(0)
const jobStatistics = ref({
- planned_executions: 0,
- executed: 0,
- running_num: 0,
- failed_executions: 0,
- pending_executions: 0,
-});
+ planned_executions: 0,
+ executed: 0,
+ running_num: 0,
+ failed_executions: 0,
+ pending_executions: 0,
+})
onMounted(() => {
- chart = echarts.init(chartRef.value);
- // 监听窗口大小变化
- window.addEventListener('resize', () => {
- chart.resize();
- });
- getTotalJobNum().then(res => {
- total.value = res.data?.data || 0;
- });
- getData(newTime.value, 'TODAY');
-});
+ chart = echarts.init(chartRef.value)
+ // 监听窗口大小变化
+ window.addEventListener('resize', () => {
+ chart.resize()
+ })
+ getTotalJobNum().then(res => {
+ total.value = res.data?.data || 0
+ })
+ getData(newTime.value, 'TODAY')
+})
</script>
<style scoped lang="scss">
.inspection-rask-details {
- margin-left: 29px;
- padding: 16px 16px;
- width: 390px;
- height: 414px;
- background: linear-gradient(
- 270deg,
- rgba(31, 62, 122, 0) 0%,
- rgba(31, 62, 122, 0.35) 21%,
- #1f3e7a 100%
- );
- border-radius: 0px 0px 0px 0px;
- opacity: 0.85;
+ margin-left: 29px;
+ padding: 16px 16px;
+ width: 390px;
+ height: 414px;
+ background: linear-gradient(
+ 270deg,
+ rgba(31, 62, 122, 0) 0%,
+ rgba(31, 62, 122, 0.35) 21%,
+ #1f3e7a 100%
+ );
+ border-radius: 0px 0px 0px 0px;
+ opacity: 0.85;
- .inspection-num {
- background: url('@/assets/images/home/homeLeft/inspection-num.png') no-repeat center / 100% 100%;
- width: 360px;
- height: 118px;
- position: relative;
+ .inspection-num {
+ background: url('@/assets/images/home/homeLeft/inspection-num.png') no-repeat center / 100%
+ 100%;
+ width: 360px;
+ height: 118px;
+ position: relative;
- .total {
- position: absolute;
- left: 34px;
- top: 44px;
- font-weight: 500;
- font-size: 14px;
- color: #ffffff;
- text-align: center;
- font-family: Source Han Sans CN, Source Han Sans CN;
- line-height: 19px;
+ .total {
+ position: absolute;
+ left: 34px;
+ top: 44px;
+ font-weight: 500;
+ font-size: 14px;
+ color: #ffffff;
+ text-align: center;
+ font-family: Source Han Sans CN, Source Han Sans CN;
+ line-height: 19px;
- .value {
- font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
- font-size: 26px;
- }
- }
+ .value {
+ font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
+ font-size: 26px;
+ }
+ }
- .status {
- position: absolute;
- top: 8px;
- right: 10px;
- width: 200px;
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- justify-content: flex-start;
- line-height: 22px;
- padding: 0 10px 10px 0;
+ .status {
+ position: absolute;
+ top: 8px;
+ right: 10px;
+ width: 200px;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ justify-content: flex-start;
+ line-height: 22px;
+ padding: 0 10px 10px 0;
- .name {
- font-family: Source Han Sans CN, Source Han Sans CN;
- font-weight: 400;
- font-size: 14px;
- color: #ffffff;
- }
+ .name {
+ font-family: Source Han Sans CN, Source Han Sans CN;
+ font-weight: 400;
+ font-size: 14px;
+ color: #ffffff;
+ }
- .value {
- font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
- font-weight: 400;
- font-size: 26px;
- }
- }
- }
+ .value {
+ font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
+ font-weight: 400;
+ font-size: 26px;
+ }
+ }
+ }
- .chart-container {
- width: 100%;
- height: 200px;
- margin-top: 20px;
- }
+ .chart-container {
+ width: 100%;
+ height: 200px;
+ margin-top: 20px;
+ }
}
</style>
diff --git a/src/views/Home/useEventOperate/EventPopUpBox.vue b/src/views/Home/useEventOperate/EventPopUpBox.vue
index a5abd92..dd87e8d 100644
--- a/src/views/Home/useEventOperate/EventPopUpBox.vue
+++ b/src/views/Home/useEventOperate/EventPopUpBox.vue
@@ -1,37 +1,50 @@
<template>
<div class="mapPopUpBox">
<div class="title">
- 违章建筑
+ {{ info.event_name }}
<el-icon class="header-close" @click="props.removeLabel">
<Close />
</el-icon>
</div>
<div class="content">
- <img
- class="eventImage"
- src="@/assets/images/home/useEventOperate/eventErr.png"
- alt="Event Image"
- />
+ <div class="medium">
+ <img v-if="info.media_type === 'PHOTO_TYPE'" class="eventImage" :src="info.url" alt="Event Image" />
+ <video v-else :src="info.url" autoplay muted playsinline preload="metadata" />
+ </div>
+
<div class="details">
<div class="label">位置:</div>
- <div class="value point">112.12345 23.98726</div>
+ <div class="value point">{{ _.round(info.longitude, 3) }},{{ _.round(info.latitude, 3) }}</div>
<div class="label">时间:</div>
- <div class="value">2025.08.16 22:25</div>
+ <div class="value">{{ info.create_time }}</div>
</div>
</div>
</div>
</template>
<script setup>
+// src="@/assets/images/home/useEventOperate/eventErr.png"
import { Close } from '@element-plus/icons-vue';
-
-const list = [
- { name: '执行中', value: '1', color: '#FFA768' },
- { name: '在线', value: '20', color: '#8EFFAC' },
- { name: '离线', value: '14', color: '#FFFFFF' },
- { name: '异常', value: '25', color: '#FF6262' },
-];
+import { getEventDetails } from '@/api/home/aggregation';
+import _ from 'lodash';
const props = defineProps(['data', 'removeLabel']);
+const loading = ref(true);
+
+const info = ref({
+ event_name: '',
+ status: 1,
+ url: '1',
+ longitude: '',
+ latitude: '',
+ create_time: '04/01 12:41',
+ media_type: 'PHOTO_TYPE',
+});
+onMounted(async () => {
+ loading.value = true;
+ const res = await getEventDetails({ id: props.data.eventId });
+ info.value = res.data.data;
+ loading.value = false;
+});
</script>
<style scoped lang="scss">
@@ -47,7 +60,7 @@
font-weight: 400;
font-size: 18px;
line-height: 16px;
- background: linear-gradient(180deg, #A8E5FB 0%, #E6F8FF 100%);
+ background: linear-gradient(180deg, #a8e5fb 0%, #e6f8ff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
-moz-background-clip: text;
@@ -77,10 +90,16 @@
display: flex;
align-items: center;
- img {
+ .medium {
height: 102px;
- width: 102px;
+ width: 120px;
margin-right: 10px;
+
+ > img,
+ video {
+ width: 100%;
+ height: 100%;
+ }
}
.details {
diff --git a/src/views/Home/useEventOperate/useEventOperate.js b/src/views/Home/useEventOperate/useEventOperate.js
index 56033b9..205b988 100644
--- a/src/views/Home/useEventOperate/useEventOperate.js
+++ b/src/views/Home/useEventOperate/useEventOperate.js
@@ -1,6 +1,5 @@
import * as Cesium from 'cesium';
import data2 from '@/assets/images/home/homeRight/data2.png';
-import data1 from '@/assets/images/home/homeRight/data1.png';
import eventImg from '@/assets/images/home/useEventOperate/event.png';
import jiangxishi from '@/assets/geojson/jiangxishi.json';
import jiangxi from '@/assets/geojson/jiangxi.json';
@@ -13,202 +12,202 @@
* 事件聚合功能
*/
export const useEventOperate = () => {
- const scalingJudgment = [
- { name: '县', value: [0, 48651], gJson: null },
- { name: '市', value: [48651, 314863], gJson: jiangxishi },
- { name: '省', value: [314863, 1169651], gJson: jiangxi },
- { name: '国', value: [1169651, 37962800], gJson: zg },
- ];
- let viewer = null;
- let active = null;
- let handler = null;
- let positionC3 = null;
- const listenerHeight = () => {
- determineScaling();
- viewer.camera.moveEnd.addEventListener(determineScaling);
- };
+ const scalingJudgment = [
+ { name: '县', value: [0, 48651], gJson: null },
+ { name: '市', value: [48651, 314863], gJson: jiangxishi },
+ { name: '省', value: [314863, 1169651], gJson: jiangxi },
+ { name: '国', value: [1169651, 37962800], gJson: zg },
+ ]
+ let viewer = null
+ let active = null
+ let handler = null
+ let positionC3 = null
+ const listenerHeight = () => {
+ determineScaling()
+ viewer.camera.moveEnd.addEventListener(determineScaling)
+ }
- // 确定缩放比例
- const determineScaling = () => {
- if(!viewer) return
- let height = viewer.camera.positionCartographic.height;
- // 根据高度展示对应的 gJson
- for (let item of scalingJudgment) {
- if (height > item.value[0] && height <= item.value[1]) {
- if (active !== item.name) {
- removeEntities();
- removeLabel();
- active = item.name;
- item.gJson ? aggregation(item) : splashed();
- }
- break;
- }
- }
- };
+ // 确定缩放比例
+ const determineScaling = () => {
+ if (!viewer) return
+ let height = viewer.camera.positionCartographic.height
+ // 根据高度展示对应的 gJson
+ for (let item of scalingJudgment) {
+ if (height > item.value[0] && height <= item.value[1]) {
+ if (active !== item.name) {
+ removeEntities()
+ removeLabel()
+ active = item.name
+ item.gJson ? aggregation(item) : splashed()
+ }
+ break
+ }
+ }
+ }
- //散点机巢
- function splashed() {
- for (let i = 0; i < 50; i++) {
- viewer.entities.add({
- position: Cesium.Cartesian3.fromDegrees(
- 115.89 + Math.random() * 0.2,
- 28.68 + Math.random() * 0.2
- ),
- label: {
- // 随机整数
- text: Math.floor(Math.random() * 100) + '号事件',
- font: '14pt monospace',
- fillColor: Cesium.Color.WHITE,
- outlineColor: Cesium.Color.BLACK,
- outlineWidth: 2,
- style: Cesium.LabelStyle.FILL_AND_OUTLINE,
- verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
- pixelOffset: new Cesium.Cartesian2(0, -9),
- },
- billboard: {
- image: new Cesium.ConstantProperty(eventImg),
- width: 24,
- height: 24,
- },
- });
- }
- }
+ //散点机巢
+ function splashed() {
+ for (let i = 0; i < 50; i++) {
+ viewer.entities.add({
+ position: Cesium.Cartesian3.fromDegrees(
+ 115.89 + Math.random() * 0.2,
+ 28.68 + Math.random() * 0.2
+ ),
+ label: {
+ // 随机整数
+ text: Math.floor(Math.random() * 100) + '号事件',
+ font: '14pt monospace',
+ fillColor: Cesium.Color.WHITE,
+ outlineColor: Cesium.Color.BLACK,
+ outlineWidth: 2,
+ style: Cesium.LabelStyle.FILL_AND_OUTLINE,
+ verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+ pixelOffset: new Cesium.Cartesian2(0, -9),
+ },
+ billboard: {
+ image: new Cesium.ConstantProperty(eventImg),
+ width: 24,
+ height: 24,
+ },
+ })
+ }
+ }
- // 聚合机巢
- const aggregation = item => {
- const featuresList = item.gJson.features.map(item => ({
- name: item.properties.name,
- position: item.properties.center,
- }));
- // 遍历特征并添加实体
- featuresList.forEach(feature => {
- if (!feature.position) return;
- const position = Cesium.Cartesian3.fromDegrees(feature.position[0], feature.position[1]);
- viewer.entities.add({
- id: feature.id,
- position: position,
- label: {
- // 随机整数
- text: Math.floor(Math.random() * 100) + '个事件',
- font: '14pt monospace',
- fillColor: Cesium.Color.WHITE,
- outlineColor: Cesium.Color.BLACK,
- outlineWidth: 2,
- style: Cesium.LabelStyle.FILL_AND_OUTLINE,
- verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
- pixelOffset: new Cesium.Cartesian2(0, -9),
- },
- billboard: {
- image: new Cesium.ConstantProperty(data2),
- width: 24,
- height: 24,
- },
- properties: {
- id: feature.id,
- customData: {
- name: feature.name,
- },
- },
- });
- });
- // 加载新的 GeoJSON 数据
- Cesium.GeoJsonDataSource.load(item.gJson).then(dataSource => {
- viewer.dataSources.add(dataSource);
- item.dataSource = dataSource; // 保存数据源以便后续删除
- // 获取数据源中的实体
- const entities = dataSource.entities.values;
- entities.forEach(entity => {
- entity.polygon.material = new Cesium.ColorMaterialProperty(
- Cesium.Color.YELLOW.withAlpha(0) // 透明填充
- );
- entity.polygon.outline = new Cesium.ConstantProperty(true); // 显示边框
- entity.polygon.outlineColor = new Cesium.ConstantProperty(Cesium.Color.YELLOW); // 黑色边框
- });
- });
- };
+ // 聚合机巢
+ const aggregation = item => {
+ const featuresList = item.gJson.features.map(item => ({
+ name: item.properties.name,
+ position: item.properties.center,
+ }))
+ // 遍历特征并添加实体
+ featuresList.forEach(feature => {
+ if (!feature.position) return
+ const position = Cesium.Cartesian3.fromDegrees(feature.position[0], feature.position[1])
+ viewer.entities.add({
+ id: feature.id,
+ position: position,
+ label: {
+ // 随机整数
+ text: Math.floor(Math.random() * 100) + '个事件',
+ font: '14pt monospace',
+ fillColor: Cesium.Color.WHITE,
+ outlineColor: Cesium.Color.BLACK,
+ outlineWidth: 2,
+ style: Cesium.LabelStyle.FILL_AND_OUTLINE,
+ verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+ pixelOffset: new Cesium.Cartesian2(0, -9),
+ },
+ billboard: {
+ image: new Cesium.ConstantProperty(data2),
+ width: 24,
+ height: 24,
+ },
+ properties: {
+ id: feature.id,
+ customData: {
+ name: feature.name,
+ },
+ },
+ })
+ })
+ // 加载新的 GeoJSON 数据
+ Cesium.GeoJsonDataSource.load(item.gJson).then(dataSource => {
+ viewer.dataSources.add(dataSource)
+ item.dataSource = dataSource // 保存数据源以便后续删除
+ // 获取数据源中的实体
+ const entities = dataSource.entities.values
+ entities.forEach(entity => {
+ entity.polygon.material = new Cesium.ColorMaterialProperty(
+ Cesium.Color.YELLOW.withAlpha(0) // 透明填充
+ )
+ entity.polygon.outline = new Cesium.ConstantProperty(true) // 显示边框
+ entity.polygon.outlineColor = new Cesium.ConstantProperty(Cesium.Color.YELLOW) // 黑色边框
+ })
+ })
+ }
- // 获取弹框box
- const getLabelDom = () => {
- const vNode = h(EventPopUpBox, { data: '参数', removeLabel });
- const tooltipContainer = document.createElement('div');
- tooltipContainer.id = 'mapPopUpBox';
- tooltipContainer.style.position = 'absolute';
- tooltipContainer.style.transform = 'translate(-50%,-110%)';
- tooltipContainer.style.pointerEvents = 'none';
- document.querySelector('.page-index').append(tooltipContainer);
- render(vNode, tooltipContainer);
- return tooltipContainer;
- };
+ // 获取弹框box
+ const getLabelDom = () => {
+ const vNode = h(EventPopUpBox, { data: '参数', removeLabel })
+ const tooltipContainer = document.createElement('div')
+ tooltipContainer.id = 'mapPopUpBox'
+ tooltipContainer.style.position = 'absolute'
+ tooltipContainer.style.transform = 'translate(-50%,-110%)'
+ tooltipContainer.style.pointerEvents = 'none'
+ document.querySelector('.page-index').append(tooltipContainer)
+ render(vNode, tooltipContainer)
+ return tooltipContainer
+ }
- // 弹框位置刷新
- const labelBox = () => {
- store.commit('setSingleUavHome', {
- id: '123'
- });
- let dom = document.querySelector('#mapPopUpBox');
- if (!dom) {
- dom = getLabelDom();
- }
- const screenPosition = viewer.scene.cartesianToCanvasCoordinates(positionC3);
- if (screenPosition) {
- dom.style.left = `${screenPosition.x}px`;
- dom.style.top = `${screenPosition.y}px`;
- dom.style.display = 'block';
- }
- };
+ // 弹框位置刷新
+ const labelBox = () => {
+ store.commit('setSingleUavHome', {
+ id: '123',
+ })
+ let dom = document.querySelector('#mapPopUpBox')
+ if (!dom) {
+ dom = getLabelDom()
+ }
+ const screenPosition = viewer.scene.cartesianToCanvasCoordinates(positionC3)
+ if (screenPosition) {
+ dom.style.left = `${screenPosition.x}px`
+ dom.style.top = `${screenPosition.y}px`
+ dom.style.display = 'block'
+ }
+ }
- // 左键单机事件
- const singleMachineEvent = click => {
- const pickedObject = viewer.scene.pick(click.position);
- if (Cesium.defined(pickedObject) && pickedObject.id) {
- const entity = pickedObject.id;
- positionC3 = entity?.position?._value;
- if (!positionC3) return;
- viewer.scene.postRender.removeEventListener(labelBox);
- viewer.scene.postRender.addEventListener(labelBox);
- }
- };
+ // 左键单机事件
+ const singleMachineEvent = click => {
+ const pickedObject = viewer.scene.pick(click.position)
+ if (Cesium.defined(pickedObject) && pickedObject.id) {
+ const entity = pickedObject.id
+ positionC3 = entity?.position?._value
+ if (!positionC3) return
+ viewer.scene.postRender.removeEventListener(labelBox)
+ viewer.scene.postRender.addEventListener(labelBox)
+ }
+ }
- // 移除 点 和 gjson 实体
- const removeEntities = () => {
- viewer.dataSources?.removeAll(true);
- viewer.entities?.removeAll();
- };
- // 移除弹框标签
- const removeLabel = () => {
- viewer.scene.postRender.removeEventListener(labelBox);
- const dom = document.querySelector('#mapPopUpBox');
- if (dom && dom.parentNode) {
- dom.parentNode.removeChild(dom);
- }
- };
+ // 移除 点 和 gjson 实体
+ const removeEntities = () => {
+ viewer.dataSources?.removeAll(true)
+ viewer.entities?.removeAll()
+ }
+ // 移除弹框标签
+ const removeLabel = () => {
+ viewer.scene.postRender.removeEventListener(labelBox)
+ const dom = document.querySelector('#mapPopUpBox')
+ if (dom && dom.parentNode) {
+ dom.parentNode.removeChild(dom)
+ }
+ }
- // 移除所有监听事件,变量置空
- const removeAll = () => {
- removeEntities();
- removeLabel();
- viewer.camera.moveEnd.removeEventListener(determineScaling);
- handler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
- handler?.destroy();
- viewer = null;
- active = null
- handler = null;
- positionC3 = null;
- };
- const init = () => {
- viewer = window.$viewer;
- handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
- handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK);
- listenerHeight();
- };
- // onMounted(() => {
- // nextTick(() => {
- // viewer = window.$viewer;
- // handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
- // handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK);
- // listenerHeight();
- // });
- // });
+ // 移除所有监听事件,变量置空
+ const removeAll = () => {
+ removeEntities()
+ removeLabel()
+ viewer.camera.moveEnd.removeEventListener(determineScaling)
+ handler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
+ handler?.destroy()
+ viewer = null
+ active = null
+ handler = null
+ positionC3 = null
+ }
+ const init = () => {
+ viewer = window.$viewer
+ handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
+ handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK)
+ listenerHeight()
+ }
+ // onMounted(() => {
+ // nextTick(() => {
+ // viewer = window.$viewer;
+ // handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
+ // handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+ // listenerHeight();
+ // });
+ // });
- return { init,removeAll };
-};
+ return { init, removeAll }
+}
diff --git a/src/views/Home/useUavHome/MapPopUpBox.vue b/src/views/Home/useUavHome/DevicePopUpBox.vue
similarity index 100%
rename from src/views/Home/useUavHome/MapPopUpBox.vue
rename to src/views/Home/useUavHome/DevicePopUpBox.vue
diff --git a/src/views/Home/useUavHome/useUavHome.js b/src/views/Home/useUavHome/useUavHome.js
index 655b589..3c8b93c 100644
--- a/src/views/Home/useUavHome/useUavHome.js
+++ b/src/views/Home/useUavHome/useUavHome.js
@@ -1,31 +1,51 @@
import * as Cesium from 'cesium';
import aggregationImg from '@/assets/images/home/useUavHome/aggregation.png';
import uavImg from '@/assets/images/home/useUavHome/uavImg.png';
-import MapPopUpBox from '@/views/Home/useUavHome/MapPopUpBox.vue';
+
+import eventImg from '@/assets/images/home/useEventOperate/event.png';
+
+import DevicePopUpBox from '@/views/Home/useUavHome/DevicePopUpBox.vue';
+import EventPopUpBox from '@/views/Home/useEventOperate/EventPopUpBox.vue';
+
import { render } from 'vue';
import { useStore } from 'vuex';
import { getCenterPoint } from '@/utils/cesium/mapUtil';
import cesiumOperation from '@/utils/cesium-tsa';
-import { HeadingPitchRange } from 'cesium';
-import { getDeviceRegion, getDeviceRegionCount } from '@/api/home/aggregation';
-
+import { getDeviceRegion, getDeviceRegionCount, getEventDetails, getMapEvents } from '@/api/home/aggregation';
/**
* 机巢聚合功能
*/
-export const useUavHome = () => {
+export const useUavHome = type => {
const { flyTo } = cesiumOperation();
+ const singleImg = type === 'device' ? uavImg : eventImg;
+ const mergeImg = type === 'device' ? aggregationImg : aggregationImg;
+ const MapPopUpBox = type === 'device' ? DevicePopUpBox : EventPopUpBox;
+ const styleTransform = type === 'device' ? 'translateY(-50%)' : 'translate(-50%,-110%)';
+
let scalingJudgment = [
- { name: '县', splashedList: [], gJson: null, show: false,outline:{}, value: [0, 48651], height: 31753 },
- { name: '市', splashedList: [], gJson: null, show: false,outline:{}, value: [48651, 314863], height: 257731 },
- { name: '省', splashedList: [], gJson: null, show: false,outline:{}, value: [314863, 3796280000], height: 1987280 },
+ { name: '县', splashedList: [], gJson: null, show: false, outline: {}, value: [0, 48651], height: 31753 },
+ { name: '市', splashedList: [], gJson: null, show: false, outline: {}, value: [48651, 314863], height: 257731 },
+ {
+ name: '省',
+ splashedList: [],
+ gJson: null,
+ show: false,
+ outline: {},
+ value: [314863, 3796280000],
+ height: 1987280,
+ },
];
let viewer = null;
let active = null;
let handler = null;
let positionC3 = null;
let currentEntity = null;
+
+ const store = useStore();
+ const userAreaCode = computed(() => store.state.user.userInfo.detail.areaCode);
+ const selectedAreaCode = computed(() => store.state.user.selectedAreaCode);
const listenerHeight = () => {
determineScaling();
viewer.camera.moveEnd.addEventListener(determineScaling);
@@ -44,8 +64,8 @@
active = item.name;
removeEntities();
removeLabel();
- item.gJson ? aggregation(item) : splashed(item)
- renderOutline(item)
+ item.gJson ? aggregation(item) : splashed(item);
+ renderOutline(item);
break;
}
}
@@ -63,100 +83,134 @@
return [provinceCode, cityCode, code];
}
- const store = useStore();
- const selectedAreaCode = computed(() => store.state.user.selectedAreaCode);
-
function getDeviceCount(areaCode) {
- return getDeviceRegionCount({areaCode}).then(res => {
- return res?.data?.data || [];
+ return getDeviceRegionCount({ areaCode }).then(res => {
+ return (res?.data?.data || []).map(i=>({...i,type:'deviceAggregation'}));
});
}
function getDeviceList(areaCode) {
- return getDeviceRegion({areaCode}).then(res => {
- return res?.data?.data || [];
+ return getDeviceRegion({ areaCode }).then(res => {
+ return (res?.data?.data || []).map(i =>({...i,type}));
});
}
+
+ let eventList = []
+ function processChildren(childrens) {
+ return (childrens || []).map(item => {
+ const arr = processChildren(item.childrens);
+ if (item.data){
+ eventList = eventList.concat(item.data)
+ }
+ const returnObj = {
+ total_device_count: item.number,
+ region_code: item.id,
+ region_name: item.name,
+ type:'eventAggregation'
+ };
+ if (arr.length !== 0) {
+ returnObj.childrens = arr;
+ }
+ return returnObj;
+ });
+ }
+
+ function getMapEventCount(areaCode) {
+ return getMapEvents({ areaCode }).then(res => {
+ return processChildren(res?.data?.data?.childrens || []);
+ });
+ }
+ function getEventDetailsFun(areaCode){
+ return getEventDetails({areaCode}).then(res => {
+ console.log(res.data.data,'getEventDetailsFun');
+ });
+ }
+
const findFun = (featItem, numItem) => Number(featItem.region_code.slice(0, 6)) === numItem.properties.adcode;
const { VITE_APP_BASE } = import.meta.env;
const defaultDir = `${VITE_APP_BASE}public/geoJson/100000/`;
- const getFiler = async (url) => {
+ const getFiler = async url => {
const gJson = await import(/* @vite-ignore */ url);
return JSON.parse(JSON.stringify(gJson));
- }
- const getOutLine = async (jsonPathPre,hierarchy) => {
- const parentGJson = await getFiler(`${defaultDir}${jsonPathPre}/index.json`)
+ };
+ const getOutLine = async (jsonPathPre, hierarchy) => {
+ const parentGJson = await getFiler(`${defaultDir}${jsonPathPre}/index.json`);
let features = parentGJson.features.find(
item => item.properties.adcode === Number(hierarchy[hierarchy.length - 1])
);
- return { type: "FeatureCollection", features: [features] }
- }
+ return { type: 'FeatureCollection', features: [features] };
+ };
- const injectData = (gJson,dataList) => {
+ const injectData = (gJson, dataList) => {
return {
...gJson,
features: gJson.features.map(item => ({ ...item, data: dataList.find(item1 => findFun(item1, item)) })),
+ };
+ };
+
+ const initMapData = async areaCode => {
+ if (!areaCode) return;
+ const list = type === 'device' ? await getDeviceCount(areaCode) : await getMapEventCount(areaCode);
+ const splashedList = type === 'device'
+ ? await getDeviceList(areaCode)
+ : eventList.map(i=>({eventId:i.id,latitude:Number(i.latitude),longitude:Number(i.longitude),type:'event'}))
+ console.log(list, 'list');
+ console.log(splashedList, 'splashedList');
+ const hierarchy = convertToHierarchy(areaCode.slice(0, 6));
+ const jsonPath = hierarchy.join('/');
+ const jsonPathPre = hierarchy.slice(0, hierarchy.length - 1).join('/');
+ scalingJudgment = scalingJudgment.map(item => ({ ...item, show: true }));
+ scalingJudgment[0].gJson = null;
+ scalingJudgment[0].splashedList = splashedList;
+ active = null;
+ console.log(hierarchy);
+
+ // 省
+ if (hierarchy.length === 1) {
+ const gJson1 = await getFiler(`${defaultDir}${jsonPath}/indexDistrict.json`);
+ const gJson2 = await getFiler(`${defaultDir}${jsonPath}/index.json`);
+ scalingJudgment[1].gJson = {
+ ...gJson1,
+ features: gJson1.features.map(item => ({
+ ...item,
+ data: list.flatMap(item => item.childrens || []).find(item1 => findFun(item1, item)),
+ })),
+ };
+ scalingJudgment[2].gJson = injectData(gJson2, list);
+ const { lng, lat } = getCenterPoint(gJson2.features.map(item => item.properties.center));
+ flyTo({ longitude: lng, latitude: lat }, 0, scalingJudgment[2].height);
}
- }
-
-
+ // 市
+ if (hierarchy.length === 2) {
+ scalingJudgment[2].gJson = null;
+ scalingJudgment[2].show = false;
+ const gJson1 = await getFiler(`${defaultDir}${jsonPath}/index.json`);
+ scalingJudgment[1].gJson = injectData(gJson1, list);
+ const center = getCenterPoint(gJson1.features.map(item => item.properties.center));
+ flyTo({ longitude: center.lng, latitude: center.lat }, 0, scalingJudgment[1].height);
+ }
+ // 区县
+ if (hierarchy.length === 3) {
+ scalingJudgment[1].gJson = null;
+ scalingJudgment[1].show = false;
+ scalingJudgment[2].gJson = null;
+ scalingJudgment[2].show = false;
+ const outlineGJson = await getOutLine(jsonPathPre, hierarchy);
+ const center = outlineGJson.features[0].properties.center;
+ flyTo({ longitude: center[0], latitude: center[1] }, 0, scalingJudgment[0].height);
+ }
+ // 轮廓
+ const outlineGJson = await getOutLine(jsonPathPre, hierarchy);
+ scalingJudgment.forEach(item => item.show && (item.outline = outlineGJson));
+ };
watch(
selectedAreaCode,
async (newValue, oldValue) => {
- if (newValue) {
- const list = await getDeviceCount(newValue);
- const splashedList = await getDeviceList(newValue);
- console.log(list);
- console.log(splashedList);
- const hierarchy = convertToHierarchy(newValue.slice(0, 6));
- const jsonPath = hierarchy.join('/');
- const jsonPathPre = hierarchy.slice(0, hierarchy.length - 1).join('/');
- scalingJudgment = scalingJudgment.map(item => ({ ...item, show: true }));
- scalingJudgment[0].gJson = null;
- scalingJudgment[0].splashedList = splashedList;
- active = null
- // 省
- if (hierarchy.length === 1) {
- const gJson1 = await getFiler(`${defaultDir}${jsonPath}/indexDistrict.json`)
- const gJson2 = await getFiler(`${defaultDir}${jsonPath}/index.json`)
- scalingJudgment[1].gJson = {
- ...gJson1,
- features: gJson1.features.map(item => ({
- ...item,
- data: list.flatMap(item => item.childrens || []).find(item1 => findFun(item1, item)),
- })),
- };
- scalingJudgment[2].gJson = injectData(gJson2,list);
- const { lng, lat } = getCenterPoint(gJson2.features.map(item => item.properties.center));
- flyTo({ longitude: lng, latitude: lat }, 0, scalingJudgment[2].height);
- }
- // 市
- if (hierarchy.length === 2) {
- scalingJudgment[2].gJson = null;
- scalingJudgment[2].show = false;
- const gJson1 = await getFiler(`${defaultDir}${jsonPath}/index.json`)
- scalingJudgment[1].gJson = injectData(gJson1,list);
- const center = getCenterPoint(gJson1.features.map(item => item.properties.center));
- flyTo({ longitude: center.lng, latitude: center.lat }, 0, scalingJudgment[1].height);
- }
- // 区县
- if (hierarchy.length === 3) {
- scalingJudgment[1].gJson = null;
- scalingJudgment[1].show = false;
- scalingJudgment[2].gJson = null;
- scalingJudgment[2].show = false;
- const outlineGJson = await getOutLine(jsonPathPre,hierarchy)
- const center = outlineGJson.features[0].properties.center;
- flyTo({ longitude: center[0], latitude: center[1] }, 0, scalingJudgment[0].height);
- }
- // 轮廓
- const outlineGJson = await getOutLine(jsonPathPre,hierarchy)
- scalingJudgment.forEach(item => item.show &&(item.outline = outlineGJson))
- }
+ initMapData(newValue);
},
- { immediate: true, deep: true }
+ { deep: true }
);
//散点机巢
@@ -176,7 +230,7 @@
pixelOffset: new Cesium.Cartesian2(0, -9),
},
billboard: {
- image: new Cesium.ConstantProperty(uavImg),
+ image: new Cesium.ConstantProperty(singleImg),
width: 24,
height: 24,
},
@@ -190,8 +244,9 @@
}
// 渲染轮廓
- const renderOutline = (item) => {
- item.outline && Cesium.GeoJsonDataSource.load(item.outline).then(dataSource => {
+ const renderOutline = item => {
+ item.outline &&
+ Cesium.GeoJsonDataSource.load(item.outline).then(dataSource => {
viewer.dataSources.add(dataSource);
const entities = dataSource.entities.values;
entities.forEach(entity => {
@@ -206,10 +261,10 @@
width: 5, // 直接设置宽度
material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.5,
- color: Cesium.Color.AQUA
+ color: Cesium.Color.AQUA,
}),
- clampToGround: true // 贴地显示
- }
+ clampToGround: true, // 贴地显示
+ },
});
});
});
@@ -239,20 +294,20 @@
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
pixelOffset: new Cesium.Cartesian2(0, -9),
- }
+ },
});
viewer.entities.add({
id: feature.id,
position: position,
label: {
- text: feature.data.total_device_count,
+ text: feature.data.total_device_count.toString(),
font: '12pt Source Han Sans CN',
fillColor: Cesium.Color.BLACK,
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
eyeOffset: new Cesium.Cartesian3(0, 0, -10), // 让label "浮" 在广告牌前面
},
billboard: {
- image: new Cesium.ConstantProperty(aggregationImg),
+ image: new Cesium.ConstantProperty(mergeImg),
width: 35,
height: 35,
},
@@ -276,17 +331,17 @@
Cesium.Color.YELLOW.withAlpha(0) // 透明填充
);
entity.polygon.outline = new Cesium.ConstantProperty(true); // 显示边框
- entity.polygon.outlineColor = new Cesium.ConstantProperty(Cesium.Color.AQUAMARINE );
+ entity.polygon.outlineColor = new Cesium.ConstantProperty(Cesium.Color.AQUAMARINE);
});
flyTo &&
- viewer.flyTo(dataSource, {
- offset: new Cesium.HeadingPitchRange(
- 0, // heading: 0 (朝向不变)
- Cesium.Math.toRadians(-90), // pitch: -90° (垂直向下)
- 0 // range: 0 (默认距离)
- ),
- duration: 0.5,
- });
+ viewer.flyTo(dataSource, {
+ offset: new Cesium.HeadingPitchRange(
+ 0, // heading: 0 (朝向不变)
+ Cesium.Math.toRadians(-90), // pitch: -90° (垂直向下)
+ 0 // range: 0 (默认距离)
+ ),
+ duration: 0.5,
+ });
});
};
@@ -296,7 +351,7 @@
const tooltipContainer = document.createElement('div');
tooltipContainer.id = 'mapPopUpBox';
tooltipContainer.style.position = 'absolute';
- tooltipContainer.style.transform = 'translateY(-50%)';
+ tooltipContainer.style.transform = styleTransform;
tooltipContainer.style.pointerEvents = 'none';
document.querySelector('.page-index').append(tooltipContainer);
render(vNode, tooltipContainer);
@@ -326,13 +381,23 @@
positionC3 = entity?.position?._value;
if (!positionC3) return;
removeLabel();
- const customData = entity.properties.customData._value.data
- console.log(customData);
- if (customData.device_sn){
- store.commit('setSingleUavHome', { id: '123' });
- return
+ const customData = entity.properties.customData._value.data;
+
+ switch (customData.type) {
+ case 'deviceAggregation':
+ viewer.scene.postRender.addEventListener(labelBoxRender);
+ break;
+ case 'device':
+ store.commit('setSingleUavHome', { id: '123' });
+ break;
+ case 'eventAggregation':
+ break;
+ case 'event':
+ viewer.scene.postRender.addEventListener(labelBoxRender);
+ break;
+ default:
+ break;
}
- viewer.scene.postRender.addEventListener(labelBoxRender);
}
};
@@ -368,11 +433,13 @@
currentEntity = null;
};
const init = () => {
+ initMapData(selectedAreaCode.value || userAreaCode.value);
viewer = window.$viewer;
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK);
listenerHeight();
};
+ onBeforeUnmount(() => {});
// onMounted(() => {
// nextTick(() => {
// viewer = window.$viewer;
diff --git a/src/websocket/index.js b/src/websocket/index.js
index f5732b8..da0a2e0 100644
--- a/src/websocket/index.js
+++ b/src/websocket/index.js
@@ -1,4 +1,4 @@
-import ReconnectingWebSocket from 'reconnecting-websocket';
+import ReconnectingWebSocket from 'reconnecting-websocket'
/**
* ConnectWebSocket 类
@@ -6,69 +6,69 @@
*/
class ConnectWebSocket {
- _url;
- _socket;
- _hasInit;
- _messageHandler;
+ _url
+ _socket
+ _hasInit
+ _messageHandler
- constructor(url) {
- this._url = url;
- this._socket = null;
- this._hasInit = false;
- this._messageHandler = null;
- }
+ constructor(url) {
+ this._url = url
+ this._socket = null
+ this._hasInit = false
+ this._messageHandler = null
+ }
- initSocket() {
- if (this._hasInit) {
- return;
- }
- if (!this._url) {
- return;
- }
- // 会自动重连,无需处理重连逻辑
- this._socket = new ReconnectingWebSocket(this._url, [], {
- maxReconnectionDelay: 20000, // 断开后最大的重连时间: 20s,每多一次重连,会增加 1.3 倍,5 * 1.3 * 1.3 * 1.3...
- minReconnectionDelay: 5000, // 断开后最短的重连时间: 5s
- maxRetries: 5,
- });
- this._hasInit = true;
+ initSocket() {
+ if (this._hasInit) {
+ return
+ }
+ if (!this._url) {
+ return
+ }
+ // 会自动重连,无需处理重连逻辑
+ this._socket = new ReconnectingWebSocket(this._url, [], {
+ maxReconnectionDelay: 20000, // 断开后最大的重连时间: 20s,每多一次重连,会增加 1.3 倍,5 * 1.3 * 1.3 * 1.3...
+ minReconnectionDelay: 5000, // 断开后最短的重连时间: 5s
+ maxRetries: 5,
+ })
+ this._hasInit = true
- this._socket.addEventListener('open', this._onOpen.bind(this));
- this._socket.addEventListener('close', this._onClose.bind(this));
- this._socket.addEventListener('error', this._onError.bind(this));
- this._socket.addEventListener('message', this._onMessage.bind(this));
- }
+ this._socket.addEventListener('open', this._onOpen.bind(this))
+ this._socket.addEventListener('close', this._onClose.bind(this))
+ this._socket.addEventListener('error', this._onError.bind(this))
+ this._socket.addEventListener('message', this._onMessage.bind(this))
+ }
- _onOpen() {
- console.log('连接成功');
- }
+ _onOpen() {
+ console.log('连接成功')
+ }
- _onClose() {
- console.log('连接已断开');
- }
+ _onClose() {
+ console.log('连接已断开')
+ }
- _onError() {
- console.log('连接 error');
- }
+ _onError() {
+ console.log('连接 error')
+ }
- registerMessageHandler(messageHandler) {
- this._messageHandler = messageHandler;
- }
+ registerMessageHandler(messageHandler) {
+ this._messageHandler = messageHandler
+ }
- _onMessage(msg) {
- // const data = JSON.parse(msg.data);
- this._messageHandler && this._messageHandler(msg.data);
- }
+ _onMessage(msg) {
+ // const data = JSON.parse(msg.data);
+ this._messageHandler && this._messageHandler(msg.data)
+ }
- sendMessage = (message) => {
- // 目前只供AI聊天使用
- this._socket?.send(message)
- // this._socket?.send(JSON.stringify(message.data));
- };
+ sendMessage = message => {
+ // 目前只供AI聊天使用
+ this._socket?.send(message)
+ // this._socket?.send(JSON.stringify(message.data));
+ }
- close() {
- this._socket?.close();
- }
+ close() {
+ this._socket?.close()
+ }
}
-export default ConnectWebSocket;
+export default ConnectWebSocket
diff --git a/src/websocket/util/config.js b/src/websocket/util/config.js
index cd1b9ce..a8a19a8 100644
--- a/src/websocket/util/config.js
+++ b/src/websocket/util/config.js
@@ -1,14 +1,13 @@
-import { ELocalStorageKey } from '@/utils/http/enums';
+import { ELocalStorageKey } from '@/utils/http/enums'
export function getWebsocketUrl() {
- const token = localStorage.getItem(ELocalStorageKey.Token) || '';
- const url =
- import.meta.env.VITE_APP_WS_API_URL + '?x-auth-token=' + encodeURI(token);
- return url;
+ const token = localStorage.getItem(ELocalStorageKey.Token) || ''
+ const url = import.meta.env.VITE_APP_WS_API_URL + '?x-auth-token=' + encodeURI(token)
+ return url
}
// AI 指令飞行
export function getAIWebsocketUrl() {
- const token = localStorage.getItem(ELocalStorageKey.Token) || '';
- const url = `${import.meta.env.VITE_APP_WS_API_URL}?x-auth-token=${encodeURI(token)}`
- return url;
-}
\ No newline at end of file
+ const token = localStorage.getItem(ELocalStorageKey.Token) || ''
+ const url = `${import.meta.env.VITE_APP_WS_API_URL}?x-auth-token=${encodeURI(token)}`
+ return url
+}
--
Gitblit v1.9.3