作者 万志伟

0.0.1

正在显示 54 个修改的文件 包含 9686 行增加0 行删除
  1 +# .env 通用环境配置
  2 +
  3 +VITE_APP_TITLE=系统
  4 +
  5 +#请求前缀
  6 +VITE_APP_CONTENT_TEXT_PATH=/package
  7 +
  8 +
  1 +# .env.development 开发环境配置
  2 +
  3 +#dev请求地址
  4 +VITE_APP_BASE_URL=http://127.0.0.1:8080
  5 +#dev代理前缀
  6 +VITE_APP_PROXY_URL=/proxy-api
  7 +
  8 +VITE_APP_BASE_USERNAME=admin
  9 +VITE_APP_BASE_PASSWORD=123456
  1 +# .env.production 生产环境配置
  2 +VITE_APP_BASE_URL=http://47.104.158.209:8080
  1 +# Logs
  2 +logs
  3 +*.log
  4 +npm-debug.log*
  5 +yarn-debug.log*
  6 +yarn-error.log*
  7 +pnpm-debug.log*
  8 +lerna-debug.log*
  9 +
  10 +node_modules
  11 +dist
  12 +dist-ssr
  13 +*.local
  14 +
  15 +# Editor directories and files
  16 +.vscode/*
  17 +!.vscode/extensions.json
  18 +.idea
  19 +.DS_Store
  20 +*.suo
  21 +*.ntvs*
  22 +*.njsproj
  23 +*.sln
  24 +*.sw?
  1 +{
  2 + "recommendations": ["Vue.volar"]
  3 +}
  1 +# Vue 3 + TypeScript + Vite
  2 +
  3 +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
  4 +
  5 +Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
  1 +<html lang="en">
  2 + <head>
  3 + <meta charset="UTF-8" />
  4 + <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Vite + Vue + TS</title>
  7 + </head>
  8 + <body>
  9 + <div id="app"></div>
  10 + <script type="module" src="/src/main.ts"></script>
  11 + </body>
  12 +</html>
  1 +{
  2 + "name": "web-package",
  3 + "version": "0.0.0",
  4 + "lockfileVersion": 3,
  5 + "requires": true,
  6 + "packages": {
  7 + "": {
  8 + "name": "web-package",
  9 + "version": "0.0.0",
  10 + "dependencies": {
  11 + "ant-design-vue": "^4.2.6",
  12 + "axios": "^1.8.1",
  13 + "cesium": "^1.127.0",
  14 + "dayjs": "^1.11.13",
  15 + "vue": "^3.5.13"
  16 + },
  17 + "devDependencies": {
  18 + "@types/cesium": "^1.67.14",
  19 + "@vitejs/plugin-vue": "^5.2.1",
  20 + "@vue/tsconfig": "^0.7.0",
  21 + "typescript": "~5.7.2",
  22 + "vite": "^6.2.0",
  23 + "vue-tsc": "^2.2.4"
  24 + }
  25 + },
  26 + "node_modules/@ant-design/colors": {
  27 + "version": "6.0.0",
  28 + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz",
  29 + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==",
  30 + "license": "MIT",
  31 + "dependencies": {
  32 + "@ctrl/tinycolor": "^3.4.0"
  33 + }
  34 + },
  35 + "node_modules/@ant-design/icons-svg": {
  36 + "version": "4.4.2",
  37 + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
  38 + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
  39 + "license": "MIT"
  40 + },
  41 + "node_modules/@ant-design/icons-vue": {
  42 + "version": "7.0.1",
  43 + "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz",
  44 + "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==",
  45 + "license": "MIT",
  46 + "dependencies": {
  47 + "@ant-design/colors": "^6.0.0",
  48 + "@ant-design/icons-svg": "^4.2.1"
  49 + },
  50 + "peerDependencies": {
  51 + "vue": ">=3.0.3"
  52 + }
  53 + },
  54 + "node_modules/@babel/helper-string-parser": {
  55 + "version": "7.25.9",
  56 + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
  57 + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
  58 + "license": "MIT",
  59 + "engines": {
  60 + "node": ">=6.9.0"
  61 + }
  62 + },
  63 + "node_modules/@babel/helper-validator-identifier": {
  64 + "version": "7.25.9",
  65 + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
  66 + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
  67 + "license": "MIT",
  68 + "engines": {
  69 + "node": ">=6.9.0"
  70 + }
  71 + },
  72 + "node_modules/@babel/parser": {
  73 + "version": "7.26.9",
  74 + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.9.tgz",
  75 + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
  76 + "license": "MIT",
  77 + "dependencies": {
  78 + "@babel/types": "^7.26.9"
  79 + },
  80 + "bin": {
  81 + "parser": "bin/babel-parser.js"
  82 + },
  83 + "engines": {
  84 + "node": ">=6.0.0"
  85 + }
  86 + },
  87 + "node_modules/@babel/runtime": {
  88 + "version": "7.26.9",
  89 + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.9.tgz",
  90 + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==",
  91 + "license": "MIT",
  92 + "dependencies": {
  93 + "regenerator-runtime": "^0.14.0"
  94 + },
  95 + "engines": {
  96 + "node": ">=6.9.0"
  97 + }
  98 + },
  99 + "node_modules/@babel/types": {
  100 + "version": "7.26.9",
  101 + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.9.tgz",
  102 + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
  103 + "license": "MIT",
  104 + "dependencies": {
  105 + "@babel/helper-string-parser": "^7.25.9",
  106 + "@babel/helper-validator-identifier": "^7.25.9"
  107 + },
  108 + "engines": {
  109 + "node": ">=6.9.0"
  110 + }
  111 + },
  112 + "node_modules/@cesium/engine": {
  113 + "version": "15.0.0",
  114 + "resolved": "https://registry.npmmirror.com/@cesium/engine/-/engine-15.0.0.tgz",
  115 + "integrity": "sha512-jimj7khIf/mBkejsMZ+n6Y9PPvXh4QmWKkz2ekFz59icDCeGj8ZJrzl5p0caqiK/372mnHOwmYFWYEwThEw2ew==",
  116 + "license": "Apache-2.0",
  117 + "dependencies": {
  118 + "@tweenjs/tween.js": "^25.0.0",
  119 + "@zip.js/zip.js": "^2.7.34",
  120 + "autolinker": "^4.0.0",
  121 + "bitmap-sdf": "^1.0.3",
  122 + "dompurify": "^3.0.2",
  123 + "draco3d": "^1.5.1",
  124 + "earcut": "^3.0.0",
  125 + "grapheme-splitter": "^1.0.4",
  126 + "jsep": "^1.3.8",
  127 + "kdbush": "^4.0.1",
  128 + "ktx-parse": "^1.0.0",
  129 + "lerc": "^2.0.0",
  130 + "mersenne-twister": "^1.1.0",
  131 + "meshoptimizer": "^0.22.0",
  132 + "pako": "^2.0.4",
  133 + "protobufjs": "^7.1.0",
  134 + "rbush": "3.0.1",
  135 + "topojson-client": "^3.1.0",
  136 + "urijs": "^1.19.7"
  137 + },
  138 + "engines": {
  139 + "node": ">=14.0.0"
  140 + }
  141 + },
  142 + "node_modules/@cesium/widgets": {
  143 + "version": "11.0.0",
  144 + "resolved": "https://registry.npmmirror.com/@cesium/widgets/-/widgets-11.0.0.tgz",
  145 + "integrity": "sha512-4ELgFuU2uwkvD6NI9MHIWNFKjmyI9wlDzZ9NuoPFSnUhf9XfVBI8sJekGx5dijxjK2S3aCuxB3dtUkdDZEsQmA==",
  146 + "license": "Apache-2.0",
  147 + "dependencies": {
  148 + "@cesium/engine": "^15.0.0",
  149 + "nosleep.js": "^0.12.0"
  150 + },
  151 + "engines": {
  152 + "node": ">=14.0.0"
  153 + }
  154 + },
  155 + "node_modules/@ctrl/tinycolor": {
  156 + "version": "3.6.1",
  157 + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
  158 + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
  159 + "license": "MIT",
  160 + "engines": {
  161 + "node": ">=10"
  162 + }
  163 + },
  164 + "node_modules/@emotion/hash": {
  165 + "version": "0.9.2",
  166 + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz",
  167 + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
  168 + "license": "MIT"
  169 + },
  170 + "node_modules/@emotion/unitless": {
  171 + "version": "0.8.1",
  172 + "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz",
  173 + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==",
  174 + "license": "MIT"
  175 + },
  176 + "node_modules/@esbuild/aix-ppc64": {
  177 + "version": "0.25.0",
  178 + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz",
  179 + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==",
  180 + "cpu": [
  181 + "ppc64"
  182 + ],
  183 + "dev": true,
  184 + "license": "MIT",
  185 + "optional": true,
  186 + "os": [
  187 + "aix"
  188 + ],
  189 + "engines": {
  190 + "node": ">=18"
  191 + }
  192 + },
  193 + "node_modules/@esbuild/android-arm": {
  194 + "version": "0.25.0",
  195 + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz",
  196 + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==",
  197 + "cpu": [
  198 + "arm"
  199 + ],
  200 + "dev": true,
  201 + "license": "MIT",
  202 + "optional": true,
  203 + "os": [
  204 + "android"
  205 + ],
  206 + "engines": {
  207 + "node": ">=18"
  208 + }
  209 + },
  210 + "node_modules/@esbuild/android-arm64": {
  211 + "version": "0.25.0",
  212 + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz",
  213 + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==",
  214 + "cpu": [
  215 + "arm64"
  216 + ],
  217 + "dev": true,
  218 + "license": "MIT",
  219 + "optional": true,
  220 + "os": [
  221 + "android"
  222 + ],
  223 + "engines": {
  224 + "node": ">=18"
  225 + }
  226 + },
  227 + "node_modules/@esbuild/android-x64": {
  228 + "version": "0.25.0",
  229 + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz",
  230 + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==",
  231 + "cpu": [
  232 + "x64"
  233 + ],
  234 + "dev": true,
  235 + "license": "MIT",
  236 + "optional": true,
  237 + "os": [
  238 + "android"
  239 + ],
  240 + "engines": {
  241 + "node": ">=18"
  242 + }
  243 + },
  244 + "node_modules/@esbuild/darwin-arm64": {
  245 + "version": "0.25.0",
  246 + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz",
  247 + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==",
  248 + "cpu": [
  249 + "arm64"
  250 + ],
  251 + "dev": true,
  252 + "license": "MIT",
  253 + "optional": true,
  254 + "os": [
  255 + "darwin"
  256 + ],
  257 + "engines": {
  258 + "node": ">=18"
  259 + }
  260 + },
  261 + "node_modules/@esbuild/darwin-x64": {
  262 + "version": "0.25.0",
  263 + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz",
  264 + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==",
  265 + "cpu": [
  266 + "x64"
  267 + ],
  268 + "dev": true,
  269 + "license": "MIT",
  270 + "optional": true,
  271 + "os": [
  272 + "darwin"
  273 + ],
  274 + "engines": {
  275 + "node": ">=18"
  276 + }
  277 + },
  278 + "node_modules/@esbuild/freebsd-arm64": {
  279 + "version": "0.25.0",
  280 + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz",
  281 + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==",
  282 + "cpu": [
  283 + "arm64"
  284 + ],
  285 + "dev": true,
  286 + "license": "MIT",
  287 + "optional": true,
  288 + "os": [
  289 + "freebsd"
  290 + ],
  291 + "engines": {
  292 + "node": ">=18"
  293 + }
  294 + },
  295 + "node_modules/@esbuild/freebsd-x64": {
  296 + "version": "0.25.0",
  297 + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz",
  298 + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==",
  299 + "cpu": [
  300 + "x64"
  301 + ],
  302 + "dev": true,
  303 + "license": "MIT",
  304 + "optional": true,
  305 + "os": [
  306 + "freebsd"
  307 + ],
  308 + "engines": {
  309 + "node": ">=18"
  310 + }
  311 + },
  312 + "node_modules/@esbuild/linux-arm": {
  313 + "version": "0.25.0",
  314 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz",
  315 + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==",
  316 + "cpu": [
  317 + "arm"
  318 + ],
  319 + "dev": true,
  320 + "license": "MIT",
  321 + "optional": true,
  322 + "os": [
  323 + "linux"
  324 + ],
  325 + "engines": {
  326 + "node": ">=18"
  327 + }
  328 + },
  329 + "node_modules/@esbuild/linux-arm64": {
  330 + "version": "0.25.0",
  331 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz",
  332 + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==",
  333 + "cpu": [
  334 + "arm64"
  335 + ],
  336 + "dev": true,
  337 + "license": "MIT",
  338 + "optional": true,
  339 + "os": [
  340 + "linux"
  341 + ],
  342 + "engines": {
  343 + "node": ">=18"
  344 + }
  345 + },
  346 + "node_modules/@esbuild/linux-ia32": {
  347 + "version": "0.25.0",
  348 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz",
  349 + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==",
  350 + "cpu": [
  351 + "ia32"
  352 + ],
  353 + "dev": true,
  354 + "license": "MIT",
  355 + "optional": true,
  356 + "os": [
  357 + "linux"
  358 + ],
  359 + "engines": {
  360 + "node": ">=18"
  361 + }
  362 + },
  363 + "node_modules/@esbuild/linux-loong64": {
  364 + "version": "0.25.0",
  365 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz",
  366 + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==",
  367 + "cpu": [
  368 + "loong64"
  369 + ],
  370 + "dev": true,
  371 + "license": "MIT",
  372 + "optional": true,
  373 + "os": [
  374 + "linux"
  375 + ],
  376 + "engines": {
  377 + "node": ">=18"
  378 + }
  379 + },
  380 + "node_modules/@esbuild/linux-mips64el": {
  381 + "version": "0.25.0",
  382 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz",
  383 + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==",
  384 + "cpu": [
  385 + "mips64el"
  386 + ],
  387 + "dev": true,
  388 + "license": "MIT",
  389 + "optional": true,
  390 + "os": [
  391 + "linux"
  392 + ],
  393 + "engines": {
  394 + "node": ">=18"
  395 + }
  396 + },
  397 + "node_modules/@esbuild/linux-ppc64": {
  398 + "version": "0.25.0",
  399 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz",
  400 + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==",
  401 + "cpu": [
  402 + "ppc64"
  403 + ],
  404 + "dev": true,
  405 + "license": "MIT",
  406 + "optional": true,
  407 + "os": [
  408 + "linux"
  409 + ],
  410 + "engines": {
  411 + "node": ">=18"
  412 + }
  413 + },
  414 + "node_modules/@esbuild/linux-riscv64": {
  415 + "version": "0.25.0",
  416 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz",
  417 + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==",
  418 + "cpu": [
  419 + "riscv64"
  420 + ],
  421 + "dev": true,
  422 + "license": "MIT",
  423 + "optional": true,
  424 + "os": [
  425 + "linux"
  426 + ],
  427 + "engines": {
  428 + "node": ">=18"
  429 + }
  430 + },
  431 + "node_modules/@esbuild/linux-s390x": {
  432 + "version": "0.25.0",
  433 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz",
  434 + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==",
  435 + "cpu": [
  436 + "s390x"
  437 + ],
  438 + "dev": true,
  439 + "license": "MIT",
  440 + "optional": true,
  441 + "os": [
  442 + "linux"
  443 + ],
  444 + "engines": {
  445 + "node": ">=18"
  446 + }
  447 + },
  448 + "node_modules/@esbuild/linux-x64": {
  449 + "version": "0.25.0",
  450 + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz",
  451 + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==",
  452 + "cpu": [
  453 + "x64"
  454 + ],
  455 + "dev": true,
  456 + "license": "MIT",
  457 + "optional": true,
  458 + "os": [
  459 + "linux"
  460 + ],
  461 + "engines": {
  462 + "node": ">=18"
  463 + }
  464 + },
  465 + "node_modules/@esbuild/netbsd-arm64": {
  466 + "version": "0.25.0",
  467 + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz",
  468 + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==",
  469 + "cpu": [
  470 + "arm64"
  471 + ],
  472 + "dev": true,
  473 + "license": "MIT",
  474 + "optional": true,
  475 + "os": [
  476 + "netbsd"
  477 + ],
  478 + "engines": {
  479 + "node": ">=18"
  480 + }
  481 + },
  482 + "node_modules/@esbuild/netbsd-x64": {
  483 + "version": "0.25.0",
  484 + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz",
  485 + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==",
  486 + "cpu": [
  487 + "x64"
  488 + ],
  489 + "dev": true,
  490 + "license": "MIT",
  491 + "optional": true,
  492 + "os": [
  493 + "netbsd"
  494 + ],
  495 + "engines": {
  496 + "node": ">=18"
  497 + }
  498 + },
  499 + "node_modules/@esbuild/openbsd-arm64": {
  500 + "version": "0.25.0",
  501 + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz",
  502 + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==",
  503 + "cpu": [
  504 + "arm64"
  505 + ],
  506 + "dev": true,
  507 + "license": "MIT",
  508 + "optional": true,
  509 + "os": [
  510 + "openbsd"
  511 + ],
  512 + "engines": {
  513 + "node": ">=18"
  514 + }
  515 + },
  516 + "node_modules/@esbuild/openbsd-x64": {
  517 + "version": "0.25.0",
  518 + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz",
  519 + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==",
  520 + "cpu": [
  521 + "x64"
  522 + ],
  523 + "dev": true,
  524 + "license": "MIT",
  525 + "optional": true,
  526 + "os": [
  527 + "openbsd"
  528 + ],
  529 + "engines": {
  530 + "node": ">=18"
  531 + }
  532 + },
  533 + "node_modules/@esbuild/sunos-x64": {
  534 + "version": "0.25.0",
  535 + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz",
  536 + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==",
  537 + "cpu": [
  538 + "x64"
  539 + ],
  540 + "dev": true,
  541 + "license": "MIT",
  542 + "optional": true,
  543 + "os": [
  544 + "sunos"
  545 + ],
  546 + "engines": {
  547 + "node": ">=18"
  548 + }
  549 + },
  550 + "node_modules/@esbuild/win32-arm64": {
  551 + "version": "0.25.0",
  552 + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz",
  553 + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==",
  554 + "cpu": [
  555 + "arm64"
  556 + ],
  557 + "dev": true,
  558 + "license": "MIT",
  559 + "optional": true,
  560 + "os": [
  561 + "win32"
  562 + ],
  563 + "engines": {
  564 + "node": ">=18"
  565 + }
  566 + },
  567 + "node_modules/@esbuild/win32-ia32": {
  568 + "version": "0.25.0",
  569 + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz",
  570 + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==",
  571 + "cpu": [
  572 + "ia32"
  573 + ],
  574 + "dev": true,
  575 + "license": "MIT",
  576 + "optional": true,
  577 + "os": [
  578 + "win32"
  579 + ],
  580 + "engines": {
  581 + "node": ">=18"
  582 + }
  583 + },
  584 + "node_modules/@esbuild/win32-x64": {
  585 + "version": "0.25.0",
  586 + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz",
  587 + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==",
  588 + "cpu": [
  589 + "x64"
  590 + ],
  591 + "dev": true,
  592 + "license": "MIT",
  593 + "optional": true,
  594 + "os": [
  595 + "win32"
  596 + ],
  597 + "engines": {
  598 + "node": ">=18"
  599 + }
  600 + },
  601 + "node_modules/@jridgewell/sourcemap-codec": {
  602 + "version": "1.5.0",
  603 + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
  604 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
  605 + "license": "MIT"
  606 + },
  607 + "node_modules/@protobufjs/aspromise": {
  608 + "version": "1.1.2",
  609 + "resolved": "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
  610 + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
  611 + "license": "BSD-3-Clause"
  612 + },
  613 + "node_modules/@protobufjs/base64": {
  614 + "version": "1.1.2",
  615 + "resolved": "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz",
  616 + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
  617 + "license": "BSD-3-Clause"
  618 + },
  619 + "node_modules/@protobufjs/codegen": {
  620 + "version": "2.0.4",
  621 + "resolved": "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz",
  622 + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
  623 + "license": "BSD-3-Clause"
  624 + },
  625 + "node_modules/@protobufjs/eventemitter": {
  626 + "version": "1.1.0",
  627 + "resolved": "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
  628 + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
  629 + "license": "BSD-3-Clause"
  630 + },
  631 + "node_modules/@protobufjs/fetch": {
  632 + "version": "1.1.0",
  633 + "resolved": "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz",
  634 + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
  635 + "license": "BSD-3-Clause",
  636 + "dependencies": {
  637 + "@protobufjs/aspromise": "^1.1.1",
  638 + "@protobufjs/inquire": "^1.1.0"
  639 + }
  640 + },
  641 + "node_modules/@protobufjs/float": {
  642 + "version": "1.0.2",
  643 + "resolved": "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz",
  644 + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
  645 + "license": "BSD-3-Clause"
  646 + },
  647 + "node_modules/@protobufjs/inquire": {
  648 + "version": "1.1.0",
  649 + "resolved": "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz",
  650 + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
  651 + "license": "BSD-3-Clause"
  652 + },
  653 + "node_modules/@protobufjs/path": {
  654 + "version": "1.1.2",
  655 + "resolved": "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz",
  656 + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
  657 + "license": "BSD-3-Clause"
  658 + },
  659 + "node_modules/@protobufjs/pool": {
  660 + "version": "1.1.0",
  661 + "resolved": "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz",
  662 + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
  663 + "license": "BSD-3-Clause"
  664 + },
  665 + "node_modules/@protobufjs/utf8": {
  666 + "version": "1.1.0",
  667 + "resolved": "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz",
  668 + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
  669 + "license": "BSD-3-Clause"
  670 + },
  671 + "node_modules/@rollup/rollup-android-arm-eabi": {
  672 + "version": "4.34.9",
  673 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz",
  674 + "integrity": "sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==",
  675 + "cpu": [
  676 + "arm"
  677 + ],
  678 + "dev": true,
  679 + "license": "MIT",
  680 + "optional": true,
  681 + "os": [
  682 + "android"
  683 + ]
  684 + },
  685 + "node_modules/@rollup/rollup-android-arm64": {
  686 + "version": "4.34.9",
  687 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz",
  688 + "integrity": "sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==",
  689 + "cpu": [
  690 + "arm64"
  691 + ],
  692 + "dev": true,
  693 + "license": "MIT",
  694 + "optional": true,
  695 + "os": [
  696 + "android"
  697 + ]
  698 + },
  699 + "node_modules/@rollup/rollup-darwin-arm64": {
  700 + "version": "4.34.9",
  701 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz",
  702 + "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==",
  703 + "cpu": [
  704 + "arm64"
  705 + ],
  706 + "dev": true,
  707 + "license": "MIT",
  708 + "optional": true,
  709 + "os": [
  710 + "darwin"
  711 + ]
  712 + },
  713 + "node_modules/@rollup/rollup-darwin-x64": {
  714 + "version": "4.34.9",
  715 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz",
  716 + "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==",
  717 + "cpu": [
  718 + "x64"
  719 + ],
  720 + "dev": true,
  721 + "license": "MIT",
  722 + "optional": true,
  723 + "os": [
  724 + "darwin"
  725 + ]
  726 + },
  727 + "node_modules/@rollup/rollup-freebsd-arm64": {
  728 + "version": "4.34.9",
  729 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz",
  730 + "integrity": "sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==",
  731 + "cpu": [
  732 + "arm64"
  733 + ],
  734 + "dev": true,
  735 + "license": "MIT",
  736 + "optional": true,
  737 + "os": [
  738 + "freebsd"
  739 + ]
  740 + },
  741 + "node_modules/@rollup/rollup-freebsd-x64": {
  742 + "version": "4.34.9",
  743 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz",
  744 + "integrity": "sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==",
  745 + "cpu": [
  746 + "x64"
  747 + ],
  748 + "dev": true,
  749 + "license": "MIT",
  750 + "optional": true,
  751 + "os": [
  752 + "freebsd"
  753 + ]
  754 + },
  755 + "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
  756 + "version": "4.34.9",
  757 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz",
  758 + "integrity": "sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==",
  759 + "cpu": [
  760 + "arm"
  761 + ],
  762 + "dev": true,
  763 + "license": "MIT",
  764 + "optional": true,
  765 + "os": [
  766 + "linux"
  767 + ]
  768 + },
  769 + "node_modules/@rollup/rollup-linux-arm-musleabihf": {
  770 + "version": "4.34.9",
  771 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz",
  772 + "integrity": "sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==",
  773 + "cpu": [
  774 + "arm"
  775 + ],
  776 + "dev": true,
  777 + "license": "MIT",
  778 + "optional": true,
  779 + "os": [
  780 + "linux"
  781 + ]
  782 + },
  783 + "node_modules/@rollup/rollup-linux-arm64-gnu": {
  784 + "version": "4.34.9",
  785 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz",
  786 + "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==",
  787 + "cpu": [
  788 + "arm64"
  789 + ],
  790 + "dev": true,
  791 + "license": "MIT",
  792 + "optional": true,
  793 + "os": [
  794 + "linux"
  795 + ]
  796 + },
  797 + "node_modules/@rollup/rollup-linux-arm64-musl": {
  798 + "version": "4.34.9",
  799 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz",
  800 + "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==",
  801 + "cpu": [
  802 + "arm64"
  803 + ],
  804 + "dev": true,
  805 + "license": "MIT",
  806 + "optional": true,
  807 + "os": [
  808 + "linux"
  809 + ]
  810 + },
  811 + "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
  812 + "version": "4.34.9",
  813 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz",
  814 + "integrity": "sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==",
  815 + "cpu": [
  816 + "loong64"
  817 + ],
  818 + "dev": true,
  819 + "license": "MIT",
  820 + "optional": true,
  821 + "os": [
  822 + "linux"
  823 + ]
  824 + },
  825 + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
  826 + "version": "4.34.9",
  827 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz",
  828 + "integrity": "sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==",
  829 + "cpu": [
  830 + "ppc64"
  831 + ],
  832 + "dev": true,
  833 + "license": "MIT",
  834 + "optional": true,
  835 + "os": [
  836 + "linux"
  837 + ]
  838 + },
  839 + "node_modules/@rollup/rollup-linux-riscv64-gnu": {
  840 + "version": "4.34.9",
  841 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz",
  842 + "integrity": "sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==",
  843 + "cpu": [
  844 + "riscv64"
  845 + ],
  846 + "dev": true,
  847 + "license": "MIT",
  848 + "optional": true,
  849 + "os": [
  850 + "linux"
  851 + ]
  852 + },
  853 + "node_modules/@rollup/rollup-linux-s390x-gnu": {
  854 + "version": "4.34.9",
  855 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz",
  856 + "integrity": "sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==",
  857 + "cpu": [
  858 + "s390x"
  859 + ],
  860 + "dev": true,
  861 + "license": "MIT",
  862 + "optional": true,
  863 + "os": [
  864 + "linux"
  865 + ]
  866 + },
  867 + "node_modules/@rollup/rollup-linux-x64-gnu": {
  868 + "version": "4.34.9",
  869 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz",
  870 + "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==",
  871 + "cpu": [
  872 + "x64"
  873 + ],
  874 + "dev": true,
  875 + "license": "MIT",
  876 + "optional": true,
  877 + "os": [
  878 + "linux"
  879 + ]
  880 + },
  881 + "node_modules/@rollup/rollup-linux-x64-musl": {
  882 + "version": "4.34.9",
  883 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz",
  884 + "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==",
  885 + "cpu": [
  886 + "x64"
  887 + ],
  888 + "dev": true,
  889 + "license": "MIT",
  890 + "optional": true,
  891 + "os": [
  892 + "linux"
  893 + ]
  894 + },
  895 + "node_modules/@rollup/rollup-win32-arm64-msvc": {
  896 + "version": "4.34.9",
  897 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz",
  898 + "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==",
  899 + "cpu": [
  900 + "arm64"
  901 + ],
  902 + "dev": true,
  903 + "license": "MIT",
  904 + "optional": true,
  905 + "os": [
  906 + "win32"
  907 + ]
  908 + },
  909 + "node_modules/@rollup/rollup-win32-ia32-msvc": {
  910 + "version": "4.34.9",
  911 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz",
  912 + "integrity": "sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==",
  913 + "cpu": [
  914 + "ia32"
  915 + ],
  916 + "dev": true,
  917 + "license": "MIT",
  918 + "optional": true,
  919 + "os": [
  920 + "win32"
  921 + ]
  922 + },
  923 + "node_modules/@rollup/rollup-win32-x64-msvc": {
  924 + "version": "4.34.9",
  925 + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz",
  926 + "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==",
  927 + "cpu": [
  928 + "x64"
  929 + ],
  930 + "dev": true,
  931 + "license": "MIT",
  932 + "optional": true,
  933 + "os": [
  934 + "win32"
  935 + ]
  936 + },
  937 + "node_modules/@simonwep/pickr": {
  938 + "version": "1.8.2",
  939 + "resolved": "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz",
  940 + "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==",
  941 + "license": "MIT",
  942 + "dependencies": {
  943 + "core-js": "^3.15.1",
  944 + "nanopop": "^2.1.0"
  945 + }
  946 + },
  947 + "node_modules/@tweenjs/tween.js": {
  948 + "version": "25.0.0",
  949 + "resolved": "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-25.0.0.tgz",
  950 + "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==",
  951 + "license": "MIT"
  952 + },
  953 + "node_modules/@types/cesium": {
  954 + "version": "1.67.14",
  955 + "resolved": "https://registry.npmmirror.com/@types/cesium/-/cesium-1.67.14.tgz",
  956 + "integrity": "sha512-BGek4o6VY25IqmpdBd1awlULSVjyRrbn111xI/LRZQf4QUPlYfsXOYkun8vcXr+u+iYQkh9LAYNf2h0lE95xcA==",
  957 + "dev": true,
  958 + "license": "MIT"
  959 + },
  960 + "node_modules/@types/estree": {
  961 + "version": "1.0.6",
  962 + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz",
  963 + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
  964 + "dev": true,
  965 + "license": "MIT"
  966 + },
  967 + "node_modules/@types/node": {
  968 + "version": "22.13.9",
  969 + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.13.9.tgz",
  970 + "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==",
  971 + "license": "MIT",
  972 + "dependencies": {
  973 + "undici-types": "~6.20.0"
  974 + }
  975 + },
  976 + "node_modules/@types/trusted-types": {
  977 + "version": "2.0.7",
  978 + "resolved": "https://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.7.tgz",
  979 + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
  980 + "license": "MIT",
  981 + "optional": true
  982 + },
  983 + "node_modules/@vitejs/plugin-vue": {
  984 + "version": "5.2.1",
  985 + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz",
  986 + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==",
  987 + "dev": true,
  988 + "license": "MIT",
  989 + "engines": {
  990 + "node": "^18.0.0 || >=20.0.0"
  991 + },
  992 + "peerDependencies": {
  993 + "vite": "^5.0.0 || ^6.0.0",
  994 + "vue": "^3.2.25"
  995 + }
  996 + },
  997 + "node_modules/@volar/language-core": {
  998 + "version": "2.4.11",
  999 + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.11.tgz",
  1000 + "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==",
  1001 + "dev": true,
  1002 + "license": "MIT",
  1003 + "dependencies": {
  1004 + "@volar/source-map": "2.4.11"
  1005 + }
  1006 + },
  1007 + "node_modules/@volar/source-map": {
  1008 + "version": "2.4.11",
  1009 + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.4.11.tgz",
  1010 + "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==",
  1011 + "dev": true,
  1012 + "license": "MIT"
  1013 + },
  1014 + "node_modules/@volar/typescript": {
  1015 + "version": "2.4.11",
  1016 + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-2.4.11.tgz",
  1017 + "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==",
  1018 + "dev": true,
  1019 + "license": "MIT",
  1020 + "dependencies": {
  1021 + "@volar/language-core": "2.4.11",
  1022 + "path-browserify": "^1.0.1",
  1023 + "vscode-uri": "^3.0.8"
  1024 + }
  1025 + },
  1026 + "node_modules/@vue/compiler-core": {
  1027 + "version": "3.5.13",
  1028 + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
  1029 + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
  1030 + "license": "MIT",
  1031 + "dependencies": {
  1032 + "@babel/parser": "^7.25.3",
  1033 + "@vue/shared": "3.5.13",
  1034 + "entities": "^4.5.0",
  1035 + "estree-walker": "^2.0.2",
  1036 + "source-map-js": "^1.2.0"
  1037 + }
  1038 + },
  1039 + "node_modules/@vue/compiler-dom": {
  1040 + "version": "3.5.13",
  1041 + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
  1042 + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
  1043 + "license": "MIT",
  1044 + "dependencies": {
  1045 + "@vue/compiler-core": "3.5.13",
  1046 + "@vue/shared": "3.5.13"
  1047 + }
  1048 + },
  1049 + "node_modules/@vue/compiler-sfc": {
  1050 + "version": "3.5.13",
  1051 + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
  1052 + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
  1053 + "license": "MIT",
  1054 + "dependencies": {
  1055 + "@babel/parser": "^7.25.3",
  1056 + "@vue/compiler-core": "3.5.13",
  1057 + "@vue/compiler-dom": "3.5.13",
  1058 + "@vue/compiler-ssr": "3.5.13",
  1059 + "@vue/shared": "3.5.13",
  1060 + "estree-walker": "^2.0.2",
  1061 + "magic-string": "^0.30.11",
  1062 + "postcss": "^8.4.48",
  1063 + "source-map-js": "^1.2.0"
  1064 + }
  1065 + },
  1066 + "node_modules/@vue/compiler-ssr": {
  1067 + "version": "3.5.13",
  1068 + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
  1069 + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
  1070 + "license": "MIT",
  1071 + "dependencies": {
  1072 + "@vue/compiler-dom": "3.5.13",
  1073 + "@vue/shared": "3.5.13"
  1074 + }
  1075 + },
  1076 + "node_modules/@vue/compiler-vue2": {
  1077 + "version": "2.7.16",
  1078 + "resolved": "https://registry.npmmirror.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz",
  1079 + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==",
  1080 + "dev": true,
  1081 + "license": "MIT",
  1082 + "dependencies": {
  1083 + "de-indent": "^1.0.2",
  1084 + "he": "^1.2.0"
  1085 + }
  1086 + },
  1087 + "node_modules/@vue/language-core": {
  1088 + "version": "2.2.8",
  1089 + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.2.8.tgz",
  1090 + "integrity": "sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==",
  1091 + "dev": true,
  1092 + "license": "MIT",
  1093 + "dependencies": {
  1094 + "@volar/language-core": "~2.4.11",
  1095 + "@vue/compiler-dom": "^3.5.0",
  1096 + "@vue/compiler-vue2": "^2.7.16",
  1097 + "@vue/shared": "^3.5.0",
  1098 + "alien-signals": "^1.0.3",
  1099 + "minimatch": "^9.0.3",
  1100 + "muggle-string": "^0.4.1",
  1101 + "path-browserify": "^1.0.1"
  1102 + },
  1103 + "peerDependencies": {
  1104 + "typescript": "*"
  1105 + },
  1106 + "peerDependenciesMeta": {
  1107 + "typescript": {
  1108 + "optional": true
  1109 + }
  1110 + }
  1111 + },
  1112 + "node_modules/@vue/reactivity": {
  1113 + "version": "3.5.13",
  1114 + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz",
  1115 + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
  1116 + "license": "MIT",
  1117 + "dependencies": {
  1118 + "@vue/shared": "3.5.13"
  1119 + }
  1120 + },
  1121 + "node_modules/@vue/runtime-core": {
  1122 + "version": "3.5.13",
  1123 + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
  1124 + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
  1125 + "license": "MIT",
  1126 + "dependencies": {
  1127 + "@vue/reactivity": "3.5.13",
  1128 + "@vue/shared": "3.5.13"
  1129 + }
  1130 + },
  1131 + "node_modules/@vue/runtime-dom": {
  1132 + "version": "3.5.13",
  1133 + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
  1134 + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
  1135 + "license": "MIT",
  1136 + "dependencies": {
  1137 + "@vue/reactivity": "3.5.13",
  1138 + "@vue/runtime-core": "3.5.13",
  1139 + "@vue/shared": "3.5.13",
  1140 + "csstype": "^3.1.3"
  1141 + }
  1142 + },
  1143 + "node_modules/@vue/server-renderer": {
  1144 + "version": "3.5.13",
  1145 + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
  1146 + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
  1147 + "license": "MIT",
  1148 + "dependencies": {
  1149 + "@vue/compiler-ssr": "3.5.13",
  1150 + "@vue/shared": "3.5.13"
  1151 + },
  1152 + "peerDependencies": {
  1153 + "vue": "3.5.13"
  1154 + }
  1155 + },
  1156 + "node_modules/@vue/shared": {
  1157 + "version": "3.5.13",
  1158 + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz",
  1159 + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
  1160 + "license": "MIT"
  1161 + },
  1162 + "node_modules/@vue/tsconfig": {
  1163 + "version": "0.7.0",
  1164 + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.7.0.tgz",
  1165 + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==",
  1166 + "dev": true,
  1167 + "license": "MIT",
  1168 + "peerDependencies": {
  1169 + "typescript": "5.x",
  1170 + "vue": "^3.4.0"
  1171 + },
  1172 + "peerDependenciesMeta": {
  1173 + "typescript": {
  1174 + "optional": true
  1175 + },
  1176 + "vue": {
  1177 + "optional": true
  1178 + }
  1179 + }
  1180 + },
  1181 + "node_modules/@zip.js/zip.js": {
  1182 + "version": "2.7.57",
  1183 + "resolved": "https://registry.npmmirror.com/@zip.js/zip.js/-/zip.js-2.7.57.tgz",
  1184 + "integrity": "sha512-BtonQ1/jDnGiMed6OkV6rZYW78gLmLswkHOzyMrMb+CAR7CZO8phOHO6c2qw6qb1g1betN7kwEHhhZk30dv+NA==",
  1185 + "license": "BSD-3-Clause",
  1186 + "engines": {
  1187 + "bun": ">=0.7.0",
  1188 + "deno": ">=1.0.0",
  1189 + "node": ">=16.5.0"
  1190 + }
  1191 + },
  1192 + "node_modules/alien-signals": {
  1193 + "version": "1.0.4",
  1194 + "resolved": "https://registry.npmmirror.com/alien-signals/-/alien-signals-1.0.4.tgz",
  1195 + "integrity": "sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==",
  1196 + "dev": true,
  1197 + "license": "MIT"
  1198 + },
  1199 + "node_modules/ant-design-vue": {
  1200 + "version": "4.2.6",
  1201 + "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.2.6.tgz",
  1202 + "integrity": "sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==",
  1203 + "license": "MIT",
  1204 + "dependencies": {
  1205 + "@ant-design/colors": "^6.0.0",
  1206 + "@ant-design/icons-vue": "^7.0.0",
  1207 + "@babel/runtime": "^7.10.5",
  1208 + "@ctrl/tinycolor": "^3.5.0",
  1209 + "@emotion/hash": "^0.9.0",
  1210 + "@emotion/unitless": "^0.8.0",
  1211 + "@simonwep/pickr": "~1.8.0",
  1212 + "array-tree-filter": "^2.1.0",
  1213 + "async-validator": "^4.0.0",
  1214 + "csstype": "^3.1.1",
  1215 + "dayjs": "^1.10.5",
  1216 + "dom-align": "^1.12.1",
  1217 + "dom-scroll-into-view": "^2.0.0",
  1218 + "lodash": "^4.17.21",
  1219 + "lodash-es": "^4.17.15",
  1220 + "resize-observer-polyfill": "^1.5.1",
  1221 + "scroll-into-view-if-needed": "^2.2.25",
  1222 + "shallow-equal": "^1.0.0",
  1223 + "stylis": "^4.1.3",
  1224 + "throttle-debounce": "^5.0.0",
  1225 + "vue-types": "^3.0.0",
  1226 + "warning": "^4.0.0"
  1227 + },
  1228 + "engines": {
  1229 + "node": ">=12.22.0"
  1230 + },
  1231 + "funding": {
  1232 + "type": "opencollective",
  1233 + "url": "https://opencollective.com/ant-design-vue"
  1234 + },
  1235 + "peerDependencies": {
  1236 + "vue": ">=3.2.0"
  1237 + }
  1238 + },
  1239 + "node_modules/array-tree-filter": {
  1240 + "version": "2.1.0",
  1241 + "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz",
  1242 + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==",
  1243 + "license": "MIT"
  1244 + },
  1245 + "node_modules/async-validator": {
  1246 + "version": "4.2.5",
  1247 + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
  1248 + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==",
  1249 + "license": "MIT"
  1250 + },
  1251 + "node_modules/asynckit": {
  1252 + "version": "0.4.0",
  1253 + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
  1254 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
  1255 + "license": "MIT"
  1256 + },
  1257 + "node_modules/autolinker": {
  1258 + "version": "4.1.0",
  1259 + "resolved": "https://registry.npmmirror.com/autolinker/-/autolinker-4.1.0.tgz",
  1260 + "integrity": "sha512-mYzdZMei1zIXcHVS/LjnuCJG+C/hNi8O+5m0R8YWtrIBWGrjL8CVzEZXxOfH0l1kioEXHNpUJRkgZdyL4GgIHQ==",
  1261 + "license": "MIT",
  1262 + "dependencies": {
  1263 + "tslib": "^2.8.1"
  1264 + }
  1265 + },
  1266 + "node_modules/axios": {
  1267 + "version": "1.8.1",
  1268 + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.8.1.tgz",
  1269 + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==",
  1270 + "license": "MIT",
  1271 + "dependencies": {
  1272 + "follow-redirects": "^1.15.6",
  1273 + "form-data": "^4.0.0",
  1274 + "proxy-from-env": "^1.1.0"
  1275 + }
  1276 + },
  1277 + "node_modules/balanced-match": {
  1278 + "version": "1.0.2",
  1279 + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
  1280 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
  1281 + "dev": true,
  1282 + "license": "MIT"
  1283 + },
  1284 + "node_modules/bitmap-sdf": {
  1285 + "version": "1.0.4",
  1286 + "resolved": "https://registry.npmmirror.com/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz",
  1287 + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==",
  1288 + "license": "MIT"
  1289 + },
  1290 + "node_modules/brace-expansion": {
  1291 + "version": "2.0.1",
  1292 + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
  1293 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
  1294 + "dev": true,
  1295 + "license": "MIT",
  1296 + "dependencies": {
  1297 + "balanced-match": "^1.0.0"
  1298 + }
  1299 + },
  1300 + "node_modules/call-bind-apply-helpers": {
  1301 + "version": "1.0.2",
  1302 + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  1303 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
  1304 + "license": "MIT",
  1305 + "dependencies": {
  1306 + "es-errors": "^1.3.0",
  1307 + "function-bind": "^1.1.2"
  1308 + },
  1309 + "engines": {
  1310 + "node": ">= 0.4"
  1311 + }
  1312 + },
  1313 + "node_modules/cesium": {
  1314 + "version": "1.127.0",
  1315 + "resolved": "https://registry.npmmirror.com/cesium/-/cesium-1.127.0.tgz",
  1316 + "integrity": "sha512-MRGkPb3ClEkAI9viZxxdD3LCu7ydOzOKdJ6/iPtBx1GUsPCZNbgB0IH7wmhwgbxA5sjv4/a90+mvR9CoLP1PWQ==",
  1317 + "license": "Apache-2.0",
  1318 + "workspaces": [
  1319 + "packages/engine",
  1320 + "packages/widgets"
  1321 + ],
  1322 + "dependencies": {
  1323 + "@cesium/engine": "^15.0.0",
  1324 + "@cesium/widgets": "^11.0.0"
  1325 + },
  1326 + "engines": {
  1327 + "node": ">=18.18.0"
  1328 + }
  1329 + },
  1330 + "node_modules/combined-stream": {
  1331 + "version": "1.0.8",
  1332 + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
  1333 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
  1334 + "license": "MIT",
  1335 + "dependencies": {
  1336 + "delayed-stream": "~1.0.0"
  1337 + },
  1338 + "engines": {
  1339 + "node": ">= 0.8"
  1340 + }
  1341 + },
  1342 + "node_modules/commander": {
  1343 + "version": "2.20.3",
  1344 + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
  1345 + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
  1346 + "license": "MIT"
  1347 + },
  1348 + "node_modules/compute-scroll-into-view": {
  1349 + "version": "1.0.20",
  1350 + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
  1351 + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
  1352 + "license": "MIT"
  1353 + },
  1354 + "node_modules/core-js": {
  1355 + "version": "3.41.0",
  1356 + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.41.0.tgz",
  1357 + "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==",
  1358 + "hasInstallScript": true,
  1359 + "license": "MIT",
  1360 + "funding": {
  1361 + "type": "opencollective",
  1362 + "url": "https://opencollective.com/core-js"
  1363 + }
  1364 + },
  1365 + "node_modules/csstype": {
  1366 + "version": "3.1.3",
  1367 + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
  1368 + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
  1369 + "license": "MIT"
  1370 + },
  1371 + "node_modules/dayjs": {
  1372 + "version": "1.11.13",
  1373 + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
  1374 + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
  1375 + "license": "MIT"
  1376 + },
  1377 + "node_modules/de-indent": {
  1378 + "version": "1.0.2",
  1379 + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
  1380 + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
  1381 + "dev": true,
  1382 + "license": "MIT"
  1383 + },
  1384 + "node_modules/delayed-stream": {
  1385 + "version": "1.0.0",
  1386 + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
  1387 + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
  1388 + "license": "MIT",
  1389 + "engines": {
  1390 + "node": ">=0.4.0"
  1391 + }
  1392 + },
  1393 + "node_modules/dom-align": {
  1394 + "version": "1.12.4",
  1395 + "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz",
  1396 + "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==",
  1397 + "license": "MIT"
  1398 + },
  1399 + "node_modules/dom-scroll-into-view": {
  1400 + "version": "2.0.1",
  1401 + "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
  1402 + "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==",
  1403 + "license": "MIT"
  1404 + },
  1405 + "node_modules/dompurify": {
  1406 + "version": "3.2.4",
  1407 + "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-3.2.4.tgz",
  1408 + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==",
  1409 + "license": "(MPL-2.0 OR Apache-2.0)",
  1410 + "optionalDependencies": {
  1411 + "@types/trusted-types": "^2.0.7"
  1412 + }
  1413 + },
  1414 + "node_modules/draco3d": {
  1415 + "version": "1.5.7",
  1416 + "resolved": "https://registry.npmmirror.com/draco3d/-/draco3d-1.5.7.tgz",
  1417 + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==",
  1418 + "license": "Apache-2.0"
  1419 + },
  1420 + "node_modules/dunder-proto": {
  1421 + "version": "1.0.1",
  1422 + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
  1423 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  1424 + "license": "MIT",
  1425 + "dependencies": {
  1426 + "call-bind-apply-helpers": "^1.0.1",
  1427 + "es-errors": "^1.3.0",
  1428 + "gopd": "^1.2.0"
  1429 + },
  1430 + "engines": {
  1431 + "node": ">= 0.4"
  1432 + }
  1433 + },
  1434 + "node_modules/earcut": {
  1435 + "version": "3.0.1",
  1436 + "resolved": "https://registry.npmmirror.com/earcut/-/earcut-3.0.1.tgz",
  1437 + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==",
  1438 + "license": "ISC"
  1439 + },
  1440 + "node_modules/entities": {
  1441 + "version": "4.5.0",
  1442 + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
  1443 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
  1444 + "license": "BSD-2-Clause",
  1445 + "engines": {
  1446 + "node": ">=0.12"
  1447 + },
  1448 + "funding": {
  1449 + "url": "https://github.com/fb55/entities?sponsor=1"
  1450 + }
  1451 + },
  1452 + "node_modules/es-define-property": {
  1453 + "version": "1.0.1",
  1454 + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
  1455 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  1456 + "license": "MIT",
  1457 + "engines": {
  1458 + "node": ">= 0.4"
  1459 + }
  1460 + },
  1461 + "node_modules/es-errors": {
  1462 + "version": "1.3.0",
  1463 + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
  1464 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  1465 + "license": "MIT",
  1466 + "engines": {
  1467 + "node": ">= 0.4"
  1468 + }
  1469 + },
  1470 + "node_modules/es-object-atoms": {
  1471 + "version": "1.1.1",
  1472 + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  1473 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  1474 + "license": "MIT",
  1475 + "dependencies": {
  1476 + "es-errors": "^1.3.0"
  1477 + },
  1478 + "engines": {
  1479 + "node": ">= 0.4"
  1480 + }
  1481 + },
  1482 + "node_modules/es-set-tostringtag": {
  1483 + "version": "2.1.0",
  1484 + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  1485 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
  1486 + "license": "MIT",
  1487 + "dependencies": {
  1488 + "es-errors": "^1.3.0",
  1489 + "get-intrinsic": "^1.2.6",
  1490 + "has-tostringtag": "^1.0.2",
  1491 + "hasown": "^2.0.2"
  1492 + },
  1493 + "engines": {
  1494 + "node": ">= 0.4"
  1495 + }
  1496 + },
  1497 + "node_modules/esbuild": {
  1498 + "version": "0.25.0",
  1499 + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.0.tgz",
  1500 + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
  1501 + "dev": true,
  1502 + "hasInstallScript": true,
  1503 + "license": "MIT",
  1504 + "bin": {
  1505 + "esbuild": "bin/esbuild"
  1506 + },
  1507 + "engines": {
  1508 + "node": ">=18"
  1509 + },
  1510 + "optionalDependencies": {
  1511 + "@esbuild/aix-ppc64": "0.25.0",
  1512 + "@esbuild/android-arm": "0.25.0",
  1513 + "@esbuild/android-arm64": "0.25.0",
  1514 + "@esbuild/android-x64": "0.25.0",
  1515 + "@esbuild/darwin-arm64": "0.25.0",
  1516 + "@esbuild/darwin-x64": "0.25.0",
  1517 + "@esbuild/freebsd-arm64": "0.25.0",
  1518 + "@esbuild/freebsd-x64": "0.25.0",
  1519 + "@esbuild/linux-arm": "0.25.0",
  1520 + "@esbuild/linux-arm64": "0.25.0",
  1521 + "@esbuild/linux-ia32": "0.25.0",
  1522 + "@esbuild/linux-loong64": "0.25.0",
  1523 + "@esbuild/linux-mips64el": "0.25.0",
  1524 + "@esbuild/linux-ppc64": "0.25.0",
  1525 + "@esbuild/linux-riscv64": "0.25.0",
  1526 + "@esbuild/linux-s390x": "0.25.0",
  1527 + "@esbuild/linux-x64": "0.25.0",
  1528 + "@esbuild/netbsd-arm64": "0.25.0",
  1529 + "@esbuild/netbsd-x64": "0.25.0",
  1530 + "@esbuild/openbsd-arm64": "0.25.0",
  1531 + "@esbuild/openbsd-x64": "0.25.0",
  1532 + "@esbuild/sunos-x64": "0.25.0",
  1533 + "@esbuild/win32-arm64": "0.25.0",
  1534 + "@esbuild/win32-ia32": "0.25.0",
  1535 + "@esbuild/win32-x64": "0.25.0"
  1536 + }
  1537 + },
  1538 + "node_modules/estree-walker": {
  1539 + "version": "2.0.2",
  1540 + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
  1541 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
  1542 + "license": "MIT"
  1543 + },
  1544 + "node_modules/follow-redirects": {
  1545 + "version": "1.15.9",
  1546 + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
  1547 + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
  1548 + "funding": [
  1549 + {
  1550 + "type": "individual",
  1551 + "url": "https://github.com/sponsors/RubenVerborgh"
  1552 + }
  1553 + ],
  1554 + "license": "MIT",
  1555 + "engines": {
  1556 + "node": ">=4.0"
  1557 + },
  1558 + "peerDependenciesMeta": {
  1559 + "debug": {
  1560 + "optional": true
  1561 + }
  1562 + }
  1563 + },
  1564 + "node_modules/form-data": {
  1565 + "version": "4.0.2",
  1566 + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
  1567 + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
  1568 + "license": "MIT",
  1569 + "dependencies": {
  1570 + "asynckit": "^0.4.0",
  1571 + "combined-stream": "^1.0.8",
  1572 + "es-set-tostringtag": "^2.1.0",
  1573 + "mime-types": "^2.1.12"
  1574 + },
  1575 + "engines": {
  1576 + "node": ">= 6"
  1577 + }
  1578 + },
  1579 + "node_modules/fsevents": {
  1580 + "version": "2.3.3",
  1581 + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
  1582 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
  1583 + "dev": true,
  1584 + "hasInstallScript": true,
  1585 + "license": "MIT",
  1586 + "optional": true,
  1587 + "os": [
  1588 + "darwin"
  1589 + ],
  1590 + "engines": {
  1591 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
  1592 + }
  1593 + },
  1594 + "node_modules/function-bind": {
  1595 + "version": "1.1.2",
  1596 + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
  1597 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  1598 + "license": "MIT",
  1599 + "funding": {
  1600 + "url": "https://github.com/sponsors/ljharb"
  1601 + }
  1602 + },
  1603 + "node_modules/get-intrinsic": {
  1604 + "version": "1.3.0",
  1605 + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  1606 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  1607 + "license": "MIT",
  1608 + "dependencies": {
  1609 + "call-bind-apply-helpers": "^1.0.2",
  1610 + "es-define-property": "^1.0.1",
  1611 + "es-errors": "^1.3.0",
  1612 + "es-object-atoms": "^1.1.1",
  1613 + "function-bind": "^1.1.2",
  1614 + "get-proto": "^1.0.1",
  1615 + "gopd": "^1.2.0",
  1616 + "has-symbols": "^1.1.0",
  1617 + "hasown": "^2.0.2",
  1618 + "math-intrinsics": "^1.1.0"
  1619 + },
  1620 + "engines": {
  1621 + "node": ">= 0.4"
  1622 + },
  1623 + "funding": {
  1624 + "url": "https://github.com/sponsors/ljharb"
  1625 + }
  1626 + },
  1627 + "node_modules/get-proto": {
  1628 + "version": "1.0.1",
  1629 + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
  1630 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  1631 + "license": "MIT",
  1632 + "dependencies": {
  1633 + "dunder-proto": "^1.0.1",
  1634 + "es-object-atoms": "^1.0.0"
  1635 + },
  1636 + "engines": {
  1637 + "node": ">= 0.4"
  1638 + }
  1639 + },
  1640 + "node_modules/gopd": {
  1641 + "version": "1.2.0",
  1642 + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
  1643 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  1644 + "license": "MIT",
  1645 + "engines": {
  1646 + "node": ">= 0.4"
  1647 + },
  1648 + "funding": {
  1649 + "url": "https://github.com/sponsors/ljharb"
  1650 + }
  1651 + },
  1652 + "node_modules/grapheme-splitter": {
  1653 + "version": "1.0.4",
  1654 + "resolved": "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
  1655 + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
  1656 + "license": "MIT"
  1657 + },
  1658 + "node_modules/has-symbols": {
  1659 + "version": "1.1.0",
  1660 + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
  1661 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  1662 + "license": "MIT",
  1663 + "engines": {
  1664 + "node": ">= 0.4"
  1665 + },
  1666 + "funding": {
  1667 + "url": "https://github.com/sponsors/ljharb"
  1668 + }
  1669 + },
  1670 + "node_modules/has-tostringtag": {
  1671 + "version": "1.0.2",
  1672 + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  1673 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
  1674 + "license": "MIT",
  1675 + "dependencies": {
  1676 + "has-symbols": "^1.0.3"
  1677 + },
  1678 + "engines": {
  1679 + "node": ">= 0.4"
  1680 + },
  1681 + "funding": {
  1682 + "url": "https://github.com/sponsors/ljharb"
  1683 + }
  1684 + },
  1685 + "node_modules/hasown": {
  1686 + "version": "2.0.2",
  1687 + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
  1688 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
  1689 + "license": "MIT",
  1690 + "dependencies": {
  1691 + "function-bind": "^1.1.2"
  1692 + },
  1693 + "engines": {
  1694 + "node": ">= 0.4"
  1695 + }
  1696 + },
  1697 + "node_modules/he": {
  1698 + "version": "1.2.0",
  1699 + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
  1700 + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
  1701 + "dev": true,
  1702 + "license": "MIT",
  1703 + "bin": {
  1704 + "he": "bin/he"
  1705 + }
  1706 + },
  1707 + "node_modules/is-plain-object": {
  1708 + "version": "3.0.1",
  1709 + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz",
  1710 + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
  1711 + "license": "MIT",
  1712 + "engines": {
  1713 + "node": ">=0.10.0"
  1714 + }
  1715 + },
  1716 + "node_modules/js-tokens": {
  1717 + "version": "4.0.0",
  1718 + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
  1719 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
  1720 + "license": "MIT"
  1721 + },
  1722 + "node_modules/jsep": {
  1723 + "version": "1.4.0",
  1724 + "resolved": "https://registry.npmmirror.com/jsep/-/jsep-1.4.0.tgz",
  1725 + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==",
  1726 + "license": "MIT",
  1727 + "engines": {
  1728 + "node": ">= 10.16.0"
  1729 + }
  1730 + },
  1731 + "node_modules/kdbush": {
  1732 + "version": "4.0.2",
  1733 + "resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
  1734 + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
  1735 + "license": "ISC"
  1736 + },
  1737 + "node_modules/ktx-parse": {
  1738 + "version": "1.0.0",
  1739 + "resolved": "https://registry.npmmirror.com/ktx-parse/-/ktx-parse-1.0.0.tgz",
  1740 + "integrity": "sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg==",
  1741 + "license": "MIT"
  1742 + },
  1743 + "node_modules/lerc": {
  1744 + "version": "2.0.0",
  1745 + "resolved": "https://registry.npmmirror.com/lerc/-/lerc-2.0.0.tgz",
  1746 + "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==",
  1747 + "license": "Apache-2.0"
  1748 + },
  1749 + "node_modules/lodash": {
  1750 + "version": "4.17.21",
  1751 + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
  1752 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
  1753 + "license": "MIT"
  1754 + },
  1755 + "node_modules/lodash-es": {
  1756 + "version": "4.17.21",
  1757 + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
  1758 + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
  1759 + "license": "MIT"
  1760 + },
  1761 + "node_modules/long": {
  1762 + "version": "5.3.1",
  1763 + "resolved": "https://registry.npmmirror.com/long/-/long-5.3.1.tgz",
  1764 + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==",
  1765 + "license": "Apache-2.0"
  1766 + },
  1767 + "node_modules/loose-envify": {
  1768 + "version": "1.4.0",
  1769 + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
  1770 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
  1771 + "license": "MIT",
  1772 + "dependencies": {
  1773 + "js-tokens": "^3.0.0 || ^4.0.0"
  1774 + },
  1775 + "bin": {
  1776 + "loose-envify": "cli.js"
  1777 + }
  1778 + },
  1779 + "node_modules/magic-string": {
  1780 + "version": "0.30.17",
  1781 + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",
  1782 + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
  1783 + "license": "MIT",
  1784 + "dependencies": {
  1785 + "@jridgewell/sourcemap-codec": "^1.5.0"
  1786 + }
  1787 + },
  1788 + "node_modules/math-intrinsics": {
  1789 + "version": "1.1.0",
  1790 + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  1791 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  1792 + "license": "MIT",
  1793 + "engines": {
  1794 + "node": ">= 0.4"
  1795 + }
  1796 + },
  1797 + "node_modules/mersenne-twister": {
  1798 + "version": "1.1.0",
  1799 + "resolved": "https://registry.npmmirror.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz",
  1800 + "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==",
  1801 + "license": "MIT"
  1802 + },
  1803 + "node_modules/meshoptimizer": {
  1804 + "version": "0.22.0",
  1805 + "resolved": "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.22.0.tgz",
  1806 + "integrity": "sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==",
  1807 + "license": "MIT"
  1808 + },
  1809 + "node_modules/mime-db": {
  1810 + "version": "1.52.0",
  1811 + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
  1812 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
  1813 + "license": "MIT",
  1814 + "engines": {
  1815 + "node": ">= 0.6"
  1816 + }
  1817 + },
  1818 + "node_modules/mime-types": {
  1819 + "version": "2.1.35",
  1820 + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
  1821 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
  1822 + "license": "MIT",
  1823 + "dependencies": {
  1824 + "mime-db": "1.52.0"
  1825 + },
  1826 + "engines": {
  1827 + "node": ">= 0.6"
  1828 + }
  1829 + },
  1830 + "node_modules/minimatch": {
  1831 + "version": "9.0.5",
  1832 + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
  1833 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
  1834 + "dev": true,
  1835 + "license": "ISC",
  1836 + "dependencies": {
  1837 + "brace-expansion": "^2.0.1"
  1838 + },
  1839 + "engines": {
  1840 + "node": ">=16 || 14 >=14.17"
  1841 + },
  1842 + "funding": {
  1843 + "url": "https://github.com/sponsors/isaacs"
  1844 + }
  1845 + },
  1846 + "node_modules/muggle-string": {
  1847 + "version": "0.4.1",
  1848 + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz",
  1849 + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
  1850 + "dev": true,
  1851 + "license": "MIT"
  1852 + },
  1853 + "node_modules/nanoid": {
  1854 + "version": "3.3.8",
  1855 + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz",
  1856 + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
  1857 + "funding": [
  1858 + {
  1859 + "type": "github",
  1860 + "url": "https://github.com/sponsors/ai"
  1861 + }
  1862 + ],
  1863 + "license": "MIT",
  1864 + "bin": {
  1865 + "nanoid": "bin/nanoid.cjs"
  1866 + },
  1867 + "engines": {
  1868 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
  1869 + }
  1870 + },
  1871 + "node_modules/nanopop": {
  1872 + "version": "2.4.2",
  1873 + "resolved": "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz",
  1874 + "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==",
  1875 + "license": "MIT"
  1876 + },
  1877 + "node_modules/nosleep.js": {
  1878 + "version": "0.12.0",
  1879 + "resolved": "https://registry.npmmirror.com/nosleep.js/-/nosleep.js-0.12.0.tgz",
  1880 + "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==",
  1881 + "license": "MIT"
  1882 + },
  1883 + "node_modules/pako": {
  1884 + "version": "2.1.0",
  1885 + "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
  1886 + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
  1887 + "license": "(MIT AND Zlib)"
  1888 + },
  1889 + "node_modules/path-browserify": {
  1890 + "version": "1.0.1",
  1891 + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz",
  1892 + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
  1893 + "dev": true,
  1894 + "license": "MIT"
  1895 + },
  1896 + "node_modules/picocolors": {
  1897 + "version": "1.1.1",
  1898 + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
  1899 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
  1900 + "license": "ISC"
  1901 + },
  1902 + "node_modules/postcss": {
  1903 + "version": "8.5.3",
  1904 + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz",
  1905 + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
  1906 + "funding": [
  1907 + {
  1908 + "type": "opencollective",
  1909 + "url": "https://opencollective.com/postcss/"
  1910 + },
  1911 + {
  1912 + "type": "tidelift",
  1913 + "url": "https://tidelift.com/funding/github/npm/postcss"
  1914 + },
  1915 + {
  1916 + "type": "github",
  1917 + "url": "https://github.com/sponsors/ai"
  1918 + }
  1919 + ],
  1920 + "license": "MIT",
  1921 + "dependencies": {
  1922 + "nanoid": "^3.3.8",
  1923 + "picocolors": "^1.1.1",
  1924 + "source-map-js": "^1.2.1"
  1925 + },
  1926 + "engines": {
  1927 + "node": "^10 || ^12 || >=14"
  1928 + }
  1929 + },
  1930 + "node_modules/protobufjs": {
  1931 + "version": "7.4.0",
  1932 + "resolved": "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.4.0.tgz",
  1933 + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==",
  1934 + "hasInstallScript": true,
  1935 + "license": "BSD-3-Clause",
  1936 + "dependencies": {
  1937 + "@protobufjs/aspromise": "^1.1.2",
  1938 + "@protobufjs/base64": "^1.1.2",
  1939 + "@protobufjs/codegen": "^2.0.4",
  1940 + "@protobufjs/eventemitter": "^1.1.0",
  1941 + "@protobufjs/fetch": "^1.1.0",
  1942 + "@protobufjs/float": "^1.0.2",
  1943 + "@protobufjs/inquire": "^1.1.0",
  1944 + "@protobufjs/path": "^1.1.2",
  1945 + "@protobufjs/pool": "^1.1.0",
  1946 + "@protobufjs/utf8": "^1.1.0",
  1947 + "@types/node": ">=13.7.0",
  1948 + "long": "^5.0.0"
  1949 + },
  1950 + "engines": {
  1951 + "node": ">=12.0.0"
  1952 + }
  1953 + },
  1954 + "node_modules/proxy-from-env": {
  1955 + "version": "1.1.0",
  1956 + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
  1957 + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
  1958 + "license": "MIT"
  1959 + },
  1960 + "node_modules/quickselect": {
  1961 + "version": "2.0.0",
  1962 + "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz",
  1963 + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
  1964 + "license": "ISC"
  1965 + },
  1966 + "node_modules/rbush": {
  1967 + "version": "3.0.1",
  1968 + "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz",
  1969 + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
  1970 + "license": "MIT",
  1971 + "dependencies": {
  1972 + "quickselect": "^2.0.0"
  1973 + }
  1974 + },
  1975 + "node_modules/regenerator-runtime": {
  1976 + "version": "0.14.1",
  1977 + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
  1978 + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
  1979 + "license": "MIT"
  1980 + },
  1981 + "node_modules/resize-observer-polyfill": {
  1982 + "version": "1.5.1",
  1983 + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
  1984 + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
  1985 + "license": "MIT"
  1986 + },
  1987 + "node_modules/rollup": {
  1988 + "version": "4.34.9",
  1989 + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.34.9.tgz",
  1990 + "integrity": "sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==",
  1991 + "dev": true,
  1992 + "license": "MIT",
  1993 + "dependencies": {
  1994 + "@types/estree": "1.0.6"
  1995 + },
  1996 + "bin": {
  1997 + "rollup": "dist/bin/rollup"
  1998 + },
  1999 + "engines": {
  2000 + "node": ">=18.0.0",
  2001 + "npm": ">=8.0.0"
  2002 + },
  2003 + "optionalDependencies": {
  2004 + "@rollup/rollup-android-arm-eabi": "4.34.9",
  2005 + "@rollup/rollup-android-arm64": "4.34.9",
  2006 + "@rollup/rollup-darwin-arm64": "4.34.9",
  2007 + "@rollup/rollup-darwin-x64": "4.34.9",
  2008 + "@rollup/rollup-freebsd-arm64": "4.34.9",
  2009 + "@rollup/rollup-freebsd-x64": "4.34.9",
  2010 + "@rollup/rollup-linux-arm-gnueabihf": "4.34.9",
  2011 + "@rollup/rollup-linux-arm-musleabihf": "4.34.9",
  2012 + "@rollup/rollup-linux-arm64-gnu": "4.34.9",
  2013 + "@rollup/rollup-linux-arm64-musl": "4.34.9",
  2014 + "@rollup/rollup-linux-loongarch64-gnu": "4.34.9",
  2015 + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.9",
  2016 + "@rollup/rollup-linux-riscv64-gnu": "4.34.9",
  2017 + "@rollup/rollup-linux-s390x-gnu": "4.34.9",
  2018 + "@rollup/rollup-linux-x64-gnu": "4.34.9",
  2019 + "@rollup/rollup-linux-x64-musl": "4.34.9",
  2020 + "@rollup/rollup-win32-arm64-msvc": "4.34.9",
  2021 + "@rollup/rollup-win32-ia32-msvc": "4.34.9",
  2022 + "@rollup/rollup-win32-x64-msvc": "4.34.9",
  2023 + "fsevents": "~2.3.2"
  2024 + }
  2025 + },
  2026 + "node_modules/scroll-into-view-if-needed": {
  2027 + "version": "2.2.31",
  2028 + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
  2029 + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
  2030 + "license": "MIT",
  2031 + "dependencies": {
  2032 + "compute-scroll-into-view": "^1.0.20"
  2033 + }
  2034 + },
  2035 + "node_modules/shallow-equal": {
  2036 + "version": "1.2.1",
  2037 + "resolved": "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz",
  2038 + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
  2039 + "license": "MIT"
  2040 + },
  2041 + "node_modules/source-map-js": {
  2042 + "version": "1.2.1",
  2043 + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
  2044 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
  2045 + "license": "BSD-3-Clause",
  2046 + "engines": {
  2047 + "node": ">=0.10.0"
  2048 + }
  2049 + },
  2050 + "node_modules/stylis": {
  2051 + "version": "4.3.6",
  2052 + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz",
  2053 + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
  2054 + "license": "MIT"
  2055 + },
  2056 + "node_modules/throttle-debounce": {
  2057 + "version": "5.0.2",
  2058 + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
  2059 + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==",
  2060 + "license": "MIT",
  2061 + "engines": {
  2062 + "node": ">=12.22"
  2063 + }
  2064 + },
  2065 + "node_modules/topojson-client": {
  2066 + "version": "3.1.0",
  2067 + "resolved": "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz",
  2068 + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==",
  2069 + "license": "ISC",
  2070 + "dependencies": {
  2071 + "commander": "2"
  2072 + },
  2073 + "bin": {
  2074 + "topo2geo": "bin/topo2geo",
  2075 + "topomerge": "bin/topomerge",
  2076 + "topoquantize": "bin/topoquantize"
  2077 + }
  2078 + },
  2079 + "node_modules/tslib": {
  2080 + "version": "2.8.1",
  2081 + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
  2082 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
  2083 + "license": "0BSD"
  2084 + },
  2085 + "node_modules/typescript": {
  2086 + "version": "5.7.3",
  2087 + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.7.3.tgz",
  2088 + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
  2089 + "devOptional": true,
  2090 + "license": "Apache-2.0",
  2091 + "bin": {
  2092 + "tsc": "bin/tsc",
  2093 + "tsserver": "bin/tsserver"
  2094 + },
  2095 + "engines": {
  2096 + "node": ">=14.17"
  2097 + }
  2098 + },
  2099 + "node_modules/undici-types": {
  2100 + "version": "6.20.0",
  2101 + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz",
  2102 + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
  2103 + "license": "MIT"
  2104 + },
  2105 + "node_modules/urijs": {
  2106 + "version": "1.19.11",
  2107 + "resolved": "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz",
  2108 + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
  2109 + "license": "MIT"
  2110 + },
  2111 + "node_modules/vite": {
  2112 + "version": "6.2.0",
  2113 + "resolved": "https://registry.npmmirror.com/vite/-/vite-6.2.0.tgz",
  2114 + "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==",
  2115 + "dev": true,
  2116 + "license": "MIT",
  2117 + "dependencies": {
  2118 + "esbuild": "^0.25.0",
  2119 + "postcss": "^8.5.3",
  2120 + "rollup": "^4.30.1"
  2121 + },
  2122 + "bin": {
  2123 + "vite": "bin/vite.js"
  2124 + },
  2125 + "engines": {
  2126 + "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
  2127 + },
  2128 + "funding": {
  2129 + "url": "https://github.com/vitejs/vite?sponsor=1"
  2130 + },
  2131 + "optionalDependencies": {
  2132 + "fsevents": "~2.3.3"
  2133 + },
  2134 + "peerDependencies": {
  2135 + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
  2136 + "jiti": ">=1.21.0",
  2137 + "less": "*",
  2138 + "lightningcss": "^1.21.0",
  2139 + "sass": "*",
  2140 + "sass-embedded": "*",
  2141 + "stylus": "*",
  2142 + "sugarss": "*",
  2143 + "terser": "^5.16.0",
  2144 + "tsx": "^4.8.1",
  2145 + "yaml": "^2.4.2"
  2146 + },
  2147 + "peerDependenciesMeta": {
  2148 + "@types/node": {
  2149 + "optional": true
  2150 + },
  2151 + "jiti": {
  2152 + "optional": true
  2153 + },
  2154 + "less": {
  2155 + "optional": true
  2156 + },
  2157 + "lightningcss": {
  2158 + "optional": true
  2159 + },
  2160 + "sass": {
  2161 + "optional": true
  2162 + },
  2163 + "sass-embedded": {
  2164 + "optional": true
  2165 + },
  2166 + "stylus": {
  2167 + "optional": true
  2168 + },
  2169 + "sugarss": {
  2170 + "optional": true
  2171 + },
  2172 + "terser": {
  2173 + "optional": true
  2174 + },
  2175 + "tsx": {
  2176 + "optional": true
  2177 + },
  2178 + "yaml": {
  2179 + "optional": true
  2180 + }
  2181 + }
  2182 + },
  2183 + "node_modules/vscode-uri": {
  2184 + "version": "3.1.0",
  2185 + "resolved": "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.1.0.tgz",
  2186 + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
  2187 + "dev": true,
  2188 + "license": "MIT"
  2189 + },
  2190 + "node_modules/vue": {
  2191 + "version": "3.5.13",
  2192 + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz",
  2193 + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
  2194 + "license": "MIT",
  2195 + "dependencies": {
  2196 + "@vue/compiler-dom": "3.5.13",
  2197 + "@vue/compiler-sfc": "3.5.13",
  2198 + "@vue/runtime-dom": "3.5.13",
  2199 + "@vue/server-renderer": "3.5.13",
  2200 + "@vue/shared": "3.5.13"
  2201 + },
  2202 + "peerDependencies": {
  2203 + "typescript": "*"
  2204 + },
  2205 + "peerDependenciesMeta": {
  2206 + "typescript": {
  2207 + "optional": true
  2208 + }
  2209 + }
  2210 + },
  2211 + "node_modules/vue-tsc": {
  2212 + "version": "2.2.8",
  2213 + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-2.2.8.tgz",
  2214 + "integrity": "sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==",
  2215 + "dev": true,
  2216 + "license": "MIT",
  2217 + "dependencies": {
  2218 + "@volar/typescript": "~2.4.11",
  2219 + "@vue/language-core": "2.2.8"
  2220 + },
  2221 + "bin": {
  2222 + "vue-tsc": "bin/vue-tsc.js"
  2223 + },
  2224 + "peerDependencies": {
  2225 + "typescript": ">=5.0.0"
  2226 + }
  2227 + },
  2228 + "node_modules/vue-types": {
  2229 + "version": "3.0.2",
  2230 + "resolved": "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz",
  2231 + "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==",
  2232 + "license": "MIT",
  2233 + "dependencies": {
  2234 + "is-plain-object": "3.0.1"
  2235 + },
  2236 + "engines": {
  2237 + "node": ">=10.15.0"
  2238 + },
  2239 + "peerDependencies": {
  2240 + "vue": "^3.0.0"
  2241 + }
  2242 + },
  2243 + "node_modules/warning": {
  2244 + "version": "4.0.3",
  2245 + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz",
  2246 + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
  2247 + "license": "MIT",
  2248 + "dependencies": {
  2249 + "loose-envify": "^1.0.0"
  2250 + }
  2251 + }
  2252 + }
  2253 +}
  1 +{
  2 + "name": "web-package",
  3 + "private": true,
  4 + "version": "0.0.0",
  5 + "type": "module",
  6 + "scripts": {
  7 + "dev": "vite",
  8 + "build": "vue-tsc -b && vite build",
  9 + "preview": "vite preview"
  10 + },
  11 + "dependencies": {
  12 + "@ant-design/icons-vue": "^7.0.1",
  13 + "@element-plus/icons-vue": "^2.3.1",
  14 + "@icon-park/vue-next": "^1.4.2",
  15 + "@vitejs/plugin-vue-jsx": "^4.1.1",
  16 + "ant-design-vue": "^4.2.6",
  17 + "axios": "^1.8.1",
  18 + "cesium": "^1.127.0",
  19 + "dayjs": "^1.11.13",
  20 + "element-plus": "^2.9.6",
  21 + "pinia": "^3.0.1",
  22 + "vue": "^3.5.13",
  23 + "vue-router": "^4.5.0",
  24 + "xml-js": "^1.6.11"
  25 + },
  26 + "devDependencies": {
  27 + "@types/cesium": "^1.67.14",
  28 + "@vitejs/plugin-vue": "^5.2.1",
  29 + "@vue/tsconfig": "^0.7.0",
  30 + "typescript": "~5.7.2",
  31 + "vite": "^6.2.0",
  32 + "vite-plugin-cesium": "^1.2.23",
  33 + "vue-tsc": "^2.2.4"
  34 + }
  35 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.6">
  3 + <Document>
  4 + <wpml:author>1364078416@qq.com</wpml:author>
  5 + <wpml:createTime>1739075482858</wpml:createTime>
  6 + <wpml:updateTime>1739075547467</wpml:updateTime>
  7 + <wpml:missionConfig>
  8 + <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
  9 + <wpml:finishAction>goHome</wpml:finishAction>
  10 + <wpml:exitOnRCLost>goContinue</wpml:exitOnRCLost>
  11 + <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
  12 + <wpml:takeOffSecurityHeight>70</wpml:takeOffSecurityHeight>
  13 + <wpml:takeOffRefPoint>23.233762,102.812308,233.158754</wpml:takeOffRefPoint>
  14 + <wpml:takeOffRefPointAGLHeight>0</wpml:takeOffRefPointAGLHeight>
  15 + <wpml:globalTransitionalSpeed>15</wpml:globalTransitionalSpeed>
  16 + <wpml:globalRTHHeight>100</wpml:globalRTHHeight>
  17 + <wpml:droneInfo>
  18 + <wpml:droneEnumValue>67</wpml:droneEnumValue>
  19 + <wpml:droneSubEnumValue>1</wpml:droneSubEnumValue>
  20 + </wpml:droneInfo>
  21 + <wpml:payloadInfo>
  22 + <wpml:payloadEnumValue>53</wpml:payloadEnumValue>
  23 + <wpml:payloadSubEnumValue>1</wpml:payloadSubEnumValue>
  24 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  25 + </wpml:payloadInfo>
  26 + </wpml:missionConfig>
  27 + <Folder>
  28 + <wpml:templateType>waypoint</wpml:templateType>
  29 + <wpml:templateId>0</wpml:templateId>
  30 + <wpml:waylineCoordinateSysParam>
  31 + <wpml:coordinateMode>WGS84</wpml:coordinateMode>
  32 + <wpml:heightMode>relativeToStartPoint</wpml:heightMode>
  33 + </wpml:waylineCoordinateSysParam>
  34 + <wpml:autoFlightSpeed>10</wpml:autoFlightSpeed>
  35 + <wpml:globalHeight>67.199632961</wpml:globalHeight>
  36 + <wpml:caliFlightEnable>0</wpml:caliFlightEnable>
  37 + <wpml:gimbalPitchMode>manual</wpml:gimbalPitchMode>
  38 + <wpml:globalWaypointHeadingParam>
  39 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  40 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  41 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  42 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  43 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  44 + </wpml:globalWaypointHeadingParam>
  45 + <wpml:globalWaypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:globalWaypointTurnMode>
  46 + <wpml:globalUseStraightLine>1</wpml:globalUseStraightLine>
  47 + <Placemark>
  48 + <Point>
  49 + <coordinates>
  50 + 102.814068783866,23.2359655022029
  51 + </coordinates>
  52 + </Point>
  53 + <wpml:index>0</wpml:index>
  54 + <wpml:ellipsoidHeight>67.199632961</wpml:ellipsoidHeight>
  55 + <wpml:height>67.199632961</wpml:height>
  56 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  57 + <wpml:waypointHeadingParam>
  58 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  59 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  60 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  61 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  62 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  63 + </wpml:waypointHeadingParam>
  64 + <wpml:waypointTurnParam>
  65 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  66 + <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
  67 + </wpml:waypointTurnParam>
  68 + <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
  69 + <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
  70 + <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
  71 + <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
  72 + <wpml:useStraightLine>1</wpml:useStraightLine>
  73 + <wpml:actionGroup>
  74 + <wpml:actionGroupId>0</wpml:actionGroupId>
  75 + <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
  76 + <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
  77 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  78 + <wpml:actionTrigger>
  79 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  80 + </wpml:actionTrigger>
  81 + <wpml:action>
  82 + <wpml:actionId>0</wpml:actionId>
  83 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  84 + <wpml:actionActuatorFuncParam>
  85 + <wpml:gimbalPitchRotateAngle>-56.05</wpml:gimbalPitchRotateAngle>
  86 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  87 + <wpml:gimbalYawRotateAngle>-51.148</wpml:gimbalYawRotateAngle>
  88 + <wpml:focusX>0</wpml:focusX>
  89 + <wpml:focusY>0</wpml:focusY>
  90 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  91 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  92 + <wpml:focalLength>216</wpml:focalLength>
  93 + <wpml:aircraftHeading>-51.148</wpml:aircraftHeading>
  94 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  95 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  96 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  97 + <wpml:targetAngle>0</wpml:targetAngle>
  98 + <wpml:actionUUID>a2f692e0-420b-4868-8693-3062d2aaf1ab</wpml:actionUUID>
  99 + <wpml:imageWidth>0</wpml:imageWidth>
  100 + <wpml:imageHeight>0</wpml:imageHeight>
  101 + <wpml:AFPos>0</wpml:AFPos>
  102 + <wpml:gimbalPort>0</wpml:gimbalPort>
  103 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  104 + <wpml:orientedFilePath>4bbe6c02-18b5-481d-a957-610240ff955c</wpml:orientedFilePath>
  105 + <wpml:orientedFileMD5/>
  106 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  107 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  108 + </wpml:actionActuatorFuncParam>
  109 + </wpml:action>
  110 + </wpml:actionGroup>
  111 + <wpml:isRisky>0</wpml:isRisky>
  112 + </Placemark>
  113 + <Placemark>
  114 + <Point>
  115 + <coordinates>
  116 + 102.813728813702,23.2361906183568
  117 + </coordinates>
  118 + </Point>
  119 + <wpml:index>1</wpml:index>
  120 + <wpml:ellipsoidHeight>67.199632961</wpml:ellipsoidHeight>
  121 + <wpml:height>67.199632961</wpml:height>
  122 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  123 + <wpml:waypointHeadingParam>
  124 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  125 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  126 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  127 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  128 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  129 + </wpml:waypointHeadingParam>
  130 + <wpml:waypointTurnParam>
  131 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  132 + <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
  133 + </wpml:waypointTurnParam>
  134 + <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
  135 + <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
  136 + <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
  137 + <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
  138 + <wpml:useStraightLine>1</wpml:useStraightLine>
  139 + <wpml:actionGroup>
  140 + <wpml:actionGroupId>1</wpml:actionGroupId>
  141 + <wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
  142 + <wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
  143 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  144 + <wpml:actionTrigger>
  145 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  146 + </wpml:actionTrigger>
  147 + <wpml:action>
  148 + <wpml:actionId>0</wpml:actionId>
  149 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  150 + <wpml:actionActuatorFuncParam>
  151 + <wpml:gimbalPitchRotateAngle>-56.05</wpml:gimbalPitchRotateAngle>
  152 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  153 + <wpml:gimbalYawRotateAngle>-37.265</wpml:gimbalYawRotateAngle>
  154 + <wpml:focusX>0</wpml:focusX>
  155 + <wpml:focusY>0</wpml:focusY>
  156 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  157 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  158 + <wpml:focalLength>216</wpml:focalLength>
  159 + <wpml:aircraftHeading>-37.265</wpml:aircraftHeading>
  160 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  161 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  162 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  163 + <wpml:targetAngle>0</wpml:targetAngle>
  164 + <wpml:actionUUID>e34fd1b6-c2f8-4eb7-a7e9-210047029c6b</wpml:actionUUID>
  165 + <wpml:imageWidth>0</wpml:imageWidth>
  166 + <wpml:imageHeight>0</wpml:imageHeight>
  167 + <wpml:AFPos>0</wpml:AFPos>
  168 + <wpml:gimbalPort>0</wpml:gimbalPort>
  169 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  170 + <wpml:orientedFilePath>2ec97c52-0ca8-4e17-90e9-d50ac3e3dbd9</wpml:orientedFilePath>
  171 + <wpml:orientedFileMD5/>
  172 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  173 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  174 + </wpml:actionActuatorFuncParam>
  175 + </wpml:action>
  176 + </wpml:actionGroup>
  177 + <wpml:isRisky>0</wpml:isRisky>
  178 + </Placemark>
  179 + <Placemark>
  180 + <Point>
  181 + <coordinates>
  182 + 102.8136078157,23.2364742507511
  183 + </coordinates>
  184 + </Point>
  185 + <wpml:index>2</wpml:index>
  186 + <wpml:ellipsoidHeight>67.199632961</wpml:ellipsoidHeight>
  187 + <wpml:height>67.199632961</wpml:height>
  188 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  189 + <wpml:waypointHeadingParam>
  190 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  191 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  192 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  193 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  194 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  195 + </wpml:waypointHeadingParam>
  196 + <wpml:waypointTurnParam>
  197 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  198 + <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
  199 + </wpml:waypointTurnParam>
  200 + <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
  201 + <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
  202 + <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
  203 + <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
  204 + <wpml:useStraightLine>1</wpml:useStraightLine>
  205 + <wpml:actionGroup>
  206 + <wpml:actionGroupId>2</wpml:actionGroupId>
  207 + <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
  208 + <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
  209 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  210 + <wpml:actionTrigger>
  211 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  212 + </wpml:actionTrigger>
  213 + <wpml:action>
  214 + <wpml:actionId>0</wpml:actionId>
  215 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  216 + <wpml:actionActuatorFuncParam>
  217 + <wpml:gimbalPitchRotateAngle>-56.05</wpml:gimbalPitchRotateAngle>
  218 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  219 + <wpml:gimbalYawRotateAngle>-37.265</wpml:gimbalYawRotateAngle>
  220 + <wpml:focusX>0</wpml:focusX>
  221 + <wpml:focusY>0</wpml:focusY>
  222 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  223 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  224 + <wpml:focalLength>216</wpml:focalLength>
  225 + <wpml:aircraftHeading>-37.265</wpml:aircraftHeading>
  226 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  227 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  228 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  229 + <wpml:targetAngle>0</wpml:targetAngle>
  230 + <wpml:actionUUID>c5b670bc-7e02-4ee3-a7de-d3bfb1743847</wpml:actionUUID>
  231 + <wpml:imageWidth>0</wpml:imageWidth>
  232 + <wpml:imageHeight>0</wpml:imageHeight>
  233 + <wpml:AFPos>0</wpml:AFPos>
  234 + <wpml:gimbalPort>0</wpml:gimbalPort>
  235 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  236 + <wpml:orientedFilePath>2b63ee8a-751a-4370-ab6d-a6625640851c</wpml:orientedFilePath>
  237 + <wpml:orientedFileMD5/>
  238 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  239 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  240 + </wpml:actionActuatorFuncParam>
  241 + </wpml:action>
  242 + </wpml:actionGroup>
  243 + <wpml:isRisky>0</wpml:isRisky>
  244 + </Placemark>
  245 + <Placemark>
  246 + <Point>
  247 + <coordinates>
  248 + 102.813597685565,23.2363064208282
  249 + </coordinates>
  250 + </Point>
  251 + <wpml:index>3</wpml:index>
  252 + <wpml:ellipsoidHeight>67.199632961</wpml:ellipsoidHeight>
  253 + <wpml:height>67.199632961</wpml:height>
  254 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  255 + <wpml:waypointHeadingParam>
  256 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  257 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  258 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  259 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  260 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  261 + </wpml:waypointHeadingParam>
  262 + <wpml:waypointTurnParam>
  263 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  264 + <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
  265 + </wpml:waypointTurnParam>
  266 + <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
  267 + <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
  268 + <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
  269 + <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
  270 + <wpml:useStraightLine>1</wpml:useStraightLine>
  271 + <wpml:actionGroup>
  272 + <wpml:actionGroupId>3</wpml:actionGroupId>
  273 + <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
  274 + <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
  275 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  276 + <wpml:actionTrigger>
  277 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  278 + </wpml:actionTrigger>
  279 + <wpml:action>
  280 + <wpml:actionId>0</wpml:actionId>
  281 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  282 + <wpml:actionActuatorFuncParam>
  283 + <wpml:gimbalPitchRotateAngle>-41.107</wpml:gimbalPitchRotateAngle>
  284 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  285 + <wpml:gimbalYawRotateAngle>-38.933</wpml:gimbalYawRotateAngle>
  286 + <wpml:focusX>0</wpml:focusX>
  287 + <wpml:focusY>0</wpml:focusY>
  288 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  289 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  290 + <wpml:focalLength>384</wpml:focalLength>
  291 + <wpml:aircraftHeading>-38.933</wpml:aircraftHeading>
  292 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  293 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  294 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  295 + <wpml:targetAngle>0</wpml:targetAngle>
  296 + <wpml:actionUUID>77078303-bffc-4565-81d3-763b2d105e06</wpml:actionUUID>
  297 + <wpml:imageWidth>0</wpml:imageWidth>
  298 + <wpml:imageHeight>0</wpml:imageHeight>
  299 + <wpml:AFPos>0</wpml:AFPos>
  300 + <wpml:gimbalPort>0</wpml:gimbalPort>
  301 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  302 + <wpml:orientedFilePath>aa00b71e-339c-4b38-9486-2fea43711004</wpml:orientedFilePath>
  303 + <wpml:orientedFileMD5/>
  304 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  305 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  306 + </wpml:actionActuatorFuncParam>
  307 + </wpml:action>
  308 + <wpml:action>
  309 + <wpml:actionId>1</wpml:actionId>
  310 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  311 + <wpml:actionActuatorFuncParam>
  312 + <wpml:gimbalPitchRotateAngle>-40.068</wpml:gimbalPitchRotateAngle>
  313 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  314 + <wpml:gimbalYawRotateAngle>-25.848</wpml:gimbalYawRotateAngle>
  315 + <wpml:focusX>0</wpml:focusX>
  316 + <wpml:focusY>0</wpml:focusY>
  317 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  318 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  319 + <wpml:focalLength>192</wpml:focalLength>
  320 + <wpml:aircraftHeading>-25.848</wpml:aircraftHeading>
  321 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  322 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  323 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  324 + <wpml:targetAngle>0</wpml:targetAngle>
  325 + <wpml:actionUUID>2902f57f-778f-4aed-bfdc-0aa52c65a88a</wpml:actionUUID>
  326 + <wpml:imageWidth>0</wpml:imageWidth>
  327 + <wpml:imageHeight>0</wpml:imageHeight>
  328 + <wpml:AFPos>0</wpml:AFPos>
  329 + <wpml:gimbalPort>0</wpml:gimbalPort>
  330 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  331 + <wpml:orientedFilePath>519c9fa4-d6c8-4108-80f7-27ed0dfdffd9</wpml:orientedFilePath>
  332 + <wpml:orientedFileMD5/>
  333 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  334 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  335 + </wpml:actionActuatorFuncParam>
  336 + </wpml:action>
  337 + <wpml:action>
  338 + <wpml:actionId>2</wpml:actionId>
  339 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  340 + <wpml:actionActuatorFuncParam>
  341 + <wpml:gimbalPitchRotateAngle>-30.922</wpml:gimbalPitchRotateAngle>
  342 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  343 + <wpml:gimbalYawRotateAngle>-32.302</wpml:gimbalYawRotateAngle>
  344 + <wpml:focusX>0</wpml:focusX>
  345 + <wpml:focusY>0</wpml:focusY>
  346 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  347 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  348 + <wpml:focalLength>672</wpml:focalLength>
  349 + <wpml:aircraftHeading>-32.302</wpml:aircraftHeading>
  350 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  351 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  352 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  353 + <wpml:targetAngle>0</wpml:targetAngle>
  354 + <wpml:actionUUID>5325086b-6bb6-49de-8b4f-6024cf8663e7</wpml:actionUUID>
  355 + <wpml:imageWidth>0</wpml:imageWidth>
  356 + <wpml:imageHeight>0</wpml:imageHeight>
  357 + <wpml:AFPos>0</wpml:AFPos>
  358 + <wpml:gimbalPort>0</wpml:gimbalPort>
  359 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  360 + <wpml:orientedFilePath>b02a1705-aa5f-4d45-bb16-1a0196dc9e7a</wpml:orientedFilePath>
  361 + <wpml:orientedFileMD5/>
  362 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  363 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  364 + </wpml:actionActuatorFuncParam>
  365 + </wpml:action>
  366 + <wpml:action>
  367 + <wpml:actionId>3</wpml:actionId>
  368 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  369 + <wpml:actionActuatorFuncParam>
  370 + <wpml:gimbalPitchRotateAngle>-31.066</wpml:gimbalPitchRotateAngle>
  371 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  372 + <wpml:gimbalYawRotateAngle>-23.091</wpml:gimbalYawRotateAngle>
  373 + <wpml:focusX>0</wpml:focusX>
  374 + <wpml:focusY>0</wpml:focusY>
  375 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  376 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  377 + <wpml:focalLength>672</wpml:focalLength>
  378 + <wpml:aircraftHeading>-23.091</wpml:aircraftHeading>
  379 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  380 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  381 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  382 + <wpml:targetAngle>0</wpml:targetAngle>
  383 + <wpml:actionUUID>7807e00d-eef9-40f7-b500-fa97f77a6b8b</wpml:actionUUID>
  384 + <wpml:imageWidth>0</wpml:imageWidth>
  385 + <wpml:imageHeight>0</wpml:imageHeight>
  386 + <wpml:AFPos>0</wpml:AFPos>
  387 + <wpml:gimbalPort>0</wpml:gimbalPort>
  388 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  389 + <wpml:orientedFilePath>eb74a2e8-5b9b-49c7-9d07-e1be206d05f2</wpml:orientedFilePath>
  390 + <wpml:orientedFileMD5/>
  391 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  392 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  393 + </wpml:actionActuatorFuncParam>
  394 + </wpml:action>
  395 + <wpml:action>
  396 + <wpml:actionId>4</wpml:actionId>
  397 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  398 + <wpml:actionActuatorFuncParam>
  399 + <wpml:gimbalPitchRotateAngle>-31.066</wpml:gimbalPitchRotateAngle>
  400 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  401 + <wpml:gimbalYawRotateAngle>-23.091</wpml:gimbalYawRotateAngle>
  402 + <wpml:focusX>0</wpml:focusX>
  403 + <wpml:focusY>0</wpml:focusY>
  404 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  405 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  406 + <wpml:focalLength>384</wpml:focalLength>
  407 + <wpml:aircraftHeading>-23.091</wpml:aircraftHeading>
  408 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  409 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  410 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  411 + <wpml:targetAngle>0</wpml:targetAngle>
  412 + <wpml:actionUUID>ec0f9dbf-7b94-482c-93a1-2692f865bd91</wpml:actionUUID>
  413 + <wpml:imageWidth>0</wpml:imageWidth>
  414 + <wpml:imageHeight>0</wpml:imageHeight>
  415 + <wpml:AFPos>0</wpml:AFPos>
  416 + <wpml:gimbalPort>0</wpml:gimbalPort>
  417 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  418 + <wpml:orientedFilePath>32025061-f405-4f1e-9c2c-e8979dfd07d2</wpml:orientedFilePath>
  419 + <wpml:orientedFileMD5/>
  420 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  421 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  422 + </wpml:actionActuatorFuncParam>
  423 + </wpml:action>
  424 + </wpml:actionGroup>
  425 + <wpml:isRisky>0</wpml:isRisky>
  426 + </Placemark>
  427 + <wpml:payloadParam>
  428 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  429 + <wpml:focusMode>firstPoint</wpml:focusMode>
  430 + <wpml:meteringMode>average</wpml:meteringMode>
  431 + <wpml:returnMode>singleReturnFirst</wpml:returnMode>
  432 + <wpml:samplingRate>240000</wpml:samplingRate>
  433 + <wpml:scanningMode>repetitive</wpml:scanningMode>
  434 + <wpml:imageFormat>zoom</wpml:imageFormat>
  435 + </wpml:payloadParam>
  436 + </Folder>
  437 + </Document>
  438 +</kml>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.6">
  3 + <Document>
  4 + <wpml:missionConfig>
  5 + <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
  6 + <wpml:finishAction>goHome</wpml:finishAction>
  7 + <wpml:exitOnRCLost>goContinue</wpml:exitOnRCLost>
  8 + <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
  9 + <wpml:takeOffSecurityHeight>70</wpml:takeOffSecurityHeight>
  10 + <wpml:globalTransitionalSpeed>15</wpml:globalTransitionalSpeed>
  11 + <wpml:globalRTHHeight>100</wpml:globalRTHHeight>
  12 + <wpml:droneInfo>
  13 + <wpml:droneEnumValue>67</wpml:droneEnumValue>
  14 + <wpml:droneSubEnumValue>1</wpml:droneSubEnumValue>
  15 + </wpml:droneInfo>
  16 + <wpml:payloadInfo>
  17 + <wpml:payloadEnumValue>53</wpml:payloadEnumValue>
  18 + <wpml:payloadSubEnumValue>1</wpml:payloadSubEnumValue>
  19 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  20 + </wpml:payloadInfo>
  21 + </wpml:missionConfig>
  22 + <Folder>
  23 + <wpml:templateId>0</wpml:templateId>
  24 + <wpml:executeHeightMode>relativeToStartPoint</wpml:executeHeightMode>
  25 + <wpml:waylineId>0</wpml:waylineId>
  26 + <wpml:distance>95.3817596435547</wpml:distance>
  27 + <wpml:duration>12.0381755828857</wpml:duration>
  28 + <wpml:autoFlightSpeed>10</wpml:autoFlightSpeed>
  29 + <Placemark>
  30 + <Point>
  31 + <coordinates>
  32 + 102.814068783866,23.2359655022029
  33 + </coordinates>
  34 + </Point>
  35 + <wpml:index>0</wpml:index>
  36 + <wpml:executeHeight>67.199632961</wpml:executeHeight>
  37 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  38 + <wpml:waypointHeadingParam>
  39 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  40 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  41 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  42 + <wpml:waypointHeadingAngleEnable>0</wpml:waypointHeadingAngleEnable>
  43 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  44 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  45 + </wpml:waypointHeadingParam>
  46 + <wpml:waypointTurnParam>
  47 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  48 + <wpml:waypointTurnDampingDist>0</wpml:waypointTurnDampingDist>
  49 + </wpml:waypointTurnParam>
  50 + <wpml:useStraightLine>1</wpml:useStraightLine>
  51 + <wpml:actionGroup>
  52 + <wpml:actionGroupId>0</wpml:actionGroupId>
  53 + <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
  54 + <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
  55 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  56 + <wpml:actionTrigger>
  57 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  58 + </wpml:actionTrigger>
  59 + <wpml:action>
  60 + <wpml:actionId>0</wpml:actionId>
  61 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  62 + <wpml:actionActuatorFuncParam>
  63 + <wpml:gimbalPitchRotateAngle>-56.05</wpml:gimbalPitchRotateAngle>
  64 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  65 + <wpml:gimbalYawRotateAngle>-51.148</wpml:gimbalYawRotateAngle>
  66 + <wpml:focusX>0</wpml:focusX>
  67 + <wpml:focusY>0</wpml:focusY>
  68 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  69 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  70 + <wpml:focalLength>216</wpml:focalLength>
  71 + <wpml:aircraftHeading>-51.148</wpml:aircraftHeading>
  72 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  73 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  74 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  75 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  76 + <wpml:targetAngle>0</wpml:targetAngle>
  77 + <wpml:actionUUID>a2f692e0-420b-4868-8693-3062d2aaf1ab</wpml:actionUUID>
  78 + <wpml:imageWidth>0</wpml:imageWidth>
  79 + <wpml:imageHeight>0</wpml:imageHeight>
  80 + <wpml:AFPos>0</wpml:AFPos>
  81 + <wpml:gimbalPort>0</wpml:gimbalPort>
  82 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  83 + <wpml:orientedFilePath>4bbe6c02-18b5-481d-a957-610240ff955c</wpml:orientedFilePath>
  84 + <wpml:orientedFileMD5/>
  85 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  86 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  87 + </wpml:actionActuatorFuncParam>
  88 + </wpml:action>
  89 + </wpml:actionGroup>
  90 + <wpml:waypointGimbalHeadingParam>
  91 + <wpml:waypointGimbalPitchAngle>0</wpml:waypointGimbalPitchAngle>
  92 + <wpml:waypointGimbalYawAngle>0</wpml:waypointGimbalYawAngle>
  93 + </wpml:waypointGimbalHeadingParam>
  94 + <wpml:isRisky>0</wpml:isRisky>
  95 + <wpml:waypointWorkType>0</wpml:waypointWorkType>
  96 + </Placemark>
  97 + <Placemark>
  98 + <Point>
  99 + <coordinates>
  100 + 102.813728813702,23.2361906183568
  101 + </coordinates>
  102 + </Point>
  103 + <wpml:index>1</wpml:index>
  104 + <wpml:executeHeight>67.199632961</wpml:executeHeight>
  105 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  106 + <wpml:waypointHeadingParam>
  107 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  108 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  109 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  110 + <wpml:waypointHeadingAngleEnable>0</wpml:waypointHeadingAngleEnable>
  111 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  112 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  113 + </wpml:waypointHeadingParam>
  114 + <wpml:waypointTurnParam>
  115 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  116 + <wpml:waypointTurnDampingDist>0</wpml:waypointTurnDampingDist>
  117 + </wpml:waypointTurnParam>
  118 + <wpml:useStraightLine>1</wpml:useStraightLine>
  119 + <wpml:actionGroup>
  120 + <wpml:actionGroupId>1</wpml:actionGroupId>
  121 + <wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
  122 + <wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
  123 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  124 + <wpml:actionTrigger>
  125 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  126 + </wpml:actionTrigger>
  127 + <wpml:action>
  128 + <wpml:actionId>0</wpml:actionId>
  129 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  130 + <wpml:actionActuatorFuncParam>
  131 + <wpml:gimbalPitchRotateAngle>-56.05</wpml:gimbalPitchRotateAngle>
  132 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  133 + <wpml:gimbalYawRotateAngle>-37.265</wpml:gimbalYawRotateAngle>
  134 + <wpml:focusX>0</wpml:focusX>
  135 + <wpml:focusY>0</wpml:focusY>
  136 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  137 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  138 + <wpml:focalLength>216</wpml:focalLength>
  139 + <wpml:aircraftHeading>-37.265</wpml:aircraftHeading>
  140 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  141 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  142 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  143 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  144 + <wpml:targetAngle>0</wpml:targetAngle>
  145 + <wpml:actionUUID>e34fd1b6-c2f8-4eb7-a7e9-210047029c6b</wpml:actionUUID>
  146 + <wpml:imageWidth>0</wpml:imageWidth>
  147 + <wpml:imageHeight>0</wpml:imageHeight>
  148 + <wpml:AFPos>0</wpml:AFPos>
  149 + <wpml:gimbalPort>0</wpml:gimbalPort>
  150 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  151 + <wpml:orientedFilePath>2ec97c52-0ca8-4e17-90e9-d50ac3e3dbd9</wpml:orientedFilePath>
  152 + <wpml:orientedFileMD5/>
  153 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  154 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  155 + </wpml:actionActuatorFuncParam>
  156 + </wpml:action>
  157 + </wpml:actionGroup>
  158 + <wpml:waypointGimbalHeadingParam>
  159 + <wpml:waypointGimbalPitchAngle>0</wpml:waypointGimbalPitchAngle>
  160 + <wpml:waypointGimbalYawAngle>0</wpml:waypointGimbalYawAngle>
  161 + </wpml:waypointGimbalHeadingParam>
  162 + <wpml:isRisky>0</wpml:isRisky>
  163 + <wpml:waypointWorkType>0</wpml:waypointWorkType>
  164 + </Placemark>
  165 + <Placemark>
  166 + <Point>
  167 + <coordinates>
  168 + 102.8136078157,23.2364742507511
  169 + </coordinates>
  170 + </Point>
  171 + <wpml:index>2</wpml:index>
  172 + <wpml:executeHeight>67.199632961</wpml:executeHeight>
  173 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  174 + <wpml:waypointHeadingParam>
  175 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  176 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  177 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  178 + <wpml:waypointHeadingAngleEnable>0</wpml:waypointHeadingAngleEnable>
  179 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  180 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  181 + </wpml:waypointHeadingParam>
  182 + <wpml:waypointTurnParam>
  183 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  184 + <wpml:waypointTurnDampingDist>0</wpml:waypointTurnDampingDist>
  185 + </wpml:waypointTurnParam>
  186 + <wpml:useStraightLine>1</wpml:useStraightLine>
  187 + <wpml:actionGroup>
  188 + <wpml:actionGroupId>2</wpml:actionGroupId>
  189 + <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
  190 + <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
  191 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  192 + <wpml:actionTrigger>
  193 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  194 + </wpml:actionTrigger>
  195 + <wpml:action>
  196 + <wpml:actionId>0</wpml:actionId>
  197 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  198 + <wpml:actionActuatorFuncParam>
  199 + <wpml:gimbalPitchRotateAngle>-56.05</wpml:gimbalPitchRotateAngle>
  200 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  201 + <wpml:gimbalYawRotateAngle>-37.265</wpml:gimbalYawRotateAngle>
  202 + <wpml:focusX>0</wpml:focusX>
  203 + <wpml:focusY>0</wpml:focusY>
  204 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  205 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  206 + <wpml:focalLength>216</wpml:focalLength>
  207 + <wpml:aircraftHeading>-37.265</wpml:aircraftHeading>
  208 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  209 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  210 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  211 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  212 + <wpml:targetAngle>0</wpml:targetAngle>
  213 + <wpml:actionUUID>c5b670bc-7e02-4ee3-a7de-d3bfb1743847</wpml:actionUUID>
  214 + <wpml:imageWidth>0</wpml:imageWidth>
  215 + <wpml:imageHeight>0</wpml:imageHeight>
  216 + <wpml:AFPos>0</wpml:AFPos>
  217 + <wpml:gimbalPort>0</wpml:gimbalPort>
  218 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  219 + <wpml:orientedFilePath>2b63ee8a-751a-4370-ab6d-a6625640851c</wpml:orientedFilePath>
  220 + <wpml:orientedFileMD5/>
  221 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  222 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  223 + </wpml:actionActuatorFuncParam>
  224 + </wpml:action>
  225 + </wpml:actionGroup>
  226 + <wpml:waypointGimbalHeadingParam>
  227 + <wpml:waypointGimbalPitchAngle>0</wpml:waypointGimbalPitchAngle>
  228 + <wpml:waypointGimbalYawAngle>0</wpml:waypointGimbalYawAngle>
  229 + </wpml:waypointGimbalHeadingParam>
  230 + <wpml:isRisky>0</wpml:isRisky>
  231 + <wpml:waypointWorkType>0</wpml:waypointWorkType>
  232 + </Placemark>
  233 + <Placemark>
  234 + <Point>
  235 + <coordinates>
  236 + 102.813597685565,23.2363064208282
  237 + </coordinates>
  238 + </Point>
  239 + <wpml:index>3</wpml:index>
  240 + <wpml:executeHeight>67.199632961</wpml:executeHeight>
  241 + <wpml:waypointSpeed>10</wpml:waypointSpeed>
  242 + <wpml:waypointHeadingParam>
  243 + <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
  244 + <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
  245 + <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
  246 + <wpml:waypointHeadingAngleEnable>0</wpml:waypointHeadingAngleEnable>
  247 + <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
  248 + <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
  249 + </wpml:waypointHeadingParam>
  250 + <wpml:waypointTurnParam>
  251 + <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
  252 + <wpml:waypointTurnDampingDist>0</wpml:waypointTurnDampingDist>
  253 + </wpml:waypointTurnParam>
  254 + <wpml:useStraightLine>1</wpml:useStraightLine>
  255 + <wpml:actionGroup>
  256 + <wpml:actionGroupId>3</wpml:actionGroupId>
  257 + <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
  258 + <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
  259 + <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
  260 + <wpml:actionTrigger>
  261 + <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
  262 + </wpml:actionTrigger>
  263 + <wpml:action>
  264 + <wpml:actionId>0</wpml:actionId>
  265 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  266 + <wpml:actionActuatorFuncParam>
  267 + <wpml:gimbalPitchRotateAngle>-41.107</wpml:gimbalPitchRotateAngle>
  268 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  269 + <wpml:gimbalYawRotateAngle>-38.933</wpml:gimbalYawRotateAngle>
  270 + <wpml:focusX>0</wpml:focusX>
  271 + <wpml:focusY>0</wpml:focusY>
  272 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  273 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  274 + <wpml:focalLength>384</wpml:focalLength>
  275 + <wpml:aircraftHeading>-38.933</wpml:aircraftHeading>
  276 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  277 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  278 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  279 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  280 + <wpml:targetAngle>0</wpml:targetAngle>
  281 + <wpml:actionUUID>77078303-bffc-4565-81d3-763b2d105e06</wpml:actionUUID>
  282 + <wpml:imageWidth>0</wpml:imageWidth>
  283 + <wpml:imageHeight>0</wpml:imageHeight>
  284 + <wpml:AFPos>0</wpml:AFPos>
  285 + <wpml:gimbalPort>0</wpml:gimbalPort>
  286 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  287 + <wpml:orientedFilePath>aa00b71e-339c-4b38-9486-2fea43711004</wpml:orientedFilePath>
  288 + <wpml:orientedFileMD5/>
  289 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  290 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  291 + </wpml:actionActuatorFuncParam>
  292 + </wpml:action>
  293 + <wpml:action>
  294 + <wpml:actionId>1</wpml:actionId>
  295 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  296 + <wpml:actionActuatorFuncParam>
  297 + <wpml:gimbalPitchRotateAngle>-40.068</wpml:gimbalPitchRotateAngle>
  298 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  299 + <wpml:gimbalYawRotateAngle>-25.848</wpml:gimbalYawRotateAngle>
  300 + <wpml:focusX>0</wpml:focusX>
  301 + <wpml:focusY>0</wpml:focusY>
  302 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  303 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  304 + <wpml:focalLength>192</wpml:focalLength>
  305 + <wpml:aircraftHeading>-25.848</wpml:aircraftHeading>
  306 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  307 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  308 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  309 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  310 + <wpml:targetAngle>0</wpml:targetAngle>
  311 + <wpml:actionUUID>2902f57f-778f-4aed-bfdc-0aa52c65a88a</wpml:actionUUID>
  312 + <wpml:imageWidth>0</wpml:imageWidth>
  313 + <wpml:imageHeight>0</wpml:imageHeight>
  314 + <wpml:AFPos>0</wpml:AFPos>
  315 + <wpml:gimbalPort>0</wpml:gimbalPort>
  316 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  317 + <wpml:orientedFilePath>519c9fa4-d6c8-4108-80f7-27ed0dfdffd9</wpml:orientedFilePath>
  318 + <wpml:orientedFileMD5/>
  319 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  320 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  321 + </wpml:actionActuatorFuncParam>
  322 + </wpml:action>
  323 + <wpml:action>
  324 + <wpml:actionId>2</wpml:actionId>
  325 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  326 + <wpml:actionActuatorFuncParam>
  327 + <wpml:gimbalPitchRotateAngle>-30.922</wpml:gimbalPitchRotateAngle>
  328 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  329 + <wpml:gimbalYawRotateAngle>-32.302</wpml:gimbalYawRotateAngle>
  330 + <wpml:focusX>0</wpml:focusX>
  331 + <wpml:focusY>0</wpml:focusY>
  332 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  333 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  334 + <wpml:focalLength>672</wpml:focalLength>
  335 + <wpml:aircraftHeading>-32.302</wpml:aircraftHeading>
  336 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  337 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  338 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  339 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  340 + <wpml:targetAngle>0</wpml:targetAngle>
  341 + <wpml:actionUUID>5325086b-6bb6-49de-8b4f-6024cf8663e7</wpml:actionUUID>
  342 + <wpml:imageWidth>0</wpml:imageWidth>
  343 + <wpml:imageHeight>0</wpml:imageHeight>
  344 + <wpml:AFPos>0</wpml:AFPos>
  345 + <wpml:gimbalPort>0</wpml:gimbalPort>
  346 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  347 + <wpml:orientedFilePath>b02a1705-aa5f-4d45-bb16-1a0196dc9e7a</wpml:orientedFilePath>
  348 + <wpml:orientedFileMD5/>
  349 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  350 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  351 + </wpml:actionActuatorFuncParam>
  352 + </wpml:action>
  353 + <wpml:action>
  354 + <wpml:actionId>3</wpml:actionId>
  355 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  356 + <wpml:actionActuatorFuncParam>
  357 + <wpml:gimbalPitchRotateAngle>-31.066</wpml:gimbalPitchRotateAngle>
  358 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  359 + <wpml:gimbalYawRotateAngle>-23.091</wpml:gimbalYawRotateAngle>
  360 + <wpml:focusX>0</wpml:focusX>
  361 + <wpml:focusY>0</wpml:focusY>
  362 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  363 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  364 + <wpml:focalLength>672</wpml:focalLength>
  365 + <wpml:aircraftHeading>-23.091</wpml:aircraftHeading>
  366 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  367 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  368 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  369 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  370 + <wpml:targetAngle>0</wpml:targetAngle>
  371 + <wpml:actionUUID>7807e00d-eef9-40f7-b500-fa97f77a6b8b</wpml:actionUUID>
  372 + <wpml:imageWidth>0</wpml:imageWidth>
  373 + <wpml:imageHeight>0</wpml:imageHeight>
  374 + <wpml:AFPos>0</wpml:AFPos>
  375 + <wpml:gimbalPort>0</wpml:gimbalPort>
  376 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  377 + <wpml:orientedFilePath>eb74a2e8-5b9b-49c7-9d07-e1be206d05f2</wpml:orientedFilePath>
  378 + <wpml:orientedFileMD5/>
  379 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  380 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  381 + </wpml:actionActuatorFuncParam>
  382 + </wpml:action>
  383 + <wpml:action>
  384 + <wpml:actionId>4</wpml:actionId>
  385 + <wpml:actionActuatorFunc>orientedShoot</wpml:actionActuatorFunc>
  386 + <wpml:actionActuatorFuncParam>
  387 + <wpml:gimbalPitchRotateAngle>-31.066</wpml:gimbalPitchRotateAngle>
  388 + <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
  389 + <wpml:gimbalYawRotateAngle>-23.091</wpml:gimbalYawRotateAngle>
  390 + <wpml:focusX>0</wpml:focusX>
  391 + <wpml:focusY>0</wpml:focusY>
  392 + <wpml:focusRegionWidth>0</wpml:focusRegionWidth>
  393 + <wpml:focusRegionHeight>0</wpml:focusRegionHeight>
  394 + <wpml:focalLength>384</wpml:focalLength>
  395 + <wpml:aircraftHeading>-23.091</wpml:aircraftHeading>
  396 + <wpml:accurateFrameValid>0</wpml:accurateFrameValid>
  397 + <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
  398 + <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
  399 + <wpml:payloadLensIndex>zoom</wpml:payloadLensIndex>
  400 + <wpml:targetAngle>0</wpml:targetAngle>
  401 + <wpml:actionUUID>ec0f9dbf-7b94-482c-93a1-2692f865bd91</wpml:actionUUID>
  402 + <wpml:imageWidth>0</wpml:imageWidth>
  403 + <wpml:imageHeight>0</wpml:imageHeight>
  404 + <wpml:AFPos>0</wpml:AFPos>
  405 + <wpml:gimbalPort>0</wpml:gimbalPort>
  406 + <wpml:orientedCameraType>53</wpml:orientedCameraType>
  407 + <wpml:orientedFilePath>32025061-f405-4f1e-9c2c-e8979dfd07d2</wpml:orientedFilePath>
  408 + <wpml:orientedFileMD5/>
  409 + <wpml:orientedFileSize>0</wpml:orientedFileSize>
  410 + <wpml:orientedPhotoMode>normalPhoto</wpml:orientedPhotoMode>
  411 + </wpml:actionActuatorFuncParam>
  412 + </wpml:action>
  413 + </wpml:actionGroup>
  414 + <wpml:waypointGimbalHeadingParam>
  415 + <wpml:waypointGimbalPitchAngle>0</wpml:waypointGimbalPitchAngle>
  416 + <wpml:waypointGimbalYawAngle>0</wpml:waypointGimbalYawAngle>
  417 + </wpml:waypointGimbalHeadingParam>
  418 + <wpml:isRisky>0</wpml:isRisky>
  419 + <wpml:waypointWorkType>0</wpml:waypointWorkType>
  420 + </Placemark>
  421 + </Folder>
  422 + </Document>
  423 +</kml>
  1 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
  1 +<template>
  2 + <a-config-provider :theme="themeStore.themeConfig" :locale="localeStore.locale">
  3 + <router-view/>
  4 + </a-config-provider>
  5 +</template>
  6 +
  7 +<script setup lang="ts">
  8 +import {useThemeStore} from "@/store/useThemeStore.ts";
  9 +import {useLocaleStore} from "@/store/useLocaleStore.ts";
  10 +
  11 +const themeStore = useThemeStore()
  12 +const localeStore = useLocaleStore()
  13 +</script>
  14 +<style>
  15 +#app {
  16 + height: 100vh;
  17 + width: 100vw;
  18 + overflow: auto;
  19 +
  20 +}
  21 +
  22 +
  23 +::-webkit-scrollbar {
  24 + width: 5px; /* 宽度 */
  25 + height: 8px; /* 高度(对于水平滚动条) */
  26 + border: 1px solid rgb(128, 128, 128, 0.2);
  27 +}
  28 +
  29 +/* 滚动条滑块 */
  30 +
  31 +::-webkit-scrollbar-thumb {
  32 + background: rgb(128, 128, 128, 0.5); /* 滑块颜色 */
  33 + border-radius: 10px;
  34 +}
  35 +
  36 +/* 滚动条轨道 */
  37 +
  38 +::-webkit-scrollbar-track {
  39 + background: transparent; /* 轨道颜色 */
  40 + border-radius: 10px;
  41 +}
  42 +
  43 +/*动画处理*/
  44 +.v-enter-active,
  45 +.v-leave-active {
  46 + transition: opacity 0.5s ease;
  47 +}
  48 +
  49 +.v-enter-from,
  50 +.v-leave-to {
  51 + opacity: 0;
  52 +}
  53 +
  54 +/*动画处理*/
  55 +.drop-enter-active,
  56 +.drop-leave-active {
  57 + transition: all 0.5s ease;
  58 +}
  59 +
  60 +.drop-enter-from,
  61 +.drop-leave-to {
  62 + transform: translateY(-30px);
  63 + opacity: 0;
  64 +}
  65 +
  66 +
  67 +</style>
  1 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
此 diff 太大无法显示。
  1 +<template>
  2 + <air-route-create-dialog @confirm="confirm" ref="airRouteCreateDialogRef"/>
  3 + <air-route-dialog @save="save" ref="airRouteDialogRef"/>
  4 +</template>
  5 +
  6 +<script setup lang="ts">
  7 +
  8 +import AirRouteDialog from "@/components/air-route/components/air-route-dialog.vue";
  9 +import AirRouteCreateDialog from "@/components/air-route/components/air-route-create-dialog.vue";
  10 +import {provide, ref} from "vue";
  11 +import {type Element, xml2js} from "xml-js";
  12 +import {useXMLComputed} from "@/components/air-route/components/useXMLComputed.ts";
  13 +
  14 +const airRouteCreateDialogRef = ref()
  15 +const airRouteDialogRef = ref()
  16 +
  17 +const title = ref('')
  18 +const wpmlElement = ref<Element>({
  19 + elements: []
  20 +})
  21 +
  22 +const {elment: kmlElement} = useXMLComputed(wpmlElement, 'kml')
  23 +const {elment: DocumentElement} = useXMLComputed(kmlElement, 'Document')
  24 +
  25 +provide('DocumentElement', DocumentElement)
  26 +provide('title', title)
  27 +
  28 +async function open(config?: {
  29 + title?: string,
  30 + file?: File,
  31 +}) {
  32 + title.value = config?.title || '新建航线'
  33 + if (config.file) {
  34 + let fileString = await config.file.text()
  35 + wpmlElement.value = <Element>xml2js(fileString)
  36 + airRouteDialogRef.value.open()
  37 + } else {
  38 + airRouteCreateDialogRef.value.open()
  39 + }
  40 +}
  41 +
  42 +function confirm() {
  43 + airRouteDialogRef.value.open()
  44 +}
  45 +
  46 +const emits = defineEmits(['save'])
  47 +
  48 +function save(config) {
  49 + emits('save', config)
  50 +}
  51 +
  52 +defineExpose({
  53 + open
  54 +})
  55 +</script>
  56 +
  57 +<style scoped>
  58 +
  59 +</style>
  1 +<template>
  2 + <el-dialog v-model="show" title="创建航线">
  3 + <el-form labelPosition="top">
  4 + <el-form-item label="选择飞行器">
  5 + <l-select-box :options="optionsGroup.map((item,index)=>({...item,value:index}))" v-model="form.selectGroup"
  6 + @select="onChangeGroup"/>
  7 + </el-form-item>
  8 + <el-form-item label="选择型号">
  9 + <l-select-box :options="optionsGroup[form.selectGroup].children" v-model="form.droneEnumValue"/>
  10 + </el-form-item>
  11 + <el-form-item title="航线名称">
  12 + <el-input v-model="form.title"/>
  13 + </el-form-item>
  14 + </el-form>
  15 + <template #footer>
  16 + <div class="dialog-footer">
  17 + <el-button @click="show = false">取消</el-button>
  18 + <el-button type="primary" @click="confirm">
  19 + 确定
  20 + </el-button>
  21 + </div>
  22 + </template>
  23 + </el-dialog>
  24 +</template>
  25 +
  26 +<script setup lang="ts">
  27 +
  28 +import {type Element, js2xml, xml2js} from "xml-js";
  29 +import {inject, ref, type WritableComputedRef} from "vue";
  30 +import {useXMLComputed} from "@/components/air-route/components/useXMLComputed.ts";
  31 +import LSelectBox from "@/components/air-route/components/l-select-box.vue";
  32 +
  33 +const form = ref({})
  34 +
  35 +const title = inject("title");
  36 +const DocumentElement = inject<WritableComputedRef<Element, Element>>("DocumentElement");
  37 +
  38 +const show = ref(false)
  39 +
  40 +const {elment: droneInfoElement} = useXMLComputed(DocumentElement, 'wpml:droneInfo')
  41 +const {text: droneEnumValue} = useXMLComputed(droneInfoElement, 'wpml:droneEnumValue', {
  42 + defaultText: 'Matrice 4E'
  43 +})
  44 +const optionsGroup = ref([
  45 + {
  46 + label: 'Matrice 30 系列',
  47 + children: [
  48 + {
  49 + label: 'Matrice 30',
  50 + value: 'Matrice 30',
  51 + },
  52 + {
  53 + label: 'Matrice 30T',
  54 + value: 'Matrice 30T',
  55 + },
  56 + ]
  57 + }, {
  58 + label: 'Matrice 4 系列',
  59 + children: [
  60 + {
  61 + label: 'Matrice 4E',
  62 + value: 'Matrice 4E',
  63 + },
  64 + {
  65 + label: 'Matrice 4T',
  66 + value: 'Matrice 4T',
  67 + },
  68 + ]
  69 + }
  70 +])
  71 +
  72 +function onChangeGroup() {
  73 + form.value.droneEnumValue = optionsGroup.value[form.value.selectGroup].children[0].value
  74 +}
  75 +
  76 +async function open() {
  77 + show.value = true;
  78 + form.value = {
  79 + title: title.value,
  80 + droneEnumValue: droneEnumValue.value,
  81 + selectGroup: optionsGroup.value.findIndex(v => v.children.findIndex(v => v.value === droneEnumValue.value) !== -1)
  82 + }
  83 +}
  84 +
  85 +const emits = defineEmits(['confirm'])
  86 +
  87 +function confirm() {
  88 + show.value = false;
  89 + title.value = form.value.title
  90 + droneEnumValue.value = form.value.droneEnumValue
  91 + emits('confirm')
  92 +}
  93 +
  94 +defineExpose({
  95 + open
  96 +})
  97 +</script>
  98 +
  99 +<style scoped>
  100 +
  101 +</style>
  1 +<template>
  2 + <div class="air-route-dialog" v-if="show">
  3 + <div class="header">
  4 + <div class="left">
  5 + <el-icon @click="close" class="action" size="30">
  6 + <ArrowLeft/>
  7 + </el-icon>
  8 + <el-icon class="action" :class="{disabled:true}" size="30">
  9 + <Document/>
  10 + </el-icon>
  11 + <folder-setting/>
  12 + </div>
  13 + <div class="center">
  14 + <el-button-group @click="airRouteUpdateDialogRef.open()">
  15 + <el-button>{{ title }}</el-button>
  16 + <el-button>经纬M30T</el-button>
  17 + </el-button-group>
  18 + </div>
  19 + <div class="right"></div>
  20 + </div>
  21 + <div class="content" style="display: flex;flex: 1;overflow: auto">
  22 + <div class="left" style="flex: 2;overflow:auto;">
  23 + <placemark-list/>
  24 + </div>
  25 + <div class="center" style="flex: 6;overflow:auto;">
  26 + <cesium-map/>
  27 + </div>
  28 + <div class="right" style="flex: 3;overflow:auto;">
  29 + <pre style="height: 100%" lang="xml"><code>{{ js2xml(DocumentElement, {spaces: 2}) }}</code> </pre>
  30 + </div>
  31 + </div>
  32 + </div>
  33 + <air-route-update-dialog ref="airRouteUpdateDialogRef"/>
  34 +</template>
  35 +
  36 +<script setup lang="ts">
  37 +import {computed, inject, ref, type WritableComputedRef} from "vue";
  38 +import {ArrowLeft, Document} from "@element-plus/icons-vue";
  39 +import {type Element, js2xml, xml2json} from "xml-js";
  40 +import FolderSetting from "@/components/air-route/components/folder-setting.vue";
  41 +import AirRouteUpdateDialog from "@/components/air-route/components/air-route-update-dialog.vue";
  42 +import PlacemarkList from "@/components/air-route/components/placemark-list.vue";
  43 +import CesiumMap from "@/components/air-route/components/cesium-map.vue";
  44 +
  45 +
  46 +const show = ref(false)
  47 +
  48 +const title = inject("title");
  49 +const DocumentElement = inject<WritableComputedRef<Element, Element>>("DocumentElement");
  50 +
  51 +const airRouteUpdateDialogRef = ref()
  52 +
  53 +async function open() {
  54 + show.value = true
  55 +}
  56 +
  57 +function close() {
  58 + show.value = false
  59 +}
  60 +
  61 +const emits = defineEmits(['save'])
  62 +
  63 +
  64 +function save() {
  65 + emits('save')
  66 +}
  67 +
  68 +defineExpose({
  69 + open,
  70 +})
  71 +</script>
  72 +
  73 +<style scoped>
  74 +.air-route-dialog {
  75 + width: 100vw;
  76 + height: 100vh;
  77 + position: fixed;
  78 + top: 0;
  79 + left: 0;
  80 + z-index: 99;
  81 + background: #232323;
  82 + display: flex;
  83 + flex-direction: column;
  84 +
  85 + .header {
  86 + display: flex;
  87 + padding: 10px;
  88 + border-bottom: 1px solid #4f4f4f;
  89 + z-index: 100;
  90 +
  91 + .left {
  92 + display: flex;
  93 + flex: 1;
  94 +
  95 + .action {
  96 + cursor: pointer;
  97 + margin: 0 5px;
  98 +
  99 + &:hover {
  100 + color: #409eff;
  101 + }
  102 +
  103 + &.disabled {
  104 + cursor: not-allowed;
  105 + opacity: 0.5;
  106 +
  107 + &:hover {
  108 + color: unset;
  109 + }
  110 + }
  111 + }
  112 + }
  113 +
  114 + .center {
  115 + flex: 3;
  116 + display: flex;
  117 + justify-content: center;
  118 + }
  119 +
  120 + .right {
  121 + flex: 1;
  122 + }
  123 +
  124 + }
  125 +}
  126 +</style>
  1 +<template>
  2 + <el-dialog v-model="show" title="编辑">
  3 + <el-form labelPosition="top">
  4 + <el-form-item label="选择飞行器">
  5 + <l-select-box :options="optionsGroup.map((item,index)=>({...item,value:index}))" v-model="form.selectGroup"
  6 + @select="onChangeGroup"/>
  7 + </el-form-item>
  8 + <el-form-item label="选择型号">
  9 + <l-select-box :options="optionsGroup[form.selectGroup].children" v-model="form.droneEnumValue"/>
  10 + </el-form-item>
  11 + <el-form-item title="航线名称">
  12 + <el-input v-model="form.title"/>
  13 + </el-form-item>
  14 + </el-form>
  15 + <template #footer>
  16 + <div class="dialog-footer">
  17 + <el-button @click="show = false">取消</el-button>
  18 + <el-button type="primary" @click="confirm">
  19 + 确定
  20 + </el-button>
  21 + </div>
  22 + </template>
  23 + </el-dialog>
  24 +</template>
  25 +
  26 +<script setup lang="ts">
  27 +
  28 +import {type Element, js2xml, xml2js} from "xml-js";
  29 +import {inject, ref, type WritableComputedRef} from "vue";
  30 +import {useXMLComputed} from "@/components/air-route/components/useXMLComputed.ts";
  31 +import LSelectBox from "@/components/air-route/components/l-select-box.vue";
  32 +
  33 +const form = ref({})
  34 +
  35 +const title = inject("title");
  36 +const DocumentElement = inject<WritableComputedRef<Element, Element>>("DocumentElement");
  37 +
  38 +const show = ref(false)
  39 +
  40 +const {elment: droneInfoElement} = useXMLComputed(DocumentElement, 'wpml:droneInfo')
  41 +const {text: droneEnumValue} = useXMLComputed(droneInfoElement, 'wpml:droneEnumValue', {
  42 + defaultText: 'Matrice 4E'
  43 +})
  44 +const optionsGroup = ref([
  45 + {
  46 + label: 'Matrice 30 系列',
  47 + children: [
  48 + {
  49 + label: 'Matrice 30',
  50 + value: 'Matrice 30',
  51 + },
  52 + {
  53 + label: 'Matrice 30T',
  54 + value: 'Matrice 30T',
  55 + },
  56 + ]
  57 + }, {
  58 + label: 'Matrice 4 系列',
  59 + children: [
  60 + {
  61 + label: 'Matrice 4E',
  62 + value: 'Matrice 4E',
  63 + },
  64 + {
  65 + label: 'Matrice 4T',
  66 + value: 'Matrice 4T',
  67 + },
  68 + ]
  69 + }
  70 +])
  71 +
  72 +function onChangeGroup() {
  73 + form.value.droneEnumValue = optionsGroup.value[form.value.selectGroup].children[0].value
  74 +}
  75 +
  76 +async function open() {
  77 + show.value = true;
  78 + form.value = {
  79 + title: title.value,
  80 + droneEnumValue: droneEnumValue.value,
  81 + selectGroup: optionsGroup.value.findIndex(v => v.children.findIndex(v => v.value === droneEnumValue.value) !== -1)
  82 + }
  83 +}
  84 +
  85 +const emits = defineEmits(['confirm'])
  86 +
  87 +function confirm() {
  88 + show.value = false;
  89 + title.value = form.value.title
  90 + droneEnumValue.value = form.value.droneEnumValue
  91 + emits('confirm')
  92 +}
  93 +
  94 +defineExpose({
  95 + open
  96 +})
  97 +</script>
  98 +
  99 +<style scoped>
  100 +
  101 +</style>
  1 +<template>
  2 + <div style="width: 100%;height: 100%;">
  3 + <div id="cesium-map" style="width: 100%;height: 100%;"></div>
  4 +
  5 + </div>
  6 +</template>
  7 +
  8 +<script setup lang="ts">
  9 +import * as Cesium from "cesium";
  10 +import "cesium/Build/Cesium/Widgets/widgets.css";
  11 +import {inject, onMounted, ref, shallowRef, watch, type WritableComputedRef} from "vue";
  12 +import {useXMLComputed, useXMLComputedArr} from "@/components/air-route/components/useXMLComputed.ts";
  13 +import type {Element} from "xml-js";
  14 +
  15 +const DocumentElement = inject<WritableComputedRef<Element, Element>>("DocumentElement");
  16 +
  17 +const viewer = shallowRef()
  18 +
  19 +function initCesium() {
  20 + viewer.value = new Cesium.Viewer("cesium-map", {
  21 + animation: false,
  22 + baseLayerPicker: false,
  23 + fullscreenButton: false,
  24 + geocoder: false,
  25 + homeButton: false,
  26 + sceneModePicker: false,
  27 + timeline: false,
  28 + navigationHelpButton: false,
  29 + infoBox: false,
  30 + selectionIndicator: false,
  31 + terrainProvider: new Cesium.EllipsoidTerrainProvider()
  32 + })
  33 +
  34 + // 添加鼠标移动事件监听
  35 + const handler = new Cesium.ScreenSpaceEventHandler(viewer.value.scene.canvas);
  36 + let highlightedEntity = null;
  37 +
  38 +
  39 + handler.setInputAction((movement) => {
  40 + try {
  41 + const pickedObject = viewer.value.scene.pick(movement.endPosition);
  42 + if (pickedObject && pickedObject.id && pointList.value.find((item) => item._id === pickedObject.id._id)) {
  43 + viewer.value.scene.canvas.style.cursor = 'pointer';
  44 + // 鼠标移入时设置高亮颜色
  45 + if (highlightedEntity !== pickedObject.id) {
  46 + if (highlightedEntity) {
  47 + // 确保highlightedEntity存在point属性
  48 + if (highlightedEntity.point) {
  49 + highlightedEntity.point.color = Cesium.Color.WHITE;
  50 + highlightedEntity.point.outlineColor = Cesium.Color.WHITE;
  51 + }
  52 + }
  53 + highlightedEntity = pickedObject.id;
  54 + if (highlightedEntity.point) {
  55 + highlightedEntity.point.color = Cesium.Color.GREEN;
  56 + highlightedEntity.point.outlineColor = Cesium.Color.WHITE;
  57 + }
  58 + }
  59 + } else if (highlightedEntity) {
  60 + viewer.value.scene.canvas.style.cursor = 'default';
  61 + // 鼠标移出时恢复颜色
  62 + if (highlightedEntity.point) {
  63 + highlightedEntity.point.color = Cesium.Color.WHITE;
  64 + highlightedEntity.point.outlineColor = Cesium.Color.WHITE;
  65 + }
  66 + highlightedEntity = null;
  67 + }
  68 + if (!pickedObject) {
  69 + viewer.value.scene.canvas.style.cursor = 'default';
  70 + }
  71 + } catch (error) {
  72 + console.error('Error in mouse move handler:', error);
  73 + }
  74 + }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
  75 +
  76 + viewer.value.camera.setView({
  77 + destination: Cesium.Cartesian3.fromDegrees(102.814068783866, 23.2359655022029, 300.0),
  78 + orientation: {
  79 + heading: Cesium.Math.toRadians(175.0),
  80 + pitch: Cesium.Math.toRadians(-90.0),
  81 + roll: 0.0
  82 + }
  83 + })
  84 + drawPlacemark()
  85 + if (placemarkList.value.length > 0) {
  86 + const {elment: PointElment} = useXMLComputed(placemarkList.value[placemarkList.value.length - 1].elment, 'Point')
  87 + const {text: coordinates} = useXMLComputed(PointElment, 'coordinates', {
  88 + separator: ',',
  89 + textType: 'number'
  90 + })
  91 + const {text: executeHeight} = useXMLComputed(placemarkList.value[placemarkList.value.length - 1].elment, 'wpml:executeHeight', {
  92 + textType: 'number'
  93 + })
  94 + drawPointer({
  95 + longitude: coordinates.value[0],
  96 + latitude: coordinates.value[1],
  97 + height: executeHeight.value
  98 + })
  99 + }
  100 +
  101 +
  102 +}
  103 +
  104 +
  105 +const {elment: FolderElement} = useXMLComputed(DocumentElement, 'Folder')
  106 +const {list: placemarkList} = useXMLComputedArr(FolderElement, 'Placemark')
  107 +watch(placemarkList, () => {
  108 + if (viewer.value) {
  109 + drawPlacemark()
  110 + if (placemarkList.value.length > 0) {
  111 + const {elment: PointElment} = useXMLComputed(placemarkList.value[placemarkList.value.length - 1].elment, 'Point')
  112 + const {text: coordinates} = useXMLComputed(PointElment, 'coordinates', {
  113 + separator: ',',
  114 + textType: 'number'
  115 + })
  116 + const {text: executeHeight} = useXMLComputed(placemarkList.value[placemarkList.value.length - 1].elment, 'wpml:executeHeight', {
  117 + textType: 'number'
  118 + })
  119 + drawPointer({
  120 + longitude: coordinates.value[0],
  121 + latitude: coordinates.value[1],
  122 + height: executeHeight.value
  123 + })
  124 + }
  125 + }
  126 +}, {
  127 + deep: true
  128 +})
  129 +const pointList = ref([])
  130 +const polylineList = ref([])
  131 +const arrowList = ref([])
  132 +
  133 +//画点和线
  134 +function drawPlacemark() {
  135 + // 先清除之前的点
  136 + pointList.value.forEach(point => viewer.value.entities.remove(point));
  137 + pointList.value = [];
  138 + // 清除旧连线和箭头
  139 + polylineList.value.forEach(line => viewer.value.entities.remove(line));
  140 + polylineList.value = [];
  141 + arrowList.value.forEach(arrow => viewer.value.entities.remove(arrow));
  142 + arrowList.value = [];
  143 +
  144 + placemarkList.value.forEach(({elment}) => {
  145 + const {elment: PointElment} = useXMLComputed(elment, 'Point')
  146 + const {text: coordinates} = useXMLComputed(PointElment, 'coordinates', {
  147 + separator: ',',
  148 + textType: 'number'
  149 + })
  150 + const {text: executeHeight} = useXMLComputed(elment, 'wpml:executeHeight', {
  151 + textType: 'number'
  152 + })
  153 + const point = viewer.value.entities.add({
  154 + position: Cesium.Cartesian3.fromDegrees(coordinates.value[0], coordinates.value[1], executeHeight.value),
  155 + point: {
  156 + pixelSize: 10,
  157 + color: Cesium.Color.WHITE,
  158 + outlineColor: Cesium.Color.WHITE,
  159 + outlineWidth: 2,
  160 + disableDepthTestDistance: Number.POSITIVE_INFINITY
  161 + }
  162 + })
  163 + pointList.value.push(point)
  164 + })
  165 +
  166 + // 创建连线和方向箭头
  167 + for (let i = 0; i < pointList.value.length - 1; i++) {
  168 + const start = pointList.value[i].position.getValue();
  169 + const end = pointList.value[i + 1].position.getValue();
  170 +
  171 + // 绘制连线
  172 + const polyline = viewer.value.entities.add({
  173 + polyline: {
  174 + positions: [start, end],
  175 + width: 3,
  176 + material: new Cesium.PolylineDashMaterialProperty({
  177 + color: Cesium.Color.GREEN,
  178 + gapColor: Cesium.Color.TRANSPARENT,
  179 + dashLength: 16.0,
  180 + dashPattern: 255
  181 + })
  182 + }
  183 + });
  184 + polylineList.value.push(polyline);
  185 + }
  186 +
  187 +}
  188 +
  189 +const pointer = ref(null)
  190 +/*const cameraEntity = ref(null)*/
  191 +const heading = ref(0)
  192 +
  193 +//画移动指针
  194 +function drawPointer({longitude, latitude, height}) {
  195 + document.removeEventListener('keydown', handleKeyDown);
  196 + viewer.value.camera.flyTo({
  197 + destination: Cesium.Cartesian3.fromDegrees(longitude, latitude - 0.001, height + 100),
  198 + orientation: {
  199 + heading: Cesium.Math.toRadians(heading.value),
  200 + pitch: Cesium.Math.toRadians(-45),
  201 + roll: Cesium.Math.toRadians(0)
  202 + }
  203 + })
  204 + if (pointer.value) {
  205 + viewer.value.entities.remove(pointer.value);
  206 + }
  207 + const position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height)
  208 + pointer.value = viewer.value.entities.add({
  209 + position: position,
  210 + cylinder: {
  211 + length: 8,
  212 + topRadius: 0,
  213 + bottomRadius: 3,
  214 + slices: 4,
  215 + material: Cesium.Color.BLUE.withAlpha(0.8),
  216 + outline: true,
  217 + outlineColor: Cesium.Color.WHITE,
  218 + outlineWidth: 2,
  219 + },
  220 + orientation: Cesium.Transforms.headingPitchRollQuaternion(position,
  221 + new Cesium.HeadingPitchRoll(
  222 + Cesium.Math.toRadians(90 + heading.value),
  223 + Cesium.Math.toRadians(90),
  224 + Cesium.Math.toRadians(0))
  225 + ),
  226 + });
  227 + document.addEventListener('keydown', handleKeyDown);
  228 +}
  229 +
  230 +// 处理键盘事件
  231 +function handleKeyDown(event) {
  232 + if (!pointer.value) return;
  233 +
  234 + const moveStep = 0.0000001; // 移动步长,可根据需要调整
  235 + const currentPos = pointer.value.position.getValue();
  236 + const cartographic = Cesium.Cartographic.fromCartesian(currentPos);
  237 + switch (event.key.toLowerCase()) {
  238 + case 'w':
  239 + cartographic.latitude += moveStep * Math.cos(Cesium.Math.toRadians(heading.value));
  240 + cartographic.longitude += moveStep * Math.sin(Cesium.Math.toRadians(heading.value));
  241 + break;
  242 + case 'a':
  243 + cartographic.latitude += moveStep * Math.cos(Cesium.Math.toRadians(heading.value - 90));
  244 + cartographic.longitude += moveStep * Math.sin(Cesium.Math.toRadians(heading.value - 90));
  245 + break;
  246 + case 'd':
  247 + cartographic.latitude += moveStep * Math.cos(Cesium.Math.toRadians(heading.value + 90));
  248 + cartographic.longitude += moveStep * Math.sin(Cesium.Math.toRadians(heading.value + 90));
  249 + break;
  250 + case 's':
  251 + cartographic.latitude += moveStep * Math.cos(Cesium.Math.toRadians(heading.value + 180));
  252 + cartographic.longitude += moveStep * Math.sin(Cesium.Math.toRadians(heading.value + 180));
  253 + break;
  254 + case 'c':
  255 + cartographic.height += 1;
  256 + break;
  257 + case 'z':
  258 + cartographic.height -= 1;
  259 + break;
  260 + case 'q': // 逆时针旋转
  261 + heading.value -= 1
  262 + pointer.value.orientation = Cesium.Transforms.headingPitchRollQuaternion(currentPos,
  263 + new Cesium.HeadingPitchRoll(
  264 + Cesium.Math.toRadians(90 + heading.value),
  265 + Cesium.Math.toRadians(90),
  266 + Cesium.Math.toRadians(0))
  267 + )
  268 + break;
  269 + case 'e': // 顺时针旋转
  270 + heading.value += 1
  271 + pointer.value.orientation = Cesium.Transforms.headingPitchRollQuaternion(currentPos,
  272 + new Cesium.HeadingPitchRoll(
  273 + Cesium.Math.toRadians(90 + heading.value),
  274 + Cesium.Math.toRadians(90),
  275 + Cesium.Math.toRadians(0))
  276 + )
  277 + break;
  278 + default:
  279 + return;
  280 + }
  281 + const newPosition = Cesium.Cartesian3.fromRadians(
  282 + cartographic.longitude,
  283 + cartographic.latitude,
  284 + cartographic.height
  285 + );
  286 + pointer.value.position = newPosition;
  287 +}
  288 +
  289 +onMounted(() => {
  290 + initCesium()
  291 +})
  292 +</script>
  293 +
  294 +<style scoped></style>
  295 +
  296 +
  297 +
  298 +
  299 +
  300 +
  301 +
  302 +
  303 +
  304 +
  305 +
  306 +
  307 +
  308 +
  309 +
  310 +
  311 +
  312 +
  313 +
  314 +
  315 +
  316 +
  317 +
  318 +
  319 +
  320 +
  321 +
  322 +
  323 +
  1 +<template>
  2 + <div class="course-setting" style="position: relative">
  3 + <el-button @click="headerLeftConfigShow=!headerLeftConfigShow">
  4 + <div style="display: flex;align-items: center">
  5 + <el-icon>
  6 + <Promotion/>
  7 + </el-icon>
  8 + <span>航线设置</span>
  9 + <el-icon :style="{transform:headerLeftConfigShow?'rotateZ(180deg)':'rotateZ(0deg)'}"
  10 + style="margin-left: 10px;transition: all .5s">
  11 + <ArrowUpBold/>
  12 + </el-icon>
  13 + </div>
  14 + </el-button>
  15 + <transition name="drop">
  16 + <div v-if="headerLeftConfigShow" class="dialog">
  17 + <div class="card">
  18 + <div style="display: flex;align-items: center;justify-content: space-between">
  19 + <div>已设置参考起飞点</div>
  20 + <el-button type="text">重设置起飞点</el-button>
  21 + </div>
  22 + </div>
  23 + <div class="card">
  24 + <div>拍照设置</div>
  25 + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 10px">
  26 + <el-button round style="flex: 1" v-for="item in photoSettingOptions" @click="selectPhotoSetting(item)"
  27 + :key="item.value"
  28 + :type="imageFormat?.includes(item.value)?'primary':'info'">{{ item.label }}
  29 + </el-button>
  30 + </div>
  31 + <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 10px">
  32 + <div>智能低光</div>
  33 + <el-switch active-value="lowLightSmartShooting" inactive-value="normalPhoto" v-model="orientedPhotoMode"/>
  34 + </div>
  35 + </div>
  36 + <div class="card">
  37 + <el-button-group style="display: flex">
  38 + <el-button v-for="item in flyToWaylineModeOptions" style="flex:1" @click="selectClimbingMode(item)"
  39 + :key="item.value"
  40 + :type="flyToWaylineMode===item.value?'primary':'info'">{{ item.label }}
  41 + </el-button>
  42 + </el-button-group>
  43 +
  44 + <div style="display: flex">
  45 + <div style="flex: 1;display: flex;align-items: center;justify-content: center">
  46 + <el-image style="width: 250px;height: 150px" :src="courseSetting1"/>
  47 + </div>
  48 + <div style="display: flex;flex-direction: column;width: 80px">
  49 + <el-button :disabled="takeOffSecurityHeight>=takeOffSecurityHeightMax" size="small"
  50 + style="width: 100%;margin:5px 0"
  51 + @click="addTakeOffSecurityHeight(100)">+100
  52 + </el-button>
  53 + <el-button :disabled="takeOffSecurityHeight>=takeOffSecurityHeightMax" size="small"
  54 + style="width: 100%;margin:5px 0"
  55 + @click="addTakeOffSecurityHeight(10)">+10
  56 + </el-button>
  57 + <div style="width: 100%;margin:5px 0;display: flex ;align-items: flex-end">
  58 + <span style="font-weight: bold;color: #409eff;font-size: x-large">{{ takeOffSecurityHeight }}</span>
  59 + <span style="margin-left: 10px">m</span>
  60 + </div>
  61 + <el-button :disabled="takeOffSecurityHeight<=takeOffSecurityHeightMin" size="small"
  62 + style="width: 100%;margin:5px 0"
  63 + @click="addTakeOffSecurityHeight(-10)">-10
  64 + </el-button>
  65 + <el-button :disabled="takeOffSecurityHeight<=takeOffSecurityHeightMin" size="small"
  66 + style="width: 100%;margin:5px 0"
  67 + @click="addTakeOffSecurityHeight(-100)">-100
  68 + </el-button>
  69 + </div>
  70 + </div>
  71 +
  72 + </div>
  73 + <div class="card">
  74 + <div>航海线高度</div>
  75 + <el-button-group style="display: flex;margin-top: 10px">
  76 + <el-button v-for="item in executeHeightModeOptions" style="flex:1" @click="selectExecuteHeightMode(item)"
  77 + :key="item.value"
  78 + :type="executeHeightMode===item.value?'primary':'info'">{{ item.label }}
  79 + </el-button>
  80 + </el-button-group>
  81 + <div style="display: flex">
  82 + <div style="flex: 1;display: flex;align-items: center;justify-content: center">
  83 + <el-image style="width: 250px;height: 150px" :src="courseSetting2"/>
  84 + </div>
  85 + <div style="display: flex;flex-direction: column;width: 80px">
  86 + <el-button :disabled="executeHeight>=executeHeightMax" size="small"
  87 + style="width: 100%;margin:5px 0" @click="addExecuteHeight(100)">+100
  88 + </el-button>
  89 + <el-button :disabled="executeHeight>=executeHeightMax" size="small"
  90 + style="width: 100%;margin:5px 0" @click="addExecuteHeight(10)">+10
  91 + </el-button>
  92 + <div style="width: 100%;margin:5px 0;display: flex ;align-items: flex-end">
  93 + <span style="font-weight: bold;color: #409eff;font-size: x-large">{{ executeHeight }}</span>
  94 + <span style="margin-left: 10px">m</span>
  95 + </div>
  96 + <el-button :disabled="executeHeight<=executeHeightMin" size="small"
  97 + style="width: 100%;margin:5px 0" @click="addExecuteHeight(-10)">-10
  98 + </el-button>
  99 + <el-button :disabled="executeHeight<=executeHeightMin" size="small"
  100 + style="width: 100%;margin:5px 0" @click="addExecuteHeight(-100)">-100
  101 + </el-button>
  102 + </div>
  103 + </div>
  104 + </div>
  105 + <div class="card">
  106 + <div>全局航线速度</div>
  107 + <div style="display: flex;margin-top: 10px">
  108 + <el-button @click="addAutoFlightSpeed(-1)" :icon="Minus"></el-button>
  109 + <div style="flex: 1;display: flex;justify-content: center;align-items: flex-end">
  110 + <span style="font-weight: bold;color: #409eff;font-size: x-large">{{ autoFlightSpeed }}</span>
  111 + <span style="margin-left: 10px">m/s</span>
  112 + </div>
  113 + <el-button @click="addAutoFlightSpeed(1)" :icon="Plus"></el-button>
  114 + </div>
  115 + </div>
  116 + <!-- <div class="card">
  117 + <div>
  118 + <div
  119 + style="display: flex;align-items: center;justify-content: space-between;padding: 10px; ">
  120 + <span>高级设置</span>
  121 + <el-icon @click="moreShow=!moreShow" style="cursor: pointer;transition: all .5s; "
  122 + :style="{transform:moreShow?' rotateZ(0deg)':' rotateZ(180deg)'}">
  123 + <ArrowUpBold/>
  124 + </el-icon>
  125 + </div>
  126 + <div style="border-bottom: 1px solid #393939"></div>
  127 + <div :style="{height:moreShow?'350px':'0'}" style="transition: all .5s;overflow: hidden">
  128 + <div class="card">
  129 + <div>起飞速度</div>
  130 + <div style="display: flex;margin-top: 10px">
  131 + <el-button @click="addFlySpeed(-1)" :icon="Minus"></el-button>
  132 + <div style="flex: 1;display: flex;justify-content: center;align-items: flex-end">
  133 + <span style="font-weight: bold;color: #409eff;font-size: x-large">{{ flySpeed }}</span>
  134 + <span style="margin-left: 10px">m/s</span>
  135 + </div>
  136 + <el-button @click="addFlySpeed(1)" :icon="Plus"></el-button>
  137 + </div>
  138 + <div style="margin: 5px 0">航点类型</div>
  139 + <el-select style="margin: 5px 0"></el-select>
  140 + <div style="margin: 5px 0">航点类型</div>
  141 + <el-select style="margin: 5px 0"></el-select>
  142 + <div style="margin: 5px 0">航点类型</div>
  143 + <el-select style="margin: 5px 0"></el-select>
  144 + <div style="margin: 5px 0">航点类型</div>
  145 + <el-select style="margin: 5px 0"></el-select>
  146 + </div>
  147 + </div>
  148 + </div>
  149 + </div>-->
  150 + </div>
  151 + </transition>
  152 + </div>
  153 +</template>
  154 +
  155 +<script setup lang="ts">
  156 +import {ArrowUpBold, Promotion, Plus, Minus} from "@element-plus/icons-vue";
  157 +import {inject, ref, watch, type WritableComputedRef} from "vue";
  158 +import courseSetting1 from "../image/courseSetting1.png"
  159 +import courseSetting2 from "../image/courseSetting2.png"
  160 +import {type Element} from "xml-js";
  161 +import {useXMLComputed, useXMLComputedArr} from "@/components/air-route/components/useXMLComputed.ts";
  162 +
  163 +const headerLeftConfigShow = ref(false)
  164 +const DocumentElement = inject<WritableComputedRef<Element, Element>>("DocumentElement");
  165 +
  166 +const {
  167 + elment: missionConfigElement
  168 +} = useXMLComputed(DocumentElement, 'wpml:missionConfig')
  169 +const {
  170 + elment: FolderElement
  171 +} = useXMLComputed(DocumentElement, 'Folder')
  172 +const {
  173 + elment: PlacemarkElement
  174 +} = useXMLComputed(FolderElement, 'Placemark')
  175 +const {
  176 + elment: payloadParamElement
  177 +} = useXMLComputed(missionConfigElement, 'wpml:payloadParam')
  178 +const {
  179 + elment: actionActuatorFuncParamElement
  180 +} = useXMLComputed(missionConfigElement, 'wpml:actionActuatorFuncParam')
  181 +
  182 +const {
  183 + text: imageFormat
  184 +} = useXMLComputed(payloadParamElement, 'wpml:imageFormat', {
  185 + separator: ',',
  186 + defaultText: ['wide', 'zoom', 'ir']
  187 +})
  188 +const {
  189 + text: payloadLensIndex
  190 +} = useXMLComputed(actionActuatorFuncParamElement, 'wpml:payloadLensIndex', {
  191 + separator: ',',
  192 + defaultText: ['wide', 'zoom', 'ir']
  193 +})
  194 +
  195 +const photoSettingOptions = [{
  196 + label: '广角照片',
  197 + value: 'wide'
  198 +}, {
  199 + label: '变焦照片',
  200 + value: 'zoom'
  201 +}, {
  202 + label: '红外照片',
  203 + value: 'ir'
  204 +}]
  205 +
  206 +function selectPhotoSetting(item) {
  207 + let arr = imageFormat.value
  208 + if (arr.includes(item.value)) {
  209 + if (arr.length > 1) {
  210 + arr.splice(arr.indexOf(item.value), 1)
  211 + imageFormat.value = arr
  212 + payloadLensIndex.value = arr
  213 + }
  214 + } else {
  215 + imageFormat.value = [...arr, item.value]
  216 + payloadLensIndex.value = [...arr, item.value]
  217 + }
  218 +}
  219 +
  220 +const {
  221 + text: orientedPhotoMode
  222 +} = useXMLComputed(actionActuatorFuncParamElement, 'wpml:orientedPhotoMode', {
  223 + defaultText: 'normalPhoto'
  224 +})
  225 +
  226 +//飞向首航点模式
  227 +const {
  228 + text: flyToWaylineMode
  229 +} = useXMLComputed(missionConfigElement, 'wpml:flyToWaylineMode', {
  230 + defaultText: 'safely'
  231 +})
  232 +const flyToWaylineModeOptions = ref([
  233 + {label: '垂直爬升', value: 'safely'},
  234 + {label: '倾斜爬升', value: 'pointToPoint'},
  235 +])
  236 +
  237 +function selectClimbingMode(item) {
  238 + flyToWaylineMode.value = item.value
  239 +}
  240 +
  241 +//安全起飞高度
  242 +const {
  243 + text: takeOffSecurityHeight
  244 +} = useXMLComputed(missionConfigElement, 'wpml:takeOffSecurityHeight', {
  245 + defaultText: 100,
  246 + textType: 'number'
  247 +})
  248 +const takeOffSecurityHeightMax = ref(1500)
  249 +const takeOffSecurityHeightMin = ref(2)
  250 +
  251 +function addTakeOffSecurityHeight(item) {
  252 + let res = takeOffSecurityHeight.value + item
  253 + if (res <= takeOffSecurityHeightMax.value && res >= takeOffSecurityHeightMin.value) {
  254 + takeOffSecurityHeight.value = res
  255 + } else {
  256 + if (res > takeOffSecurityHeightMax.value) {
  257 + takeOffSecurityHeight.value = takeOffSecurityHeightMax.value
  258 + }
  259 + if (res < takeOffSecurityHeightMin.value) {
  260 + takeOffSecurityHeight.value = takeOffSecurityHeightMin.value
  261 + }
  262 + }
  263 +}
  264 +
  265 +//执行高度模式
  266 +const {
  267 + text: executeHeightMode
  268 +} = useXMLComputed(FolderElement, 'wpml:executeHeightMode', {
  269 + defaultText: 'relativeToStartPoint',
  270 +})
  271 +const executeHeightModeOptions = ref([
  272 + /* {label: '海拔高度', value: 'WGS84'},*/
  273 + {label: '椭球高', value: 'WGS84'},
  274 + {label: '相对起飞高度', value: 'relativeToStartPoint'},
  275 + {label: '实时仿地模式', value: 'realTimeFollowSurface'},
  276 +])
  277 +
  278 +function selectExecuteHeightMode(item) {
  279 + executeHeightMode.value = item.value
  280 +}
  281 +
  282 +const {list: folderList} = useXMLComputedArr(FolderElement, 'Placemark')
  283 +const {
  284 + text: executeHeight
  285 +} = useXMLComputed(PlacemarkElement, 'wpml:executeHeight', {
  286 + defaultText: 100,
  287 + textType: 'number'
  288 +})
  289 +const executeHeightMax = ref(1500)
  290 +const executeHeightMin = ref(2)
  291 +
  292 +function addExecuteHeight(item) {
  293 + let res = executeHeight.value + item
  294 + if (res <= executeHeightMax.value && res >= executeHeightMin.value) {
  295 + executeHeight.value = res
  296 + } else {
  297 + if (res > executeHeightMax.value) {
  298 + executeHeight.value = executeHeightMax.value
  299 + }
  300 + if (res < executeHeightMin.value) {
  301 + executeHeight.value = executeHeightMin.value
  302 + }
  303 + }
  304 + folderList.value.forEach(({elment}) => {
  305 + const {
  306 + text: height
  307 + } = useXMLComputed(elment, 'wpml:executeHeight', {
  308 + defaultText: 100,
  309 + textType: 'number'
  310 + })
  311 + height.value = executeHeight.value
  312 + })
  313 +}
  314 +
  315 +const {
  316 + text: autoFlightSpeed
  317 +} = useXMLComputed(FolderElement, 'wpml:autoFlightSpeed', {
  318 + textType: 'number',
  319 + defaultText: 10
  320 +})
  321 +const autoFlightSpeedMax = ref(15)
  322 +const autoFlightSpeedMin = ref(1)
  323 +
  324 +function addAutoFlightSpeed(item) {
  325 + let res = autoFlightSpeed.value + item
  326 + if (res <= autoFlightSpeedMax.value && res >= autoFlightSpeedMin.value) {
  327 + autoFlightSpeed.value = res
  328 + } else {
  329 + if (res > autoFlightSpeedMax.value) {
  330 + autoFlightSpeed.value = autoFlightSpeedMax.value
  331 + }
  332 + if (res < autoFlightSpeedMin.value) {
  333 + autoFlightSpeed.value = autoFlightSpeedMin.value
  334 + }
  335 + }
  336 +}
  337 +
  338 +const moreShow = ref(false)
  339 +
  340 +
  341 +const flySpeed = ref(10)
  342 +const flySpeedMax = ref(15)
  343 +const flySpeedMin = ref(1)
  344 +
  345 +function addFlySpeed(item) {
  346 + let res = flySpeed.value + item
  347 + if (res <= flySpeedMax.value && res >= flySpeedMin.value) {
  348 + flySpeed.value = res
  349 + } else {
  350 + if (res > flySpeedMax.value) {
  351 + flySpeed.value = flySpeedMax.value
  352 + }
  353 + if (res < flySpeedMin.value) {
  354 + flySpeed.value = flySpeedMin.value
  355 + }
  356 + }
  357 +}
  358 +</script>
  359 +
  360 +<style scoped>
  361 +.dialog {
  362 + background: #101010;
  363 + width: 400px;
  364 + box-shadow: 0 0 10px 1px rgba(255, 255, 255, 0.1);
  365 + position: absolute;
  366 + padding: 10px;
  367 + border-radius: 10px;
  368 + top: calc(100% + 20px);
  369 + max-height: 80vh;
  370 + overflow: auto;
  371 +}
  372 +
  373 +.card {
  374 + background: #232323;
  375 + padding: 10px;
  376 + border-radius: 10px;
  377 +
  378 + & + .card {
  379 + margin-top: 20px;
  380 + }
  381 +}
  382 +</style>
  1 +<template>
  2 + <div style="display:flex;flex-direction: column;margin: 10px 0;width: 100%">
  3 + <div style="display: grid;grid-template-columns: repeat(3,1fr);grid-gap: 20px;margin-top: 10px">
  4 + <div v-for="item in options" class="item" @click="onSelect(item)"
  5 + :class="{active:multiple?selectValue?.includes(item.value):selectValue===item.value}">{{ item.label }}
  6 + </div>
  7 + </div>
  8 + </div>
  9 +</template>
  10 +
  11 +<script setup lang="ts">
  12 +import {ref, watch} from "vue";
  13 +
  14 +const props = defineProps({
  15 + multiple: {
  16 + type: Boolean,
  17 + default: false
  18 + },
  19 + options: {
  20 + type: Array,
  21 + default: () => []
  22 + },
  23 + title: {
  24 + type: String,
  25 + default: '选择'
  26 + }
  27 +})
  28 +const modelValue = defineModel()
  29 +const selectValue = ref()
  30 +
  31 +selectValue.value = modelValue.value
  32 +watch(modelValue, (v) => {
  33 + selectValue.value = v
  34 +})
  35 +
  36 +const emits = defineEmits(["select"])
  37 +
  38 +function onSelect(item) {
  39 + if (props.multiple) {
  40 + if (selectValue.value.includes(item.value)) {
  41 + selectValue.value = selectValue.value.filter(v => v !== item.value)
  42 + } else {
  43 + selectValue.value.push(item.value)
  44 + }
  45 + } else {
  46 + selectValue.value = item.value
  47 + }
  48 + modelValue.value = selectValue.value
  49 + emits('select', selectValue.value)
  50 +}
  51 +</script>
  52 +
  53 +<style scoped>
  54 +.item {
  55 + color: #fff;
  56 + border-radius: 5px;
  57 + background: #3c3c3c;
  58 + padding: 20px;
  59 + border: 2px solid transparent;
  60 + transition: all .2s;
  61 + cursor: pointer;
  62 +
  63 + &.active {
  64 + background: #234971;
  65 + border: 2px solid #2d8cf0;
  66 + }
  67 +}
  68 +</style>
  1 +<template>
  2 + <div>{{ index }}</div>
  3 +</template>
  4 +
  5 +<script setup lang="ts">
  6 +import {useXMLComputed} from "@/components/air-route/components/useXMLComputed.ts";
  7 +
  8 +const props = defineProps({
  9 + index: {
  10 + type: Number,
  11 + required: true
  12 + },
  13 + item: {
  14 + type: Object,
  15 + required: true
  16 + }
  17 +})
  18 +const modelValue = defineModel()
  19 +const {text: index} = useXMLComputed(props.item.elment, 'wpml:index', {
  20 + defaultText: props.index,
  21 + textType: 'number'
  22 +})
  23 +</script>
  24 +
  25 +<style scoped>
  26 +
  27 +</style>
  1 +<template>
  2 + <div>航点列表</div>
  3 + <div>
  4 + <div>
  5 + <div>航线长度</div>
  6 + <div>626.1m</div>
  7 + </div>
  8 + <div>
  9 + <div>预计执行时间</div>
  10 + <div>1m51s</div>
  11 + </div>
  12 + <div>
  13 + <div>航点</div>
  14 + <div>626.1m</div>
  15 + </div>
  16 + <div>
  17 + <div>照片</div>
  18 + <div>626.1m</div>
  19 + </div>
  20 + </div>
  21 + <div>
  22 + <placemark-item v-for="(item,index) in list" :item="item" :index="index"/>
  23 + </div>
  24 +</template>
  25 +
  26 +<script setup lang="ts">
  27 +import {inject, type WritableComputedRef} from "vue";
  28 +import type {Element} from "xml-js";
  29 +import {useXMLComputed, useXMLComputedArr} from "@/components/air-route/components/useXMLComputed.ts";
  30 +import PlacemarkItem from "@/components/air-route/components/placemark-item.vue";
  31 +
  32 +const DocumentElement = inject<WritableComputedRef<Element, Element>>("DocumentElement");
  33 +const {elment: FolderElement} = useXMLComputed(DocumentElement, 'Folder')
  34 +const {list} = useXMLComputedArr(FolderElement, 'Placemark')
  35 +</script>
  36 +
  37 +<style scoped>
  38 +
  39 +</style>
  1 +const config = {
  2 + "declaration":
  3 + {
  4 + "attributes":
  5 + {
  6 + "version":
  7 + "1.0", "encoding":
  8 + "UTF-8"
  9 + }
  10 + }
  11 + ,
  12 + "elements":
  13 + [{
  14 + "type": "element",
  15 + "name": "kml",
  16 + "attributes": {"xmlns": "http://www.opengis.net/kml/2.2", "xmlns:wpml": "http://www.dji.com/wpmz/1.0.6"},
  17 + "elements": [
  18 + {
  19 + "type": "element",
  20 + "name": "Document",
  21 + "elements": [
  22 + {
  23 + "type": "element",
  24 + "name": "wpml:missionConfig",
  25 + "elements": [{
  26 + "type": "element",
  27 + "name": "wpml:flyToWaylineMode",
  28 + "elements": [{"type": "text", "text": "safely"}]
  29 + }, {
  30 + "type": "element",
  31 + "name": "wpml:finishAction",
  32 + "elements": [{"type": "text", "text": "goHome"}]
  33 + }, {
  34 + "type": "element",
  35 + "name": "wpml:exitOnRCLost",
  36 + "elements": [{"type": "text", "text": "goContinue"}]
  37 + }, {
  38 + "type": "element",
  39 + "name": "wpml:executeRCLostAction",
  40 + "elements": [{"type": "text", "text": "goBack"}]
  41 + }, {
  42 + "type": "element",
  43 + "name": "wpml:takeOffSecurityHeight",
  44 + "elements": [{"type": "text", "text": "70"}]
  45 + }, {
  46 + "type": "element",
  47 + "name": "wpml:globalTransitionalSpeed",
  48 + "elements": [{"type": "text", "text": "15"}]
  49 + }, {
  50 + "type": "element",
  51 + "name": "wpml:globalRTHHeight",
  52 + "elements": [{"type": "text", "text": "100"}]
  53 + }, {
  54 + "type": "element",
  55 + "name": "wpml:droneInfo",
  56 + "elements": [{
  57 + "type": "element",
  58 + "name": "wpml:droneEnumValue",
  59 + "elements": [{"type": "text", "text": "67"}]
  60 + }, {
  61 + "type": "element",
  62 + "name": "wpml:droneSubEnumValue",
  63 + "elements": [{"type": "text", "text": "1"}]
  64 + }]
  65 + }, {
  66 + "type": "element",
  67 + "name": "wpml:payloadInfo",
  68 + "elements": [{
  69 + "type": "element",
  70 + "name": "wpml:payloadEnumValue",
  71 + "elements": [{"type": "text", "text": "53"}]
  72 + }, {
  73 + "type": "element",
  74 + "name": "wpml:payloadSubEnumValue",
  75 + "elements": [{"type": "text", "text": "1"}]
  76 + }, {
  77 + "type": "element",
  78 + "name": "wpml:payloadPositionIndex",
  79 + "elements": [{"type": "text", "text": "0"}]
  80 + }]
  81 + }]
  82 + }, {
  83 + "type": "element",
  84 + "name": "Folder",
  85 + "elements": [{
  86 + "type": "element",
  87 + "name": "wpml:templateId",
  88 + "elements": [{"type": "text", "text": "0"}]
  89 + }, {
  90 + "type": "element",
  91 + "name": "wpml:executeHeightMode",
  92 + "elements": [{"type": "text", "text": "relativeToStartPoint"}]
  93 + }, {
  94 + "type": "element",
  95 + "name": "wpml:waylineId",
  96 + "elements": [{"type": "text", "text": "0"}]
  97 + }, {
  98 + "type": "element",
  99 + "name": "wpml:distance",
  100 + "elements": [
  101 + {"type": "text", "text": "95.3817596435547"}
  102 + ]
  103 + }, {
  104 + "type": "element",
  105 + "name": "wpml:duration",
  106 + "elements": [{"type": "text", "text": "12.0381755828857"}]
  107 + }, {
  108 + "type": "element",
  109 + "name": "wpml:autoFlightSpeed",
  110 + "elements": [{"type": "text", "text": "10"}]
  111 + }, {
  112 + "type": "element",
  113 + "name": "Placemark",
  114 + "elements": [{
  115 + "type": "element",
  116 + "name": "Point",
  117 + "elements": [{
  118 + "type": "element",
  119 + "name": "coordinates",
  120 + "elements": [{
  121 + "type": "text",
  122 + "text": "\n 102.814068783866,23.2359655022029\n "
  123 + }]
  124 + }]
  125 + }, {
  126 + "type": "element",
  127 + "name": "wpml:index",
  128 + "elements": [{"type": "text", "text": "0"}]
  129 + }, {
  130 + "type": "element",
  131 + "name": "wpml:executeHeight",
  132 + "elements": [{"type": "text", "text": "67.199632961"}]
  133 + }, {
  134 + "type": "element",
  135 + "name": "wpml:waypointSpeed",
  136 + "elements": [{"type": "text", "text": "10"}]
  137 + }, {
  138 + "type": "element",
  139 + "name": "wpml:waypointHeadingParam",
  140 + "elements": [{
  141 + "type": "element",
  142 + "name": "wpml:waypointHeadingMode",
  143 + "elements": [{"type": "text", "text": "followWayline"}]
  144 + }, {
  145 + "type": "element",
  146 + "name": "wpml:waypointHeadingAngle",
  147 + "elements": [{"type": "text", "text": "0"}]
  148 + }, {
  149 + "type": "element",
  150 + "name": "wpml:waypointPoiPoint",
  151 + "elements": [{"type": "text", "text": "0.000000,0.000000,0.000000"}]
  152 + }, {
  153 + "type": "element",
  154 + "name": "wpml:waypointHeadingAngleEnable",
  155 + "elements": [{"type": "text", "text": "0"}]
  156 + }, {
  157 + "type": "element",
  158 + "name": "wpml:waypointHeadingPathMode",
  159 + "elements": [{"type": "text", "text": "followBadArc"}]
  160 + }, {
  161 + "type": "element",
  162 + "name": "wpml:waypointHeadingPoiIndex",
  163 + "elements": [{"type": "text", "text": "0"}]
  164 + }]
  165 + }, {
  166 + "type": "element",
  167 + "name": "wpml:waypointTurnParam",
  168 + "elements": [{
  169 + "type": "element",
  170 + "name": "wpml:waypointTurnMode",
  171 + "elements": [{"type": "text", "text": "toPointAndStopWithDiscontinuityCurvature"}]
  172 + }, {
  173 + "type": "element",
  174 + "name": "wpml:waypointTurnDampingDist",
  175 + "elements": [{"type": "text", "text": "0"}]
  176 + }]
  177 + }, {
  178 + "type": "element",
  179 + "name": "wpml:useStraightLine",
  180 + "elements": [{"type": "text", "text": "1"}]
  181 + }, {
  182 + "type": "element",
  183 + "name": "wpml:actionGroup",
  184 + "elements": [{
  185 + "type": "element",
  186 + "name": "wpml:actionGroupId",
  187 + "elements": [{"type": "text", "text": "0"}]
  188 + }, {
  189 + "type": "element",
  190 + "name": "wpml:actionGroupStartIndex",
  191 + "elements": [{"type": "text", "text": "0"}]
  192 + }, {
  193 + "type": "element",
  194 + "name": "wpml:actionGroupEndIndex",
  195 + "elements": [{"type": "text", "text": "0"}]
  196 + }, {
  197 + "type": "element",
  198 + "name": "wpml:actionGroupMode",
  199 + "elements": [{"type": "text", "text": "sequence"}]
  200 + }, {
  201 + "type": "element",
  202 + "name": "wpml:actionTrigger",
  203 + "elements": [{
  204 + "type": "element",
  205 + "name": "wpml:actionTriggerType",
  206 + "elements": [{"type": "text", "text": "reachPoint"}]
  207 + }]
  208 + }, {
  209 + "type": "element",
  210 + "name": "wpml:action",
  211 + "elements": [{
  212 + "type": "element",
  213 + "name": "wpml:actionId",
  214 + "elements": [{"type": "text", "text": "0"}]
  215 + }, {
  216 + "type": "element",
  217 + "name": "wpml:actionActuatorFunc",
  218 + "elements": [{"type": "text", "text": "orientedShoot"}]
  219 + }, {
  220 + "type": "element",
  221 + "name": "wpml:actionActuatorFuncParam",
  222 + "elements": [{
  223 + "type": "element",
  224 + "name": "wpml:gimbalPitchRotateAngle",
  225 + "elements": [{"type": "text", "text": "-56.05"}]
  226 + }, {
  227 + "type": "element",
  228 + "name": "wpml:gimbalRollRotateAngle",
  229 + "elements": [{"type": "text", "text": "0"}]
  230 + }, {
  231 + "type": "element",
  232 + "name": "wpml:gimbalYawRotateAngle",
  233 + "elements": [{"type": "text", "text": "-51.148"}]
  234 + }, {
  235 + "type": "element",
  236 + "name": "wpml:focusX",
  237 + "elements": [{"type": "text", "text": "0"}]
  238 + }, {
  239 + "type": "element",
  240 + "name": "wpml:focusY",
  241 + "elements": [{"type": "text", "text": "0"}]
  242 + }, {
  243 + "type": "element",
  244 + "name": "wpml:focusRegionWidth",
  245 + "elements": [{"type": "text", "text": "0"}]
  246 + }, {
  247 + "type": "element",
  248 + "name": "wpml:focusRegionHeight",
  249 + "elements": [{"type": "text", "text": "0"}]
  250 + }, {
  251 + "type": "element",
  252 + "name": "wpml:focalLength",
  253 + "elements": [{"type": "text", "text": "216"}]
  254 + }, {
  255 + "type": "element",
  256 + "name": "wpml:aircraftHeading",
  257 + "elements": [{"type": "text", "text": "-51.148"}]
  258 + }, {
  259 + "type": "element",
  260 + "name": "wpml:accurateFrameValid",
  261 + "elements": [{"type": "text", "text": "0"}]
  262 + }, {
  263 + "type": "element",
  264 + "name": "wpml:payloadPositionIndex",
  265 + "elements": [{"type": "text", "text": "0"}]
  266 + }, {
  267 + "type": "element",
  268 + "name": "wpml:useGlobalPayloadLensIndex",
  269 + "elements": [{"type": "text", "text": "1"}]
  270 + }, {
  271 + "type": "element",
  272 + "name": "wpml:payloadLensIndex",
  273 + "elements": [{"type": "text", "text": "zoom"}]
  274 + }, {
  275 + "type": "element",
  276 + "name": "wpml:targetAngle",
  277 + "elements": [{"type": "text", "text": "0"}]
  278 + }, {
  279 + "type": "element",
  280 + "name": "wpml:actionUUID",
  281 + "elements": [{
  282 + "type": "text",
  283 + "text": "a2f692e0-420b-4868-8693-3062d2aaf1ab"
  284 + }]
  285 + }, {
  286 + "type": "element",
  287 + "name": "wpml:imageWidth",
  288 + "elements": [{"type": "text", "text": "0"}]
  289 + }, {
  290 + "type": "element",
  291 + "name": "wpml:imageHeight",
  292 + "elements": [{"type": "text", "text": "0"}]
  293 + }, {
  294 + "type": "element",
  295 + "name": "wpml:AFPos",
  296 + "elements": [{"type": "text", "text": "0"}]
  297 + }, {
  298 + "type": "element",
  299 + "name": "wpml:gimbalPort",
  300 + "elements": [{"type": "text", "text": "0"}]
  301 + }, {
  302 + "type": "element",
  303 + "name": "wpml:orientedCameraType",
  304 + "elements": [{"type": "text", "text": "53"}]
  305 + }, {
  306 + "type": "element",
  307 + "name": "wpml:orientedFilePath",
  308 + "elements": [{
  309 + "type": "text",
  310 + "text": "4bbe6c02-18b5-481d-a957-610240ff955c"
  311 + }]
  312 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  313 + "type": "element",
  314 + "name": "wpml:orientedFileSize",
  315 + "elements": [{"type": "text", "text": "0"}]
  316 + }, {
  317 + "type": "element",
  318 + "name": "wpml:orientedPhotoMode",
  319 + "elements": [{"type": "text", "text": "normalPhoto"}]
  320 + }]
  321 + }]
  322 + }]
  323 + }, {
  324 + "type": "element",
  325 + "name": "wpml:waypointGimbalHeadingParam",
  326 + "elements": [{
  327 + "type": "element",
  328 + "name": "wpml:waypointGimbalPitchAngle",
  329 + "elements": [{"type": "text", "text": "0"}]
  330 + }, {
  331 + "type": "element",
  332 + "name": "wpml:waypointGimbalYawAngle",
  333 + "elements": [{"type": "text", "text": "0"}]
  334 + }]
  335 + }, {
  336 + "type": "element",
  337 + "name": "wpml:isRisky",
  338 + "elements": [{"type": "text", "text": "0"}]
  339 + }, {
  340 + "type": "element",
  341 + "name": "wpml:waypointWorkType",
  342 + "elements": [{"type": "text", "text": "0"}]
  343 + }]
  344 + }, {
  345 + "type": "element",
  346 + "name": "Placemark",
  347 + "elements": [{
  348 + "type": "element",
  349 + "name": "Point",
  350 + "elements": [{
  351 + "type": "element",
  352 + "name": "coordinates",
  353 + "elements": [{
  354 + "type": "text",
  355 + "text": "\n 102.813728813702,23.2361906183568\n "
  356 + }]
  357 + }]
  358 + }, {
  359 + "type": "element",
  360 + "name": "wpml:index",
  361 + "elements": [{"type": "text", "text": "1"}]
  362 + }, {
  363 + "type": "element",
  364 + "name": "wpml:executeHeight",
  365 + "elements": [{"type": "text", "text": "67.199632961"}]
  366 + }, {
  367 + "type": "element",
  368 + "name": "wpml:waypointSpeed",
  369 + "elements": [{"type": "text", "text": "10"}]
  370 + }, {
  371 + "type": "element",
  372 + "name": "wpml:waypointHeadingParam",
  373 + "elements": [{
  374 + "type": "element",
  375 + "name": "wpml:waypointHeadingMode",
  376 + "elements": [{"type": "text", "text": "followWayline"}]
  377 + }, {
  378 + "type": "element",
  379 + "name": "wpml:waypointHeadingAngle",
  380 + "elements": [{"type": "text", "text": "0"}]
  381 + }, {
  382 + "type": "element",
  383 + "name": "wpml:waypointPoiPoint",
  384 + "elements": [{"type": "text", "text": "0.000000,0.000000,0.000000"}]
  385 + }, {
  386 + "type": "element",
  387 + "name": "wpml:waypointHeadingAngleEnable",
  388 + "elements": [{"type": "text", "text": "0"}]
  389 + }, {
  390 + "type": "element",
  391 + "name": "wpml:waypointHeadingPathMode",
  392 + "elements": [{"type": "text", "text": "followBadArc"}]
  393 + }, {
  394 + "type": "element",
  395 + "name": "wpml:waypointHeadingPoiIndex",
  396 + "elements": [{"type": "text", "text": "0"}]
  397 + }]
  398 + }, {
  399 + "type": "element",
  400 + "name": "wpml:waypointTurnParam",
  401 + "elements": [{
  402 + "type": "element",
  403 + "name": "wpml:waypointTurnMode",
  404 + "elements": [{"type": "text", "text": "toPointAndStopWithDiscontinuityCurvature"}]
  405 + }, {
  406 + "type": "element",
  407 + "name": "wpml:waypointTurnDampingDist",
  408 + "elements": [{"type": "text", "text": "0"}]
  409 + }]
  410 + }, {
  411 + "type": "element",
  412 + "name": "wpml:useStraightLine",
  413 + "elements": [{"type": "text", "text": "1"}]
  414 + }, {
  415 + "type": "element",
  416 + "name": "wpml:actionGroup",
  417 + "elements": [{
  418 + "type": "element",
  419 + "name": "wpml:actionGroupId",
  420 + "elements": [{"type": "text", "text": "1"}]
  421 + }, {
  422 + "type": "element",
  423 + "name": "wpml:actionGroupStartIndex",
  424 + "elements": [{"type": "text", "text": "1"}]
  425 + }, {
  426 + "type": "element",
  427 + "name": "wpml:actionGroupEndIndex",
  428 + "elements": [{"type": "text", "text": "1"}]
  429 + }, {
  430 + "type": "element",
  431 + "name": "wpml:actionGroupMode",
  432 + "elements": [{"type": "text", "text": "sequence"}]
  433 + }, {
  434 + "type": "element",
  435 + "name": "wpml:actionTrigger",
  436 + "elements": [{
  437 + "type": "element",
  438 + "name": "wpml:actionTriggerType",
  439 + "elements": [{"type": "text", "text": "reachPoint"}]
  440 + }]
  441 + }, {
  442 + "type": "element",
  443 + "name": "wpml:action",
  444 + "elements": [{
  445 + "type": "element",
  446 + "name": "wpml:actionId",
  447 + "elements": [{"type": "text", "text": "0"}]
  448 + }, {
  449 + "type": "element",
  450 + "name": "wpml:actionActuatorFunc",
  451 + "elements": [{"type": "text", "text": "orientedShoot"}]
  452 + }, {
  453 + "type": "element",
  454 + "name": "wpml:actionActuatorFuncParam",
  455 + "elements": [{
  456 + "type": "element",
  457 + "name": "wpml:gimbalPitchRotateAngle",
  458 + "elements": [{"type": "text", "text": "-56.05"}]
  459 + }, {
  460 + "type": "element",
  461 + "name": "wpml:gimbalRollRotateAngle",
  462 + "elements": [{"type": "text", "text": "0"}]
  463 + }, {
  464 + "type": "element",
  465 + "name": "wpml:gimbalYawRotateAngle",
  466 + "elements": [{"type": "text", "text": "-37.265"}]
  467 + }, {
  468 + "type": "element",
  469 + "name": "wpml:focusX",
  470 + "elements": [{"type": "text", "text": "0"}]
  471 + }, {
  472 + "type": "element",
  473 + "name": "wpml:focusY",
  474 + "elements": [{"type": "text", "text": "0"}]
  475 + }, {
  476 + "type": "element",
  477 + "name": "wpml:focusRegionWidth",
  478 + "elements": [{"type": "text", "text": "0"}]
  479 + }, {
  480 + "type": "element",
  481 + "name": "wpml:focusRegionHeight",
  482 + "elements": [{"type": "text", "text": "0"}]
  483 + }, {
  484 + "type": "element",
  485 + "name": "wpml:focalLength",
  486 + "elements": [{"type": "text", "text": "216"}]
  487 + }, {
  488 + "type": "element",
  489 + "name": "wpml:aircraftHeading",
  490 + "elements": [{"type": "text", "text": "-37.265"}]
  491 + }, {
  492 + "type": "element",
  493 + "name": "wpml:accurateFrameValid",
  494 + "elements": [{"type": "text", "text": "0"}]
  495 + }, {
  496 + "type": "element",
  497 + "name": "wpml:payloadPositionIndex",
  498 + "elements": [{"type": "text", "text": "0"}]
  499 + }, {
  500 + "type": "element",
  501 + "name": "wpml:useGlobalPayloadLensIndex",
  502 + "elements": [{"type": "text", "text": "1"}]
  503 + }, {
  504 + "type": "element",
  505 + "name": "wpml:payloadLensIndex",
  506 + "elements": [{"type": "text", "text": "zoom"}]
  507 + }, {
  508 + "type": "element",
  509 + "name": "wpml:targetAngle",
  510 + "elements": [{"type": "text", "text": "0"}]
  511 + }, {
  512 + "type": "element",
  513 + "name": "wpml:actionUUID",
  514 + "elements": [{
  515 + "type": "text",
  516 + "text": "e34fd1b6-c2f8-4eb7-a7e9-210047029c6b"
  517 + }]
  518 + }, {
  519 + "type": "element",
  520 + "name": "wpml:imageWidth",
  521 + "elements": [{"type": "text", "text": "0"}]
  522 + }, {
  523 + "type": "element",
  524 + "name": "wpml:imageHeight",
  525 + "elements": [{"type": "text", "text": "0"}]
  526 + }, {
  527 + "type": "element",
  528 + "name": "wpml:AFPos",
  529 + "elements": [{"type": "text", "text": "0"}]
  530 + }, {
  531 + "type": "element",
  532 + "name": "wpml:gimbalPort",
  533 + "elements": [{"type": "text", "text": "0"}]
  534 + }, {
  535 + "type": "element",
  536 + "name": "wpml:orientedCameraType",
  537 + "elements": [{"type": "text", "text": "53"}]
  538 + }, {
  539 + "type": "element",
  540 + "name": "wpml:orientedFilePath",
  541 + "elements": [{
  542 + "type": "text",
  543 + "text": "2ec97c52-0ca8-4e17-90e9-d50ac3e3dbd9"
  544 + }]
  545 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  546 + "type": "element",
  547 + "name": "wpml:orientedFileSize",
  548 + "elements": [{"type": "text", "text": "0"}]
  549 + }, {
  550 + "type": "element",
  551 + "name": "wpml:orientedPhotoMode",
  552 + "elements": [{"type": "text", "text": "normalPhoto"}]
  553 + }]
  554 + }]
  555 + }]
  556 + }, {
  557 + "type": "element",
  558 + "name": "wpml:waypointGimbalHeadingParam",
  559 + "elements": [{
  560 + "type": "element",
  561 + "name": "wpml:waypointGimbalPitchAngle",
  562 + "elements": [{"type": "text", "text": "0"}]
  563 + }, {
  564 + "type": "element",
  565 + "name": "wpml:waypointGimbalYawAngle",
  566 + "elements": [{"type": "text", "text": "0"}]
  567 + }]
  568 + }, {
  569 + "type": "element",
  570 + "name": "wpml:isRisky",
  571 + "elements": [{"type": "text", "text": "0"}]
  572 + }, {
  573 + "type": "element",
  574 + "name": "wpml:waypointWorkType",
  575 + "elements": [{"type": "text", "text": "0"}]
  576 + }]
  577 + }, {
  578 + "type": "element",
  579 + "name": "Placemark",
  580 + "elements": [{
  581 + "type": "element",
  582 + "name": "Point",
  583 + "elements": [{
  584 + "type": "element",
  585 + "name": "coordinates",
  586 + "elements": [{
  587 + "type": "text",
  588 + "text": "\n 102.8136078157,23.2364742507511\n "
  589 + }]
  590 + }]
  591 + }, {
  592 + "type": "element",
  593 + "name": "wpml:index",
  594 + "elements": [{"type": "text", "text": "2"}]
  595 + }, {
  596 + "type": "element",
  597 + "name": "wpml:executeHeight",
  598 + "elements": [{"type": "text", "text": "67.199632961"}]
  599 + }, {
  600 + "type": "element",
  601 + "name": "wpml:waypointSpeed",
  602 + "elements": [{"type": "text", "text": "10"}]
  603 + }, {
  604 + "type": "element",
  605 + "name": "wpml:waypointHeadingParam",
  606 + "elements": [{
  607 + "type": "element",
  608 + "name": "wpml:waypointHeadingMode",
  609 + "elements": [{"type": "text", "text": "followWayline"}]
  610 + }, {
  611 + "type": "element",
  612 + "name": "wpml:waypointHeadingAngle",
  613 + "elements": [{"type": "text", "text": "0"}]
  614 + }, {
  615 + "type": "element",
  616 + "name": "wpml:waypointPoiPoint",
  617 + "elements": [{"type": "text", "text": "0.000000,0.000000,0.000000"}]
  618 + }, {
  619 + "type": "element",
  620 + "name": "wpml:waypointHeadingAngleEnable",
  621 + "elements": [{"type": "text", "text": "0"}]
  622 + }, {
  623 + "type": "element",
  624 + "name": "wpml:waypointHeadingPathMode",
  625 + "elements": [{"type": "text", "text": "followBadArc"}]
  626 + }, {
  627 + "type": "element",
  628 + "name": "wpml:waypointHeadingPoiIndex",
  629 + "elements": [{"type": "text", "text": "0"}]
  630 + }]
  631 + }, {
  632 + "type": "element",
  633 + "name": "wpml:waypointTurnParam",
  634 + "elements": [{
  635 + "type": "element",
  636 + "name": "wpml:waypointTurnMode",
  637 + "elements": [{"type": "text", "text": "toPointAndStopWithDiscontinuityCurvature"}]
  638 + }, {
  639 + "type": "element",
  640 + "name": "wpml:waypointTurnDampingDist",
  641 + "elements": [{"type": "text", "text": "0"}]
  642 + }]
  643 + }, {
  644 + "type": "element",
  645 + "name": "wpml:useStraightLine",
  646 + "elements": [{"type": "text", "text": "1"}]
  647 + }, {
  648 + "type": "element",
  649 + "name": "wpml:actionGroup",
  650 + "elements": [{
  651 + "type": "element",
  652 + "name": "wpml:actionGroupId",
  653 + "elements": [{"type": "text", "text": "2"}]
  654 + }, {
  655 + "type": "element",
  656 + "name": "wpml:actionGroupStartIndex",
  657 + "elements": [{"type": "text", "text": "2"}]
  658 + }, {
  659 + "type": "element",
  660 + "name": "wpml:actionGroupEndIndex",
  661 + "elements": [{"type": "text", "text": "2"}]
  662 + }, {
  663 + "type": "element",
  664 + "name": "wpml:actionGroupMode",
  665 + "elements": [{"type": "text", "text": "sequence"}]
  666 + }, {
  667 + "type": "element",
  668 + "name": "wpml:actionTrigger",
  669 + "elements": [{
  670 + "type": "element",
  671 + "name": "wpml:actionTriggerType",
  672 + "elements": [{"type": "text", "text": "reachPoint"}]
  673 + }]
  674 + }, {
  675 + "type": "element",
  676 + "name": "wpml:action",
  677 + "elements": [{
  678 + "type": "element",
  679 + "name": "wpml:actionId",
  680 + "elements": [{"type": "text", "text": "0"}]
  681 + }, {
  682 + "type": "element",
  683 + "name": "wpml:actionActuatorFunc",
  684 + "elements": [{"type": "text", "text": "orientedShoot"}]
  685 + }, {
  686 + "type": "element",
  687 + "name": "wpml:actionActuatorFuncParam",
  688 + "elements": [{
  689 + "type": "element",
  690 + "name": "wpml:gimbalPitchRotateAngle",
  691 + "elements": [{"type": "text", "text": "-56.05"}]
  692 + }, {
  693 + "type": "element",
  694 + "name": "wpml:gimbalRollRotateAngle",
  695 + "elements": [{"type": "text", "text": "0"}]
  696 + }, {
  697 + "type": "element",
  698 + "name": "wpml:gimbalYawRotateAngle",
  699 + "elements": [{"type": "text", "text": "-37.265"}]
  700 + }, {
  701 + "type": "element",
  702 + "name": "wpml:focusX",
  703 + "elements": [{"type": "text", "text": "0"}]
  704 + }, {
  705 + "type": "element",
  706 + "name": "wpml:focusY",
  707 + "elements": [{"type": "text", "text": "0"}]
  708 + }, {
  709 + "type": "element",
  710 + "name": "wpml:focusRegionWidth",
  711 + "elements": [{"type": "text", "text": "0"}]
  712 + }, {
  713 + "type": "element",
  714 + "name": "wpml:focusRegionHeight",
  715 + "elements": [{"type": "text", "text": "0"}]
  716 + }, {
  717 + "type": "element",
  718 + "name": "wpml:focalLength",
  719 + "elements": [{"type": "text", "text": "216"}]
  720 + }, {
  721 + "type": "element",
  722 + "name": "wpml:aircraftHeading",
  723 + "elements": [{"type": "text", "text": "-37.265"}]
  724 + }, {
  725 + "type": "element",
  726 + "name": "wpml:accurateFrameValid",
  727 + "elements": [{"type": "text", "text": "0"}]
  728 + }, {
  729 + "type": "element",
  730 + "name": "wpml:payloadPositionIndex",
  731 + "elements": [{"type": "text", "text": "0"}]
  732 + }, {
  733 + "type": "element",
  734 + "name": "wpml:useGlobalPayloadLensIndex",
  735 + "elements": [{"type": "text", "text": "1"}]
  736 + }, {
  737 + "type": "element",
  738 + "name": "wpml:payloadLensIndex",
  739 + "elements": [{"type": "text", "text": "zoom"}]
  740 + }, {
  741 + "type": "element",
  742 + "name": "wpml:targetAngle",
  743 + "elements": [{"type": "text", "text": "0"}]
  744 + }, {
  745 + "type": "element",
  746 + "name": "wpml:actionUUID",
  747 + "elements": [{
  748 + "type": "text",
  749 + "text": "c5b670bc-7e02-4ee3-a7de-d3bfb1743847"
  750 + }]
  751 + }, {
  752 + "type": "element",
  753 + "name": "wpml:imageWidth",
  754 + "elements": [{"type": "text", "text": "0"}]
  755 + }, {
  756 + "type": "element",
  757 + "name": "wpml:imageHeight",
  758 + "elements": [{"type": "text", "text": "0"}]
  759 + }, {
  760 + "type": "element",
  761 + "name": "wpml:AFPos",
  762 + "elements": [{"type": "text", "text": "0"}]
  763 + }, {
  764 + "type": "element",
  765 + "name": "wpml:gimbalPort",
  766 + "elements": [{"type": "text", "text": "0"}]
  767 + }, {
  768 + "type": "element",
  769 + "name": "wpml:orientedCameraType",
  770 + "elements": [{"type": "text", "text": "53"}]
  771 + }, {
  772 + "type": "element",
  773 + "name": "wpml:orientedFilePath",
  774 + "elements": [{
  775 + "type": "text",
  776 + "text": "2b63ee8a-751a-4370-ab6d-a6625640851c"
  777 + }]
  778 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  779 + "type": "element",
  780 + "name": "wpml:orientedFileSize",
  781 + "elements": [{"type": "text", "text": "0"}]
  782 + }, {
  783 + "type": "element",
  784 + "name": "wpml:orientedPhotoMode",
  785 + "elements": [{"type": "text", "text": "normalPhoto"}]
  786 + }]
  787 + }]
  788 + }]
  789 + }, {
  790 + "type": "element",
  791 + "name": "wpml:waypointGimbalHeadingParam",
  792 + "elements": [{
  793 + "type": "element",
  794 + "name": "wpml:waypointGimbalPitchAngle",
  795 + "elements": [{"type": "text", "text": "0"}]
  796 + }, {
  797 + "type": "element",
  798 + "name": "wpml:waypointGimbalYawAngle",
  799 + "elements": [{"type": "text", "text": "0"}]
  800 + }]
  801 + }, {
  802 + "type": "element",
  803 + "name": "wpml:isRisky",
  804 + "elements": [{"type": "text", "text": "0"}]
  805 + }, {
  806 + "type": "element",
  807 + "name": "wpml:waypointWorkType",
  808 + "elements": [{"type": "text", "text": "0"}]
  809 + }]
  810 + }, {
  811 + "type": "element",
  812 + "name": "Placemark",
  813 + "elements": [{
  814 + "type": "element",
  815 + "name": "Point",
  816 + "elements": [{
  817 + "type": "element",
  818 + "name": "coordinates",
  819 + "elements": [{
  820 + "type": "text",
  821 + "text": "\n 102.813597685565,23.2363064208282\n "
  822 + }]
  823 + }]
  824 + }, {
  825 + "type": "element",
  826 + "name": "wpml:index",
  827 + "elements": [{"type": "text", "text": "3"}]
  828 + }, {
  829 + "type": "element",
  830 + "name": "wpml:executeHeight",
  831 + "elements": [{"type": "text", "text": "67.199632961"}]
  832 + }, {
  833 + "type": "element",
  834 + "name": "wpml:waypointSpeed",
  835 + "elements": [{"type": "text", "text": "10"}]
  836 + }, {
  837 + "type": "element",
  838 + "name": "wpml:waypointHeadingParam",
  839 + "elements": [{
  840 + "type": "element",
  841 + "name": "wpml:waypointHeadingMode",
  842 + "elements": [{"type": "text", "text": "followWayline"}]
  843 + }, {
  844 + "type": "element",
  845 + "name": "wpml:waypointHeadingAngle",
  846 + "elements": [{"type": "text", "text": "0"}]
  847 + }, {
  848 + "type": "element",
  849 + "name": "wpml:waypointPoiPoint",
  850 + "elements": [{"type": "text", "text": "0.000000,0.000000,0.000000"}]
  851 + }, {
  852 + "type": "element",
  853 + "name": "wpml:waypointHeadingAngleEnable",
  854 + "elements": [{"type": "text", "text": "0"}]
  855 + }, {
  856 + "type": "element",
  857 + "name": "wpml:waypointHeadingPathMode",
  858 + "elements": [{"type": "text", "text": "followBadArc"}]
  859 + }, {
  860 + "type": "element",
  861 + "name": "wpml:waypointHeadingPoiIndex",
  862 + "elements": [{"type": "text", "text": "0"}]
  863 + }]
  864 + }, {
  865 + "type": "element",
  866 + "name": "wpml:waypointTurnParam",
  867 + "elements": [{
  868 + "type": "element",
  869 + "name": "wpml:waypointTurnMode",
  870 + "elements": [{"type": "text", "text": "toPointAndStopWithDiscontinuityCurvature"}]
  871 + }, {
  872 + "type": "element",
  873 + "name": "wpml:waypointTurnDampingDist",
  874 + "elements": [{"type": "text", "text": "0"}]
  875 + }]
  876 + }, {
  877 + "type": "element",
  878 + "name": "wpml:useStraightLine",
  879 + "elements": [{"type": "text", "text": "1"}]
  880 + }, {
  881 + "type": "element",
  882 + "name": "wpml:actionGroup",
  883 + "elements": [{
  884 + "type": "element",
  885 + "name": "wpml:actionGroupId",
  886 + "elements": [{"type": "text", "text": "3"}]
  887 + }, {
  888 + "type": "element",
  889 + "name": "wpml:actionGroupStartIndex",
  890 + "elements": [{"type": "text", "text": "3"}]
  891 + }, {
  892 + "type": "element",
  893 + "name": "wpml:actionGroupEndIndex",
  894 + "elements": [{"type": "text", "text": "3"}]
  895 + }, {
  896 + "type": "element",
  897 + "name": "wpml:actionGroupMode",
  898 + "elements": [{"type": "text", "text": "sequence"}]
  899 + }, {
  900 + "type": "element",
  901 + "name": "wpml:actionTrigger",
  902 + "elements": [{
  903 + "type": "element",
  904 + "name": "wpml:actionTriggerType",
  905 + "elements": [{"type": "text", "text": "reachPoint"}]
  906 + }]
  907 + }, {
  908 + "type": "element",
  909 + "name": "wpml:action",
  910 + "elements": [{
  911 + "type": "element",
  912 + "name": "wpml:actionId",
  913 + "elements": [{"type": "text", "text": "0"}]
  914 + }, {
  915 + "type": "element",
  916 + "name": "wpml:actionActuatorFunc",
  917 + "elements": [{"type": "text", "text": "orientedShoot"}]
  918 + }, {
  919 + "type": "element",
  920 + "name": "wpml:actionActuatorFuncParam",
  921 + "elements": [{
  922 + "type": "element",
  923 + "name": "wpml:gimbalPitchRotateAngle",
  924 + "elements": [{"type": "text", "text": "-41.107"}]
  925 + }, {
  926 + "type": "element",
  927 + "name": "wpml:gimbalRollRotateAngle",
  928 + "elements": [{"type": "text", "text": "0"}]
  929 + }, {
  930 + "type": "element",
  931 + "name": "wpml:gimbalYawRotateAngle",
  932 + "elements": [{"type": "text", "text": "-38.933"}]
  933 + }, {
  934 + "type": "element",
  935 + "name": "wpml:focusX",
  936 + "elements": [{"type": "text", "text": "0"}]
  937 + }, {
  938 + "type": "element",
  939 + "name": "wpml:focusY",
  940 + "elements": [{"type": "text", "text": "0"}]
  941 + }, {
  942 + "type": "element",
  943 + "name": "wpml:focusRegionWidth",
  944 + "elements": [{"type": "text", "text": "0"}]
  945 + }, {
  946 + "type": "element",
  947 + "name": "wpml:focusRegionHeight",
  948 + "elements": [{"type": "text", "text": "0"}]
  949 + }, {
  950 + "type": "element",
  951 + "name": "wpml:focalLength",
  952 + "elements": [{"type": "text", "text": "384"}]
  953 + }, {
  954 + "type": "element",
  955 + "name": "wpml:aircraftHeading",
  956 + "elements": [{"type": "text", "text": "-38.933"}]
  957 + }, {
  958 + "type": "element",
  959 + "name": "wpml:accurateFrameValid",
  960 + "elements": [{"type": "text", "text": "0"}]
  961 + }, {
  962 + "type": "element",
  963 + "name": "wpml:payloadPositionIndex",
  964 + "elements": [{"type": "text", "text": "0"}]
  965 + }, {
  966 + "type": "element",
  967 + "name": "wpml:useGlobalPayloadLensIndex",
  968 + "elements": [{"type": "text", "text": "1"}]
  969 + }, {
  970 + "type": "element",
  971 + "name": "wpml:payloadLensIndex",
  972 + "elements": [{"type": "text", "text": "zoom"}]
  973 + }, {
  974 + "type": "element",
  975 + "name": "wpml:targetAngle",
  976 + "elements": [{"type": "text", "text": "0"}]
  977 + }, {
  978 + "type": "element",
  979 + "name": "wpml:actionUUID",
  980 + "elements": [{
  981 + "type": "text",
  982 + "text": "77078303-bffc-4565-81d3-763b2d105e06"
  983 + }]
  984 + }, {
  985 + "type": "element",
  986 + "name": "wpml:imageWidth",
  987 + "elements": [{"type": "text", "text": "0"}]
  988 + }, {
  989 + "type": "element",
  990 + "name": "wpml:imageHeight",
  991 + "elements": [{"type": "text", "text": "0"}]
  992 + }, {
  993 + "type": "element",
  994 + "name": "wpml:AFPos",
  995 + "elements": [{"type": "text", "text": "0"}]
  996 + }, {
  997 + "type": "element",
  998 + "name": "wpml:gimbalPort",
  999 + "elements": [{"type": "text", "text": "0"}]
  1000 + }, {
  1001 + "type": "element",
  1002 + "name": "wpml:orientedCameraType",
  1003 + "elements": [{"type": "text", "text": "53"}]
  1004 + }, {
  1005 + "type": "element",
  1006 + "name": "wpml:orientedFilePath",
  1007 + "elements": [{
  1008 + "type": "text",
  1009 + "text": "aa00b71e-339c-4b38-9486-2fea43711004"
  1010 + }]
  1011 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  1012 + "type": "element",
  1013 + "name": "wpml:orientedFileSize",
  1014 + "elements": [{"type": "text", "text": "0"}]
  1015 + }, {
  1016 + "type": "element",
  1017 + "name": "wpml:orientedPhotoMode",
  1018 + "elements": [{"type": "text", "text": "normalPhoto"}]
  1019 + }]
  1020 + }]
  1021 + }, {
  1022 + "type": "element",
  1023 + "name": "wpml:action",
  1024 + "elements": [{
  1025 + "type": "element",
  1026 + "name": "wpml:actionId",
  1027 + "elements": [{"type": "text", "text": "1"}]
  1028 + }, {
  1029 + "type": "element",
  1030 + "name": "wpml:actionActuatorFunc",
  1031 + "elements": [{"type": "text", "text": "orientedShoot"}]
  1032 + }, {
  1033 + "type": "element",
  1034 + "name": "wpml:actionActuatorFuncParam",
  1035 + "elements": [{
  1036 + "type": "element",
  1037 + "name": "wpml:gimbalPitchRotateAngle",
  1038 + "elements": [{"type": "text", "text": "-40.068"}]
  1039 + }, {
  1040 + "type": "element",
  1041 + "name": "wpml:gimbalRollRotateAngle",
  1042 + "elements": [{"type": "text", "text": "0"}]
  1043 + }, {
  1044 + "type": "element",
  1045 + "name": "wpml:gimbalYawRotateAngle",
  1046 + "elements": [{"type": "text", "text": "-25.848"}]
  1047 + }, {
  1048 + "type": "element",
  1049 + "name": "wpml:focusX",
  1050 + "elements": [{"type": "text", "text": "0"}]
  1051 + }, {
  1052 + "type": "element",
  1053 + "name": "wpml:focusY",
  1054 + "elements": [{"type": "text", "text": "0"}]
  1055 + }, {
  1056 + "type": "element",
  1057 + "name": "wpml:focusRegionWidth",
  1058 + "elements": [{"type": "text", "text": "0"}]
  1059 + }, {
  1060 + "type": "element",
  1061 + "name": "wpml:focusRegionHeight",
  1062 + "elements": [{"type": "text", "text": "0"}]
  1063 + }, {
  1064 + "type": "element",
  1065 + "name": "wpml:focalLength",
  1066 + "elements": [{"type": "text", "text": "192"}]
  1067 + }, {
  1068 + "type": "element",
  1069 + "name": "wpml:aircraftHeading",
  1070 + "elements": [{"type": "text", "text": "-25.848"}]
  1071 + }, {
  1072 + "type": "element",
  1073 + "name": "wpml:accurateFrameValid",
  1074 + "elements": [{"type": "text", "text": "0"}]
  1075 + }, {
  1076 + "type": "element",
  1077 + "name": "wpml:payloadPositionIndex",
  1078 + "elements": [{"type": "text", "text": "0"}]
  1079 + }, {
  1080 + "type": "element",
  1081 + "name": "wpml:useGlobalPayloadLensIndex",
  1082 + "elements": [{"type": "text", "text": "1"}]
  1083 + }, {
  1084 + "type": "element",
  1085 + "name": "wpml:payloadLensIndex",
  1086 + "elements": [{"type": "text", "text": "zoom"}]
  1087 + }, {
  1088 + "type": "element",
  1089 + "name": "wpml:targetAngle",
  1090 + "elements": [{"type": "text", "text": "0"}]
  1091 + }, {
  1092 + "type": "element",
  1093 + "name": "wpml:actionUUID",
  1094 + "elements": [{
  1095 + "type": "text",
  1096 + "text": "2902f57f-778f-4aed-bfdc-0aa52c65a88a"
  1097 + }]
  1098 + }, {
  1099 + "type": "element",
  1100 + "name": "wpml:imageWidth",
  1101 + "elements": [{"type": "text", "text": "0"}]
  1102 + }, {
  1103 + "type": "element",
  1104 + "name": "wpml:imageHeight",
  1105 + "elements": [{"type": "text", "text": "0"}]
  1106 + }, {
  1107 + "type": "element",
  1108 + "name": "wpml:AFPos",
  1109 + "elements": [{"type": "text", "text": "0"}]
  1110 + }, {
  1111 + "type": "element",
  1112 + "name": "wpml:gimbalPort",
  1113 + "elements": [{"type": "text", "text": "0"}]
  1114 + }, {
  1115 + "type": "element",
  1116 + "name": "wpml:orientedCameraType",
  1117 + "elements": [{"type": "text", "text": "53"}]
  1118 + }, {
  1119 + "type": "element",
  1120 + "name": "wpml:orientedFilePath",
  1121 + "elements": [{
  1122 + "type": "text",
  1123 + "text": "519c9fa4-d6c8-4108-80f7-27ed0dfdffd9"
  1124 + }]
  1125 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  1126 + "type": "element",
  1127 + "name": "wpml:orientedFileSize",
  1128 + "elements": [{"type": "text", "text": "0"}]
  1129 + }, {
  1130 + "type": "element",
  1131 + "name": "wpml:orientedPhotoMode",
  1132 + "elements": [{"type": "text", "text": "normalPhoto"}]
  1133 + }]
  1134 + }]
  1135 + }, {
  1136 + "type": "element",
  1137 + "name": "wpml:action",
  1138 + "elements": [{
  1139 + "type": "element",
  1140 + "name": "wpml:actionId",
  1141 + "elements": [{"type": "text", "text": "2"}]
  1142 + }, {
  1143 + "type": "element",
  1144 + "name": "wpml:actionActuatorFunc",
  1145 + "elements": [{"type": "text", "text": "orientedShoot"}]
  1146 + }, {
  1147 + "type": "element",
  1148 + "name": "wpml:actionActuatorFuncParam",
  1149 + "elements": [{
  1150 + "type": "element",
  1151 + "name": "wpml:gimbalPitchRotateAngle",
  1152 + "elements": [{"type": "text", "text": "-30.922"}]
  1153 + }, {
  1154 + "type": "element",
  1155 + "name": "wpml:gimbalRollRotateAngle",
  1156 + "elements": [{"type": "text", "text": "0"}]
  1157 + }, {
  1158 + "type": "element",
  1159 + "name": "wpml:gimbalYawRotateAngle",
  1160 + "elements": [{"type": "text", "text": "-32.302"}]
  1161 + }, {
  1162 + "type": "element",
  1163 + "name": "wpml:focusX",
  1164 + "elements": [{"type": "text", "text": "0"}]
  1165 + }, {
  1166 + "type": "element",
  1167 + "name": "wpml:focusY",
  1168 + "elements": [{"type": "text", "text": "0"}]
  1169 + }, {
  1170 + "type": "element",
  1171 + "name": "wpml:focusRegionWidth",
  1172 + "elements": [{"type": "text", "text": "0"}]
  1173 + }, {
  1174 + "type": "element",
  1175 + "name": "wpml:focusRegionHeight",
  1176 + "elements": [{"type": "text", "text": "0"}]
  1177 + }, {
  1178 + "type": "element",
  1179 + "name": "wpml:focalLength",
  1180 + "elements": [{"type": "text", "text": "672"}]
  1181 + }, {
  1182 + "type": "element",
  1183 + "name": "wpml:aircraftHeading",
  1184 + "elements": [{"type": "text", "text": "-32.302"}]
  1185 + }, {
  1186 + "type": "element",
  1187 + "name": "wpml:accurateFrameValid",
  1188 + "elements": [{"type": "text", "text": "0"}]
  1189 + }, {
  1190 + "type": "element",
  1191 + "name": "wpml:payloadPositionIndex",
  1192 + "elements": [{"type": "text", "text": "0"}]
  1193 + }, {
  1194 + "type": "element",
  1195 + "name": "wpml:useGlobalPayloadLensIndex",
  1196 + "elements": [{"type": "text", "text": "1"}]
  1197 + }, {
  1198 + "type": "element",
  1199 + "name": "wpml:payloadLensIndex",
  1200 + "elements": [{"type": "text", "text": "zoom"}]
  1201 + }, {
  1202 + "type": "element",
  1203 + "name": "wpml:targetAngle",
  1204 + "elements": [{"type": "text", "text": "0"}]
  1205 + }, {
  1206 + "type": "element",
  1207 + "name": "wpml:actionUUID",
  1208 + "elements": [{
  1209 + "type": "text",
  1210 + "text": "5325086b-6bb6-49de-8b4f-6024cf8663e7"
  1211 + }]
  1212 + }, {
  1213 + "type": "element",
  1214 + "name": "wpml:imageWidth",
  1215 + "elements": [{"type": "text", "text": "0"}]
  1216 + }, {
  1217 + "type": "element",
  1218 + "name": "wpml:imageHeight",
  1219 + "elements": [{"type": "text", "text": "0"}]
  1220 + }, {
  1221 + "type": "element",
  1222 + "name": "wpml:AFPos",
  1223 + "elements": [{"type": "text", "text": "0"}]
  1224 + }, {
  1225 + "type": "element",
  1226 + "name": "wpml:gimbalPort",
  1227 + "elements": [{"type": "text", "text": "0"}]
  1228 + }, {
  1229 + "type": "element",
  1230 + "name": "wpml:orientedCameraType",
  1231 + "elements": [{"type": "text", "text": "53"}]
  1232 + }, {
  1233 + "type": "element",
  1234 + "name": "wpml:orientedFilePath",
  1235 + "elements": [{
  1236 + "type": "text",
  1237 + "text": "b02a1705-aa5f-4d45-bb16-1a0196dc9e7a"
  1238 + }]
  1239 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  1240 + "type": "element",
  1241 + "name": "wpml:orientedFileSize",
  1242 + "elements": [{"type": "text", "text": "0"}]
  1243 + }, {
  1244 + "type": "element",
  1245 + "name": "wpml:orientedPhotoMode",
  1246 + "elements": [{"type": "text", "text": "normalPhoto"}]
  1247 + }]
  1248 + }]
  1249 + }, {
  1250 + "type": "element",
  1251 + "name": "wpml:action",
  1252 + "elements": [{
  1253 + "type": "element",
  1254 + "name": "wpml:actionId",
  1255 + "elements": [{"type": "text", "text": "3"}]
  1256 + }, {
  1257 + "type": "element",
  1258 + "name": "wpml:actionActuatorFunc",
  1259 + "elements": [{"type": "text", "text": "orientedShoot"}]
  1260 + }, {
  1261 + "type": "element",
  1262 + "name": "wpml:actionActuatorFuncParam",
  1263 + "elements": [{
  1264 + "type": "element",
  1265 + "name": "wpml:gimbalPitchRotateAngle",
  1266 + "elements": [{"type": "text", "text": "-31.066"}]
  1267 + }, {
  1268 + "type": "element",
  1269 + "name": "wpml:gimbalRollRotateAngle",
  1270 + "elements": [{"type": "text", "text": "0"}]
  1271 + }, {
  1272 + "type": "element",
  1273 + "name": "wpml:gimbalYawRotateAngle",
  1274 + "elements": [{"type": "text", "text": "-23.091"}]
  1275 + }, {
  1276 + "type": "element",
  1277 + "name": "wpml:focusX",
  1278 + "elements": [{"type": "text", "text": "0"}]
  1279 + }, {
  1280 + "type": "element",
  1281 + "name": "wpml:focusY",
  1282 + "elements": [{"type": "text", "text": "0"}]
  1283 + }, {
  1284 + "type": "element",
  1285 + "name": "wpml:focusRegionWidth",
  1286 + "elements": [{"type": "text", "text": "0"}]
  1287 + }, {
  1288 + "type": "element",
  1289 + "name": "wpml:focusRegionHeight",
  1290 + "elements": [{"type": "text", "text": "0"}]
  1291 + }, {
  1292 + "type": "element",
  1293 + "name": "wpml:focalLength",
  1294 + "elements": [{"type": "text", "text": "672"}]
  1295 + }, {
  1296 + "type": "element",
  1297 + "name": "wpml:aircraftHeading",
  1298 + "elements": [{"type": "text", "text": "-23.091"}]
  1299 + }, {
  1300 + "type": "element",
  1301 + "name": "wpml:accurateFrameValid",
  1302 + "elements": [{"type": "text", "text": "0"}]
  1303 + }, {
  1304 + "type": "element",
  1305 + "name": "wpml:payloadPositionIndex",
  1306 + "elements": [{"type": "text", "text": "0"}]
  1307 + }, {
  1308 + "type": "element",
  1309 + "name": "wpml:useGlobalPayloadLensIndex",
  1310 + "elements": [{"type": "text", "text": "1"}]
  1311 + }, {
  1312 + "type": "element",
  1313 + "name": "wpml:payloadLensIndex",
  1314 + "elements": [{"type": "text", "text": "zoom"}]
  1315 + }, {
  1316 + "type": "element",
  1317 + "name": "wpml:targetAngle",
  1318 + "elements": [{"type": "text", "text": "0"}]
  1319 + }, {
  1320 + "type": "element",
  1321 + "name": "wpml:actionUUID",
  1322 + "elements": [{
  1323 + "type": "text",
  1324 + "text": "7807e00d-eef9-40f7-b500-fa97f77a6b8b"
  1325 + }]
  1326 + }, {
  1327 + "type": "element",
  1328 + "name": "wpml:imageWidth",
  1329 + "elements": [{"type": "text", "text": "0"}]
  1330 + }, {
  1331 + "type": "element",
  1332 + "name": "wpml:imageHeight",
  1333 + "elements": [{"type": "text", "text": "0"}]
  1334 + }, {
  1335 + "type": "element",
  1336 + "name": "wpml:AFPos",
  1337 + "elements": [{"type": "text", "text": "0"}]
  1338 + }, {
  1339 + "type": "element",
  1340 + "name": "wpml:gimbalPort",
  1341 + "elements": [{"type": "text", "text": "0"}]
  1342 + }, {
  1343 + "type": "element",
  1344 + "name": "wpml:orientedCameraType",
  1345 + "elements": [{"type": "text", "text": "53"}]
  1346 + }, {
  1347 + "type": "element",
  1348 + "name": "wpml:orientedFilePath",
  1349 + "elements": [{
  1350 + "type": "text",
  1351 + "text": "eb74a2e8-5b9b-49c7-9d07-e1be206d05f2"
  1352 + }]
  1353 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  1354 + "type": "element",
  1355 + "name": "wpml:orientedFileSize",
  1356 + "elements": [{"type": "text", "text": "0"}]
  1357 + }, {
  1358 + "type": "element",
  1359 + "name": "wpml:orientedPhotoMode",
  1360 + "elements": [{"type": "text", "text": "normalPhoto"}]
  1361 + }]
  1362 + }]
  1363 + }, {
  1364 + "type": "element",
  1365 + "name": "wpml:action",
  1366 + "elements": [{
  1367 + "type": "element",
  1368 + "name": "wpml:actionId",
  1369 + "elements": [{"type": "text", "text": "4"}]
  1370 + }, {
  1371 + "type": "element",
  1372 + "name": "wpml:actionActuatorFunc",
  1373 + "elements": [{"type": "text", "text": "orientedShoot"}]
  1374 + }, {
  1375 + "type": "element",
  1376 + "name": "wpml:actionActuatorFuncParam",
  1377 + "elements": [{
  1378 + "type": "element",
  1379 + "name": "wpml:gimbalPitchRotateAngle",
  1380 + "elements": [{"type": "text", "text": "-31.066"}]
  1381 + }, {
  1382 + "type": "element",
  1383 + "name": "wpml:gimbalRollRotateAngle",
  1384 + "elements": [{"type": "text", "text": "0"}]
  1385 + }, {
  1386 + "type": "element",
  1387 + "name": "wpml:gimbalYawRotateAngle",
  1388 + "elements": [{"type": "text", "text": "-23.091"}]
  1389 + }, {
  1390 + "type": "element",
  1391 + "name": "wpml:focusX",
  1392 + "elements": [{"type": "text", "text": "0"}]
  1393 + }, {
  1394 + "type": "element",
  1395 + "name": "wpml:focusY",
  1396 + "elements": [{"type": "text", "text": "0"}]
  1397 + }, {
  1398 + "type": "element",
  1399 + "name": "wpml:focusRegionWidth",
  1400 + "elements": [{"type": "text", "text": "0"}]
  1401 + }, {
  1402 + "type": "element",
  1403 + "name": "wpml:focusRegionHeight",
  1404 + "elements": [{"type": "text", "text": "0"}]
  1405 + }, {
  1406 + "type": "element",
  1407 + "name": "wpml:focalLength",
  1408 + "elements": [{"type": "text", "text": "384"}]
  1409 + }, {
  1410 + "type": "element",
  1411 + "name": "wpml:aircraftHeading",
  1412 + "elements": [{"type": "text", "text": "-23.091"}]
  1413 + }, {
  1414 + "type": "element",
  1415 + "name": "wpml:accurateFrameValid",
  1416 + "elements": [{"type": "text", "text": "0"}]
  1417 + }, {
  1418 + "type": "element",
  1419 + "name": "wpml:payloadPositionIndex",
  1420 + "elements": [{"type": "text", "text": "0"}]
  1421 + }, {
  1422 + "type": "element",
  1423 + "name": "wpml:useGlobalPayloadLensIndex",
  1424 + "elements": [{"type": "text", "text": "1"}]
  1425 + }, {
  1426 + "type": "element",
  1427 + "name": "wpml:payloadLensIndex",
  1428 + "elements": [{"type": "text", "text": "zoom"}]
  1429 + }, {
  1430 + "type": "element",
  1431 + "name": "wpml:targetAngle",
  1432 + "elements": [{"type": "text", "text": "0"}]
  1433 + }, {
  1434 + "type": "element",
  1435 + "name": "wpml:actionUUID",
  1436 + "elements": [{
  1437 + "type": "text",
  1438 + "text": "ec0f9dbf-7b94-482c-93a1-2692f865bd91"
  1439 + }]
  1440 + }, {
  1441 + "type": "element",
  1442 + "name": "wpml:imageWidth",
  1443 + "elements": [{"type": "text", "text": "0"}]
  1444 + }, {
  1445 + "type": "element",
  1446 + "name": "wpml:imageHeight",
  1447 + "elements": [{"type": "text", "text": "0"}]
  1448 + }, {
  1449 + "type": "element",
  1450 + "name": "wpml:AFPos",
  1451 + "elements": [{"type": "text", "text": "0"}]
  1452 + }, {
  1453 + "type": "element",
  1454 + "name": "wpml:gimbalPort",
  1455 + "elements": [{"type": "text", "text": "0"}]
  1456 + }, {
  1457 + "type": "element",
  1458 + "name": "wpml:orientedCameraType",
  1459 + "elements": [{"type": "text", "text": "53"}]
  1460 + }, {
  1461 + "type": "element",
  1462 + "name": "wpml:orientedFilePath",
  1463 + "elements": [{
  1464 + "type": "text",
  1465 + "text": "32025061-f405-4f1e-9c2c-e8979dfd07d2"
  1466 + }]
  1467 + }, {"type": "element", "name": "wpml:orientedFileMD5"}, {
  1468 + "type": "element",
  1469 + "name": "wpml:orientedFileSize",
  1470 + "elements": [{"type": "text", "text": "0"}]
  1471 + }, {
  1472 + "type": "element",
  1473 + "name": "wpml:orientedPhotoMode",
  1474 + "elements": [{"type": "text", "text": "normalPhoto"}]
  1475 + }]
  1476 + }]
  1477 + }]
  1478 + }, {
  1479 + "type": "element",
  1480 + "name": "wpml:waypointGimbalHeadingParam",
  1481 + "elements": [{
  1482 + "type": "element",
  1483 + "name": "wpml:waypointGimbalPitchAngle",
  1484 + "elements": [{"type": "text", "text": "0"}]
  1485 + }, {
  1486 + "type": "element",
  1487 + "name": "wpml:waypointGimbalYawAngle",
  1488 + "elements": [{"type": "text", "text": "0"}]
  1489 + }]
  1490 + }, {
  1491 + "type": "element",
  1492 + "name": "wpml:isRisky",
  1493 + "elements": [{"type": "text", "text": "0"}]
  1494 + }, {
  1495 + "type": "element",
  1496 + "name": "wpml:waypointWorkType",
  1497 + "elements": [{"type": "text", "text": "0"}]
  1498 + }]
  1499 + }]
  1500 + }]
  1501 + }]
  1502 + }]
  1503 +}
  1504 +export type WPMLConfig = typeof config
  1505 +
  1 +import {computed, ref, type Ref, watch, type WritableComputedRef} from "vue";
  2 +import type {Element} from "xml-js";
  3 +
  4 +
  5 +export function useXMLComputed(parentElment: WritableComputedRef<Element> | Ref<Element>, name: string, config?: {
  6 + defaultValue?: Element,
  7 + defaultText?: any,
  8 + textType?: 'number'
  9 + separator?: '\n' | ','
  10 +}) {
  11 + const elment = computed({
  12 + get() {
  13 + let index = parentElment.value?.elements?.findIndex(el => el.name === name);
  14 + if (index >= 0) {
  15 + return parentElment.value.elements[index];
  16 + } else {
  17 + return null;
  18 + }
  19 + },
  20 + set(value) {
  21 + let index = parentElment.value?.elements?.findIndex(el => el.name === name);
  22 + if (index >= 0) {
  23 + parentElment.value.elements[index] = value;
  24 + } else {
  25 + parentElment.value.elements.push(value);
  26 +
  27 + }
  28 + }
  29 + })
  30 + watch(elment, (newValue, oldValue) => {
  31 + if (newValue == null) {
  32 + elment.value = config?.defaultValue ?? {
  33 + type: 'element',
  34 + name: name,
  35 + elements: []
  36 + }
  37 + }
  38 + }, {
  39 + immediate: true,
  40 + })
  41 + const text = computed<any>({
  42 + get() {
  43 + let index = elment.value?.elements?.findIndex(el => el.type === 'text');
  44 + if (index >= 0) {
  45 + if (config?.separator) {
  46 + let arr = elment.value.elements[index].text?.toString().split(config?.separator).filter(el => el !== '');
  47 + switch (config?.textType) {
  48 + case 'number':
  49 + return arr?.map(el => Number(el));
  50 + default:
  51 + return arr?.map(el => el);
  52 + }
  53 + } else {
  54 + switch (config?.textType) {
  55 + case 'number':
  56 + return Number(elment.value.elements[index].text);
  57 + default:
  58 + return elment.value.elements[index].text
  59 + }
  60 + }
  61 + } else {
  62 + return null;
  63 + }
  64 + },
  65 + set(value) {
  66 + let index = elment.value?.elements?.findIndex(el => el.type === 'text');
  67 + if (index >= 0) {
  68 + if (config?.separator) {
  69 + if (value instanceof Array) {
  70 + elment.value.elements[index].text = value.join(config?.separator);
  71 + } else {
  72 + throw new Error('value must be Array');
  73 + }
  74 + } else {
  75 + elment.value.elements[index].text = String(value);
  76 + }
  77 + } else {
  78 + if (config?.separator) {
  79 + if (value instanceof Array) {
  80 + elment.value.elements.push({
  81 + type: 'text',
  82 + text: value.join(config?.separator)
  83 + })
  84 + } else {
  85 + throw new Error('value must be Array');
  86 + }
  87 + } else {
  88 + elment.value.elements.push({
  89 + type: 'text',
  90 + text: String(value)
  91 + });
  92 + }
  93 + }
  94 + }
  95 + })
  96 + watch(text, (newValue, oldValue) => {
  97 + if (newValue == null) {
  98 + if (config?.separator) {
  99 + text.value = config?.defaultText ?? [];
  100 + } else {
  101 + text.value = config?.defaultText ?? '';
  102 + }
  103 + }
  104 + }, {
  105 + immediate: true,
  106 + })
  107 + return {
  108 + elment,
  109 + text
  110 + }
  111 +}
  112 +
  113 +
  114 +export function useXMLComputedArr(parentElment: WritableComputedRef<Element> | Ref<Element>, name: string, config?: {
  115 + defaultValue?: Element,
  116 + defaultText?: any,
  117 + textType?: 'number'
  118 + separator?: '\n' | ','
  119 +}) {
  120 + const list = computed(() => {
  121 + return parentElment.value?.elements?.filter(el => el.name === name).map((el, index) => {
  122 + const elment = computed({
  123 + get() {
  124 + return el;
  125 + },
  126 + set(value) {
  127 + let i = 0
  128 + let updateIndex = parentElment.value.elements.findIndex(el => {
  129 + if (el.name === name) {
  130 + if (i === index) {
  131 + return true
  132 + }
  133 + i++
  134 + }
  135 + })
  136 + parentElment.value.elements[i] = value;
  137 + }
  138 + })
  139 + watch(elment, (newValue, oldValue) => {
  140 + if (newValue == null) {
  141 + elment.value = config?.defaultValue ?? {
  142 + type: 'element',
  143 + name: name,
  144 + elements: []
  145 + }
  146 + }
  147 + }, {
  148 + immediate: true,
  149 + })
  150 + const text = computed<any>({
  151 + get() {
  152 + let index = elment.value?.elements?.findIndex(el => el.type === 'text');
  153 + if (index >= 0) {
  154 + if (config?.separator) {
  155 + let arr = elment.value.elements[index].text?.toString().split(config?.separator).filter(el => el !== '');
  156 + switch (config?.textType) {
  157 + case 'number':
  158 + return arr?.map(el => Number(el));
  159 + default:
  160 + return arr?.map(el => el);
  161 + }
  162 + } else {
  163 + switch (config?.textType) {
  164 + case 'number':
  165 + return Number(elment.value.elements[index].text);
  166 + default:
  167 + return elment.value.elements[index].text
  168 + }
  169 + }
  170 + } else {
  171 + return null;
  172 + }
  173 + },
  174 + set(value) {
  175 + let index = elment.value?.elements?.findIndex(el => el.type === 'text');
  176 + if (index >= 0) {
  177 + if (config?.separator) {
  178 + if (value instanceof Array) {
  179 + elment.value.elements[index].text = value.join(config?.separator);
  180 + } else {
  181 + throw new Error('value must be Array');
  182 + }
  183 + } else {
  184 + elment.value.elements[index].text = String(value);
  185 + }
  186 + } else {
  187 + if (config?.separator) {
  188 + if (value instanceof Array) {
  189 + elment.value.elements.push({
  190 + type: 'text',
  191 + text: value.join(config?.separator)
  192 + })
  193 + } else {
  194 + throw new Error('value must be Array');
  195 + }
  196 + } else {
  197 + elment.value.elements.push({
  198 + type: 'text',
  199 + text: String(value)
  200 + });
  201 + }
  202 + }
  203 + }
  204 + })
  205 + watch(text, (newValue, oldValue) => {
  206 + if (newValue == null) {
  207 + if (config?.separator) {
  208 + text.value = config?.defaultText ?? [];
  209 + } else {
  210 + text.value = config?.defaultText ?? '';
  211 + }
  212 + }
  213 + }, {
  214 + immediate: true,
  215 + })
  216 + return {
  217 + elment,
  218 + text
  219 + }
  220 + })
  221 + })
  222 +
  223 + function add(element:Element) {
  224 + parentElment.value.elements.push({
  225 + type: 'element',
  226 + name: name,
  227 + elements: [],
  228 + ...element
  229 + })
  230 + }
  231 +
  232 + function remove(index: number) {
  233 + let i = 0
  234 + let removeIndex = parentElment.value.elements.findIndex(el => {
  235 + if (el.name === name) {
  236 + if (i === index) {
  237 + return true
  238 + }
  239 + i++
  240 + }
  241 + })
  242 + parentElment.value.elements.splice(removeIndex, 1);
  243 + }
  244 +
  245 + return {
  246 + list,
  247 + add,
  248 + remove,
  249 + }
  250 +}
  251 +
  1 +<script setup lang="ts">
  2 +import {IconPark, IIconAllProps} from "@icon-park/vue-next/lib/all";
  3 +
  4 +const props = defineProps<IIconAllProps>()
  5 +
  6 +</script>
  7 +
  8 +<template>
  9 + <IconPark class="l-icon anticon" v-bind="props" :key="props.type"/>
  10 +</template>
  11 +
  12 +
  13 +<style scoped>
  14 +.l-icon {
  15 + display: inline-flex;
  16 + align-items: center;
  17 + justify-content: center;
  18 +}
  19 +</style>
  1 +import {computed, MaybeRef, ref, unref} from "vue";
  2 +import type {Result} from "@/hooks/useRequest";
  3 +
  4 +type PageOptions<T> = {
  5 + onSuccess?: (result?: Result<Page<T>>) => void;
  6 + onFail?: (err?: any) => void;
  7 + onFinally?: (result?: Result<Page<T>>) => void;
  8 + pageSize?: number;
  9 + pageNo?: number;
  10 +}
  11 +
  12 +type Page<T> = {
  13 + records: T[]
  14 + total: number
  15 +}
  16 +
  17 +/**
  18 + * 通用请求
  19 + * @param api 接口
  20 + * @param requestData 请求参数
  21 + * @param options 配置项
  22 + */
  23 +export default function useGetList<T = any>(api: MaybeRef<Function>, requestData?: any, options?: PageOptions<T>) {
  24 + const result = ref<Result<Page<T>>>()
  25 + const data = ref<Page<T>>()
  26 + const list = ref<T[]>([])
  27 + const loading = ref(false)
  28 + const pageNo = ref(options?.pageNo ?? 1)
  29 + const pageSize = ref(options?.pageSize ?? 10)
  30 + const total = ref(0)
  31 + const page = ref<T[]>([])
  32 +
  33 + const isEnd = computed(() => {
  34 + return !loading.value && list.value.length >= total.value
  35 + })
  36 + const isEmpty = computed(() => {
  37 + return isEnd.value && list.value.length === 0
  38 + })
  39 +
  40 + async function onRequest(...args: any[]) {
  41 + if (loading.value) {
  42 + return
  43 + }
  44 + try {
  45 + loading.value = true
  46 + let res: Result<Page<T>> = await unref(api)({
  47 + current: pageNo.value,
  48 + size: pageSize.value,
  49 + ...requestData instanceof Function ? await requestData(...args) : unref(requestData)
  50 + })
  51 + data.value = res.data
  52 + page.value = res.data?.records ?? []
  53 + list.value.splice((pageNo.value - 1) * pageSize.value, pageSize.value, ...page.value)
  54 + total.value = res.data?.total ?? 0
  55 + if (options?.onSuccess) {
  56 + options.onSuccess(result.value)
  57 + }
  58 + } catch (err) {
  59 + if (options?.onFail) {
  60 + options.onFail(err)
  61 + }
  62 + throw err
  63 + } finally {
  64 + if (options?.onFinally) {
  65 + options.onFinally(result.value)
  66 + }
  67 + loading.value = false
  68 + }
  69 +
  70 + return data.value
  71 + }
  72 +
  73 + async function onLoadMore() {
  74 + if (!isEnd.value) {
  75 + pageNo.value = pageNo.value + 1
  76 + await onRequest(pageNo.value)
  77 + }
  78 + }
  79 +
  80 + async function onChangePage(no: number, size: number,...args: any[]) {
  81 + pageNo.value = no
  82 + pageSize.value = size
  83 + await onRequest(...args)
  84 + }
  85 +
  86 + async function onRefresh(...args: any[]) {
  87 + list.value = []
  88 + pageNo.value = options?.pageNo ?? 1
  89 + await onRequest(...args)
  90 + }
  91 +
  92 +
  93 + return {
  94 + loading,
  95 + isEnd,
  96 + isEmpty,
  97 + page,
  98 + list,
  99 + total,
  100 + pageNo,
  101 + pageSize,
  102 + onChangePage,
  103 + onLoadMore,
  104 + onRefresh,
  105 + onRequest
  106 + }
  107 +}
  1 +import {ref, unref} from "vue";
  2 +import type {MaybeRef} from "vue";
  3 +import type {AxiosResponse} from "axios";
  4 +
  5 +export type Result<T> = AxiosResponse<T>;
  6 +
  7 +type Options<T> = {
  8 + onSuccess?: (result?: Result<T>) => void;
  9 + onFail?: (err: any) => void;
  10 + onFinally?: (result?: Result<T>) => void;
  11 +}
  12 +
  13 +/**
  14 + * 通用请求
  15 + * @param api 接口
  16 + * @param requestData 请求参数
  17 + * @param options 配置项
  18 + */
  19 +export default function useRequest<T = any>(api: MaybeRef<Function>, requestData?: any, options?: Options<T>) {
  20 +
  21 + const result = ref<Result<T>>()
  22 + const data = ref<T>()
  23 + const loading = ref(false)
  24 +
  25 + async function onRequest(...args: any[]) {
  26 + try {
  27 + loading.value = true
  28 + let res = await unref(api)(requestData instanceof Function ? await requestData(...args) : unref(requestData))
  29 + result.value = res
  30 + data.value = res.data
  31 + if (options?.onSuccess) {
  32 + options.onSuccess(result.value)
  33 + }
  34 + } catch (err) {
  35 + if (options?.onFail) {
  36 + options.onFail(err)
  37 + }
  38 + throw err
  39 + } finally {
  40 + loading.value = false
  41 + if (options?.onFinally) {
  42 + options.onFinally(result.value)
  43 + }
  44 + }
  45 + return data.value
  46 + }
  47 +
  48 + return {
  49 + result,
  50 + data,
  51 + loading,
  52 + onRequest
  53 + }
  54 +}
  1 +import {createApp} from 'vue'
  2 +import App from './App.vue'
  3 +import * as Cesium from "cesium";
  4 +import {createPinia} from "pinia";
  5 +import router from "./router";
  6 +import ElementPlus from 'element-plus'
  7 +import 'element-plus/dist/index.css'
  8 +import Antd from 'ant-design-vue';
  9 +import 'ant-design-vue/dist/reset.css';
  10 +
  11 +Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkZmMzNDIxMC01OGRjLTRiYjYtYjNmMy1mYjIxMTBjZjc0YmUiLCJpZCI6MjgyMDU1LCJpYXQiOjE3NDEzMTgzNjl9.TO-tRY9sS_5JoCodnmm7S5XcXEUK3lf4rK-2SQXzR_0'
  12 +
  13 +const app = createApp(App)
  14 +app.use(ElementPlus)
  15 +app.use(Antd)
  16 +app.use(router)
  17 +app.use(createPinia())
  18 +app.mount('#app')
  1 +<template>
  2 + <div>notFound</div>
  3 +</template>
  4 +
  5 +<script setup lang="ts">
  6 +
  7 +</script>
  8 +
  9 +<style scoped>
  10 +
  11 +</style>
  1 +import {createRouter, createWebHashHistory} from "vue-router";
  2 +
  3 +
  4 +const router = createRouter({
  5 + history: createWebHashHistory(),
  6 + routes: [
  7 + {
  8 + path: '/login',
  9 + name: 'login',
  10 + component: () => import('@/views/login/index.vue'),
  11 + meta: {title: '登录'},
  12 + }, {
  13 + path: '/manage',
  14 + name: 'manage',
  15 + alias: '/',
  16 + component: () => import('@/views/manage/index.vue'),
  17 + meta: {title: '管理后台'},
  18 + children: [
  19 + {
  20 + path: 'air_route',
  21 + name: 'air_route',
  22 + alias: '/',
  23 + component: () => import('@/views/manage/air_route/index.vue'),
  24 + meta: {title: '航线规划'},
  25 + }
  26 + ]
  27 + }, {
  28 + path: '/:catchAll(.*)',
  29 + name: 'NotFound',
  30 + component: () => import("@/router/NotFound/index.vue"),
  31 + }
  32 + ]
  33 +});
  34 +router.beforeEach(async (to) => {
  35 + if (to.meta?.title) {
  36 + document.title = import.meta.env.VITE_APP_TITLE + ' - ' + to.meta.title
  37 + }
  38 +})
  39 +
  40 +
  41 +export default router;
  42 +
  43 +
  1 +import {defineStore} from "pinia";
  2 +import zhCN from 'ant-design-vue/es/locale/zh_CN';
  3 +import enGB from 'ant-design-vue/es/locale/en_GB';
  4 +import dayjs from 'dayjs';
  5 +import 'dayjs/locale/zh-cn';
  6 +import 'dayjs/locale/en-gb';
  7 +import {ref} from "vue";
  8 +
  9 +
  10 +enum LanguageEnum {
  11 + zhCN = 'zhCN',
  12 + enGB = 'enGB'
  13 +}
  14 +
  15 +export const useLocaleStore = defineStore('locale', () => {
  16 + const locale = ref()
  17 +
  18 + function changeLanguage(language: LanguageEnum = LanguageEnum.zhCN) {
  19 + switch (language) {
  20 + case LanguageEnum.enGB: {
  21 + locale.value = enGB
  22 + dayjs.locale('en-gb')
  23 + break
  24 + }
  25 + case LanguageEnum.zhCN: {
  26 + locale.value = zhCN
  27 + dayjs.locale('zh-cn');
  28 + break
  29 + }
  30 + }
  31 + }
  32 +
  33 + changeLanguage(LanguageEnum.zhCN)
  34 +
  35 + return {
  36 + locale
  37 + }
  38 +})
  1 +import {defineStore} from "pinia";
  2 +import {computed, ref} from "vue";
  3 +import {theme} from "ant-design-vue";
  4 +import type {ThemeConfig} from "ant-design-vue/lib/config-provider/context";
  5 +import type {MappingAlgorithm} from "ant-design-vue/lib/config-provider/context";
  6 +
  7 +export const useThemeStore = defineStore('theme', () => {
  8 +
  9 + const isDarkTheme = window.matchMedia("(prefers-color-scheme: dark)"); // 是深色
  10 + const isDark = ref(isDarkTheme.matches)
  11 + const isCompact = ref(false)
  12 +
  13 + const {token} = theme.useToken()
  14 +
  15 + const themeConfig = computed<ThemeConfig>(() => {
  16 + let algorithm: MappingAlgorithm[] = [theme.defaultAlgorithm]
  17 + if (isDark.value) {
  18 + algorithm.push(theme.darkAlgorithm)
  19 + }
  20 + if (isCompact.value) {
  21 + algorithm.push(theme.compactAlgorithm)
  22 + }
  23 + return {
  24 + token: {
  25 + borderRadius: 0,
  26 + colorPrimary: "#009dff",
  27 + colorInfo: '#009dff',
  28 + fontSize: 14,
  29 + },
  30 + algorithm: algorithm,
  31 + components: {
  32 + Layout: {
  33 + colorBgHeader: isDark.value ? '#141414' : '#ffffff'
  34 + },
  35 + Button: {}
  36 + }
  37 + }
  38 + })
  39 +
  40 + return {
  41 + themeConfig: themeConfig,
  42 + isDark: isDark,
  43 + isCompact: isCompact,
  44 + token
  45 + }
  46 +})
  1 +:root {
  2 + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
  3 + line-height: 1.5;
  4 + font-weight: 400;
  5 +
  6 + color-scheme: light dark;
  7 + color: rgba(255, 255, 255, 0.87);
  8 + background-color: #242424;
  9 +
  10 + font-synthesis: none;
  11 + text-rendering: optimizeLegibility;
  12 + -webkit-font-smoothing: antialiased;
  13 + -moz-osx-font-smoothing: grayscale;
  14 +}
  15 +
  16 +a {
  17 + font-weight: 500;
  18 + color: #646cff;
  19 + text-decoration: inherit;
  20 +}
  21 +a:hover {
  22 + color: #535bf2;
  23 +}
  24 +
  25 +body {
  26 + margin: 0;
  27 + display: flex;
  28 + place-items: center;
  29 + min-width: 320px;
  30 + min-height: 100vh;
  31 +}
  32 +
  33 +h1 {
  34 + font-size: 3.2em;
  35 + line-height: 1.1;
  36 +}
  37 +
  38 +button {
  39 + border-radius: 8px;
  40 + border: 1px solid transparent;
  41 + padding: 0.6em 1.2em;
  42 + font-size: 1em;
  43 + font-weight: 500;
  44 + font-family: inherit;
  45 + background-color: #1a1a1a;
  46 + cursor: pointer;
  47 + transition: border-color 0.25s;
  48 +}
  49 +button:hover {
  50 + border-color: #646cff;
  51 +}
  52 +button:focus,
  53 +button:focus-visible {
  54 + outline: 4px auto -webkit-focus-ring-color;
  55 +}
  56 +
  57 +.card {
  58 + padding: 2em;
  59 +}
  60 +
  61 +#app {
  62 + max-width: 1280px;
  63 + margin: 0 auto;
  64 + padding: 2rem;
  65 + text-align: center;
  66 +}
  67 +
  68 +@media (prefers-color-scheme: light) {
  69 + :root {
  70 + color: #213547;
  71 + background-color: #ffffff;
  72 + }
  73 + a:hover {
  74 + color: #747bff;
  75 + }
  76 + button {
  77 + background-color: #f9f9f9;
  78 + }
  79 +}
  1 +<template>
  2 +
  3 +</template>
  4 +
  5 +<script setup lang="ts">
  6 +
  7 +</script>
  8 +
  9 +<style scoped>
  10 +
  11 +</style>
  1 +<template>
  2 + <el-button @click="create">添加航线</el-button>
  3 + <el-button @click="update">编辑航线</el-button>
  4 +
  5 + <air-route ref="airRouteRef" @save="save"/>
  6 +</template>
  7 +
  8 +<script setup lang="ts">
  9 +import axios from "axios";
  10 +import {nextTick, ref} from "vue";
  11 +import AirRoute from "@/components/air-route/air-route.vue";
  12 +
  13 +const airRouteRef = ref()
  14 +
  15 +async function update() {
  16 + let res: { data: string } = await axios.get("/public/air-route/waylines.wpml")
  17 + let file = new File([res.data], "waylines.wpml")
  18 + await nextTick()
  19 + airRouteRef.value.open({title: '编辑测试', file: file})
  20 +}
  21 +
  22 +async function create() {
  23 + await nextTick()
  24 + airRouteRef.value.open({title: '新建测试'})
  25 +}
  26 +
  27 +function save(result) {
  28 + console.log(result)
  29 +}
  30 +update()
  31 +</script>
  32 +
  33 +<style scoped>
  34 +
  35 +</style>
  1 +<template>
  2 + <a-layout style="height: 100%">
  3 + <a-layout-header style="display: flex">
  4 + <div class="title">
  5 + <span>{{ title }}</span>
  6 + </div>
  7 + <div style="flex: 1"></div>
  8 + <a-flex gap="large" align="center">
  9 + <a-button type="link" @click="themeStore.isCompact=!themeStore.isCompact">
  10 + <template #icon>
  11 + <l-icon :type="themeStore.isCompact?'full-screen-two':'off-screen-two'"/>
  12 + </template>
  13 + </a-button>
  14 + <a-button type="link" @click="themeStore.isDark=!themeStore.isDark">
  15 + <template #icon>
  16 + <l-icon :type="themeStore.isDark?'sun-one':'moon'"/>
  17 + </template>
  18 + </a-button>
  19 +
  20 + <a-dropdown>
  21 + <div style="cursor: pointer;display: flex;align-items: center">
  22 + <!-- <a-avatar></a-avatar>-->
  23 + <!-- <div style="margin-left: 10px"> {{ userStore.user?.fullName }}</div>-->
  24 + </div>
  25 +
  26 + <!-- <template #overlay>
  27 + <a-menu>
  28 + <a-menu-item @click="onLogout" key="0">
  29 + 退出登录
  30 + </a-menu-item>
  31 + </a-menu>
  32 + </template>-->
  33 + </a-dropdown>
  34 +
  35 + </a-flex>
  36 + </a-layout-header>
  37 + <a-layout>
  38 + <a-layout-sider>
  39 + <a-menu mode="inline" @click="(item:any)=>router.push(item.key)" v-model:selectedKeys="current"
  40 + :items="menuList" v-model:open-keys="openKeys"></a-menu>
  41 + </a-layout-sider>
  42 + <a-layout-content style="flex: 1;overflow-y: auto;width: 100%;overflow-x: hidden;padding: 10px">
  43 + <router-view/>
  44 + </a-layout-content>
  45 + </a-layout>
  46 +
  47 + </a-layout>
  48 +</template>
  49 +
  50 +<script setup lang="ts">
  51 +import {useThemeStore} from "@/store/useThemeStore.ts";
  52 +import {ref} from "vue";
  53 +import router from "@/router";
  54 +import LIcon from "@/components/l-Icon/l-Icon.vue";
  55 +import {useRoute} from "vue-router";
  56 +import useRequest from "@/hooks/useRequest.ts";
  57 +
  58 +const title = import.meta.env.VITE_APP_TITLE;
  59 +
  60 +
  61 +const openKeys = ref(['GL'])
  62 +
  63 +const menuList = [{
  64 + label: '管理',
  65 + key: 'GL',
  66 + children: [{
  67 + title: 'air_route',
  68 + label: '航线管理',
  69 + key: 'air_route',
  70 + },]
  71 +},]
  72 +const route = useRoute()
  73 +const themeStore = useThemeStore()
  74 +const current = ref([route.name])
  75 +</script>
  76 +
  77 +<style scoped>
  78 +.title {
  79 + font-weight: bold;
  80 + font-size: x-large;
  81 +}
  82 +</style>
  1 +/// <reference types="vite/client" />
  2 +interface ImportMetaEnv {
  3 + readonly VITE_APP_BASE_URL: string
  4 + readonly VITE_APP_PROXY_URL: string
  5 + readonly VITE_APP_CONTENT_TEXT_PATH: string
  6 + readonly VITE_APP_TITLE: string
  7 + readonly VITE_APP_BASE_USERNAME: string
  8 + readonly VITE_APP_BASE_PASSWORD: string
  9 +}
  10 +
  11 +interface ImportMeta {
  12 + readonly env: ImportMetaEnv
  13 +}
  14 +
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 +</head>
  6 +<style>
  7 +
  8 +</style>
  9 +<body>
  10 +<div class="page"
  11 + style="font-family: 'SimSun', '宋体', sans-serif; width: 297mm; margin: 0 auto;">
  12 + <div style="text-align: center; font-size: 24px; font-weight: bold; margin-bottom: 20px;"> 机房环境巡检表
  13 + </div>
  14 + <div style="margin: 30px 0">
  15 + <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; font-size: 16px;border:none; ">
  16 + <tr>
  17 + <td style="border:none;padding: 5px;width: 60%">机房名称:</td>
  18 + <td style="border:none;padding: 5px;width: 40%;text-align: center">检查日期: 年 月 日</td>
  19 + </tr>
  20 + </table>
  21 + <table border="1" cellpadding="0" cellspacing="0" style="width: 100%; font-size: 40px; ">
  22 + <tr>
  23 + <td style="padding: 5px; background-color: #f2f2f2;width: 10%;text-align: center">机房环境</td>
  24 + <td style="padding: 5px; background-color: #f2f2f2;width: 15%;text-align: center">检查内容</td>
  25 + <td style="padding: 5px; background-color: #f2f2f2;width: 30%;text-align: center">检查方式</td>
  26 + <td style="padding: 5px; background-color: #f2f2f2;width: 15%;text-align: center">检查结论</td>
  27 + <td style="padding: 5px; background-color: #f2f2f2;width: 15%;text-align: center">异常情况摘要</td>
  28 + <td style="padding: 5px; background-color: #f2f2f2;width: 15%;text-align: center">检查人员</td>
  29 + </tr>
  30 + <tr>
  31 + <td style="padding: 5px;text-align: center" rowspan="9">机房环境</td>
  32 + <td style="padding: 5px">房内温湿度是否正常</td>
  33 + <td style="padding: 5px">
  34 + 现场检查。查看温湿度指标是否正常,IDC机房设定值为23℃,其它机房设定值为25℃-27℃。也可参考A、B、C、D各类机房的温度和湿度要求分别为:10~25℃、40~70%;10~28℃、30~80%;10~30℃、20~85%;5~35℃、15~85%的温湿度范围。
  35 + </td>
  36 + <td style="padding: 5px">□正常 □异常</td>
  37 + <td style="padding: 5px"></td>
  38 + <td style="padding: 5px"></td>
  39 + </tr>
  40 + <tr>
  41 + <td style="padding: 5px">房内无异响和异味</td>
  42 + <td style="padding: 5px">
  43 + 现场检查。听是否有异常告警音及设备异响,闻是否有烧焦及其他易燃物品等异味
  44 + </td>
  45 + <td style="padding: 5px">□正常 □异常</td>
  46 + <td style="padding: 5px"></td>
  47 + <td style="padding: 5px"></td>
  48 + </tr>
  49 + <tr>
  50 + <td style="padding: 5px">地面、墙壁、天花板清洁、无裂痕和水渍</td>
  51 + <td style="padding: 5px">
  52 + 现场检查。机房内天花板破损处及时修复,没有剥落、没有吊挂杂物;
  53 + </td>
  54 + <td style="padding: 5px">□正常 □异常</td>
  55 + <td style="padding: 5px"></td>
  56 + <td style="padding: 5px"></td>
  57 + </tr>
  58 + <tr>
  59 + <td style="padding: 5px">房内无鼠患、蚁患、蟑螂等活动的痕迹</td>
  60 + <td style="padding: 5px">
  61 + 现场检查。机房内所有物品归位摆放、整洁、卫生,地面保持干爽、无水渍,门窗完好、没有蜘蛛网;
  62 + </td>
  63 + <td style="padding: 5px">□正常 □异常</td>
  64 + <td style="padding: 5px"></td>
  65 + <td style="padding: 5px"></td>
  66 + </tr>
  67 + <tr>
  68 + <td style="padding: 5px">空调是否正常</td>
  69 + <td style="padding: 5px">
  70 + 现场检查。孔洞封堵规范,符合防火、防盗、防小动物入侵
  71 + </td>
  72 + <td style="padding: 5px">□正常 □异常</td>
  73 + <td style="padding: 5px"></td>
  74 + <td style="padding: 5px"></td>
  75 + </tr>
  76 + <tr>
  77 + <td style="padding: 5px">照明是否正常</td>
  78 + <td style="padding: 5px">
  79 + 现场检查。机房内照明充足,照明设施布局合理,区分生产照明、非生产照明和应急照明;
  80 + </td>
  81 + <td style="padding: 5px">□正常 □异常</td>
  82 + <td style="padding: 5px"></td>
  83 + <td style="padding: 5px"></td>
  84 + </tr>
  85 + <tr>
  86 + <td style="padding: 5px">机房孔洞</td>
  87 + <td style="padding: 5px">
  88 + 现场检查。孔洞封堵规范,符合防火、防盗、防小动物入侵
  89 + </td>
  90 + <td style="padding: 5px">□正常 □异常</td>
  91 + <td style="padding: 5px"></td>
  92 + <td style="padding: 5px"></td>
  93 + </tr>
  94 + <tr>
  95 + <td style="padding: 5px">机房防雷接地</td>
  96 + <td style="padding: 5px">
  97 + 现场检查。各类机房和设备要有防雷接地系统且须符合电源空调维护规程相关要求, 防雷接地设施应按规定要求定期检测。
  98 + </td>
  99 + <td style="padding: 5px">□正常 □异常</td>
  100 + <td style="padding: 5px"></td>
  101 + <td style="padding: 5px"></td>
  102 + </tr>
  103 + <tr>
  104 + <td style="padding: 5px">机房安全隐患</td>
  105 + <td style="padding: 5px">
  106 + 现场检查。查看是否有以上为列举到的影响机房安全的隐患或行为。
  107 + </td>
  108 + <td style="padding: 5px">□正常 □异常</td>
  109 + <td style="padding: 5px"></td>
  110 + <td style="padding: 5px"></td>
  111 + </tr>
  112 +
  113 +
  114 + <tr>
  115 + <td style="padding: 5px;text-align: center" rowspan="3">机房消防管理</td>
  116 + <td style="padding: 5px">消防是否正常</td>
  117 + <td style="padding: 5px">
  118 + 现场检查。每50平米应配置两支灭火器,数量是否附合要求,灭火器是否到期,是否有检查卡,检查卡巡检记录正确,单瓶单卡。</td>
  119 + <td style="padding: 5px">□正常 □异常</td>
  120 + <td style="padding: 5px"></td>
  121 + <td style="padding: 5px"></td>
  122 + </tr>
  123 + <tr>
  124 + <td style="padding: 5px">门禁是否正常</td>
  125 + <td style="padding: 5px">
  126 + 现场检查。锁是否为远程开门门禁锁,还是普通机械锁,是否正常可用。
  127 + </td>
  128 + <td style="padding: 5px">□正常 □异常</td>
  129 + <td style="padding: 5px"></td>
  130 + <td style="padding: 5px"></td>
  131 + </tr>
  132 + <tr>
  133 + <td style="padding: 5px">安全疏散标识</td>
  134 + <td style="padding: 5px">
  135 + 现场检查。机房内是否有安全出口标识及安全出口指示标识
  136 + </td>
  137 + <td style="padding: 5px">□正常 □异常</td>
  138 + <td style="padding: 5px"></td>
  139 + <td style="padding: 5px"></td>
  140 + </tr>
  141 + <tr>
  142 + <td rowspan="2" style="text-align: center">签字</td>
  143 + <td colspan="2" style="text-align: center;height: 100px">
  144 + 分公司
  145 + </td>
  146 + <td colspan="3"></td>
  147 + </tr>
  148 + <tr>
  149 + <td colspan="2" style="text-align: center;height: 100px">
  150 + 天蓝科技
  151 + </td>
  152 + <td colspan="3"></td>
  153 + </tr>
  154 + </table>
  155 + </div>
  156 +</div>
  157 +</body>
  158 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 +</head>
  6 +
  7 +<body>
  8 +<div class="page"
  9 + style="font-family: 'SimSun', '宋体', sans-serif; width: 297mm; margin: 0 auto;">
  10 + <div style="text-align: center; font-size: 24px; font-weight: bold; margin-bottom: 20px;"> 红河分公司 县/市 局站开关电源巡检
  11 + </div>
  12 + <div style="margin: 30px 0">
  13 + <table border="1" cellpadding="0" cellspacing="0" style="width: 100%; font-size: 24px;">
  14 + <tr>
  15 + <td style="padding: 5px; background-color: #f2f2f2;width: 50px">序号</td>
  16 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">设备名称</td>
  17 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">生产厂家或品牌</td>
  18 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">设备型号</td>
  19 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">设备容量(A)</td>
  20 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">设备实际容量(A)</td>
  21 + <td style="padding: 5px; background-color: #f2f2f2;width: 50px">数量</td>
  22 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">投入使用时间</td>
  23 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">现有负载(A)</td>
  24 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">配套电池总容量(AH)</td>
  25 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">负载率</td>
  26 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">是否超限</td>
  27 + <td style="padding: 5px; background-color: #f2f2f2;width: 100px">备注</td>
  28 + </tr>
  29 + <tr>
  30 + <td style="padding: 5px;color: red"></td>
  31 + <td style="padding: 5px">开关电源2</td>
  32 + <td style="padding: 5px">维帝技术有限公司</td>
  33 + <td style="padding: 5px">NetSure 801 Rck2000</td>
  34 + <td style="padding: 5px">2000</td>
  35 + <td style="padding: 5px">2000</td>
  36 + <td style="padding: 5px">1</td>
  37 + <td style="padding: 5px">2024/6/1</td>
  38 + <td style="padding: 5px">480</td>
  39 + <td style="padding: 5px">4000</td>
  40 + <td style="padding: 5px">44%</td>
  41 + <td style="padding: 5px"></td>
  42 + <td style="padding: 5px">正常</td>
  43 + </tr>
  44 + <tr>
  45 + <td style="height: 80px; border-right: none;padding: 5px" colspan="6">电信公司:</td>
  46 + <td style="height: 80px; border-left:none;padding: 5px " colspan="7">天蓝科技:</td>
  47 + </tr>
  48 + <tr>
  49 + <td style="border-right: none;padding: 5px" colspan="6"></td>
  50 + <td style="border-left:none;padding: 5px " colspan="7">日期:</td>
  51 + </tr>
  52 + </table>
  53 + </div>
  54 +</div>
  55 +</body>
  56 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 +</head>
  6 +
  7 +<body>
  8 +<div class="page"
  9 + style="font-family: 'SimSun', '宋体', sans-serif; width: 297mm; margin: 0 auto;">
  10 + <div style="text-align: center; font-size: 24px; font-weight: bold; margin-bottom: 20px;">
  11 + 红河分公司 县/市 局站空调巡检
  12 + </div>
  13 + <div style="margin: 30px 0">
  14 + <table border="1" cellpadding="0" cellspacing="0" style="width: 100%;font-size: 20px;">
  15 + <tr>
  16 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 50px">序号</td>
  17 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">县市</td>
  18 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">设备名称</td>
  19 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">生产厂家或品牌
  20 + </td>
  21 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">
  22 + 设备型号
  23 + </td>
  24 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">制冷量</td>
  25 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">数量(台)
  26 + </td>
  27 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px"> 投入使用时间</td>
  28 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">是否超限</td>
  29 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">备注</td>
  30 + </tr>
  31 + <tr>
  32 + <td style="padding: 5px;color: red"></td>
  33 + <td style="padding: 5px">个旧</td>
  34 + <td style="padding: 5px">空调</td>
  35 + <td style="padding: 5px">美的</td>
  36 + <td style="padding: 5px">GWL-12500</td>
  37 + <td style="padding: 5px">5P</td>
  38 + <td style="padding: 5px">1</td>
  39 + <td style="padding: 5px">2015</td>
  40 + <td style="padding: 5px"></td>
  41 + <td style="padding: 5px"></td>
  42 + </tr>
  43 + <tr>
  44 + <td style="height: 50px; border-right: none;padding: 5px" colspan="5">电信公司:</td>
  45 + <td style="height: 50px; border-left:none;padding: 5px " colspan="5">天蓝科技:</td>
  46 + </tr>
  47 + <tr>
  48 + <td style="border-right: none;padding: 5px" colspan="5"></td>
  49 + <td style="border-left:none;padding: 5px " colspan="5">日期:</td>
  50 + </tr>
  51 + </table>
  52 + </div>
  53 +</div>
  54 +</body>
  55 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="zh-CN">
  3 +<style>
  4 + * {
  5 + margin: 0;
  6 + padding: 0;
  7 + box-sizing: border-box;
  8 + word-wrap: break-word;
  9 + word-break: break-all;
  10 + }
  11 +</style>
  12 +<head>
  13 + <meta charset="UTF-8">
  14 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  15 + <title>空调油机维保故障修复服务报告</title>
  16 +</head>
  17 +
  18 +<body>
  19 +<div style="font-family: 'SimSun', '宋体', sans-serif; width: 794px; margin: 0 auto;">
  20 + <div style="font-weight: 1000;font-size: xx-large;text-align: center;margin: 20px 0">空调油机维保故障修复服务报告
  21 + </div>
  22 + <div style="margin: 30px">
  23 + <table style="border: 1px solid #000000; width: 100%;border-collapse: collapse;">
  24 + <tr>
  25 + <td style="border: 1px solid #000000;padding: 5px; background: #d9d9d9;font-weight: 1000;width:50px">
  26 + <div>设备</div>
  27 + <div>厂商</div>
  28 + </td>
  29 + <td style="border: 1px solid #000000;padding: 5px; background: #d9d9d9;font-weight: 1000;" colspan="2">
  30 + </td>
  31 + </tr>
  32 +
  33 + <!-- 联系信息 -->
  34 + <tr>
  35 + <td style="border: 1px solid #000000;padding: 5px; background: #d9d9d9;font-weight: 1000;width:50px"
  36 + rowspan="7">
  37 + <div>联系</div>
  38 + <div>信息</div>
  39 + </td>
  40 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  41 + <span>(分)公司名称:</span>
  42 + <span></span>
  43 + </td>
  44 + </tr>
  45 + <tr>
  46 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  47 + <span>设备安装地址:</span>
  48 + <span></span>
  49 + </td>
  50 + </tr>
  51 + <tr>
  52 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  53 + <span>报修时间:</span>
  54 + <span style="border-bottom: 1px solid black;"> </span>
  55 + </td>
  56 + </tr>
  57 + <tr>
  58 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  59 + <span>服务提供商名称:</span>
  60 + <span></span>
  61 + </td>
  62 + </tr>
  63 + <tr>
  64 + <td style="border: 1px solid #000000;padding: 5px;border-right: none;width: 300px">
  65 + <span>服务工程师:</span>
  66 + <span>123</span>
  67 + </td>
  68 + <td style="border: 1px solid #000000;padding: 5px;border-left: none">
  69 + <span>联系电话:</span>
  70 + <span></span>
  71 + </td>
  72 + </tr>
  73 + <tr>
  74 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  75 + <span>服务响应时间:</span>
  76 + <span style="border-bottom: 1px solid black;"> </span>
  77 + </td>
  78 + </tr>
  79 + <tr>
  80 + <td style="border: 1px solid #000000;padding: 5px;border-right: none;width: 300px">
  81 + <span style=" ">是否现场服务:</span>
  82 + <span style=" border-bottom: 1px solid black">□是 □否</span>
  83 + </td>
  84 + <td style="border: 1px solid #000000;padding: 5px;border-left: none">
  85 + <span>到达现场时间:</span>
  86 + <span style="border-bottom: 1px solid black;"></span>
  87 + </td>
  88 + </tr>
  89 +
  90 + <tr>
  91 + <td style="border: 1px solid #000000;padding: 5px; background: #d9d9d9;font-weight: 1000;width:50px"
  92 + rowspan="2">
  93 + <div>故障</div>
  94 + <div>信息</div>
  95 + </td>
  96 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  97 + <span>故障简述:</span>
  98 + <span style=" border-bottom: 1px solid black"> </span>
  99 + </td>
  100 + </tr>
  101 + <tr>
  102 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  103 + <span>故障恢复时间:</span>
  104 + <span style=" border-bottom: 1px solid black"> </span>
  105 + </td>
  106 + </tr>
  107 +
  108 +
  109 + <!-- 服务记录表 -->
  110 + <tr>
  111 + <td style="border: 1px solid #000000;padding: 5px; background: #d9d9d9;font-weight: 1000;width:50px"
  112 + rowspan="1">
  113 + <div>服务</div>
  114 + <div>记录</div>
  115 + </td>
  116 + <td style="border: 1px solid #000000;padding: 0px" colspan="2">
  117 + <div>
  118 + <div style=" padding: 5px">
  119 + <span>(对服务过程、故障修复情况的描述,由维护工程师填写)</span>
  120 + </div>
  121 + <div style="margin: 20px 0">
  122 + <table style="width: 100%;border-collapse: collapse;border-top: 1px dashed black;border-bottom: 1px dashed black">
  123 + <tr>
  124 + <td style="padding: 5px;width: 50px" rowspan="999">
  125 + <div>变更</div>
  126 + <div>记录</div>
  127 + </td>
  128 + <td style="border-left: 1px solid black;border-bottom: 1px solid black;text-align: center;padding: 5px; background: #d9d9d9;font-weight: 1000;">
  129 + 变更项目
  130 + </td>
  131 + <td style="border-left: 1px solid black;border-bottom: 1px solid black;text-align: center;padding: 5px ; background: #d9d9d9;font-weight: 1000;">
  132 + 原状态
  133 + </td>
  134 + <td style="border-left: 1px solid black;border-bottom: 1px solid black;text-align: center;padding: 5px ; background: #d9d9d9;font-weight: 1000;">
  135 + 现状态
  136 + </td>
  137 + </tr>
  138 + <tr style="border-bottom: 1px dashed black;">
  139 + <td style="border-left: 1px solid black;padding: 5px;width: 150px;">
  140 + <div>12311111111111111</div>
  141 + </td>
  142 + <td style="border-left: 1px solid black;padding: 5px">
  143 + <image style="width: 100px;height: 100px;"></image>
  144 + </td>
  145 + <td style="border-left: 1px solid black;padding: 5px">
  146 + <image style="width: 100px;height: 100px;"></image>
  147 + </td>
  148 + </tr>
  149 + <tr style="border-bottom: 1px dashed black;">
  150 + <td style="border-left: 1px solid black;padding: 5px;width: 150px;">
  151 + <div>12311111111111111</div>
  152 + </td>
  153 + <td style="border-left: 1px solid black;padding: 5px;height: 100px;">
  154 + <image style="width: auto;height: 100%;"></image>
  155 + </td>
  156 + <td style="border-left: 1px solid black;padding: 5px;height: 100px;">
  157 + <image style="width: auto;height:100%;"></image>
  158 + </td>
  159 + </tr>
  160 + </table>
  161 + </div>
  162 + <div>
  163 + <span>服务工程师签字:</span>
  164 + <span></span>
  165 + <span>时间:</span>
  166 + <span></span>
  167 + </div>
  168 + </div>
  169 +
  170 + </td>
  171 + </tr>
  172 + <tr>
  173 + <td style="border: 1px solid #000000;padding: 5px; background: #d9d9d9;font-weight: 1000;width:50px">客户<br>意见
  174 + </td>
  175 + <td style="border: 1px solid #000000;padding: 5px" colspan="2">
  176 + <div>
  177 + <span style="margin: 0 10px">□非常满意</span>
  178 + <span style="margin: 0 10px">□满意</span>
  179 + <span style="margin: 0 10px">□尚可</span>
  180 + <span style="margin: 0 10px">□不满意</span>
  181 + <span style="margin: 0 10px">□非常不满意</span>
  182 + </div>
  183 + <div style="min-height: 50px;margin: 10px 0">
  184 + <b>具体意见:</b>
  185 + </div>
  186 + <div style=" margin: 10px 0;text-align: right">
  187 + <div style="display: inline;text-align: right">
  188 + <span>客户签字:</span>
  189 + <span style="display: inline;;font-weight: 1000"></span>
  190 + </div>
  191 + <div style="display: inline;text-align: right">
  192 + <span>日期:</span>
  193 + <span style="display: inline;;font-weight: 1000"></span>
  194 + </div>
  195 + </div>
  196 + </td>
  197 + </tr>
  198 +
  199 + </table>
  200 + </div>
  201 +</div>
  202 +</body>
  203 +
  204 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <title>空调油机维保故障修复服务报告</title>
  6 +</head>
  7 +
  8 +<style>
  9 + .page {
  10 + * {
  11 + margin: 0;
  12 + padding: 0;
  13 + box-sizing: border-box;
  14 + word-wrap: break-word;
  15 + word-break: break-all;
  16 + overflow: hidden;
  17 + }
  18 + }
  19 +
  20 +</style>
  21 +<body>
  22 +<div class="page" style="font-family: 'SimSun', '宋体', sans-serif; width: 794px; margin: 0 auto;">
  23 + <div style="font-weight: 1000;font-size: xx-large;text-align: center;margin: 20px 0">空调油机维保故障修复服务报告
  24 + </div>
  25 + <div style="margin: 30px">
  26 + <table border="1" cellpadding="0" cellspacing="0" style="width: 100%">
  27 + <tr>
  28 + <td style="background: #d9d9d9;text-align: center;font-weight: bold;padding: 5px;width:50px">
  29 + 设备<br/>厂商
  30 + </td>
  31 + <td style="background: #d9d9d9;padding: 5px" colspan="3">
  32 + <span></span>
  33 + </td>
  34 + </tr>
  35 + <tr>
  36 + <td style="background: #d9d9d9;text-align: center;font-weight: bold;padding: 5px;width:50px"
  37 + rowspan="7">
  38 + 联系<br/>信息
  39 + </td>
  40 + <td style="padding: 5px" colspan="3">
  41 + <span>(分)公司名称:</span>
  42 + <span></span>
  43 + </td>
  44 + </tr>
  45 + <tr>
  46 + <td style="padding: 5px" colspan="3">
  47 + <span>设备安装地址:</span>
  48 + <span></span>
  49 + </td>
  50 + </tr>
  51 + <tr>
  52 + <td style="padding: 5px" colspan="3">
  53 + <span>报修时间:</span>
  54 + <span></span>
  55 + </td>
  56 + </tr>
  57 + <tr>
  58 + <td style="padding: 5px" colspan="3">
  59 + <span>服务提供商名称:</span>
  60 + <span></span>
  61 + </td>
  62 + </tr>
  63 + <tr>
  64 + <td style="width: 210px;border-right: none;padding: 5px" colspan="1">
  65 + <span>服务工程师:</span>
  66 + <span></span>
  67 + </td>
  68 + <td colspan="2" style="border-left: none;padding: 5px">
  69 + <span>联系电话:</span>
  70 + <span></span>
  71 + </td>
  72 + </tr>
  73 + <tr>
  74 + <td style="padding: 5px" colspan="3">
  75 + <span>服务响应时间:</span>
  76 + <span></span>
  77 + </td>
  78 + </tr>
  79 + <tr>
  80 + <td style="width: 210px;border-right: none;padding: 5px" colspan="1">
  81 + <span>是否现场服务:</span>
  82 + <span>□是 □否</span>
  83 + </td>
  84 + <td colspan="2" style="border-left: none;padding: 5px">
  85 + <span>到达现场时间:</span>
  86 + <span></span>
  87 + </td>
  88 + </tr>
  89 +
  90 + <tr>
  91 + <td style="background: #d9d9d9;text-align: center;font-weight: bold;padding: 5px;width:50px"
  92 + rowspan="2">
  93 + 故障<br/>信息
  94 + </td>
  95 + <td style="padding: 5px" colspan="3">
  96 + <span>故障简述:</span>
  97 + <span></span>
  98 + </td>
  99 + </tr>
  100 + <tr>
  101 + <td style="padding: 5px" colspan="3">
  102 + <span>故障恢复时间:</span>
  103 + <span></span>
  104 + </td>
  105 + </tr>
  106 +
  107 + <tr>
  108 + <td style="background: #d9d9d9;text-align: center;font-weight: bold;padding: 5px;width:50px"
  109 + rowspan="3">
  110 + 服务<br/>记录
  111 + </td>
  112 + <td colspan="3" style="height: 80px;vertical-align: top;border-bottom: none;padding: 5px" rowspan="1">
  113 + <div>(对服务过程、故障修复情况的描述,由维护工程师填写)</div>
  114 + </td>
  115 + </tr>
  116 + <tr>
  117 + <td colspan="3" style="border-top: 1px dashed black;border-bottom: 1px dashed black" rowspan="1">
  118 + <table style="width: 100%;border: none" border="1" cellpadding="0" cellspacing="0">
  119 + <tr>
  120 + <td rowspan="99999"
  121 + style="width: 50px;text-align: center;border-top: none;border-bottom: none">
  122 + 变更<br/>记录
  123 + </td>
  124 + <td style="background:#d9d9d9;text-align: center;border-top: none;height: 40px">变更项目
  125 + </td>
  126 + <td style="background:#d9d9d9;text-align: center;border-top: none;height: 40px">原状态</td>
  127 + <td style="background:#d9d9d9;text-align: center;border-top: none;height: 40px">现状态</td>
  128 + </tr>
  129 + <tr>
  130 + <td style="border-bottom: none;border-top: none;width: 100px;padding: 5px">
  131 + 变更项11111111111111目
  132 + </td>
  133 + <td style="border-bottom: none;border-top: none;text-align: center;height: 100px;overflow: hidden;padding: 5px">
  134 + <img width="100" height="100" src=""/>
  135 + </td>
  136 + <td style="border-bottom: none;border-top: none;text-align: center;height: 100px;overflow: hidden;padding: 5px">
  137 + <img width="100" height="100" src=""/>
  138 + </td>
  139 + </tr>
  140 + <tr>
  141 + <td style="border-top: 1px dashed black;border-bottom: none;width: 100px;padding: 5px">
  142 + 变更项目
  143 + </td>
  144 + <td style="border-top: 1px dashed black;border-bottom: none;text-align: center;height: 100px;overflow: hidden;padding: 5px">
  145 + <img width="100" height="100" src=""/>
  146 + </td>
  147 + <td style="border-top: 1px dashed black;border-bottom: none;text-align: center;height: 100px;overflow: hidden;padding: 5px">
  148 + <img width="100" height="100" src=""/>
  149 + </td>
  150 + </tr>
  151 + </table>
  152 + </td>
  153 + </tr>
  154 + <tr>
  155 + <td colspan="1" rowspan="1" style="height: 50px;border-top: none;border-right: none">
  156 +
  157 + </td>
  158 + <td colspan="1" rowspan="1" style="height: 50px;border-top: none;border-right: none;border-left: none">
  159 + <span>服务工程师签字:</span>
  160 + <span></span>
  161 + </td>
  162 + <td colspan="1" rowspan="1" style="height: 50px;border-top: none;border-left: none">
  163 + <span>时间:</span>
  164 + <span></span>
  165 + </td>
  166 + </tr>
  167 + <tr>
  168 + <td style="background: #d9d9d9;text-align: center;font-weight: bold;padding: 5px;width:50px"
  169 + rowspan="3">
  170 + 客户<br>意见
  171 + </td>
  172 + <td rowspan="1" colspan="3" style="border-bottom: none;padding: 5px ">
  173 + <table style="width: 100%;border: none" border="1" cellpadding="0" cellspacing="0">
  174 + <tr>
  175 + <td style="width: 90px;border: none">□非常满意</td>
  176 + <td style="width: 70px;border: none">□满意</td>
  177 + <td style="width: 70px;border: none">□尚可</td>
  178 + <td style="width: 80px;border: none">□不满意</td>
  179 + <td style="border: none">□非常不满意</td>
  180 + </tr>
  181 + </table>
  182 + </td>
  183 + </tr>
  184 + <tr>
  185 + <td rowspan="1" colspan="3"
  186 + style="border-top: none;border-bottom: none;padding: 5px;font-weight: 1000;height: 50px;font-weight: 1000">
  187 + <span>具体意见:</span>
  188 + </td>
  189 + </tr>
  190 + <tr>
  191 + <td colspan="1" rowspan="1" style="height: 50px;border-top: none;border-right: none">
  192 +
  193 + </td>
  194 + <td colspan="1" rowspan="1"
  195 + style="height: 50px;border-top: none;border-right: none;border-left: none;font-weight: 1000">
  196 + <span>客户签字:</span>
  197 + <span>签字</span>
  198 + </td>
  199 + <td colspan="1" rowspan="1" style="height: 50px;border-top: none;border-left: none;font-weight: 1000">
  200 + <span>日期:</span>
  201 + <span>2025-12-31</span>
  202 + </td>
  203 + </tr>
  204 + </table>
  205 + </div>
  206 +</div>
  207 +</body>
  208 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 +</head>
  6 +
  7 +<body>
  8 +<div class="page"
  9 + style="font-family: 'SimSun', '宋体', sans-serif; width: 297mm; margin: 0 auto;">
  10 + <div style="text-align: center; font-size: 24px; font-weight: bold; margin-bottom: 20px;"
  11 + > 红河分公司 县/市 局站蓄电池巡检
  12 + </div>
  13 + <div style="margin:30px 0">
  14 + <table border="1" cellpadding="0" cellspacing="0" style="width: 100%;font-size: 24px;">
  15 + <tr>
  16 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 50px">序号</td>
  17 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">设备名称</td>
  18 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">生产厂家或品牌</td>
  19 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">设备型号</td>
  20 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">容量(AH)</td>
  21 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 50px">数量</td>
  22 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">投入使用时间</td>
  23 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">现有负载(A)</td>
  24 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">放电时长</td>
  25 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 50px">是否超限</td>
  26 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">备注</td>
  27 + </tr>
  28 + <tr>
  29 + <td style="padding: 5px;color: red"></td>
  30 + <td style="padding: 5px">蓄电池组</td>
  31 + <td style="padding: 5px">KSTAR</td>
  32 + <td style="padding: 5px">GFM-300Ah</td>
  33 + <td style="padding: 5px">300A/h</td>
  34 + <td style="padding: 5px">1</td>
  35 + <td style="padding: 5px">2019/5/1</td>
  36 + <td style="padding: 5px">12</td>
  37 + <td style="padding: 5px">3.5</td>
  38 + <td style="padding: 5px"></td>
  39 + <td style="padding: 5px">正常</td>
  40 + </tr>
  41 + <tr>
  42 + <td style="height: 50px; border-right: none;padding: 5px" colspan="6">电信公司:</td>
  43 + <td style="height: 50px; border-left:none;padding: 5px " colspan="5">天蓝科技:</td>
  44 + </tr>
  45 + <tr>
  46 + <td style="border-right: none;padding: 5px" colspan="6"></td>
  47 + <td style="border-left:none;padding: 5px " colspan="5">日期:</td>
  48 + </tr>
  49 + </table>
  50 + </div>
  51 +</div>
  52 +</body>
  53 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 +</head>
  6 +
  7 +<body>
  8 +<div class="page"
  9 + style="font-family: 'SimSun', '宋体', sans-serif; width: 297mm; margin: 0 auto;">
  10 + <div style="text-align: center; font-size: 24px; font-weight: bold; margin-bottom: 20px;"
  11 + > 红河分公司 县/市 局站引入线巡检
  12 + </div>
  13 + <div style="margin: 30px 0">
  14 + <table border="1" cellpadding="0" cellspacing="0" style="width: 100%;font-size: 20px;">
  15 + <tr>
  16 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 50px">序号</td>
  17 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">进线电缆线径</td>
  18 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">进线电缆长度</td>
  19 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">进线电缆是否老化</td>
  20 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">进线电缆线径是否符合要求</td>
  21 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">引入空开容量</td>
  22 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">引入空开是否老化</td>
  23 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">引入空开容量是否符合要求</td>
  24 + <td style="padding: 5px;text-align: center; background-color: #f2f2f2;width: 100px">备注</td>
  25 + </tr>
  26 + <tr>
  27 + <td style="padding: 5px;color: red"></td>
  28 + <td style="padding: 5px">70</td>
  29 + <td style="padding: 5px">80米</td>
  30 + <td style="padding: 5px"></td>
  31 + <td style="padding: 5px">目前够,以后不够需更换</td>
  32 + <td style="padding: 5px"></td>
  33 + <td style="padding: 5px"></td>
  34 + <td style="padding: 5px"></td>
  35 + <td style="padding: 5px">后期需更换</td>
  36 + </tr>
  37 + <tr>
  38 + <td style="height: 50px; border-right: none;padding: 5px" colspan="5">电信公司:</td>
  39 + <td style="height: 50px; border-left:none;padding: 5px " colspan="4">天蓝科技:</td>
  40 + </tr>
  41 + <tr>
  42 + <td style="border-right: none;padding: 5px" colspan="5"></td>
  43 + <td style="border-left:none;padding: 5px " colspan="4">日期:</td>
  44 + </tr>
  45 + </table>
  46 + </div>
  47 +</div>
  48 +</body>
  49 +</html>
  1 +{
  2 + "extends": "@vue/tsconfig/tsconfig.dom.json",
  3 + "compilerOptions": {
  4 + "composite": true,
  5 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
  6 + "target": "ES2020",
  7 + "useDefineForClassFields": true,
  8 + "module": "ESNext",
  9 + "lib": ["ES2020", "DOM", "DOM.Iterable"],
  10 + "skipLibCheck": true,
  11 +
  12 + /* Bundler mode */
  13 + "moduleResolution": "bundler",
  14 + "allowImportingTsExtensions": true,
  15 + "resolveJsonModule": true,
  16 + "isolatedModules": true,
  17 + "moduleDetection": "force",
  18 + "noEmit": true,
  19 + "jsx": "preserve",
  20 +
  21 + /* Linting */
  22 + "strict": false,
  23 +
  24 + "paths": {
  25 + "@/*": ["./src/*"]
  26 + }
  27 + },
  28 + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
  29 +}
  1 +{
  2 + "files": [],
  3 + "references": [
  4 + { "path": "./tsconfig.app.json" },
  5 + { "path": "./tsconfig.node.json" }
  6 + ]
  7 +}
  1 +{
  2 + "compilerOptions": {
  3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
  4 + "target": "ES2022",
  5 + "lib": ["ES2023"],
  6 + "module": "ESNext",
  7 + "skipLibCheck": true,
  8 +
  9 + /* Bundler mode */
  10 + "moduleResolution": "bundler",
  11 + "allowImportingTsExtensions": true,
  12 + "isolatedModules": true,
  13 + "moduleDetection": "force",
  14 + "noEmit": true,
  15 +
  16 + /* Linting */
  17 + "strict": true,
  18 + "noUnusedLocals": true,
  19 + "noUnusedParameters": true,
  20 + "noFallthroughCasesInSwitch": true,
  21 + "noUncheckedSideEffectImports": true
  22 + },
  23 + "include": ["vite.config.ts"]
  24 +}
  1 +import {defineConfig,loadEnv} from 'vite'
  2 +import vue from '@vitejs/plugin-vue'
  3 +import cesium from "vite-plugin-cesium";
  4 +import vueJsxPlugin from "@vitejs/plugin-vue-jsx";
  5 +import * as path from "node:path";
  6 +// https://vite.dev/config/
  7 +export default defineConfig(({mode}) => {
  8 + const env = loadEnv(mode, './')
  9 + return {
  10 + plugins: [vue(), cesium(), vueJsxPlugin()],
  11 + resolve: {
  12 + alias: {
  13 + '@': path.resolve(__dirname, './src'),
  14 + },
  15 + },
  16 + server: {
  17 + proxy: {
  18 + [env.VITE_APP_PROXY_URL]: {
  19 + target: env.VITE_APP_BASE_URL,
  20 + rewrite: (path) => {
  21 + return path.replace(env.VITE_APP_PROXY_URL, '')
  22 + }
  23 + }
  24 + }
  25 + },
  26 + base: './',
  27 + assetsInclude: ['**/*.wpml']
  28 + }
  29 +})
  1 +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
  2 +# yarn lockfile v1
  3 +
  4 +
  5 +"@ampproject/remapping@^2.2.0":
  6 + version "2.3.0"
  7 + resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
  8 + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
  9 + dependencies:
  10 + "@jridgewell/gen-mapping" "^0.3.5"
  11 + "@jridgewell/trace-mapping" "^0.3.24"
  12 +
  13 +"@ant-design/colors@^6.0.0":
  14 + version "6.0.0"
  15 + resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298"
  16 + integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==
  17 + dependencies:
  18 + "@ctrl/tinycolor" "^3.4.0"
  19 +
  20 +"@ant-design/icons-svg@^4.2.1":
  21 + version "4.4.2"
  22 + resolved "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6"
  23 + integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==
  24 +
  25 +"@ant-design/icons-vue@^7.0.0", "@ant-design/icons-vue@^7.0.1":
  26 + version "7.0.1"
  27 + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz#83de301771fadd03f3890e627314102405c31c22"
  28 + integrity sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==
  29 + dependencies:
  30 + "@ant-design/colors" "^6.0.0"
  31 + "@ant-design/icons-svg" "^4.2.1"
  32 +
  33 +"@babel/code-frame@^7.26.2":
  34 + version "7.26.2"
  35 + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
  36 + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
  37 + dependencies:
  38 + "@babel/helper-validator-identifier" "^7.25.9"
  39 + js-tokens "^4.0.0"
  40 + picocolors "^1.0.0"
  41 +
  42 +"@babel/compat-data@^7.26.5":
  43 + version "7.26.8"
  44 + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367"
  45 + integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==
  46 +
  47 +"@babel/core@^7.26.0":
  48 + version "7.26.10"
  49 + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9"
  50 + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==
  51 + dependencies:
  52 + "@ampproject/remapping" "^2.2.0"
  53 + "@babel/code-frame" "^7.26.2"
  54 + "@babel/generator" "^7.26.10"
  55 + "@babel/helper-compilation-targets" "^7.26.5"
  56 + "@babel/helper-module-transforms" "^7.26.0"
  57 + "@babel/helpers" "^7.26.10"
  58 + "@babel/parser" "^7.26.10"
  59 + "@babel/template" "^7.26.9"
  60 + "@babel/traverse" "^7.26.10"
  61 + "@babel/types" "^7.26.10"
  62 + convert-source-map "^2.0.0"
  63 + debug "^4.1.0"
  64 + gensync "^1.0.0-beta.2"
  65 + json5 "^2.2.3"
  66 + semver "^6.3.1"
  67 +
  68 +"@babel/generator@^7.26.10":
  69 + version "7.26.10"
  70 + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.10.tgz#a60d9de49caca16744e6340c3658dfef6138c3f7"
  71 + integrity sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==
  72 + dependencies:
  73 + "@babel/parser" "^7.26.10"
  74 + "@babel/types" "^7.26.10"
  75 + "@jridgewell/gen-mapping" "^0.3.5"
  76 + "@jridgewell/trace-mapping" "^0.3.25"
  77 + jsesc "^3.0.2"
  78 +
  79 +"@babel/helper-annotate-as-pure@^7.25.9":
  80 + version "7.25.9"
  81 + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4"
  82 + integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==
  83 + dependencies:
  84 + "@babel/types" "^7.25.9"
  85 +
  86 +"@babel/helper-compilation-targets@^7.26.5":
  87 + version "7.26.5"
  88 + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz#75d92bb8d8d51301c0d49e52a65c9a7fe94514d8"
  89 + integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==
  90 + dependencies:
  91 + "@babel/compat-data" "^7.26.5"
  92 + "@babel/helper-validator-option" "^7.25.9"
  93 + browserslist "^4.24.0"
  94 + lru-cache "^5.1.1"
  95 + semver "^6.3.1"
  96 +
  97 +"@babel/helper-create-class-features-plugin@^7.25.9":
  98 + version "7.26.9"
  99 + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz#d6f83e3039547fbb39967e78043cd3c8b7820c71"
  100 + integrity sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==
  101 + dependencies:
  102 + "@babel/helper-annotate-as-pure" "^7.25.9"
  103 + "@babel/helper-member-expression-to-functions" "^7.25.9"
  104 + "@babel/helper-optimise-call-expression" "^7.25.9"
  105 + "@babel/helper-replace-supers" "^7.26.5"
  106 + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
  107 + "@babel/traverse" "^7.26.9"
  108 + semver "^6.3.1"
  109 +
  110 +"@babel/helper-member-expression-to-functions@^7.25.9":
  111 + version "7.25.9"
  112 + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3"
  113 + integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==
  114 + dependencies:
  115 + "@babel/traverse" "^7.25.9"
  116 + "@babel/types" "^7.25.9"
  117 +
  118 +"@babel/helper-module-imports@^7.25.9":
  119 + version "7.25.9"
  120 + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715"
  121 + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
  122 + dependencies:
  123 + "@babel/traverse" "^7.25.9"
  124 + "@babel/types" "^7.25.9"
  125 +
  126 +"@babel/helper-module-transforms@^7.26.0":
  127 + version "7.26.0"
  128 + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae"
  129 + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
  130 + dependencies:
  131 + "@babel/helper-module-imports" "^7.25.9"
  132 + "@babel/helper-validator-identifier" "^7.25.9"
  133 + "@babel/traverse" "^7.25.9"
  134 +
  135 +"@babel/helper-optimise-call-expression@^7.25.9":
  136 + version "7.25.9"
  137 + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e"
  138 + integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==
  139 + dependencies:
  140 + "@babel/types" "^7.25.9"
  141 +
  142 +"@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5":
  143 + version "7.26.5"
  144 + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35"
  145 + integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==
  146 +
  147 +"@babel/helper-replace-supers@^7.26.5":
  148 + version "7.26.5"
  149 + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d"
  150 + integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==
  151 + dependencies:
  152 + "@babel/helper-member-expression-to-functions" "^7.25.9"
  153 + "@babel/helper-optimise-call-expression" "^7.25.9"
  154 + "@babel/traverse" "^7.26.5"
  155 +
  156 +"@babel/helper-skip-transparent-expression-wrappers@^7.25.9":
  157 + version "7.25.9"
  158 + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9"
  159 + integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==
  160 + dependencies:
  161 + "@babel/traverse" "^7.25.9"
  162 + "@babel/types" "^7.25.9"
  163 +
  164 +"@babel/helper-string-parser@^7.25.9":
  165 + version "7.25.9"
  166 + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
  167 + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
  168 +
  169 +"@babel/helper-validator-identifier@^7.25.9":
  170 + version "7.25.9"
  171 + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
  172 + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
  173 +
  174 +"@babel/helper-validator-option@^7.25.9":
  175 + version "7.25.9"
  176 + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72"
  177 + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
  178 +
  179 +"@babel/helpers@^7.26.10":
  180 + version "7.26.10"
  181 + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384"
  182 + integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==
  183 + dependencies:
  184 + "@babel/template" "^7.26.9"
  185 + "@babel/types" "^7.26.10"
  186 +
  187 +"@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.26.9":
  188 + version "7.26.10"
  189 + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749"
  190 + integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==
  191 + dependencies:
  192 + "@babel/types" "^7.26.10"
  193 +
  194 +"@babel/plugin-syntax-jsx@^7.25.9":
  195 + version "7.25.9"
  196 + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290"
  197 + integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==
  198 + dependencies:
  199 + "@babel/helper-plugin-utils" "^7.25.9"
  200 +
  201 +"@babel/plugin-syntax-typescript@^7.25.9":
  202 + version "7.25.9"
  203 + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399"
  204 + integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==
  205 + dependencies:
  206 + "@babel/helper-plugin-utils" "^7.25.9"
  207 +
  208 +"@babel/plugin-transform-typescript@^7.25.9":
  209 + version "7.26.8"
  210 + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz#2e9caa870aa102f50d7125240d9dbf91334b0950"
  211 + integrity sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==
  212 + dependencies:
  213 + "@babel/helper-annotate-as-pure" "^7.25.9"
  214 + "@babel/helper-create-class-features-plugin" "^7.25.9"
  215 + "@babel/helper-plugin-utils" "^7.26.5"
  216 + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9"
  217 + "@babel/plugin-syntax-typescript" "^7.25.9"
  218 +
  219 +"@babel/runtime@^7.10.5":
  220 + version "7.26.10"
  221 + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2"
  222 + integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==
  223 + dependencies:
  224 + regenerator-runtime "^0.14.0"
  225 +
  226 +"@babel/template@^7.26.9":
  227 + version "7.26.9"
  228 + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2"
  229 + integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==
  230 + dependencies:
  231 + "@babel/code-frame" "^7.26.2"
  232 + "@babel/parser" "^7.26.9"
  233 + "@babel/types" "^7.26.9"
  234 +
  235 +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.9":
  236 + version "7.26.10"
  237 + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.10.tgz#43cca33d76005dbaa93024fae536cc1946a4c380"
  238 + integrity sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==
  239 + dependencies:
  240 + "@babel/code-frame" "^7.26.2"
  241 + "@babel/generator" "^7.26.10"
  242 + "@babel/parser" "^7.26.10"
  243 + "@babel/template" "^7.26.9"
  244 + "@babel/types" "^7.26.10"
  245 + debug "^4.3.1"
  246 + globals "^11.1.0"
  247 +
  248 +"@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.9":
  249 + version "7.26.10"
  250 + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.26.10.tgz#396382f6335bd4feb65741eacfc808218f859259"
  251 + integrity sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==
  252 + dependencies:
  253 + "@babel/helper-string-parser" "^7.25.9"
  254 + "@babel/helper-validator-identifier" "^7.25.9"
  255 +
  256 +"@cesium/engine@^15.0.0":
  257 + version "15.0.0"
  258 + resolved "https://registry.npmmirror.com/@cesium/engine/-/engine-15.0.0.tgz#e5c43684919537715787f8593d4963d48c9d6849"
  259 + integrity sha512-jimj7khIf/mBkejsMZ+n6Y9PPvXh4QmWKkz2ekFz59icDCeGj8ZJrzl5p0caqiK/372mnHOwmYFWYEwThEw2ew==
  260 + dependencies:
  261 + "@tweenjs/tween.js" "^25.0.0"
  262 + "@zip.js/zip.js" "^2.7.34"
  263 + autolinker "^4.0.0"
  264 + bitmap-sdf "^1.0.3"
  265 + dompurify "^3.0.2"
  266 + draco3d "^1.5.1"
  267 + earcut "^3.0.0"
  268 + grapheme-splitter "^1.0.4"
  269 + jsep "^1.3.8"
  270 + kdbush "^4.0.1"
  271 + ktx-parse "^1.0.0"
  272 + lerc "^2.0.0"
  273 + mersenne-twister "^1.1.0"
  274 + meshoptimizer "^0.22.0"
  275 + pako "^2.0.4"
  276 + protobufjs "^7.1.0"
  277 + rbush "3.0.1"
  278 + topojson-client "^3.1.0"
  279 + urijs "^1.19.7"
  280 +
  281 +"@cesium/widgets@^11.0.0":
  282 + version "11.0.0"
  283 + resolved "https://registry.npmmirror.com/@cesium/widgets/-/widgets-11.0.0.tgz#c30e5aae67f1e1f134a720a4992285ceafecfd70"
  284 + integrity sha512-4ELgFuU2uwkvD6NI9MHIWNFKjmyI9wlDzZ9NuoPFSnUhf9XfVBI8sJekGx5dijxjK2S3aCuxB3dtUkdDZEsQmA==
  285 + dependencies:
  286 + "@cesium/engine" "^15.0.0"
  287 + nosleep.js "^0.12.0"
  288 +
  289 +"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.4.1", "@ctrl/tinycolor@^3.5.0":
  290 + version "3.6.1"
  291 + resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31"
  292 + integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
  293 +
  294 +"@element-plus/icons-vue@^2.3.1":
  295 + version "2.3.1"
  296 + resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz#1f635ad5fdd5c85ed936481525570e82b5a8307a"
  297 + integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==
  298 +
  299 +"@emotion/hash@^0.9.0":
  300 + version "0.9.2"
  301 + resolved "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b"
  302 + integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==
  303 +
  304 +"@emotion/unitless@^0.8.0":
  305 + version "0.8.1"
  306 + resolved "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3"
  307 + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
  308 +
  309 +"@esbuild/aix-ppc64@0.25.1":
  310 + version "0.25.1"
  311 + resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz#c33cf6bbee34975626b01b80451cbb72b4c6c91d"
  312 + integrity sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==
  313 +
  314 +"@esbuild/android-arm64@0.25.1":
  315 + version "0.25.1"
  316 + resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz#ea766015c7d2655164f22100d33d7f0308a28d6d"
  317 + integrity sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==
  318 +
  319 +"@esbuild/android-arm@0.25.1":
  320 + version "0.25.1"
  321 + resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.1.tgz#e84d2bf2fe2e6177a0facda3a575b2139fd3cb9c"
  322 + integrity sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==
  323 +
  324 +"@esbuild/android-x64@0.25.1":
  325 + version "0.25.1"
  326 + resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.1.tgz#58337bee3bc6d78d10425e5500bd11370cfdfbed"
  327 + integrity sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==
  328 +
  329 +"@esbuild/darwin-arm64@0.25.1":
  330 + version "0.25.1"
  331 + resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz#a46805c1c585d451aa83be72500bd6e8495dd591"
  332 + integrity sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==
  333 +
  334 +"@esbuild/darwin-x64@0.25.1":
  335 + version "0.25.1"
  336 + resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz#0643e003bb238c63fc93ddbee7d26a003be3cd98"
  337 + integrity sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==
  338 +
  339 +"@esbuild/freebsd-arm64@0.25.1":
  340 + version "0.25.1"
  341 + resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz#cff18da5469c09986b93e87979de5d6872fe8f8e"
  342 + integrity sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==
  343 +
  344 +"@esbuild/freebsd-x64@0.25.1":
  345 + version "0.25.1"
  346 + resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz#362fc09c2de14987621c1878af19203c46365dde"
  347 + integrity sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==
  348 +
  349 +"@esbuild/linux-arm64@0.25.1":
  350 + version "0.25.1"
  351 + resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz#aa90d5b02efc97a271e124e6d1cea490634f7498"
  352 + integrity sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==
  353 +
  354 +"@esbuild/linux-arm@0.25.1":
  355 + version "0.25.1"
  356 + resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz#dfcefcbac60a20918b19569b4b657844d39db35a"
  357 + integrity sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==
  358 +
  359 +"@esbuild/linux-ia32@0.25.1":
  360 + version "0.25.1"
  361 + resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz#6f9527077ccb7953ed2af02e013d4bac69f13754"
  362 + integrity sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==
  363 +
  364 +"@esbuild/linux-loong64@0.25.1":
  365 + version "0.25.1"
  366 + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz#287d2412a5456e5860c2839d42a4b51284d1697c"
  367 + integrity sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==
  368 +
  369 +"@esbuild/linux-mips64el@0.25.1":
  370 + version "0.25.1"
  371 + resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz#530574b9e1bc5d20f7a4f44c5f045e26f3783d57"
  372 + integrity sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==
  373 +
  374 +"@esbuild/linux-ppc64@0.25.1":
  375 + version "0.25.1"
  376 + resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz#5d7e6b283a0b321ea42c6bc0abeb9eb99c1f5589"
  377 + integrity sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==
  378 +
  379 +"@esbuild/linux-riscv64@0.25.1":
  380 + version "0.25.1"
  381 + resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz#14fa0cd073c26b4ee2465d18cd1e18eea7859fa8"
  382 + integrity sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==
  383 +
  384 +"@esbuild/linux-s390x@0.25.1":
  385 + version "0.25.1"
  386 + resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz#e677b4b9d1b384098752266ccaa0d52a420dc1aa"
  387 + integrity sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==
  388 +
  389 +"@esbuild/linux-x64@0.25.1":
  390 + version "0.25.1"
  391 + resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz#f1c796b78fff5ce393658313e8c58613198d9954"
  392 + integrity sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==
  393 +
  394 +"@esbuild/netbsd-arm64@0.25.1":
  395 + version "0.25.1"
  396 + resolved "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz#0d280b7dfe3973f111b02d5fe9f3063b92796d29"
  397 + integrity sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==
  398 +
  399 +"@esbuild/netbsd-x64@0.25.1":
  400 + version "0.25.1"
  401 + resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz#be663893931a4bb3f3a009c5cc24fa9681cc71c0"
  402 + integrity sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==
  403 +
  404 +"@esbuild/openbsd-arm64@0.25.1":
  405 + version "0.25.1"
  406 + resolved "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz#d9021b884233673a05dc1cc26de0bf325d824217"
  407 + integrity sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==
  408 +
  409 +"@esbuild/openbsd-x64@0.25.1":
  410 + version "0.25.1"
  411 + resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz#9f1dc1786ed2e2938c404b06bcc48be9a13250de"
  412 + integrity sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==
  413 +
  414 +"@esbuild/sunos-x64@0.25.1":
  415 + version "0.25.1"
  416 + resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz#89aac24a4b4115959b3f790192cf130396696c27"
  417 + integrity sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==
  418 +
  419 +"@esbuild/win32-arm64@0.25.1":
  420 + version "0.25.1"
  421 + resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz#354358647a6ea98ea6d243bf48bdd7a434999582"
  422 + integrity sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==
  423 +
  424 +"@esbuild/win32-ia32@0.25.1":
  425 + version "0.25.1"
  426 + resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz#8cea7340f2647eba951a041dc95651e3908cd4cb"
  427 + integrity sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==
  428 +
  429 +"@esbuild/win32-x64@0.25.1":
  430 + version "0.25.1"
  431 + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz#7d79922cb2d88f9048f06393dbf62d2e4accb584"
  432 + integrity sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==
  433 +
  434 +"@floating-ui/core@^1.6.0":
  435 + version "1.6.9"
  436 + resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.9.tgz#64d1da251433019dafa091de9b2886ff35ec14e6"
  437 + integrity sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==
  438 + dependencies:
  439 + "@floating-ui/utils" "^0.2.9"
  440 +
  441 +"@floating-ui/dom@^1.0.1":
  442 + version "1.6.13"
  443 + resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.13.tgz#a8a938532aea27a95121ec16e667a7cbe8c59e34"
  444 + integrity sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==
  445 + dependencies:
  446 + "@floating-ui/core" "^1.6.0"
  447 + "@floating-ui/utils" "^0.2.9"
  448 +
  449 +"@floating-ui/utils@^0.2.9":
  450 + version "0.2.9"
  451 + resolved "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.9.tgz#50dea3616bc8191fb8e112283b49eaff03e78429"
  452 + integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==
  453 +
  454 +"@icon-park/vue-next@^1.4.2":
  455 + version "1.4.2"
  456 + resolved "https://registry.npmmirror.com/@icon-park/vue-next/-/vue-next-1.4.2.tgz#818c048100401620e8112beb2636f10171b195cc"
  457 + integrity sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==
  458 +
  459 +"@jridgewell/gen-mapping@^0.3.5":
  460 + version "0.3.8"
  461 + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142"
  462 + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
  463 + dependencies:
  464 + "@jridgewell/set-array" "^1.2.1"
  465 + "@jridgewell/sourcemap-codec" "^1.4.10"
  466 + "@jridgewell/trace-mapping" "^0.3.24"
  467 +
  468 +"@jridgewell/resolve-uri@^3.1.0":
  469 + version "3.1.2"
  470 + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
  471 + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
  472 +
  473 +"@jridgewell/set-array@^1.2.1":
  474 + version "1.2.1"
  475 + resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
  476 + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
  477 +
  478 +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
  479 + version "1.5.0"
  480 + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
  481 + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
  482 +
  483 +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
  484 + version "0.3.25"
  485 + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
  486 + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
  487 + dependencies:
  488 + "@jridgewell/resolve-uri" "^3.1.0"
  489 + "@jridgewell/sourcemap-codec" "^1.4.14"
  490 +
  491 +"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
  492 + version "2.11.7"
  493 + resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz#a7f69e3665d3da9b115f9e71671dae1b97e13671"
  494 + integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
  495 +
  496 +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
  497 + version "1.1.2"
  498 + resolved "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
  499 + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
  500 +
  501 +"@protobufjs/base64@^1.1.2":
  502 + version "1.1.2"
  503 + resolved "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
  504 + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
  505 +
  506 +"@protobufjs/codegen@^2.0.4":
  507 + version "2.0.4"
  508 + resolved "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
  509 + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
  510 +
  511 +"@protobufjs/eventemitter@^1.1.0":
  512 + version "1.1.0"
  513 + resolved "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
  514 + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
  515 +
  516 +"@protobufjs/fetch@^1.1.0":
  517 + version "1.1.0"
  518 + resolved "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
  519 + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
  520 + dependencies:
  521 + "@protobufjs/aspromise" "^1.1.1"
  522 + "@protobufjs/inquire" "^1.1.0"
  523 +
  524 +"@protobufjs/float@^1.0.2":
  525 + version "1.0.2"
  526 + resolved "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
  527 + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
  528 +
  529 +"@protobufjs/inquire@^1.1.0":
  530 + version "1.1.0"
  531 + resolved "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
  532 + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
  533 +
  534 +"@protobufjs/path@^1.1.2":
  535 + version "1.1.2"
  536 + resolved "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
  537 + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
  538 +
  539 +"@protobufjs/pool@^1.1.0":
  540 + version "1.1.0"
  541 + resolved "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
  542 + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
  543 +
  544 +"@protobufjs/utf8@^1.1.0":
  545 + version "1.1.0"
  546 + resolved "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
  547 + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
  548 +
  549 +"@rollup/pluginutils@^4.0.0":
  550 + version "4.2.1"
  551 + resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d"
  552 + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==
  553 + dependencies:
  554 + estree-walker "^2.0.1"
  555 + picomatch "^2.2.2"
  556 +
  557 +"@rollup/rollup-android-arm-eabi@4.35.0":
  558 + version "4.35.0"
  559 + resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz#e1d7700735f7e8de561ef7d1fa0362082a180c43"
  560 + integrity sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==
  561 +
  562 +"@rollup/rollup-android-arm64@4.35.0":
  563 + version "4.35.0"
  564 + resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz#fa6cdfb1fc9e2c8e227a7f35d524d8f7f90cf4db"
  565 + integrity sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==
  566 +
  567 +"@rollup/rollup-darwin-arm64@4.35.0":
  568 + version "4.35.0"
  569 + resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz#6da5a1ddc4f11d4a7ae85ab443824cb6bf614e30"
  570 + integrity sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==
  571 +
  572 +"@rollup/rollup-darwin-x64@4.35.0":
  573 + version "4.35.0"
  574 + resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz#25b74ce2d8d3f9ea8e119b01384d44a1c0a0d3ae"
  575 + integrity sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==
  576 +
  577 +"@rollup/rollup-freebsd-arm64@4.35.0":
  578 + version "4.35.0"
  579 + resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz#be3d39e3441df5d6e187c83d158c60656c82e203"
  580 + integrity sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==
  581 +
  582 +"@rollup/rollup-freebsd-x64@4.35.0":
  583 + version "4.35.0"
  584 + resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz#cd932d3ec679711efd65ca25821fb318e25b7ce4"
  585 + integrity sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==
  586 +
  587 +"@rollup/rollup-linux-arm-gnueabihf@4.35.0":
  588 + version "4.35.0"
  589 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz#d300b74c6f805474225632f185daaeae760ac2bb"
  590 + integrity sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==
  591 +
  592 +"@rollup/rollup-linux-arm-musleabihf@4.35.0":
  593 + version "4.35.0"
  594 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz#2caac622380f314c41934ed1e68ceaf6cc380cc3"
  595 + integrity sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==
  596 +
  597 +"@rollup/rollup-linux-arm64-gnu@4.35.0":
  598 + version "4.35.0"
  599 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz#1ec841650b038cc15c194c26326483fd7ebff3e3"
  600 + integrity sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==
  601 +
  602 +"@rollup/rollup-linux-arm64-musl@4.35.0":
  603 + version "4.35.0"
  604 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz#2fc70a446d986e27f6101ea74e81746987f69150"
  605 + integrity sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==
  606 +
  607 +"@rollup/rollup-linux-loongarch64-gnu@4.35.0":
  608 + version "4.35.0"
  609 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz#561bd045cd9ce9e08c95f42e7a8688af8c93d764"
  610 + integrity sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==
  611 +
  612 +"@rollup/rollup-linux-powerpc64le-gnu@4.35.0":
  613 + version "4.35.0"
  614 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz#45d849a0b33813f33fe5eba9f99e0ff15ab5caad"
  615 + integrity sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==
  616 +
  617 +"@rollup/rollup-linux-riscv64-gnu@4.35.0":
  618 + version "4.35.0"
  619 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz#78dde3e6fcf5b5733a97d0a67482d768aa1e83a5"
  620 + integrity sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==
  621 +
  622 +"@rollup/rollup-linux-s390x-gnu@4.35.0":
  623 + version "4.35.0"
  624 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz#2e34835020f9e03dfb411473a5c2a0e8a9c5037b"
  625 + integrity sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==
  626 +
  627 +"@rollup/rollup-linux-x64-gnu@4.35.0":
  628 + version "4.35.0"
  629 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz#4f9774beddc6f4274df57ac99862eb23040de461"
  630 + integrity sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==
  631 +
  632 +"@rollup/rollup-linux-x64-musl@4.35.0":
  633 + version "4.35.0"
  634 + resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz#dfcff2c1aed518b3d23ccffb49afb349d74fb608"
  635 + integrity sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==
  636 +
  637 +"@rollup/rollup-win32-arm64-msvc@4.35.0":
  638 + version "4.35.0"
  639 + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz#b0b37e2d77041e3aa772f519291309abf4c03a84"
  640 + integrity sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==
  641 +
  642 +"@rollup/rollup-win32-ia32-msvc@4.35.0":
  643 + version "4.35.0"
  644 + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz#5b5a40e44a743ddc0e06b8e1b3982f856dc9ce0a"
  645 + integrity sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==
  646 +
  647 +"@rollup/rollup-win32-x64-msvc@4.35.0":
  648 + version "4.35.0"
  649 + resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz#05f25dbc9981bee1ae6e713daab10397044a46ca"
  650 + integrity sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==
  651 +
  652 +"@simonwep/pickr@~1.8.0":
  653 + version "1.8.2"
  654 + resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz#96dc86675940d7cad63d69c22083dd1cbb9797cb"
  655 + integrity sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==
  656 + dependencies:
  657 + core-js "^3.15.1"
  658 + nanopop "^2.1.0"
  659 +
  660 +"@tweenjs/tween.js@^25.0.0":
  661 + version "25.0.0"
  662 + resolved "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-25.0.0.tgz#7266baebcc3affe62a3a54318a3ea82d904cd0b9"
  663 + integrity sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==
  664 +
  665 +"@types/cesium@^1.67.14":
  666 + version "1.70.4"
  667 + resolved "https://registry.npmmirror.com/@types/cesium/-/cesium-1.70.4.tgz#512410a4a908cba69dada78c7ce9eca11bea0a11"
  668 + integrity sha512-dSBhF5qftTCyB8xYRpumjzeEdEiV0wjDfmLtXF+1cNYUHvn2xs2HcvxCKFCqH6hEcATPWDP0WW6aaCCqrUo9dQ==
  669 + dependencies:
  670 + cesium "*"
  671 +
  672 +"@types/estree@*", "@types/estree@1.0.6":
  673 + version "1.0.6"
  674 + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
  675 + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
  676 +
  677 +"@types/lodash-es@^4.17.6":
  678 + version "4.17.12"
  679 + resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
  680 + integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
  681 + dependencies:
  682 + "@types/lodash" "*"
  683 +
  684 +"@types/lodash@*", "@types/lodash@^4.14.182":
  685 + version "4.17.16"
  686 + resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.16.tgz#94ae78fab4a38d73086e962d0b65c30d816bfb0a"
  687 + integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==
  688 +
  689 +"@types/node@>=13.7.0":
  690 + version "22.13.10"
  691 + resolved "https://registry.npmmirror.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4"
  692 + integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==
  693 + dependencies:
  694 + undici-types "~6.20.0"
  695 +
  696 +"@types/trusted-types@^2.0.7":
  697 + version "2.0.7"
  698 + resolved "https://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11"
  699 + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
  700 +
  701 +"@types/web-bluetooth@^0.0.16":
  702 + version "0.0.16"
  703 + resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8"
  704 + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==
  705 +
  706 +"@vitejs/plugin-vue-jsx@^4.1.1":
  707 + version "4.1.1"
  708 + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-4.1.1.tgz#180eef4d4ca42e9b46a2150caa605c9ae2272be7"
  709 + integrity sha512-uMJqv/7u1zz/9NbWAD3XdjaY20tKTf17XVfQ9zq4wY1BjsB/PjpJPMe2xiG39QpP4ZdhYNhm4Hvo66uJrykNLA==
  710 + dependencies:
  711 + "@babel/core" "^7.26.0"
  712 + "@babel/plugin-transform-typescript" "^7.25.9"
  713 + "@vue/babel-plugin-jsx" "^1.2.5"
  714 +
  715 +"@vitejs/plugin-vue@^5.2.1":
  716 + version "5.2.1"
  717 + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz#d1491f678ee3af899f7ae57d9c21dc52a65c7133"
  718 + integrity sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==
  719 +
  720 +"@volar/language-core@2.4.12", "@volar/language-core@~2.4.11":
  721 + version "2.4.12"
  722 + resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.12.tgz#98c8424f8d81a9cad1760a587b1c6db27d05f0cc"
  723 + integrity sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==
  724 + dependencies:
  725 + "@volar/source-map" "2.4.12"
  726 +
  727 +"@volar/source-map@2.4.12":
  728 + version "2.4.12"
  729 + resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.4.12.tgz#7cc8c6b1b134a2215f06c91ad011d94eef81b0ed"
  730 + integrity sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==
  731 +
  732 +"@volar/typescript@~2.4.11":
  733 + version "2.4.12"
  734 + resolved "https://registry.npmmirror.com/@volar/typescript/-/typescript-2.4.12.tgz#8c638c23cab89ab131cdcd2d6f2a51768caaa015"
  735 + integrity sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==
  736 + dependencies:
  737 + "@volar/language-core" "2.4.12"
  738 + path-browserify "^1.0.1"
  739 + vscode-uri "^3.0.8"
  740 +
  741 +"@vue/babel-helper-vue-transform-on@1.4.0":
  742 + version "1.4.0"
  743 + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz#616020488692a9c42a613280d62ed1b727045d95"
  744 + integrity sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==
  745 +
  746 +"@vue/babel-plugin-jsx@^1.2.5":
  747 + version "1.4.0"
  748 + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz#c155c795ce980edf46aa6feceed93945a95ca658"
  749 + integrity sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==
  750 + dependencies:
  751 + "@babel/helper-module-imports" "^7.25.9"
  752 + "@babel/helper-plugin-utils" "^7.26.5"
  753 + "@babel/plugin-syntax-jsx" "^7.25.9"
  754 + "@babel/template" "^7.26.9"
  755 + "@babel/traverse" "^7.26.9"
  756 + "@babel/types" "^7.26.9"
  757 + "@vue/babel-helper-vue-transform-on" "1.4.0"
  758 + "@vue/babel-plugin-resolve-type" "1.4.0"
  759 + "@vue/shared" "^3.5.13"
  760 +
  761 +"@vue/babel-plugin-resolve-type@1.4.0":
  762 + version "1.4.0"
  763 + resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz#4d357a81fb0cc9cad0e8c81b118115bda2c51543"
  764 + integrity sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==
  765 + dependencies:
  766 + "@babel/code-frame" "^7.26.2"
  767 + "@babel/helper-module-imports" "^7.25.9"
  768 + "@babel/helper-plugin-utils" "^7.26.5"
  769 + "@babel/parser" "^7.26.9"
  770 + "@vue/compiler-sfc" "^3.5.13"
  771 +
  772 +"@vue/compiler-core@3.5.13":
  773 + version "3.5.13"
  774 + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05"
  775 + integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==
  776 + dependencies:
  777 + "@babel/parser" "^7.25.3"
  778 + "@vue/shared" "3.5.13"
  779 + entities "^4.5.0"
  780 + estree-walker "^2.0.2"
  781 + source-map-js "^1.2.0"
  782 +
  783 +"@vue/compiler-dom@3.5.13", "@vue/compiler-dom@^3.5.0":
  784 + version "3.5.13"
  785 + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58"
  786 + integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==
  787 + dependencies:
  788 + "@vue/compiler-core" "3.5.13"
  789 + "@vue/shared" "3.5.13"
  790 +
  791 +"@vue/compiler-sfc@3.5.13", "@vue/compiler-sfc@^3.5.13":
  792 + version "3.5.13"
  793 + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46"
  794 + integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==
  795 + dependencies:
  796 + "@babel/parser" "^7.25.3"
  797 + "@vue/compiler-core" "3.5.13"
  798 + "@vue/compiler-dom" "3.5.13"
  799 + "@vue/compiler-ssr" "3.5.13"
  800 + "@vue/shared" "3.5.13"
  801 + estree-walker "^2.0.2"
  802 + magic-string "^0.30.11"
  803 + postcss "^8.4.48"
  804 + source-map-js "^1.2.0"
  805 +
  806 +"@vue/compiler-ssr@3.5.13":
  807 + version "3.5.13"
  808 + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba"
  809 + integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==
  810 + dependencies:
  811 + "@vue/compiler-dom" "3.5.13"
  812 + "@vue/shared" "3.5.13"
  813 +
  814 +"@vue/compiler-vue2@^2.7.16":
  815 + version "2.7.16"
  816 + resolved "https://registry.npmmirror.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz#2ba837cbd3f1b33c2bc865fbe1a3b53fb611e249"
  817 + integrity sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==
  818 + dependencies:
  819 + de-indent "^1.0.2"
  820 + he "^1.2.0"
  821 +
  822 +"@vue/devtools-api@^6.6.4":
  823 + version "6.6.4"
  824 + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343"
  825 + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==
  826 +
  827 +"@vue/devtools-api@^7.7.2":
  828 + version "7.7.2"
  829 + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.2.tgz#49837eae6f61fc43a09f5d6c2d3210f9f73a0d09"
  830 + integrity sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==
  831 + dependencies:
  832 + "@vue/devtools-kit" "^7.7.2"
  833 +
  834 +"@vue/devtools-kit@^7.7.2":
  835 + version "7.7.2"
  836 + resolved "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.2.tgz#3315bd5b144f98c7b84c2f44270b445644ec8f10"
  837 + integrity sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==
  838 + dependencies:
  839 + "@vue/devtools-shared" "^7.7.2"
  840 + birpc "^0.2.19"
  841 + hookable "^5.5.3"
  842 + mitt "^3.0.1"
  843 + perfect-debounce "^1.0.0"
  844 + speakingurl "^14.0.1"
  845 + superjson "^2.2.1"
  846 +
  847 +"@vue/devtools-shared@^7.7.2":
  848 + version "7.7.2"
  849 + resolved "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.2.tgz#b11b143820130a32d8ce5737e264d06ab6d62f40"
  850 + integrity sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==
  851 + dependencies:
  852 + rfdc "^1.4.1"
  853 +
  854 +"@vue/language-core@2.2.8":
  855 + version "2.2.8"
  856 + resolved "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.2.8.tgz#05befa390399fbd4409bc703ee0520b8ac1b7088"
  857 + integrity sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==
  858 + dependencies:
  859 + "@volar/language-core" "~2.4.11"
  860 + "@vue/compiler-dom" "^3.5.0"
  861 + "@vue/compiler-vue2" "^2.7.16"
  862 + "@vue/shared" "^3.5.0"
  863 + alien-signals "^1.0.3"
  864 + minimatch "^9.0.3"
  865 + muggle-string "^0.4.1"
  866 + path-browserify "^1.0.1"
  867 +
  868 +"@vue/reactivity@3.5.13":
  869 + version "3.5.13"
  870 + resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz#b41ff2bb865e093899a22219f5b25f97b6fe155f"
  871 + integrity sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==
  872 + dependencies:
  873 + "@vue/shared" "3.5.13"
  874 +
  875 +"@vue/runtime-core@3.5.13":
  876 + version "3.5.13"
  877 + resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz#1fafa4bf0b97af0ebdd9dbfe98cd630da363a455"
  878 + integrity sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==
  879 + dependencies:
  880 + "@vue/reactivity" "3.5.13"
  881 + "@vue/shared" "3.5.13"
  882 +
  883 +"@vue/runtime-dom@3.5.13":
  884 + version "3.5.13"
  885 + resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz#610fc795de9246300e8ae8865930d534e1246215"
  886 + integrity sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==
  887 + dependencies:
  888 + "@vue/reactivity" "3.5.13"
  889 + "@vue/runtime-core" "3.5.13"
  890 + "@vue/shared" "3.5.13"
  891 + csstype "^3.1.3"
  892 +
  893 +"@vue/server-renderer@3.5.13":
  894 + version "3.5.13"
  895 + resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz#429ead62ee51de789646c22efe908e489aad46f7"
  896 + integrity sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==
  897 + dependencies:
  898 + "@vue/compiler-ssr" "3.5.13"
  899 + "@vue/shared" "3.5.13"
  900 +
  901 +"@vue/shared@3.5.13", "@vue/shared@^3.5.0", "@vue/shared@^3.5.13":
  902 + version "3.5.13"
  903 + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
  904 + integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
  905 +
  906 +"@vue/tsconfig@^0.7.0":
  907 + version "0.7.0"
  908 + resolved "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.7.0.tgz#67044c847b7a137b8cbfd6b23104c36dbaf80d1d"
  909 + integrity sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==
  910 +
  911 +"@vueuse/core@^9.1.0":
  912 + version "9.13.0"
  913 + resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz#2f69e66d1905c1e4eebc249a01759cf88ea00cf4"
  914 + integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==
  915 + dependencies:
  916 + "@types/web-bluetooth" "^0.0.16"
  917 + "@vueuse/metadata" "9.13.0"
  918 + "@vueuse/shared" "9.13.0"
  919 + vue-demi "*"
  920 +
  921 +"@vueuse/metadata@9.13.0":
  922 + version "9.13.0"
  923 + resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz#bc25a6cdad1b1a93c36ce30191124da6520539ff"
  924 + integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==
  925 +
  926 +"@vueuse/shared@9.13.0":
  927 + version "9.13.0"
  928 + resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz#089ff4cc4e2e7a4015e57a8f32e4b39d096353b9"
  929 + integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==
  930 + dependencies:
  931 + vue-demi "*"
  932 +
  933 +"@zip.js/zip.js@^2.7.34":
  934 + version "2.7.57"
  935 + resolved "https://registry.npmmirror.com/@zip.js/zip.js/-/zip.js-2.7.57.tgz#66a7ddc071f3e3aa789af50647c04a525685e1a4"
  936 + integrity sha512-BtonQ1/jDnGiMed6OkV6rZYW78gLmLswkHOzyMrMb+CAR7CZO8phOHO6c2qw6qb1g1betN7kwEHhhZk30dv+NA==
  937 +
  938 +alien-signals@^1.0.3:
  939 + version "1.0.4"
  940 + resolved "https://registry.npmmirror.com/alien-signals/-/alien-signals-1.0.4.tgz#c696a5dc9963fc648ae97093411d7e74b0a81ac0"
  941 + integrity sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==
  942 +
  943 +ant-design-vue@^4.2.6:
  944 + version "4.2.6"
  945 + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.2.6.tgz#e4ce6944457cd1cd61d8b3fe52793ab58b94e337"
  946 + integrity sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==
  947 + dependencies:
  948 + "@ant-design/colors" "^6.0.0"
  949 + "@ant-design/icons-vue" "^7.0.0"
  950 + "@babel/runtime" "^7.10.5"
  951 + "@ctrl/tinycolor" "^3.5.0"
  952 + "@emotion/hash" "^0.9.0"
  953 + "@emotion/unitless" "^0.8.0"
  954 + "@simonwep/pickr" "~1.8.0"
  955 + array-tree-filter "^2.1.0"
  956 + async-validator "^4.0.0"
  957 + csstype "^3.1.1"
  958 + dayjs "^1.10.5"
  959 + dom-align "^1.12.1"
  960 + dom-scroll-into-view "^2.0.0"
  961 + lodash "^4.17.21"
  962 + lodash-es "^4.17.15"
  963 + resize-observer-polyfill "^1.5.1"
  964 + scroll-into-view-if-needed "^2.2.25"
  965 + shallow-equal "^1.0.0"
  966 + stylis "^4.1.3"
  967 + throttle-debounce "^5.0.0"
  968 + vue-types "^3.0.0"
  969 + warning "^4.0.0"
  970 +
  971 +array-tree-filter@^2.1.0:
  972 + version "2.1.0"
  973 + resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190"
  974 + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==
  975 +
  976 +async-validator@^4.0.0, async-validator@^4.2.5:
  977 + version "4.2.5"
  978 + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
  979 + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
  980 +
  981 +asynckit@^0.4.0:
  982 + version "0.4.0"
  983 + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
  984 + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
  985 +
  986 +at-least-node@^1.0.0:
  987 + version "1.0.0"
  988 + resolved "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
  989 + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
  990 +
  991 +autolinker@^4.0.0:
  992 + version "4.1.0"
  993 + resolved "https://registry.npmmirror.com/autolinker/-/autolinker-4.1.0.tgz#b39896506bb476b3b0eb6d0840149cb2bddb0bef"
  994 + integrity sha512-mYzdZMei1zIXcHVS/LjnuCJG+C/hNi8O+5m0R8YWtrIBWGrjL8CVzEZXxOfH0l1kioEXHNpUJRkgZdyL4GgIHQ==
  995 + dependencies:
  996 + tslib "^2.8.1"
  997 +
  998 +axios@^1.8.1:
  999 + version "1.8.3"
  1000 + resolved "https://registry.npmmirror.com/axios/-/axios-1.8.3.tgz#9ebccd71c98651d547162a018a1a95a4b4ed4de8"
  1001 + integrity sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==
  1002 + dependencies:
  1003 + follow-redirects "^1.15.6"
  1004 + form-data "^4.0.0"
  1005 + proxy-from-env "^1.1.0"
  1006 +
  1007 +balanced-match@^1.0.0:
  1008 + version "1.0.2"
  1009 + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
  1010 + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
  1011 +
  1012 +birpc@^0.2.19:
  1013 + version "0.2.19"
  1014 + resolved "https://registry.npmmirror.com/birpc/-/birpc-0.2.19.tgz#cdd183a4a70ba103127d49765b4a71349da5a0ca"
  1015 + integrity sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==
  1016 +
  1017 +bitmap-sdf@^1.0.3:
  1018 + version "1.0.4"
  1019 + resolved "https://registry.npmmirror.com/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz#e87b8b1d84ee846567cfbb29d60eedd34bca5b6f"
  1020 + integrity sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==
  1021 +
  1022 +brace-expansion@^2.0.1:
  1023 + version "2.0.1"
  1024 + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
  1025 + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
  1026 + dependencies:
  1027 + balanced-match "^1.0.0"
  1028 +
  1029 +browserslist@^4.24.0:
  1030 + version "4.24.4"
  1031 + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b"
  1032 + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
  1033 + dependencies:
  1034 + caniuse-lite "^1.0.30001688"
  1035 + electron-to-chromium "^1.5.73"
  1036 + node-releases "^2.0.19"
  1037 + update-browserslist-db "^1.1.1"
  1038 +
  1039 +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
  1040 + version "1.0.2"
  1041 + resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
  1042 + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
  1043 + dependencies:
  1044 + es-errors "^1.3.0"
  1045 + function-bind "^1.1.2"
  1046 +
  1047 +caniuse-lite@^1.0.30001688:
  1048 + version "1.0.30001703"
  1049 + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz#977cb4920598c158f491ecf4f4f2cfed9e354718"
  1050 + integrity sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==
  1051 +
  1052 +cesium@*, cesium@^1.127.0:
  1053 + version "1.127.0"
  1054 + resolved "https://registry.npmmirror.com/cesium/-/cesium-1.127.0.tgz#e6835b507ad57c3f3a6b14693acc6623be439985"
  1055 + integrity sha512-MRGkPb3ClEkAI9viZxxdD3LCu7ydOzOKdJ6/iPtBx1GUsPCZNbgB0IH7wmhwgbxA5sjv4/a90+mvR9CoLP1PWQ==
  1056 + dependencies:
  1057 + "@cesium/engine" "^15.0.0"
  1058 + "@cesium/widgets" "^11.0.0"
  1059 +
  1060 +combined-stream@^1.0.8:
  1061 + version "1.0.8"
  1062 + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
  1063 + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
  1064 + dependencies:
  1065 + delayed-stream "~1.0.0"
  1066 +
  1067 +commander@2:
  1068 + version "2.20.3"
  1069 + resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
  1070 + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
  1071 +
  1072 +compute-scroll-into-view@^1.0.20:
  1073 + version "1.0.20"
  1074 + resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43"
  1075 + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
  1076 +
  1077 +convert-source-map@^2.0.0:
  1078 + version "2.0.0"
  1079 + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
  1080 + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
  1081 +
  1082 +copy-anything@^3.0.2:
  1083 + version "3.0.5"
  1084 + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0"
  1085 + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==
  1086 + dependencies:
  1087 + is-what "^4.1.8"
  1088 +
  1089 +core-js@^3.15.1:
  1090 + version "3.41.0"
  1091 + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.41.0.tgz#57714dafb8c751a6095d028a7428f1fb5834a776"
  1092 + integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==
  1093 +
  1094 +csstype@^3.1.1, csstype@^3.1.3:
  1095 + version "3.1.3"
  1096 + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
  1097 + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
  1098 +
  1099 +dayjs@^1.10.5, dayjs@^1.11.13:
  1100 + version "1.11.13"
  1101 + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c"
  1102 + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==
  1103 +
  1104 +de-indent@^1.0.2:
  1105 + version "1.0.2"
  1106 + resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
  1107 + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
  1108 +
  1109 +debug@2.6.9:
  1110 + version "2.6.9"
  1111 + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
  1112 + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
  1113 + dependencies:
  1114 + ms "2.0.0"
  1115 +
  1116 +debug@^4.1.0, debug@^4.3.1:
  1117 + version "4.4.0"
  1118 + resolved "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
  1119 + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
  1120 + dependencies:
  1121 + ms "^2.1.3"
  1122 +
  1123 +delayed-stream@~1.0.0:
  1124 + version "1.0.0"
  1125 + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
  1126 + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
  1127 +
  1128 +depd@2.0.0:
  1129 + version "2.0.0"
  1130 + resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
  1131 + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
  1132 +
  1133 +destroy@1.2.0:
  1134 + version "1.2.0"
  1135 + resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
  1136 + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
  1137 +
  1138 +dom-align@^1.12.1:
  1139 + version "1.12.4"
  1140 + resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511"
  1141 + integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==
  1142 +
  1143 +dom-scroll-into-view@^2.0.0:
  1144 + version "2.0.1"
  1145 + resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b"
  1146 + integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==
  1147 +
  1148 +dompurify@^3.0.2:
  1149 + version "3.2.4"
  1150 + resolved "https://registry.npmmirror.com/dompurify/-/dompurify-3.2.4.tgz#af5a5a11407524431456cf18836c55d13441cd8e"
  1151 + integrity sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==
  1152 + optionalDependencies:
  1153 + "@types/trusted-types" "^2.0.7"
  1154 +
  1155 +draco3d@^1.5.1:
  1156 + version "1.5.7"
  1157 + resolved "https://registry.npmmirror.com/draco3d/-/draco3d-1.5.7.tgz#94f9bce293eb8920c159dc91a4ce9124a9e899e0"
  1158 + integrity sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==
  1159 +
  1160 +dunder-proto@^1.0.1:
  1161 + version "1.0.1"
  1162 + resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
  1163 + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
  1164 + dependencies:
  1165 + call-bind-apply-helpers "^1.0.1"
  1166 + es-errors "^1.3.0"
  1167 + gopd "^1.2.0"
  1168 +
  1169 +earcut@^3.0.0:
  1170 + version "3.0.1"
  1171 + resolved "https://registry.npmmirror.com/earcut/-/earcut-3.0.1.tgz#f60b3f671c5657cca9d3e131c5527c5dde00ef38"
  1172 + integrity sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==
  1173 +
  1174 +ee-first@1.1.1:
  1175 + version "1.1.1"
  1176 + resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
  1177 + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
  1178 +
  1179 +electron-to-chromium@^1.5.73:
  1180 + version "1.5.114"
  1181 + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz#f2bb4fda80a7db4ea273565e75b0ebbe19af0ac3"
  1182 + integrity sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==
  1183 +
  1184 +element-plus@^2.9.6:
  1185 + version "2.9.6"
  1186 + resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.6.tgz#f8a1d6b93ff5eb8889a1089e0358f5a9bd090a59"
  1187 + integrity sha512-D9zU28Ce0s/9O/Vp3ewemikxzFVA6gdZyMwmWijHijo+t5/9H3sHRTIm1WlfeNpFW2Yq0y8nHXD0fU5YxU6qlQ==
  1188 + dependencies:
  1189 + "@ctrl/tinycolor" "^3.4.1"
  1190 + "@element-plus/icons-vue" "^2.3.1"
  1191 + "@floating-ui/dom" "^1.0.1"
  1192 + "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7"
  1193 + "@types/lodash" "^4.14.182"
  1194 + "@types/lodash-es" "^4.17.6"
  1195 + "@vueuse/core" "^9.1.0"
  1196 + async-validator "^4.2.5"
  1197 + dayjs "^1.11.13"
  1198 + escape-html "^1.0.3"
  1199 + lodash "^4.17.21"
  1200 + lodash-es "^4.17.21"
  1201 + lodash-unified "^1.0.2"
  1202 + memoize-one "^6.0.0"
  1203 + normalize-wheel-es "^1.2.0"
  1204 +
  1205 +encodeurl@~1.0.2:
  1206 + version "1.0.2"
  1207 + resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
  1208 + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
  1209 +
  1210 +encodeurl@~2.0.0:
  1211 + version "2.0.0"
  1212 + resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
  1213 + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
  1214 +
  1215 +entities@^4.5.0:
  1216 + version "4.5.0"
  1217 + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
  1218 + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
  1219 +
  1220 +es-define-property@^1.0.1:
  1221 + version "1.0.1"
  1222 + resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
  1223 + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
  1224 +
  1225 +es-errors@^1.3.0:
  1226 + version "1.3.0"
  1227 + resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
  1228 + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
  1229 +
  1230 +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
  1231 + version "1.1.1"
  1232 + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
  1233 + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
  1234 + dependencies:
  1235 + es-errors "^1.3.0"
  1236 +
  1237 +es-set-tostringtag@^2.1.0:
  1238 + version "2.1.0"
  1239 + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
  1240 + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
  1241 + dependencies:
  1242 + es-errors "^1.3.0"
  1243 + get-intrinsic "^1.2.6"
  1244 + has-tostringtag "^1.0.2"
  1245 + hasown "^2.0.2"
  1246 +
  1247 +esbuild@^0.25.0:
  1248 + version "0.25.1"
  1249 + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f"
  1250 + integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==
  1251 + optionalDependencies:
  1252 + "@esbuild/aix-ppc64" "0.25.1"
  1253 + "@esbuild/android-arm" "0.25.1"
  1254 + "@esbuild/android-arm64" "0.25.1"
  1255 + "@esbuild/android-x64" "0.25.1"
  1256 + "@esbuild/darwin-arm64" "0.25.1"
  1257 + "@esbuild/darwin-x64" "0.25.1"
  1258 + "@esbuild/freebsd-arm64" "0.25.1"
  1259 + "@esbuild/freebsd-x64" "0.25.1"
  1260 + "@esbuild/linux-arm" "0.25.1"
  1261 + "@esbuild/linux-arm64" "0.25.1"
  1262 + "@esbuild/linux-ia32" "0.25.1"
  1263 + "@esbuild/linux-loong64" "0.25.1"
  1264 + "@esbuild/linux-mips64el" "0.25.1"
  1265 + "@esbuild/linux-ppc64" "0.25.1"
  1266 + "@esbuild/linux-riscv64" "0.25.1"
  1267 + "@esbuild/linux-s390x" "0.25.1"
  1268 + "@esbuild/linux-x64" "0.25.1"
  1269 + "@esbuild/netbsd-arm64" "0.25.1"
  1270 + "@esbuild/netbsd-x64" "0.25.1"
  1271 + "@esbuild/openbsd-arm64" "0.25.1"
  1272 + "@esbuild/openbsd-x64" "0.25.1"
  1273 + "@esbuild/sunos-x64" "0.25.1"
  1274 + "@esbuild/win32-arm64" "0.25.1"
  1275 + "@esbuild/win32-ia32" "0.25.1"
  1276 + "@esbuild/win32-x64" "0.25.1"
  1277 +
  1278 +escalade@^3.2.0:
  1279 + version "3.2.0"
  1280 + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
  1281 + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
  1282 +
  1283 +escape-html@^1.0.3, escape-html@~1.0.3:
  1284 + version "1.0.3"
  1285 + resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
  1286 + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
  1287 +
  1288 +estree-walker@^2.0.1, estree-walker@^2.0.2:
  1289 + version "2.0.2"
  1290 + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
  1291 + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
  1292 +
  1293 +etag@~1.8.1:
  1294 + version "1.8.1"
  1295 + resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
  1296 + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
  1297 +
  1298 +follow-redirects@^1.15.6:
  1299 + version "1.15.9"
  1300 + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
  1301 + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
  1302 +
  1303 +form-data@^4.0.0:
  1304 + version "4.0.2"
  1305 + resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c"
  1306 + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==
  1307 + dependencies:
  1308 + asynckit "^0.4.0"
  1309 + combined-stream "^1.0.8"
  1310 + es-set-tostringtag "^2.1.0"
  1311 + mime-types "^2.1.12"
  1312 +
  1313 +fresh@0.5.2:
  1314 + version "0.5.2"
  1315 + resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
  1316 + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
  1317 +
  1318 +fs-extra@^9.1.0:
  1319 + version "9.1.0"
  1320 + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
  1321 + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
  1322 + dependencies:
  1323 + at-least-node "^1.0.0"
  1324 + graceful-fs "^4.2.0"
  1325 + jsonfile "^6.0.1"
  1326 + universalify "^2.0.0"
  1327 +
  1328 +fsevents@~2.3.2, fsevents@~2.3.3:
  1329 + version "2.3.3"
  1330 + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
  1331 + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
  1332 +
  1333 +function-bind@^1.1.2:
  1334 + version "1.1.2"
  1335 + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
  1336 + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
  1337 +
  1338 +gensync@^1.0.0-beta.2:
  1339 + version "1.0.0-beta.2"
  1340 + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
  1341 + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
  1342 +
  1343 +get-intrinsic@^1.2.6:
  1344 + version "1.3.0"
  1345 + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
  1346 + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
  1347 + dependencies:
  1348 + call-bind-apply-helpers "^1.0.2"
  1349 + es-define-property "^1.0.1"
  1350 + es-errors "^1.3.0"
  1351 + es-object-atoms "^1.1.1"
  1352 + function-bind "^1.1.2"
  1353 + get-proto "^1.0.1"
  1354 + gopd "^1.2.0"
  1355 + has-symbols "^1.1.0"
  1356 + hasown "^2.0.2"
  1357 + math-intrinsics "^1.1.0"
  1358 +
  1359 +get-proto@^1.0.1:
  1360 + version "1.0.1"
  1361 + resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
  1362 + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
  1363 + dependencies:
  1364 + dunder-proto "^1.0.1"
  1365 + es-object-atoms "^1.0.0"
  1366 +
  1367 +globals@^11.1.0:
  1368 + version "11.12.0"
  1369 + resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
  1370 + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
  1371 +
  1372 +gopd@^1.2.0:
  1373 + version "1.2.0"
  1374 + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
  1375 + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
  1376 +
  1377 +graceful-fs@^4.1.6, graceful-fs@^4.2.0:
  1378 + version "4.2.11"
  1379 + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
  1380 + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
  1381 +
  1382 +grapheme-splitter@^1.0.4:
  1383 + version "1.0.4"
  1384 + resolved "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
  1385 + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
  1386 +
  1387 +has-symbols@^1.0.3, has-symbols@^1.1.0:
  1388 + version "1.1.0"
  1389 + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
  1390 + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
  1391 +
  1392 +has-tostringtag@^1.0.2:
  1393 + version "1.0.2"
  1394 + resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
  1395 + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
  1396 + dependencies:
  1397 + has-symbols "^1.0.3"
  1398 +
  1399 +hasown@^2.0.2:
  1400 + version "2.0.2"
  1401 + resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
  1402 + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
  1403 + dependencies:
  1404 + function-bind "^1.1.2"
  1405 +
  1406 +he@^1.2.0:
  1407 + version "1.2.0"
  1408 + resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
  1409 + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
  1410 +
  1411 +hookable@^5.5.3:
  1412 + version "5.5.3"
  1413 + resolved "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d"
  1414 + integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==
  1415 +
  1416 +http-errors@2.0.0:
  1417 + version "2.0.0"
  1418 + resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
  1419 + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
  1420 + dependencies:
  1421 + depd "2.0.0"
  1422 + inherits "2.0.4"
  1423 + setprototypeof "1.2.0"
  1424 + statuses "2.0.1"
  1425 + toidentifier "1.0.1"
  1426 +
  1427 +inherits@2.0.4:
  1428 + version "2.0.4"
  1429 + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
  1430 + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
  1431 +
  1432 +is-plain-object@3.0.1:
  1433 + version "3.0.1"
  1434 + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b"
  1435 + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==
  1436 +
  1437 +is-reference@^1.2.1:
  1438 + version "1.2.1"
  1439 + resolved "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
  1440 + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
  1441 + dependencies:
  1442 + "@types/estree" "*"
  1443 +
  1444 +is-what@^4.1.8:
  1445 + version "4.1.16"
  1446 + resolved "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f"
  1447 + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==
  1448 +
  1449 +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
  1450 + version "4.0.0"
  1451 + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
  1452 + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
  1453 +
  1454 +jsep@^1.3.8:
  1455 + version "1.4.0"
  1456 + resolved "https://registry.npmmirror.com/jsep/-/jsep-1.4.0.tgz#19feccbfa51d8a79f72480b4b8e40ce2e17152f0"
  1457 + integrity sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==
  1458 +
  1459 +jsesc@^3.0.2:
  1460 + version "3.1.0"
  1461 + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
  1462 + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
  1463 +
  1464 +json5@^2.2.3:
  1465 + version "2.2.3"
  1466 + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
  1467 + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
  1468 +
  1469 +jsonfile@^6.0.1:
  1470 + version "6.1.0"
  1471 + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
  1472 + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
  1473 + dependencies:
  1474 + universalify "^2.0.0"
  1475 + optionalDependencies:
  1476 + graceful-fs "^4.1.6"
  1477 +
  1478 +kdbush@^4.0.1:
  1479 + version "4.0.2"
  1480 + resolved "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39"
  1481 + integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==
  1482 +
  1483 +ktx-parse@^1.0.0:
  1484 + version "1.0.0"
  1485 + resolved "https://registry.npmmirror.com/ktx-parse/-/ktx-parse-1.0.0.tgz#61a5eccdf085dbbd44374e2d0073ace9018e0e1a"
  1486 + integrity sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg==
  1487 +
  1488 +lerc@^2.0.0:
  1489 + version "2.0.0"
  1490 + resolved "https://registry.npmmirror.com/lerc/-/lerc-2.0.0.tgz#82feca29ea6202799a815ca38f7b66a370e8cf9b"
  1491 + integrity sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==
  1492 +
  1493 +lodash-es@^4.17.15, lodash-es@^4.17.21:
  1494 + version "4.17.21"
  1495 + resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
  1496 + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
  1497 +
  1498 +lodash-unified@^1.0.2:
  1499 + version "1.0.3"
  1500 + resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
  1501 + integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
  1502 +
  1503 +lodash@^4.17.21:
  1504 + version "4.17.21"
  1505 + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
  1506 + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
  1507 +
  1508 +long@^5.0.0:
  1509 + version "5.3.1"
  1510 + resolved "https://registry.npmmirror.com/long/-/long-5.3.1.tgz#9d4222d3213f38a5ec809674834e0f0ab21abe96"
  1511 + integrity sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==
  1512 +
  1513 +loose-envify@^1.0.0:
  1514 + version "1.4.0"
  1515 + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
  1516 + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
  1517 + dependencies:
  1518 + js-tokens "^3.0.0 || ^4.0.0"
  1519 +
  1520 +lru-cache@^5.1.1:
  1521 + version "5.1.1"
  1522 + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
  1523 + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
  1524 + dependencies:
  1525 + yallist "^3.0.2"
  1526 +
  1527 +magic-string@^0.25.7:
  1528 + version "0.25.9"
  1529 + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
  1530 + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
  1531 + dependencies:
  1532 + sourcemap-codec "^1.4.8"
  1533 +
  1534 +magic-string@^0.30.11:
  1535 + version "0.30.17"
  1536 + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453"
  1537 + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
  1538 + dependencies:
  1539 + "@jridgewell/sourcemap-codec" "^1.5.0"
  1540 +
  1541 +math-intrinsics@^1.1.0:
  1542 + version "1.1.0"
  1543 + resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
  1544 + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
  1545 +
  1546 +memoize-one@^6.0.0:
  1547 + version "6.0.0"
  1548 + resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
  1549 + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
  1550 +
  1551 +mersenne-twister@^1.1.0:
  1552 + version "1.1.0"
  1553 + resolved "https://registry.npmmirror.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a"
  1554 + integrity sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==
  1555 +
  1556 +meshoptimizer@^0.22.0:
  1557 + version "0.22.0"
  1558 + resolved "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.22.0.tgz#1ec36b075543e7d661f5ebc21339ae3dab4bc18c"
  1559 + integrity sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==
  1560 +
  1561 +mime-db@1.52.0:
  1562 + version "1.52.0"
  1563 + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
  1564 + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
  1565 +
  1566 +mime-types@^2.1.12:
  1567 + version "2.1.35"
  1568 + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
  1569 + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
  1570 + dependencies:
  1571 + mime-db "1.52.0"
  1572 +
  1573 +mime@1.6.0:
  1574 + version "1.6.0"
  1575 + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
  1576 + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
  1577 +
  1578 +minimatch@^9.0.3:
  1579 + version "9.0.5"
  1580 + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
  1581 + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
  1582 + dependencies:
  1583 + brace-expansion "^2.0.1"
  1584 +
  1585 +mitt@^3.0.1:
  1586 + version "3.0.1"
  1587 + resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
  1588 + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
  1589 +
  1590 +ms@2.0.0:
  1591 + version "2.0.0"
  1592 + resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
  1593 + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
  1594 +
  1595 +ms@2.1.3, ms@^2.1.3:
  1596 + version "2.1.3"
  1597 + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
  1598 + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
  1599 +
  1600 +muggle-string@^0.4.1:
  1601 + version "0.4.1"
  1602 + resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328"
  1603 + integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==
  1604 +
  1605 +nanoid@^3.3.8:
  1606 + version "3.3.9"
  1607 + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.9.tgz#e0097d8e026b3343ff053e9ccd407360a03f503a"
  1608 + integrity sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==
  1609 +
  1610 +nanopop@^2.1.0:
  1611 + version "2.4.2"
  1612 + resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz#b55482135be7e64f2d0f5aa8ef51a58104ac7b13"
  1613 + integrity sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==
  1614 +
  1615 +node-releases@^2.0.19:
  1616 + version "2.0.19"
  1617 + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314"
  1618 + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
  1619 +
  1620 +normalize-wheel-es@^1.2.0:
  1621 + version "1.2.0"
  1622 + resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz#0fa2593d619f7245a541652619105ab076acf09e"
  1623 + integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==
  1624 +
  1625 +nosleep.js@^0.12.0:
  1626 + version "0.12.0"
  1627 + resolved "https://registry.npmmirror.com/nosleep.js/-/nosleep.js-0.12.0.tgz#a01fddab2c13af357d673928b1f40a9013a4dc08"
  1628 + integrity sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==
  1629 +
  1630 +on-finished@2.4.1:
  1631 + version "2.4.1"
  1632 + resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
  1633 + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
  1634 + dependencies:
  1635 + ee-first "1.1.1"
  1636 +
  1637 +pako@^2.0.4:
  1638 + version "2.1.0"
  1639 + resolved "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
  1640 + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
  1641 +
  1642 +parseurl@~1.3.3:
  1643 + version "1.3.3"
  1644 + resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
  1645 + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
  1646 +
  1647 +path-browserify@^1.0.1:
  1648 + version "1.0.1"
  1649 + resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
  1650 + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
  1651 +
  1652 +perfect-debounce@^1.0.0:
  1653 + version "1.0.0"
  1654 + resolved "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
  1655 + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
  1656 +
  1657 +picocolors@^1.0.0, picocolors@^1.1.1:
  1658 + version "1.1.1"
  1659 + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
  1660 + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
  1661 +
  1662 +picomatch@^2.2.2:
  1663 + version "2.3.1"
  1664 + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
  1665 + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
  1666 +
  1667 +pinia@^3.0.1:
  1668 + version "3.0.1"
  1669 + resolved "https://registry.npmmirror.com/pinia/-/pinia-3.0.1.tgz#d19f79a04b2b55fd63f78f1395a8c4a714d96941"
  1670 + integrity sha512-WXglsDzztOTH6IfcJ99ltYZin2mY8XZCXujkYWVIJlBjqsP6ST7zw+Aarh63E1cDVYeyUcPCxPHzJpEOmzB6Wg==
  1671 + dependencies:
  1672 + "@vue/devtools-api" "^7.7.2"
  1673 +
  1674 +postcss@^8.4.48, postcss@^8.5.3:
  1675 + version "8.5.3"
  1676 + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb"
  1677 + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==
  1678 + dependencies:
  1679 + nanoid "^3.3.8"
  1680 + picocolors "^1.1.1"
  1681 + source-map-js "^1.2.1"
  1682 +
  1683 +protobufjs@^7.1.0:
  1684 + version "7.4.0"
  1685 + resolved "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a"
  1686 + integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==
  1687 + dependencies:
  1688 + "@protobufjs/aspromise" "^1.1.2"
  1689 + "@protobufjs/base64" "^1.1.2"
  1690 + "@protobufjs/codegen" "^2.0.4"
  1691 + "@protobufjs/eventemitter" "^1.1.0"
  1692 + "@protobufjs/fetch" "^1.1.0"
  1693 + "@protobufjs/float" "^1.0.2"
  1694 + "@protobufjs/inquire" "^1.1.0"
  1695 + "@protobufjs/path" "^1.1.2"
  1696 + "@protobufjs/pool" "^1.1.0"
  1697 + "@protobufjs/utf8" "^1.1.0"
  1698 + "@types/node" ">=13.7.0"
  1699 + long "^5.0.0"
  1700 +
  1701 +proxy-from-env@^1.1.0:
  1702 + version "1.1.0"
  1703 + resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
  1704 + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
  1705 +
  1706 +quickselect@^2.0.0:
  1707 + version "2.0.0"
  1708 + resolved "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018"
  1709 + integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==
  1710 +
  1711 +range-parser@~1.2.1:
  1712 + version "1.2.1"
  1713 + resolved "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
  1714 + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
  1715 +
  1716 +rbush@3.0.1:
  1717 + version "3.0.1"
  1718 + resolved "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf"
  1719 + integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==
  1720 + dependencies:
  1721 + quickselect "^2.0.0"
  1722 +
  1723 +regenerator-runtime@^0.14.0:
  1724 + version "0.14.1"
  1725 + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
  1726 + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
  1727 +
  1728 +resize-observer-polyfill@^1.5.1:
  1729 + version "1.5.1"
  1730 + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
  1731 + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
  1732 +
  1733 +rfdc@^1.4.1:
  1734 + version "1.4.1"
  1735 + resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca"
  1736 + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
  1737 +
  1738 +rollup-plugin-external-globals@^0.6.1:
  1739 + version "0.6.1"
  1740 + resolved "https://registry.npmmirror.com/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.6.1.tgz#861c260b5727144e0fd1b424b103f9f0282fc365"
  1741 + integrity sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==
  1742 + dependencies:
  1743 + "@rollup/pluginutils" "^4.0.0"
  1744 + estree-walker "^2.0.1"
  1745 + is-reference "^1.2.1"
  1746 + magic-string "^0.25.7"
  1747 +
  1748 +rollup@^4.30.1:
  1749 + version "4.35.0"
  1750 + resolved "https://registry.npmmirror.com/rollup/-/rollup-4.35.0.tgz#76c95dba17a579df4c00c3955aed32aa5d4dc66d"
  1751 + integrity sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==
  1752 + dependencies:
  1753 + "@types/estree" "1.0.6"
  1754 + optionalDependencies:
  1755 + "@rollup/rollup-android-arm-eabi" "4.35.0"
  1756 + "@rollup/rollup-android-arm64" "4.35.0"
  1757 + "@rollup/rollup-darwin-arm64" "4.35.0"
  1758 + "@rollup/rollup-darwin-x64" "4.35.0"
  1759 + "@rollup/rollup-freebsd-arm64" "4.35.0"
  1760 + "@rollup/rollup-freebsd-x64" "4.35.0"
  1761 + "@rollup/rollup-linux-arm-gnueabihf" "4.35.0"
  1762 + "@rollup/rollup-linux-arm-musleabihf" "4.35.0"
  1763 + "@rollup/rollup-linux-arm64-gnu" "4.35.0"
  1764 + "@rollup/rollup-linux-arm64-musl" "4.35.0"
  1765 + "@rollup/rollup-linux-loongarch64-gnu" "4.35.0"
  1766 + "@rollup/rollup-linux-powerpc64le-gnu" "4.35.0"
  1767 + "@rollup/rollup-linux-riscv64-gnu" "4.35.0"
  1768 + "@rollup/rollup-linux-s390x-gnu" "4.35.0"
  1769 + "@rollup/rollup-linux-x64-gnu" "4.35.0"
  1770 + "@rollup/rollup-linux-x64-musl" "4.35.0"
  1771 + "@rollup/rollup-win32-arm64-msvc" "4.35.0"
  1772 + "@rollup/rollup-win32-ia32-msvc" "4.35.0"
  1773 + "@rollup/rollup-win32-x64-msvc" "4.35.0"
  1774 + fsevents "~2.3.2"
  1775 +
  1776 +sax@^1.2.4:
  1777 + version "1.4.1"
  1778 + resolved "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
  1779 + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
  1780 +
  1781 +scroll-into-view-if-needed@^2.2.25:
  1782 + version "2.2.31"
  1783 + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587"
  1784 + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
  1785 + dependencies:
  1786 + compute-scroll-into-view "^1.0.20"
  1787 +
  1788 +semver@^6.3.1:
  1789 + version "6.3.1"
  1790 + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
  1791 + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
  1792 +
  1793 +send@0.19.0:
  1794 + version "0.19.0"
  1795 + resolved "https://registry.npmmirror.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
  1796 + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
  1797 + dependencies:
  1798 + debug "2.6.9"
  1799 + depd "2.0.0"
  1800 + destroy "1.2.0"
  1801 + encodeurl "~1.0.2"
  1802 + escape-html "~1.0.3"
  1803 + etag "~1.8.1"
  1804 + fresh "0.5.2"
  1805 + http-errors "2.0.0"
  1806 + mime "1.6.0"
  1807 + ms "2.1.3"
  1808 + on-finished "2.4.1"
  1809 + range-parser "~1.2.1"
  1810 + statuses "2.0.1"
  1811 +
  1812 +serve-static@^1.14.1:
  1813 + version "1.16.2"
  1814 + resolved "https://registry.npmmirror.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
  1815 + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
  1816 + dependencies:
  1817 + encodeurl "~2.0.0"
  1818 + escape-html "~1.0.3"
  1819 + parseurl "~1.3.3"
  1820 + send "0.19.0"
  1821 +
  1822 +setprototypeof@1.2.0:
  1823 + version "1.2.0"
  1824 + resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
  1825 + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
  1826 +
  1827 +shallow-equal@^1.0.0:
  1828 + version "1.2.1"
  1829 + resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da"
  1830 + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==
  1831 +
  1832 +source-map-js@^1.2.0, source-map-js@^1.2.1:
  1833 + version "1.2.1"
  1834 + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
  1835 + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
  1836 +
  1837 +sourcemap-codec@^1.4.8:
  1838 + version "1.4.8"
  1839 + resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
  1840 + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
  1841 +
  1842 +speakingurl@^14.0.1:
  1843 + version "14.0.1"
  1844 + resolved "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53"
  1845 + integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==
  1846 +
  1847 +statuses@2.0.1:
  1848 + version "2.0.1"
  1849 + resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
  1850 + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
  1851 +
  1852 +stylis@^4.1.3:
  1853 + version "4.3.6"
  1854 + resolved "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320"
  1855 + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==
  1856 +
  1857 +superjson@^2.2.1:
  1858 + version "2.2.2"
  1859 + resolved "https://registry.npmmirror.com/superjson/-/superjson-2.2.2.tgz#9d52bf0bf6b5751a3c3472f1292e714782ba3173"
  1860 + integrity sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==
  1861 + dependencies:
  1862 + copy-anything "^3.0.2"
  1863 +
  1864 +throttle-debounce@^5.0.0:
  1865 + version "5.0.2"
  1866 + resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1"
  1867 + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==
  1868 +
  1869 +toidentifier@1.0.1:
  1870 + version "1.0.1"
  1871 + resolved "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
  1872 + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
  1873 +
  1874 +topojson-client@^3.1.0:
  1875 + version "3.1.0"
  1876 + resolved "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99"
  1877 + integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==
  1878 + dependencies:
  1879 + commander "2"
  1880 +
  1881 +tslib@^2.8.1:
  1882 + version "2.8.1"
  1883 + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
  1884 + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
  1885 +
  1886 +typescript@~5.7.2:
  1887 + version "5.7.3"
  1888 + resolved "https://registry.npmmirror.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e"
  1889 + integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
  1890 +
  1891 +undici-types@~6.20.0:
  1892 + version "6.20.0"
  1893 + resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
  1894 + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
  1895 +
  1896 +universalify@^2.0.0:
  1897 + version "2.0.1"
  1898 + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
  1899 + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
  1900 +
  1901 +update-browserslist-db@^1.1.1:
  1902 + version "1.1.3"
  1903 + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420"
  1904 + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
  1905 + dependencies:
  1906 + escalade "^3.2.0"
  1907 + picocolors "^1.1.1"
  1908 +
  1909 +urijs@^1.19.7:
  1910 + version "1.19.11"
  1911 + resolved "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
  1912 + integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==
  1913 +
  1914 +vite-plugin-cesium@^1.2.23:
  1915 + version "1.2.23"
  1916 + resolved "https://registry.npmmirror.com/vite-plugin-cesium/-/vite-plugin-cesium-1.2.23.tgz#fa6ef37c045fe7863901b383a23e7f72e59e7539"
  1917 + integrity sha512-x9A8ZCEoegceXg/E+LnxKr0XBsI9CR4cgYWQ2Dd3cUEYwKcTnHQ3kBfpol7BUcGtgQnQos/mtVrRmuVQBXFjHw==
  1918 + dependencies:
  1919 + fs-extra "^9.1.0"
  1920 + rollup-plugin-external-globals "^0.6.1"
  1921 + serve-static "^1.14.1"
  1922 +
  1923 +vite@^6.2.0:
  1924 + version "6.2.1"
  1925 + resolved "https://registry.npmmirror.com/vite/-/vite-6.2.1.tgz#ae865d4bb93a11844be1bc647c8b2dd1856ea180"
  1926 + integrity sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==
  1927 + dependencies:
  1928 + esbuild "^0.25.0"
  1929 + postcss "^8.5.3"
  1930 + rollup "^4.30.1"
  1931 + optionalDependencies:
  1932 + fsevents "~2.3.3"
  1933 +
  1934 +vscode-uri@^3.0.8:
  1935 + version "3.1.0"
  1936 + resolved "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c"
  1937 + integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==
  1938 +
  1939 +vue-demi@*:
  1940 + version "0.14.10"
  1941 + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
  1942 + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==
  1943 +
  1944 +vue-router@^4.5.0:
  1945 + version "4.5.0"
  1946 + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz#58fc5fe374e10b6018f910328f756c3dae081f14"
  1947 + integrity sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==
  1948 + dependencies:
  1949 + "@vue/devtools-api" "^6.6.4"
  1950 +
  1951 +vue-tsc@^2.2.4:
  1952 + version "2.2.8"
  1953 + resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-2.2.8.tgz#7c8e1bd9333d25241a7f9988eedf08c65483158c"
  1954 + integrity sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==
  1955 + dependencies:
  1956 + "@volar/typescript" "~2.4.11"
  1957 + "@vue/language-core" "2.2.8"
  1958 +
  1959 +vue-types@^3.0.0:
  1960 + version "3.0.2"
  1961 + resolved "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d"
  1962 + integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==
  1963 + dependencies:
  1964 + is-plain-object "3.0.1"
  1965 +
  1966 +vue@^3.5.13:
  1967 + version "3.5.13"
  1968 + resolved "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
  1969 + integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==
  1970 + dependencies:
  1971 + "@vue/compiler-dom" "3.5.13"
  1972 + "@vue/compiler-sfc" "3.5.13"
  1973 + "@vue/runtime-dom" "3.5.13"
  1974 + "@vue/server-renderer" "3.5.13"
  1975 + "@vue/shared" "3.5.13"
  1976 +
  1977 +warning@^4.0.0:
  1978 + version "4.0.3"
  1979 + resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
  1980 + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
  1981 + dependencies:
  1982 + loose-envify "^1.0.0"
  1983 +
  1984 +xml-js@^1.6.11:
  1985 + version "1.6.11"
  1986 + resolved "https://registry.npmmirror.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9"
  1987 + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==
  1988 + dependencies:
  1989 + sax "^1.2.4"
  1990 +
  1991 +yallist@^3.0.2:
  1992 + version "3.1.1"
  1993 + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
  1994 + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==