正在显示
25 个修改的文件
包含
4507 行增加
和
0 行删除
.env
0 → 100644
.env.development
0 → 100644
.env.production
0 → 100644
.gitignore
0 → 100644
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? |
.vscode/extensions.json
0 → 100644
README.md
0 → 100644
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). |
index.html
0 → 100644
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> |
package-lock.json
0 → 100644
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 | +} |
package.json
0 → 100644
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 | +} |
public/air-route/template.kml
0 → 100644
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> |
public/air-route/waylines.wpml
0 → 100644
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> |
public/vite.svg
0 → 100644
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> |
src/App.vue
0 → 100644
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> |
src/assets/arrow-small.png
0 → 100644

2.8 KB
src/assets/vue.svg
0 → 100644
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> |
src/components/air-route/1.json
0 → 100644
此 diff 太大无法显示。
src/components/air-route/air-route.vue
0 → 100644
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> |
-
请 注册 或 登录 后发表评论