From 6d1cc6c9a1e29c4639934daae3e70ae0c4c086e2 Mon Sep 17 00:00:00 2001 From: JIANG Date: Sun, 28 Sep 2025 15:51:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- next.config.mjs | 7 + package-lock.json | 6549 ++++++++++++++++- package.json | 41 +- postcss.config.mjs | 7 + src/app/OlMap/Controls/BaseLayers.tsx | 250 + src/app/OlMap/Controls/DrawPanel.tsx | 382 + src/app/OlMap/Controls/PropertyPanel.tsx | 63 + src/app/OlMap/Controls/ScaleLine.tsx | 47 + src/app/OlMap/Controls/StyleEditorPanel.tsx | 1005 +++ src/app/OlMap/Controls/StyleLegend.tsx | 74 + src/app/OlMap/Controls/Timeline.tsx | 0 src/app/OlMap/Controls/Toolbar.tsx | 471 ++ src/app/OlMap/Controls/Zoom.tsx | 104 + src/app/OlMap/MapComponent.tsx | 547 ++ src/app/OlMap/MapTools.tsx | 19 + src/app/_refine_context.tsx | 62 +- src/app/globals.css | 9 + src/app/layout.tsx | 47 +- src/app/network-simulation/page.tsx | 11 + src/app/scada-data-cleaning/page.tsx | 11 + src/assets/avatar/avatar-small.jpeg | Bin 0 -> 93026 bytes src/assets/map/layers/mapbox-outdoors.png | Bin 0 -> 44032 bytes .../map/layers/mapbox-satellite-streets.png | Bin 0 -> 61010 bytes src/assets/map/layers/mapbox-satellite.png | Bin 0 -> 58239 bytes src/assets/map/layers/mapbox-streets.png | Bin 0 -> 39123 bytes src/components/olmap/common/ToolbarButton.tsx | 57 + src/components/title/index.tsx | 18 + src/config/config.ts | 24 + 28 files changed, 9753 insertions(+), 52 deletions(-) create mode 100644 postcss.config.mjs create mode 100644 src/app/OlMap/Controls/BaseLayers.tsx create mode 100644 src/app/OlMap/Controls/DrawPanel.tsx create mode 100644 src/app/OlMap/Controls/PropertyPanel.tsx create mode 100644 src/app/OlMap/Controls/ScaleLine.tsx create mode 100644 src/app/OlMap/Controls/StyleEditorPanel.tsx create mode 100644 src/app/OlMap/Controls/StyleLegend.tsx create mode 100644 src/app/OlMap/Controls/Timeline.tsx create mode 100644 src/app/OlMap/Controls/Toolbar.tsx create mode 100644 src/app/OlMap/Controls/Zoom.tsx create mode 100644 src/app/OlMap/MapComponent.tsx create mode 100644 src/app/OlMap/MapTools.tsx create mode 100644 src/app/globals.css create mode 100644 src/app/network-simulation/page.tsx create mode 100644 src/app/scada-data-cleaning/page.tsx create mode 100644 src/assets/avatar/avatar-small.jpeg create mode 100644 src/assets/map/layers/mapbox-outdoors.png create mode 100644 src/assets/map/layers/mapbox-satellite-streets.png create mode 100644 src/assets/map/layers/mapbox-satellite.png create mode 100644 src/assets/map/layers/mapbox-streets.png create mode 100644 src/components/olmap/common/ToolbarButton.tsx create mode 100644 src/components/title/index.tsx create mode 100644 src/config/config.ts diff --git a/next.config.mjs b/next.config.mjs index 8c8bab6..9f0ce63 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,6 +1,13 @@ /** @type {import('next').NextConfig} */ const nextConfig = { output: "standalone", + webpack(config) { + config.module.rules.push({ + test: /\.svg$/, + use: ['@svgr/webpack'], + }); + return config; + }, }; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 8323316..39506b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "my-refine-app", + "name": "tjwater-app", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "my-refine-app", + "name": "tjwater-app", "version": "0.1.0", "dependencies": { "@emotion/react": "^11.8.2", @@ -22,13 +22,22 @@ "@refinedev/nextjs-router": "^7.0.0", "@refinedev/react-hook-form": "^5.0.0", "@refinedev/simple-rest": "^6.0.0", + "@tailwindcss/postcss": "^4.1.13", + "@turf/turf": "^7.2.0", + "clsx": "^2.1.1", + "deck.gl": "^9.1.14", "js-cookie": "^3.0.5", "next": "^15.2.4", "next-auth": "^4.24.5", + "ol": "^10.6.1", + "postcss": "^8.5.6", "react": "^19.1.0", - "react-dom": "^19.1.0" + "react-dom": "^19.1.0", + "react-icons": "^5.5.0", + "tailwindcss": "^4.1.13" }, "devDependencies": { + "@svgr/webpack": "^8.1.0", "@types/js-cookie": "^3.0.6", "@types/node": "^20", "@types/react": "^19.1.0", @@ -86,6 +95,18 @@ "loose-envify": "^1.1.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -246,6 +267,51 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", @@ -319,6 +385,24 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/helper-replace-supers": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", @@ -376,6 +460,21 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helpers": { "version": "7.28.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", @@ -404,6 +503,103 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", @@ -419,6 +615,38 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", @@ -449,6 +677,107 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz", + "integrity": "sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", @@ -465,6 +794,193 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", @@ -481,6 +997,122 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", @@ -497,6 +1129,75 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", @@ -512,6 +1213,75 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", @@ -528,6 +1298,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", @@ -544,6 +1330,255 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-typescript": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", @@ -563,6 +1598,168 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", + "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/preset-flow": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.27.1.tgz", @@ -580,6 +1777,42 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-typescript": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", @@ -672,6 +1905,38 @@ "node": ">=6.9.0" } }, + "node_modules/@carto/api-client": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@carto/api-client/-/api-client-0.4.9.tgz", + "integrity": "sha512-W0kjEmWgRA7Mqh7jdvHZ0/WHz3ACFsmnUkGLnPT7BJjkIBS/WtCsx2YXjV4lGi/eA1NZtZ7pU+sq3Z7OPgb/fw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/schema": "^4.3.3", + "@turf/bbox-clip": "^7.2.0", + "@turf/bbox-polygon": "^7.2.0", + "@turf/boolean-equal": "^7.2.0", + "@turf/boolean-intersects": "^7.2.0", + "@turf/boolean-within": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/intersect": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/union": "^7.2.0", + "@types/geojson": "^7946.0.16", + "d3-scale": "^4.0.2", + "h3-js": "4.1.0" + } + }, + "node_modules/@carto/api-client/node_modules/h3-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.1.0.tgz", + "integrity": "sha512-LQhmMl1dRQQjMXPzJc7MpZ/CqPOWWuAvVEoVJM9n/s7vHypj+c3Pd5rLQCkAsOgAoAYKbNCsYFE++LF7MvSfCQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=4", + "npm": ">=3", + "yarn": ">=1.3.0" + } + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -682,11 +1947,301 @@ "node": ">=0.1.90" } }, + "node_modules/@deck.gl/aggregation-layers": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/aggregation-layers/-/aggregation-layers-9.1.14.tgz", + "integrity": "sha512-EEciz1/SL1bdf/lm+DRy9Arno81vLWc9frcz2w/ZFdIKxVfcJmAFtyKeo2BJdjR9aspNxpOW+RJdl3/tK/ICYw==", + "license": "MIT", + "dependencies": { + "@luma.gl/constants": "~9.1.9", + "@luma.gl/shadertools": "~9.1.9", + "@math.gl/core": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "d3-hexbin": "^0.2.1" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@deck.gl/layers": "^9.1.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9" + } + }, + "node_modules/@deck.gl/arcgis": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/arcgis/-/arcgis-9.1.14.tgz", + "integrity": "sha512-UQoknFpRCeSuY+KALbTAu7Z/qHS9r2Rb0RFllnNiCFKUbW3FLtIo0uszom3d69yCrdC6Sl6Tv1iVDB9JMIeItw==", + "license": "MIT", + "dependencies": { + "@luma.gl/constants": "~9.1.9", + "esri-loader": "^3.7.0" + }, + "peerDependencies": { + "@arcgis/core": "^4.0.0", + "@deck.gl/core": "^9.1.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9", + "@luma.gl/webgl": "~9.1.9" + } + }, + "node_modules/@deck.gl/carto": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/carto/-/carto-9.1.14.tgz", + "integrity": "sha512-afOaNLDTZZPyYfxSJYzJltQ45nK4MwE3etp3P7Mu3nP0HLvEpzVn7E6rEOYqra3ABk2nP+6Se28rYGnEmzmCSw==", + "license": "MIT", + "dependencies": { + "@carto/api-client": "^0.4.4", + "@loaders.gl/compression": "^4.2.0", + "@loaders.gl/gis": "^4.2.0", + "@loaders.gl/loader-utils": "^4.2.0", + "@loaders.gl/mvt": "^4.2.0", + "@loaders.gl/schema": "^4.2.0", + "@loaders.gl/tiles": "^4.2.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/shadertools": "~9.1.9", + "@math.gl/web-mercator": "^4.1.0", + "@types/d3-array": "^3.0.2", + "@types/d3-color": "^1.4.2", + "@types/d3-scale": "^3.0.0", + "cartocolor": "^5.0.2", + "d3-array": "^3.2.0", + "d3-color": "^3.1.0", + "d3-format": "^3.1.0", + "d3-scale": "^4.0.0", + "earcut": "^2.2.4", + "h3-js": "^4.1.0", + "moment-timezone": "^0.5.33", + "pbf": "^3.2.1", + "quadbin": "^0.4.0" + }, + "peerDependencies": { + "@deck.gl/aggregation-layers": "^9.1.0", + "@deck.gl/core": "^9.1.0", + "@deck.gl/extensions": "^9.1.0", + "@deck.gl/geo-layers": "^9.1.0", + "@deck.gl/layers": "^9.1.0", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.1.9" + } + }, + "node_modules/@deck.gl/carto/node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@deck.gl/carto/node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "license": "ISC" + }, + "node_modules/@deck.gl/carto/node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/@deck.gl/core": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/core/-/core-9.1.14.tgz", + "integrity": "sha512-tXakSSvi5g+EvxSsnnjoRO8z3XxHxISTRzzIqcs3AZuWHnDptK28y9iD0Da21ILop1IYLaWE1QTUe6IAdp/Wag==", + "license": "MIT", + "dependencies": { + "@loaders.gl/core": "^4.2.0", + "@loaders.gl/images": "^4.2.0", + "@luma.gl/constants": "~9.1.9", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9", + "@luma.gl/shadertools": "~9.1.9", + "@luma.gl/webgl": "~9.1.9", + "@math.gl/core": "^4.1.0", + "@math.gl/sun": "^4.1.0", + "@math.gl/types": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "@probe.gl/env": "^4.1.0", + "@probe.gl/log": "^4.1.0", + "@probe.gl/stats": "^4.1.0", + "@types/offscreencanvas": "^2019.6.4", + "gl-matrix": "^3.0.0", + "mjolnir.js": "^3.0.0" + } + }, + "node_modules/@deck.gl/extensions": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/extensions/-/extensions-9.1.14.tgz", + "integrity": "sha512-uPm9Ye/XD8YAYNxT1G6HxyIOBxa2+MBdGLyqobQj3pCnkO/YtgY/fi/BjM+eVOBXX+keBrXEclEvB0Add5eS8Q==", + "license": "MIT", + "dependencies": { + "@luma.gl/constants": "~9.1.9", + "@luma.gl/shadertools": "~9.1.9", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9" + } + }, + "node_modules/@deck.gl/geo-layers": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/geo-layers/-/geo-layers-9.1.14.tgz", + "integrity": "sha512-vk/vssJl9mxvPH04EyUFVa+gHedJYo55KrNjUiQWPBgtMyVefF/5M2X09UPXSnL44cMat7ZgX5wR9HMMxAwo+Q==", + "license": "MIT", + "dependencies": { + "@loaders.gl/3d-tiles": "^4.2.0", + "@loaders.gl/gis": "^4.2.0", + "@loaders.gl/loader-utils": "^4.2.0", + "@loaders.gl/mvt": "^4.2.0", + "@loaders.gl/schema": "^4.2.0", + "@loaders.gl/terrain": "^4.2.0", + "@loaders.gl/tiles": "^4.2.0", + "@loaders.gl/wms": "^4.2.0", + "@luma.gl/gltf": "~9.1.9", + "@luma.gl/shadertools": "~9.1.9", + "@math.gl/core": "^4.1.0", + "@math.gl/culling": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "@types/geojson": "^7946.0.8", + "h3-js": "^4.1.0", + "long": "^3.2.0" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@deck.gl/extensions": "^9.1.0", + "@deck.gl/layers": "^9.1.0", + "@deck.gl/mesh-layers": "^9.1.0", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9" + } + }, + "node_modules/@deck.gl/google-maps": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/google-maps/-/google-maps-9.1.14.tgz", + "integrity": "sha512-xkMHsTyq6tTKWA3KfhCrcOuoMOND9nVbzS+TTHfulEPfaE9HNu6HiJE4Jh7KON9HUpRGY6Z3GUHqZqXFCC1Bhw==", + "license": "MIT", + "dependencies": { + "@luma.gl/constants": "~9.1.9", + "@math.gl/core": "^4.1.0", + "@types/google.maps": "^3.48.6" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/webgl": "~9.1.9" + } + }, + "node_modules/@deck.gl/json": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/json/-/json-9.1.14.tgz", + "integrity": "sha512-+TUkMNQFrsP0OQeUl1k2YvczeYaaE2C99SfMX+elpVHTWGE100C/5L94UeS5XT2REEunJ8tDaDNO+aUXTz2nDA==", + "license": "MIT", + "dependencies": { + "jsep": "^0.3.0" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0" + } + }, + "node_modules/@deck.gl/layers": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/layers/-/layers-9.1.14.tgz", + "integrity": "sha512-cCClyZxznzXLPJnH2er7ZJAnXYuEHH/0hcDoc5Lp3SNByx3ASNrZcizIBOCxO7132LHFN4cSeyz0JVP8p56TDg==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "^4.2.0", + "@loaders.gl/schema": "^4.2.0", + "@luma.gl/shadertools": "~9.1.9", + "@mapbox/tiny-sdf": "^2.0.5", + "@math.gl/core": "^4.1.0", + "@math.gl/polygon": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "earcut": "^2.2.4" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9" + } + }, + "node_modules/@deck.gl/layers/node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "license": "ISC" + }, + "node_modules/@deck.gl/mapbox": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/mapbox/-/mapbox-9.1.14.tgz", + "integrity": "sha512-l3c5NFwKjIOeVWMtqK5LR8MA4grRe7tpLctkovNIo+owPBoW+q7gAWBJ1hGFmE1sxVFhoqZx70FqBAT9Mqn1ow==", + "license": "MIT", + "dependencies": { + "@luma.gl/constants": "~9.1.9", + "@math.gl/web-mercator": "^4.1.0" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@luma.gl/core": "~9.1.9" + } + }, + "node_modules/@deck.gl/mesh-layers": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/mesh-layers/-/mesh-layers-9.1.14.tgz", + "integrity": "sha512-NVUw0yG4stJfrklWCGP9j8bNlf9YQc4PccMeNNIHNrU/Je6/Va6dJZg0RGtVkeaTY1Lk3A7wRzq8/M5Urfvuiw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/gltf": "^4.2.0", + "@luma.gl/gltf": "~9.1.9", + "@luma.gl/shadertools": "~9.1.9" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9" + } + }, + "node_modules/@deck.gl/react": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/react/-/react-9.1.14.tgz", + "integrity": "sha512-G9uiL/+ZzTUaSH+NPrL+OfyWPN6LfRIIfQicjkqF5v5Mtnv8EO9raOHgYk8ZYdt4Z7MPD8TiXbyeENZwrlNSzg==", + "license": "MIT", + "peerDependencies": { + "@deck.gl/core": "^9.1.0", + "@deck.gl/widgets": "^9.1.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/@deck.gl/widgets": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@deck.gl/widgets/-/widgets-9.1.14.tgz", + "integrity": "sha512-hEyvvrqxEr7ujqTyTbdm5VTwY4oMYKNsLyXKjxWerHCIyfT971UYyV4cbILqvYf+L8spE146NFqwx0jj1bBqWw==", + "license": "MIT", + "dependencies": { + "preact": "^10.17.0" + }, + "peerDependencies": { + "@deck.gl/core": "^9.1.0" + } + }, "node_modules/@emnapi/core": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -708,7 +2263,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1565,6 +3119,18 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1610,6 +3176,566 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@loaders.gl/3d-tiles": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/3d-tiles/-/3d-tiles-4.3.4.tgz", + "integrity": "sha512-JQ3y3p/KlZP7lfobwON5t7H9WinXEYTvuo3SRQM8TBKhM+koEYZhvI2GwzoXx54MbBbY+s3fm1dq5UAAmaTsZw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/compression": "4.3.4", + "@loaders.gl/crypto": "4.3.4", + "@loaders.gl/draco": "4.3.4", + "@loaders.gl/gltf": "4.3.4", + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/math": "4.3.4", + "@loaders.gl/tiles": "4.3.4", + "@loaders.gl/zip": "4.3.4", + "@math.gl/core": "^4.1.0", + "@math.gl/culling": "^4.1.0", + "@math.gl/geospatial": "^4.1.0", + "@probe.gl/log": "^4.0.4", + "long": "^5.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/3d-tiles/node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/@loaders.gl/compression": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/compression/-/compression-4.3.4.tgz", + "integrity": "sha512-+o+5JqL9Sx8UCwdc2MTtjQiUHYQGJALHbYY/3CT+b9g/Emzwzez2Ggk9U9waRfdHiBCzEgRBivpWZEOAtkimXQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/worker-utils": "4.3.4", + "@types/brotli": "^1.3.0", + "@types/pako": "^1.0.1", + "fflate": "0.7.4", + "lzo-wasm": "^0.0.4", + "pako": "1.0.11", + "snappyjs": "^0.6.1" + }, + "optionalDependencies": { + "brotli": "^1.3.2", + "lz4js": "^0.2.0", + "zstd-codec": "^0.1" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/compression/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/@loaders.gl/core": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/core/-/core-4.3.4.tgz", + "integrity": "sha512-cG0C5fMZ1jyW6WCsf4LoHGvaIAJCEVA/ioqKoYRwoSfXkOf+17KupK1OUQyUCw5XoRn+oWA1FulJQOYlXnb9Gw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@loaders.gl/worker-utils": "4.3.4", + "@probe.gl/log": "^4.0.2" + } + }, + "node_modules/@loaders.gl/crypto": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/crypto/-/crypto-4.3.4.tgz", + "integrity": "sha512-3VS5FgB44nLOlAB9Q82VOQnT1IltwfRa1miE0mpHCe1prYu1M/dMnEyynusbrsp+eDs3EKbxpguIS9HUsFu5dQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/worker-utils": "4.3.4", + "@types/crypto-js": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/draco": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/draco/-/draco-4.3.4.tgz", + "integrity": "sha512-4Lx0rKmYENGspvcgV5XDpFD9o+NamXoazSSl9Oa3pjVVjo+HJuzCgrxTQYD/3JvRrolW/QRehZeWD/L/cEC6mw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@loaders.gl/worker-utils": "4.3.4", + "draco3d": "1.5.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/gis": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/gis/-/gis-4.3.4.tgz", + "integrity": "sha512-8xub38lSWW7+ZXWuUcggk7agRHJUy6RdipLNKZ90eE0ZzLNGDstGD1qiBwkvqH0AkG+uz4B7Kkiptyl7w2Oa6g==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@mapbox/vector-tile": "^1.3.1", + "@math.gl/polygon": "^4.1.0", + "pbf": "^3.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/gis/node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/@loaders.gl/gltf": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/gltf/-/gltf-4.3.4.tgz", + "integrity": "sha512-EiUTiLGMfukLd9W98wMpKmw+hVRhQ0dJ37wdlXK98XPeGGB+zTQxCcQY+/BaMhsSpYt/OOJleHhTfwNr8RgzRg==", + "license": "MIT", + "dependencies": { + "@loaders.gl/draco": "4.3.4", + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@loaders.gl/textures": "4.3.4", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/images": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/images/-/images-4.3.4.tgz", + "integrity": "sha512-qgc33BaNsqN9cWa/xvcGvQ50wGDONgQQdzHCKDDKhV2w/uptZoR5iofJfuG8UUV2vUMMd82Uk9zbopRx2rS4Ag==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/loader-utils": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/loader-utils/-/loader-utils-4.3.4.tgz", + "integrity": "sha512-tjMZvlKQSaMl2qmYTAxg+ySR6zd6hQn5n3XaU8+Ehp90TD3WzxvDKOMNDqOa72fFmIV+KgPhcmIJTpq4lAdC4Q==", + "license": "MIT", + "dependencies": { + "@loaders.gl/schema": "4.3.4", + "@loaders.gl/worker-utils": "4.3.4", + "@probe.gl/log": "^4.0.2", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/math": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/math/-/math-4.3.4.tgz", + "integrity": "sha512-UJrlHys1fp9EUO4UMnqTCqvKvUjJVCbYZ2qAKD7tdGzHJYT8w/nsP7f/ZOYFc//JlfC3nq+5ogvmdpq2pyu3TA==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/mvt": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/mvt/-/mvt-4.3.4.tgz", + "integrity": "sha512-9DrJX8RQf14htNtxsPIYvTso5dUce9WaJCWCIY/79KYE80Be6dhcEYMknxBS4w3+PAuImaAe66S5xo9B7Erm5A==", + "license": "MIT", + "dependencies": { + "@loaders.gl/gis": "4.3.4", + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@math.gl/polygon": "^4.1.0", + "@probe.gl/stats": "^4.0.0", + "pbf": "^3.2.1" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/mvt/node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/@loaders.gl/schema": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/schema/-/schema-4.3.4.tgz", + "integrity": "sha512-1YTYoatgzr/6JTxqBLwDiD3AVGwQZheYiQwAimWdRBVB0JAzych7s1yBuE0CVEzj4JDPKOzVAz8KnU1TiBvJGw==", + "license": "MIT", + "dependencies": { + "@types/geojson": "^7946.0.7" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/terrain": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/terrain/-/terrain-4.3.4.tgz", + "integrity": "sha512-JszbRJGnxL5Fh82uA2U8HgjlsIpzYoCNNjy3cFsgCaxi4/dvjz3BkLlBilR7JlbX8Ka+zlb4GAbDDChiXLMJ/g==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@mapbox/martini": "^0.2.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/textures": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/textures/-/textures-4.3.4.tgz", + "integrity": "sha512-arWIDjlE7JaDS6v9by7juLfxPGGnjT9JjleaXx3wq/PTp+psLOpGUywHXm38BNECos3MFEQK3/GFShWI+/dWPw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@loaders.gl/worker-utils": "4.3.4", + "@math.gl/types": "^4.1.0", + "ktx-parse": "^0.7.0", + "texture-compressor": "^1.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/tiles": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/tiles/-/tiles-4.3.4.tgz", + "integrity": "sha512-oC0zJfyvGox6Ag9ABF8fxOkx9yEFVyzTa9ryHXl2BqLiQoR1v3p+0tIJcEbh5cnzHfoTZzUis1TEAZluPRsHBQ==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/math": "4.3.4", + "@math.gl/core": "^4.1.0", + "@math.gl/culling": "^4.1.0", + "@math.gl/geospatial": "^4.1.0", + "@math.gl/web-mercator": "^4.1.0", + "@probe.gl/stats": "^4.0.2" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/wms": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/wms/-/wms-4.3.4.tgz", + "integrity": "sha512-yXF0wuYzJUdzAJQrhLIua6DnjOiBJusaY1j8gpvuH1VYs3mzvWlIRuZKeUd9mduQZKK88H2IzHZbj2RGOauq4w==", + "license": "MIT", + "dependencies": { + "@loaders.gl/images": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "@loaders.gl/xml": "4.3.4", + "@turf/rewind": "^5.1.5", + "deep-strict-equal": "^0.2.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/wms/node_modules/@turf/boolean-clockwise": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz", + "integrity": "sha512-FqbmEEOJ4rU4/2t7FKx0HUWmjFEVqR+NJrFP7ymGSjja2SQ7Q91nnBihGuT+yuHHl6ElMjQ3ttsB/eTmyCycxA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5" + } + }, + "node_modules/@loaders.gl/wms/node_modules/@turf/clone": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz", + "integrity": "sha512-//pITsQ8xUdcQ9pVb4JqXiSqG4dos5Q9N4sYFoWghX21tfOV2dhc5TGqYOhnHrQS7RiKQL1vQ48kIK34gQ5oRg==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@loaders.gl/wms/node_modules/@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha512-/lF+JR+qNDHZ8bF9d+Cp58nxtZWJ3sqFe6n3u3Vpj+/0cqkjk4nXKYBSY0azm+GIYB5mWKxUXvuP/m0ZnKj1bw==", + "license": "MIT" + }, + "node_modules/@loaders.gl/wms/node_modules/@turf/invariant": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", + "integrity": "sha512-28RCBGvCYsajVkw2EydpzLdcYyhSA77LovuOvgCJplJWaNVyJYH6BOR3HR9w50MEkPqb/Vc/jdo6I6ermlRtQA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@loaders.gl/wms/node_modules/@turf/meta": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz", + "integrity": "sha512-ZjQ3Ii62X9FjnK4hhdsbT+64AYRpaI8XMBMcyftEOGSmPMUVnkbvuv3C9geuElAXfQU7Zk1oWGOcrGOD9zr78Q==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^5.1.5" + } + }, + "node_modules/@loaders.gl/wms/node_modules/@turf/rewind": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz", + "integrity": "sha512-Gdem7JXNu+G4hMllQHXRFRihJl3+pNl7qY+l4qhQFxq+hiU1cQoVFnyoleIqWKIrdK/i2YubaSwc3SCM7N5mMw==", + "license": "MIT", + "dependencies": { + "@turf/boolean-clockwise": "^5.1.5", + "@turf/clone": "^5.1.5", + "@turf/helpers": "^5.1.5", + "@turf/invariant": "^5.1.5", + "@turf/meta": "^5.1.5" + } + }, + "node_modules/@loaders.gl/worker-utils": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/worker-utils/-/worker-utils-4.3.4.tgz", + "integrity": "sha512-EbsszrASgT85GH3B7jkx7YXfQyIYo/rlobwMx6V3ewETapPUwdSAInv+89flnk5n2eu2Lpdeh+2zS6PvqbL2RA==", + "license": "MIT", + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/xml": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/xml/-/xml-4.3.4.tgz", + "integrity": "sha512-p+y/KskajsvyM3a01BwUgjons/j/dUhniqd5y1p6keLOuwoHlY/TfTKd+XluqfyP14vFrdAHCZTnFCWLblN10w==", + "license": "MIT", + "dependencies": { + "@loaders.gl/loader-utils": "4.3.4", + "@loaders.gl/schema": "4.3.4", + "fast-xml-parser": "^4.2.5" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@loaders.gl/zip": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@loaders.gl/zip/-/zip-4.3.4.tgz", + "integrity": "sha512-bHY4XdKYJm3vl9087GMoxnUqSURwTxPPh6DlAGOmz6X9Mp3JyWuA2gk3tQ1UIuInfjXKph3WAUfGe6XRIs1sfw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/compression": "4.3.4", + "@loaders.gl/crypto": "4.3.4", + "@loaders.gl/loader-utils": "4.3.4", + "jszip": "^3.1.5", + "md5": "^2.3.0" + }, + "peerDependencies": { + "@loaders.gl/core": "^4.3.0" + } + }, + "node_modules/@luma.gl/constants": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-9.1.9.tgz", + "integrity": "sha512-yc9fml04OeTTcwK+7gmDMxoLQ67j4ZiAFXjmYvPomYyBVzS0NZxTDuwcCBmnxjLOiroOZW8FRRrVc/yOiFug2w==", + "license": "MIT" + }, + "node_modules/@luma.gl/core": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@luma.gl/core/-/core-9.1.9.tgz", + "integrity": "sha512-1i9N7+I/UbFjx3axSMlc3/NufA+C2iBv/7mw51gRE/ypQPgvFmY/QqXBVZRe+nthF+OhlUMhO19TBndzYFTWhA==", + "license": "MIT", + "dependencies": { + "@math.gl/types": "^4.1.0", + "@probe.gl/env": "^4.0.8", + "@probe.gl/log": "^4.0.8", + "@probe.gl/stats": "^4.0.8", + "@types/offscreencanvas": "^2019.6.4" + } + }, + "node_modules/@luma.gl/engine": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@luma.gl/engine/-/engine-9.1.9.tgz", + "integrity": "sha512-n1GLK1sUMFkWxdb+aZYn6ZBFltFEMi7X+6ZPxn2pBsNT6oeF4AyvH5AyqhOpvHvUnCLDt3Zsf1UIfx3MI//YSw==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "^4.1.0", + "@math.gl/types": "^4.1.0", + "@probe.gl/log": "^4.0.8", + "@probe.gl/stats": "^4.0.8" + }, + "peerDependencies": { + "@luma.gl/core": "^9.1.0", + "@luma.gl/shadertools": "^9.1.0" + } + }, + "node_modules/@luma.gl/gltf": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@luma.gl/gltf/-/gltf-9.1.9.tgz", + "integrity": "sha512-KgVBIFCtRO1oadgMDycMJA5s+q519l/fQBGAZpUcLfWsaEDQfdHW2NLdrK/00VDv46Ng8tN/O6uyH6E40uLcLw==", + "license": "MIT", + "dependencies": { + "@loaders.gl/core": "^4.2.0", + "@loaders.gl/textures": "^4.2.0", + "@math.gl/core": "^4.1.0" + }, + "peerDependencies": { + "@luma.gl/core": "^9.1.0", + "@luma.gl/engine": "^9.1.0", + "@luma.gl/shadertools": "^9.1.0" + } + }, + "node_modules/@luma.gl/shadertools": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@luma.gl/shadertools/-/shadertools-9.1.9.tgz", + "integrity": "sha512-Uqp2xfgIEunRMLXTeCJ4uEMlWcUGcYMZGJ8GAOrAeDzn4bMKVRKmZDC71vkuTctnaodM3UdrI9W6s1sJlrXsxw==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "^4.1.0", + "@math.gl/types": "^4.1.0", + "wgsl_reflect": "^1.2.0" + }, + "peerDependencies": { + "@luma.gl/core": "^9.1.0" + } + }, + "node_modules/@luma.gl/webgl": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@luma.gl/webgl/-/webgl-9.1.9.tgz", + "integrity": "sha512-jecHjhNSWkXH0v62rM6G5fIIkOmsrND27099iKgdutFvHIvd4QS4UzGWEEa9AEPlP0rTLqXkA6y6YL7f42ZkVg==", + "license": "MIT", + "dependencies": { + "@luma.gl/constants": "9.1.9", + "@math.gl/types": "^4.1.0", + "@probe.gl/env": "^4.0.8" + }, + "peerDependencies": { + "@luma.gl/core": "^9.1.0" + } + }, + "node_modules/@mapbox/martini": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/martini/-/martini-0.2.0.tgz", + "integrity": "sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==", + "license": "ISC" + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz", + "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@math.gl/core": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-4.1.0.tgz", + "integrity": "sha512-FrdHBCVG3QdrworwrUSzXIaK+/9OCRLscxI2OUy6sLOHyHgBMyfnEGs99/m3KNvs+95BsnQLWklVfpKfQzfwKA==", + "license": "MIT", + "dependencies": { + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/culling": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/culling/-/culling-4.1.0.tgz", + "integrity": "sha512-jFmjFEACnP9kVl8qhZxFNhCyd47qPfSVmSvvjR0/dIL6R9oD5zhR1ub2gN16eKDO/UM7JF9OHKU3EBIfeR7gtg==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0", + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/geospatial": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/geospatial/-/geospatial-4.1.0.tgz", + "integrity": "sha512-BzsUhpVvnmleyYF6qdqJIip6FtIzJmnWuPTGhlBuPzh7VBHLonCFSPtQpbkRuoyAlbSyaGXcVt6p6lm9eK2vtg==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0", + "@math.gl/types": "4.1.0" + } + }, + "node_modules/@math.gl/polygon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-4.1.0.tgz", + "integrity": "sha512-YA/9PzaCRHbIP5/0E9uTYrqe+jsYTQoqoDWhf6/b0Ixz8bPZBaGDEafLg3z7ffBomZLacUty9U3TlPjqMtzPjA==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0" + } + }, + "node_modules/@math.gl/sun": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/sun/-/sun-4.1.0.tgz", + "integrity": "sha512-i3q6OCBLSZ5wgZVhXg+X7gsjY/TUtuFW/2KBiq/U1ypLso3S4sEykoU/MGjxUv1xiiGtr+v8TeMbO1OBIh/HmA==", + "license": "MIT" + }, + "node_modules/@math.gl/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-4.1.0.tgz", + "integrity": "sha512-clYZdHcmRvMzVK5fjeDkQlHUzXQSNdZ7s4xOqC3nJPgz4C/TZkUecTo9YS4PruZqtDda/ag4erndP0MIn40dGA==", + "license": "MIT" + }, + "node_modules/@math.gl/web-mercator": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-4.1.0.tgz", + "integrity": "sha512-HZo3vO5GCMkXJThxRJ5/QYUYRr3XumfT8CzNNCwoJfinxy5NtKUd7dusNTXn7yJ40UoB8FMIwkVwNlqaiRZZAw==", + "license": "MIT", + "dependencies": { + "@math.gl/core": "4.1.0" + } + }, "node_modules/@mui/base": { "version": "5.0.0-beta.42", "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.42.tgz", @@ -2021,7 +4147,6 @@ "version": "0.2.12", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2290,6 +4415,12 @@ "url": "https://github.com/sponsors/panva" } }, + "node_modules/@petamoriken/float16": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", + "integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==", + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2310,6 +4441,27 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@probe.gl/env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-4.1.0.tgz", + "integrity": "sha512-5ac2Jm2K72VCs4eSMsM7ykVRrV47w32xOGMvcgqn8vQdEMF9PRXyBGYEV9YbqRKWNKpNKmQJVi4AHM/fkCxs9w==", + "license": "MIT" + }, + "node_modules/@probe.gl/log": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-4.1.0.tgz", + "integrity": "sha512-r4gRReNY6f+OZEMgfWEXrAE2qJEt8rX0HsDJQXUBMoc+5H47bdB7f/5HBHAmapK8UydwPKL9wCDoS22rJ0yq7Q==", + "license": "MIT", + "dependencies": { + "@probe.gl/env": "4.1.0" + } + }, + "node_modules/@probe.gl/stats": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-4.1.0.tgz", + "integrity": "sha512-EI413MkWKBDVNIfLdqbeNSJTs7ToBz/KVGkwi3D+dQrSIkRI2IYbWGAU3xX+D6+CI4ls8ehxMhNpUVMaZggDvQ==", + "license": "MIT" + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", @@ -2758,6 +4910,331 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", @@ -2767,6 +5244,267 @@ "tslib": "^2.8.0" } }, + "node_modules/@tailwindcss/node": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz", + "integrity": "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.5.1", + "lightningcss": "1.30.1", + "magic-string": "^0.30.18", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.13" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.13.tgz", + "integrity": "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.13", + "@tailwindcss/oxide-darwin-arm64": "4.1.13", + "@tailwindcss/oxide-darwin-x64": "4.1.13", + "@tailwindcss/oxide-freebsd-x64": "4.1.13", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.13", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.13", + "@tailwindcss/oxide-linux-x64-musl": "4.1.13", + "@tailwindcss/oxide-wasm32-wasi": "4.1.13", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.13" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.13.tgz", + "integrity": "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.13.tgz", + "integrity": "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.13.tgz", + "integrity": "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.13.tgz", + "integrity": "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.13.tgz", + "integrity": "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.13.tgz", + "integrity": "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.13.tgz", + "integrity": "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.13.tgz", + "integrity": "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.13.tgz", + "integrity": "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.13.tgz", + "integrity": "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.5", + "@emnapi/runtime": "^1.4.5", + "@emnapi/wasi-threads": "^1.0.4", + "@napi-rs/wasm-runtime": "^0.2.12", + "@tybys/wasm-util": "^0.10.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz", + "integrity": "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.13.tgz", + "integrity": "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.13.tgz", + "integrity": "sha512-HLgx6YSFKJT7rJqh9oJs/TkBFhxuMOfUKSBEPYwV+t78POOBsdQ7crhZLzwcH3T0UyUuOzU/GK5pk5eKr3wCiQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.13", + "@tailwindcss/oxide": "4.1.13", + "postcss": "^8.4.41", + "tailwindcss": "4.1.13" + } + }, "node_modules/@tanstack/query-core": { "version": "5.87.1", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.87.1.tgz", @@ -2793,17 +5531,2179 @@ "react": "^18 || ^19" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@turf/along": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/along/-/along-7.2.0.tgz", + "integrity": "sha512-Cf+d2LozABdb0TJoIcJwFKB+qisJY4nMUW9z6PAuZ9UCH7AR//hy2Z06vwYCKFZKP4a7DRPkOMBadQABCyoYuw==", + "license": "MIT", + "dependencies": { + "@turf/bearing": "^7.2.0", + "@turf/destination": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/angle": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-7.2.0.tgz", + "integrity": "sha512-b28rs1NO8Dt/MXadFhnpqH7GnEWRsl+xF5JeFtg9+eM/+l/zGrdliPYMZtAj12xn33w22J1X4TRprAI0rruvVQ==", + "license": "MIT", + "dependencies": { + "@turf/bearing": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/rhumb-bearing": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/area": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.2.0.tgz", + "integrity": "sha512-zuTTdQ4eoTI9nSSjerIy4QwgvxqwJVciQJ8tOPuMHbXJ9N/dNjI7bU8tasjhxas/Cx3NE9NxVHtNpYHL0FSzoA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bbox": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", + "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bbox-clip": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-7.2.0.tgz", + "integrity": "sha512-q6RXTpqeUQAYLAieUL1n3J6ukRGsNVDOqcYtfzaJbPW+0VsAf+1cI16sN700t0sekbeU1DH/RRVAHhpf8+36wA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bbox-polygon": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-7.2.0.tgz", + "integrity": "sha512-Aj4G1GAAy26fmOqMjUk0Z+Lcax5VQ9g1xYDbHLQWXvfTsaueBT+RzdH6XPnZ/seEEnZkio2IxE8V5af/osupgA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bearing": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-7.2.0.tgz", + "integrity": "sha512-Jm0Xt3GgHjRrWvBtAGvgfnADLm+4exud2pRlmCYx8zfiKuNXQFkrcTZcOiJOgTfG20Agq28iSh15uta47jSIbg==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bezier-spline": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-7.2.0.tgz", + "integrity": "sha512-7BPkc3ufYB9KLvcaTpTsnpXzh9DZoENxCS0Ms9XUwuRXw45TpevwUpOsa3atO76iKQ5puHntqFO4zs8IUxBaaA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-clockwise": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-7.2.0.tgz", + "integrity": "sha512-0fJeFSARxy6ealGBM4Gmgpa1o8msQF87p2Dx5V6uSqzT8VPDegX1NSWl4b7QgXczYa9qv7IAABttdWP0K7Q7eQ==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-concave": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-concave/-/boolean-concave-7.2.0.tgz", + "integrity": "sha512-v3dTN04dfO6VqctQj1a+pjDHb6+/Ev90oAR2QjJuAntY4ubhhr7vKeJdk/w+tWNSMKULnYwfe65Du3EOu3/TeA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-contains": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-7.2.0.tgz", + "integrity": "sha512-dgRQm4uVO5XuLee4PLVH7CFQZKdefUBMIXTPITm2oRIDmPLJKHDOFKQTNkGJ73mDKKBR2lmt6eVH3br6OYrEYg==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/boolean-point-on-line": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-crosses": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-7.2.0.tgz", + "integrity": "sha512-9GyM4UUWFKQOoNhHVSfJBf5XbPy8Fxfz9djjJNAnm/IOl8NmFUSwFPAjKlpiMcr6yuaAoc9R/1KokS9/eLqPvA==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/line-intersect": "^7.2.0", + "@turf/polygon-to-line": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-disjoint": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-7.2.0.tgz", + "integrity": "sha512-xdz+pYKkLMuqkNeJ6EF/3OdAiJdiHhcHCV0ykX33NIuALKIEpKik0+NdxxNsZsivOW6keKwr61SI+gcVtHYcnQ==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/line-intersect": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/polygon-to-line": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-equal": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-7.2.0.tgz", + "integrity": "sha512-TmjKYLsxXqEmdDtFq3QgX4aSogiISp3/doeEtDOs3NNSR8susOtBEZkmvwO6DLW+g/rgoQJIBR6iVoWiRqkBxw==", + "license": "MIT", + "dependencies": { + "@turf/clean-coords": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "geojson-equality-ts": "^1.0.2", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-intersects": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-7.2.0.tgz", + "integrity": "sha512-GLRyLQgK3F14drkK5Qi9Mv7Z9VT1bgQUd9a3DB3DACTZWDSwfh8YZUFn/HBwRkK8dDdgNEXaavggQHcPi1k9ow==", + "license": "MIT", + "dependencies": { + "@turf/boolean-disjoint": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-overlap": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-7.2.0.tgz", + "integrity": "sha512-ieM5qIE4anO+gUHIOvEN7CjyowF+kQ6v20/oNYJCp63TVS6eGMkwgd+I4uMzBXfVW66nVHIXjODdUelU+Xyctw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/line-intersect": "^7.2.0", + "@turf/line-overlap": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "geojson-equality-ts": "^1.0.2", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-parallel": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-7.2.0.tgz", + "integrity": "sha512-iOtuzzff8nmwv05ROkSvyeGLMrfdGkIi+3hyQ+DH4IVyV37vQbqR5oOJ0Nt3Qq1Tjrq9fvF8G3OMdAv3W2kY9w==", + "license": "MIT", + "dependencies": { + "@turf/clean-coords": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/line-segment": "^7.2.0", + "@turf/rhumb-bearing": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-point-in-polygon": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.2.0.tgz", + "integrity": "sha512-lvEOjxeXIp+wPXgl9kJA97dqzMfNexjqHou+XHVcfxQgolctoJiRYmcVCWGpiZ9CBf/CJha1KmD1qQoRIsjLaA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "point-in-polygon-hao": "^1.1.0", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-point-on-line": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-7.2.0.tgz", + "integrity": "sha512-H/bXX8+2VYeSyH8JWrOsu8OGmeA9KVZfM7M6U5/fSqGsRHXo9MyYJ94k39A9kcKSwI0aWiMXVD2UFmiWy8423Q==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-touches": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-touches/-/boolean-touches-7.2.0.tgz", + "integrity": "sha512-8qb1CO+cwFATGRGFgTRjzL9aibfsbI91pdiRl7KIEkVdeN/H9k8FDrUA1neY7Yq48IaciuwqjbbojQ16FD9b0w==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/boolean-point-on-line": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-valid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-valid/-/boolean-valid-7.2.0.tgz", + "integrity": "sha512-xb7gdHN8VV6ivPJh6rPpgxmAEGReiRxqY+QZoEZVGpW2dXcmU1BdY6FA6G/cwvggXAXxJBREoANtEDgp/0ySbA==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/boolean-crosses": "^7.2.0", + "@turf/boolean-disjoint": "^7.2.0", + "@turf/boolean-overlap": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/boolean-point-on-line": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/line-intersect": "^7.2.0", + "@types/geojson": "^7946.0.10", + "geojson-polygon-self-intersections": "^1.2.1", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/boolean-within": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-7.2.0.tgz", + "integrity": "sha512-zB3AiF59zQZ27Dp1iyhp9mVAKOFHat8RDH45TZhLY8EaqdEPdmLGvwMFCKfLryQcUDQvmzP8xWbtUR82QM5C4g==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/boolean-point-on-line": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/buffer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-7.2.0.tgz", + "integrity": "sha512-QH1FTr5Mk4z1kpQNztMD8XBOZfpOXPOtlsxaSAj2kDIf5+LquA6HtJjZrjUngnGtzG5+XwcfyRL4ImvLnFjm5Q==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/center": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/jsts": "^2.7.1", + "@turf/meta": "^7.2.0", + "@turf/projection": "^7.2.0", + "@types/geojson": "^7946.0.10", + "d3-geo": "1.7.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/center": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-7.2.0.tgz", + "integrity": "sha512-UTNp9abQ2kuyRg5gCIGDNwwEQeF3NbpYsd1Q0KW9lwWuzbLVNn0sOwbxjpNF4J2HtMOs5YVOcqNvYyuoa2XrXw==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/center-mean": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-7.2.0.tgz", + "integrity": "sha512-NaW6IowAooTJ35O198Jw3U4diZ6UZCCeJY+4E+WMLpks3FCxMDSHEfO2QjyOXQMGWZnVxVelqI5x9DdniDbQ+A==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/center-median": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-7.2.0.tgz", + "integrity": "sha512-/CgVyHNG4zAoZpvkl7qBCe4w7giWNVtLyTU5PoIfg1vWM4VpYw+N7kcBBH46bbzvVBn0vhmZr586r543EwdC/A==", + "license": "MIT", + "dependencies": { + "@turf/center-mean": "^7.2.0", + "@turf/centroid": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/center-of-mass": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-7.2.0.tgz", + "integrity": "sha512-ij3pmG61WQPHGTQvOziPOdIgwTMegkYTwIc71Gl7xn4C0vWH6KLDSshCphds9xdWSXt2GbHpUs3tr4XGntHkEQ==", + "license": "MIT", + "dependencies": { + "@turf/centroid": "^7.2.0", + "@turf/convex": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/centroid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.2.0.tgz", + "integrity": "sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/circle": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-7.2.0.tgz", + "integrity": "sha512-1AbqBYtXhstrHmnW6jhLwsv7TtmT0mW58Hvl1uZXEDM1NCVXIR50yDipIeQPjrCuJ/Zdg/91gU8+4GuDCAxBGA==", + "license": "MIT", + "dependencies": { + "@turf/destination": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clean-coords": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-7.2.0.tgz", + "integrity": "sha512-+5+J1+D7wW7O/RDXn46IfCHuX1gIV1pIAQNSA7lcDbr3HQITZj334C4mOGZLEcGbsiXtlHWZiBtm785Vg8i+QQ==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clone": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.2.0.tgz", + "integrity": "sha512-JlGUT+/5qoU5jqZmf6NMFIoLDY3O7jKd53Up+zbpJ2vzUp6QdwdNzwrsCeONhynWM13F0MVtPXH4AtdkrgFk4g==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clusters": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-7.2.0.tgz", + "integrity": "sha512-sKOrIKHHtXAuTKNm2USnEct+6/MrgyzMW42deZ2YG2RRKWGaaxHMFU2Yw71Yk4DqStOqTIBQpIOdrRuSOwbuQw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clusters-dbscan": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-7.2.0.tgz", + "integrity": "sha512-VWVUuDreev56g3/BMlnq/81yzczqaz+NVTypN5CigGgP67e+u/CnijphiuhKjtjDd/MzGjXgEWBJc26Y6LYKAw==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "rbush": "^3.0.1", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clusters-dbscan/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@turf/clusters-dbscan/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/@turf/clusters-kmeans": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-7.2.0.tgz", + "integrity": "sha512-BxQdK8jc8Mwm9yoClCYkktm4W004uiQGqb/i/6Y7a8xqgJITWDgTu/cy//wOxAWPk4xfe6MThjnqkszWW8JdyQ==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "skmeans": "0.9.7", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/collect": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-7.2.0.tgz", + "integrity": "sha512-zRVGDlYS8Bx/Zz4vnEUyRg4dmqHhkDbW/nIUIJh657YqaMj1SFi4Iv2i9NbcurlUBDJFkpuOhCvvEvAdskJ8UA==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "rbush": "^3.0.1", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/collect/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@turf/collect/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/@turf/combine": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-7.2.0.tgz", + "integrity": "sha512-VEjm3IvnbMt3IgeRIhCDhhQDbLqCU1/5uN1+j1u6fyA095pCizPThGp4f/COSzC3t1s/iiV+fHuDsB6DihHffQ==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/concave": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-7.2.0.tgz", + "integrity": "sha512-cpaDDlumK762kdadexw5ZAB6g/h2pJdihZ+e65lbQVe3WukJHAANnIEeKsdFCuIyNKrwTz2gWu5ws+OpjP48Yw==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/tin": "^7.2.0", + "@types/geojson": "^7946.0.10", + "topojson-client": "3.x", + "topojson-server": "3.x", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/convex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-7.2.0.tgz", + "integrity": "sha512-HsgHm+zHRE8yPCE/jBUtWFyaaBmpXcSlyHd5/xsMhSZRImFzRzBibaONWQo7xbKZMISC3Nc6BtUjDi/jEVbqyA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "concaveman": "^1.2.1", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/destination": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-7.2.0.tgz", + "integrity": "sha512-8DUxtOO0Fvrh1xclIUj3d9C5WS20D21F5E+j+X9Q+ju6fcM4huOqTg5ckV1DN2Pg8caABEc5HEZJnGch/5YnYQ==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/difference": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-7.2.0.tgz", + "integrity": "sha512-NHKD1v3s8RX+9lOpvHJg6xRuJOKiY3qxHhz5/FmE0VgGqnCkE7OObqWZ5SsXG+Ckh0aafs5qKhmDdDV/gGi6JA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/dissolve": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-7.2.0.tgz", + "integrity": "sha512-gPG5TE3mAYuZqBut8tPYCKwi4hhx5Cq0ALoQMB9X0hrVtFIKrihrsj98XQM/5pL/UIpAxQfwisQvy6XaOFaoPA==", + "license": "MIT", + "dependencies": { + "@turf/flatten": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/distance": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-7.2.0.tgz", + "integrity": "sha512-HBjjXIgEcD/wJYjv7/6OZj5yoky2oUvTtVeIAqO3lL80XRvoYmVg6vkOIu6NswkerwLDDNT9kl7+BFLJoHbh6Q==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/distance-weight": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-7.2.0.tgz", + "integrity": "sha512-NeoyV0fXDH+7nIoNtLjAoH9XL0AS1pmTIyDxEE6LryoDTsqjnuR0YQxIkLCCWDqECoqaOmmBqpeWONjX5BwWCg==", + "license": "MIT", + "dependencies": { + "@turf/centroid": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/ellipse": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-7.2.0.tgz", + "integrity": "sha512-/Y75S5hE2+xjnTw4dXpQ5r/Y2HPM4xrwkPRCCQRpuuboKdEvm42azYmh7isPnMnBTVcmGb9UmGKj0HHAbiwt1g==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/rhumb-destination": "^7.2.0", + "@turf/transform-rotate": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/envelope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-7.2.0.tgz", + "integrity": "sha512-xOMtDeNKHwUuDfzQeoSNmdabsP0/IgVDeyzitDe/8j9wTeW+MrKzVbGz7627PT3h6gsO+2nUv5asfKtUbmTyHA==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/bbox-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/explode": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-7.2.0.tgz", + "integrity": "sha512-jyMXg93J1OI7/65SsLE1k9dfQD3JbcPNMi4/O3QR2Qb3BAs2039oFaSjtW+YqhMqVC4V3ZeKebMcJ8h9sK1n+A==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/flatten": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-7.2.0.tgz", + "integrity": "sha512-q38Qsqr4l7mxp780zSdn0gp/WLBX+sa+gV6qIbDQ1HKCrrPK8QQJmNx7gk1xxEXVot6tq/WyAPysCQdX+kLmMA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/flip": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-7.2.0.tgz", + "integrity": "sha512-X0TQ0U/UYh4tyXdLO5itP1sO2HOvfrZC0fYSWmTfLDM14jEPkEK8PblofznfBygL+pIFtOS2is8FuVcp5XxYpQ==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/geojson-rbush": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/geojson-rbush/-/geojson-rbush-7.2.0.tgz", + "integrity": "sha512-ST8fLv+EwxVkDgsmhHggM0sPk2SfOHTZJkdgMXVFT7gB9o4lF8qk4y4lwvCCGIfFQAp2yv/PN5EaGMEKutk6xw==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "rbush": "^3.0.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/geojson-rbush/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@turf/geojson-rbush/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/@turf/great-circle": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-7.2.0.tgz", + "integrity": "sha512-n30OiADyOKHhor0aXNgYfXQYXO3UtsOKmhQsY1D89/Oh1nCIXG/1ZPlLL9ZoaRXXBTUBjh99a+K8029NQbGDhw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/helpers": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==", + "license": "MIT", + "dependencies": { + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/hex-grid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-7.2.0.tgz", + "integrity": "sha512-Yo2yUGxrTCQfmcVsSjDt0G3Veg8YD26WRd7etVPD9eirNNgXrIyZkbYA7zVV/qLeRWVmYIKRXg1USWl7ORQOGA==", + "license": "MIT", + "dependencies": { + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/intersect": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/interpolate": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-7.2.0.tgz", + "integrity": "sha512-Ifgjm1SEo6XujuSAU6lpRMvoJ1SYTreil1Rf5WsaXj16BQJCedht/4FtWCTNhSWTwEz2motQ1WNrjTCuPG94xA==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/centroid": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/hex-grid": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/point-grid": "^7.2.0", + "@turf/square-grid": "^7.2.0", + "@turf/triangle-grid": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/intersect": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-7.2.0.tgz", + "integrity": "sha512-81GMzKS9pKqLPa61qSlFxLFeAC8XbwyCQ9Qv4z6o5skWk1qmMUbEHeMqaGUTEzk+q2XyhZ0sju1FV4iLevQ/aw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/invariant": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-7.2.0.tgz", + "integrity": "sha512-kV4u8e7Gkpq+kPbAKNC21CmyrXzlbBgFjO1PhrHPgEdNqXqDawoZ3i6ivE3ULJj2rSesCjduUaC/wyvH/sNr2Q==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/isobands": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-7.2.0.tgz", + "integrity": "sha512-lYoHeRieFzpBp29Jh19QcDIb0E+dzo/K5uwZuNga4wxr6heNU0AfkD4ByAHYIXHtvmp4m/JpSKq/2N6h/zvBkg==", + "license": "MIT", + "dependencies": { + "@turf/area": "^7.2.0", + "@turf/bbox": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/explode": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "marchingsquares": "^1.3.3", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/isolines": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-7.2.0.tgz", + "integrity": "sha512-4ZXKxvA/JKkxAXixXhN3UVza5FABsdYgOWXyYm3L5ryTPJVOYTVSSd9A+CAVlv9dZc3YdlsqMqLTXNOOre/kwg==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "marchingsquares": "^1.3.3", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/jsts": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@turf/jsts/-/jsts-2.7.2.tgz", + "integrity": "sha512-zAezGlwWHPyU0zxwcX2wQY3RkRpwuoBmhhNE9HY9kWhFDkCxZ3aWK5URKwa/SWKJbj9aztO+8vtdiBA28KVJFg==", + "license": "(EDL-1.0 OR EPL-1.0)", + "dependencies": { + "jsts": "2.7.1" + } + }, + "node_modules/@turf/kinks": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-7.2.0.tgz", + "integrity": "sha512-BtxDxGewJR0Q5WR9HKBSxZhirFX+GEH1rD7/EvgDsHS8e1Y5/vNQQUmXdURjdPa4StzaUBsWRU5T3A356gLbPA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/length": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/length/-/length-7.2.0.tgz", + "integrity": "sha512-LBmYN+iCgVtWNLsckVnpQIJENqIIPO63mogazMp23lrDGfWXu07zZQ9ZinJVO5xYurXNhc/QI2xxoqt2Xw90Ig==", + "license": "MIT", + "dependencies": { + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-arc": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-7.2.0.tgz", + "integrity": "sha512-kfWzA5oYrTpslTg5fN50G04zSypiYQzjZv3FLjbZkk6kta5fo4JkERKjTeA8x4XNojb+pfmjMBB0yIh2w2dDRw==", + "license": "MIT", + "dependencies": { + "@turf/circle": "^7.2.0", + "@turf/destination": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-chunk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-7.2.0.tgz", + "integrity": "sha512-1ODyL5gETtWSL85MPI0lgp/78vl95M39gpeBxePXyDIqx8geDP9kXfAzctuKdxBoR4JmOVM3NT7Fz7h+IEkC+g==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/length": "^7.2.0", + "@turf/line-slice-along": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-intersect": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-7.2.0.tgz", + "integrity": "sha512-GhCJVEkc8EmggNi85EuVLoXF5T5jNVxmhIetwppiVyJzMrwkYAkZSYB3IBFYGUUB9qiNFnTwungVSsBV/S8ZiA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "sweepline-intersections": "^1.5.0", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-offset": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-7.2.0.tgz", + "integrity": "sha512-1+OkYueDCbnEWzbfBh3taVr+3SyM2bal5jfnSEuDiLA6jnlScgr8tn3INo+zwrUkPFZPPAejL1swVyO5TjUahw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-overlap": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-7.2.0.tgz", + "integrity": "sha512-NNn7/jg53+N10q2Kyt66bEDqN3101iW/1zA5FW7J6UbKApDFkByh+18YZq1of71kS6oUYplP86WkDp16LFpqqw==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-on-line": "^7.2.0", + "@turf/geojson-rbush": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/line-segment": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/nearest-point-on-line": "^7.2.0", + "@types/geojson": "^7946.0.10", + "fast-deep-equal": "^3.1.3", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-segment": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-7.2.0.tgz", + "integrity": "sha512-E162rmTF9XjVN4rINJCd15AdQGCBlNqeWN3V0YI1vOUpZFNT2ii4SqEMCcH2d+5EheHLL8BWVwZoOsvHZbvaWA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-slice": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-7.2.0.tgz", + "integrity": "sha512-bHotzZIaU1GPV3RMwttYpDrmcvb3X2i1g/WUttPZWtKrEo2VVAkoYdeZ2aFwtogERYS4quFdJ/TDzAtquBC8WQ==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/nearest-point-on-line": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-slice-along": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-7.2.0.tgz", + "integrity": "sha512-4/gPgP0j5Rp+1prbhXqn7kIH/uZTmSgiubUnn67F8nb9zE+MhbRglhSlRYEZxAVkB7VrGwjyolCwvrROhjHp2A==", + "license": "MIT", + "dependencies": { + "@turf/bearing": "^7.2.0", + "@turf/destination": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-split": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-7.2.0.tgz", + "integrity": "sha512-yJTZR+c8CwoKqdW/aIs+iLbuFwAa3Yan+EOADFQuXXIUGps3bJUXx/38rmowNoZbHyP1np1+OtrotyHu5uBsfQ==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/geojson-rbush": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/line-intersect": "^7.2.0", + "@turf/line-segment": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/nearest-point-on-line": "^7.2.0", + "@turf/square": "^7.2.0", + "@turf/truncate": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/line-to-polygon": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-7.2.0.tgz", + "integrity": "sha512-iKpJqc7EYc5NvlD4KaqrKKO6mXR7YWO/YwtW60E2FnsF/blnsy9OfAOcilYHgH3S/V/TT0VedC7DW7Kgjy2EIA==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/mask": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-7.2.0.tgz", + "integrity": "sha512-ulJ6dQqXC0wrjIoqFViXuMUdIPX5Q6GPViZ3kGfeVijvlLM7kTFBsZiPQwALSr5nTQg4Ppf3FD0Jmg8IErPrgA==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/meta": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", + "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/midpoint": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-7.2.0.tgz", + "integrity": "sha512-AMn5S9aSrbXdE+Q4Rj+T5nLdpfpn+mfzqIaEKkYI021HC0vb22HyhQHsQbSeX+AWcS4CjD1hFsYVcgKI+5qCfw==", + "license": "MIT", + "dependencies": { + "@turf/bearing": "^7.2.0", + "@turf/destination": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/moran-index": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-7.2.0.tgz", + "integrity": "sha512-Aexh1EmXVPJhApr9grrd120vbalIthcIsQ3OAN2Tqwf+eExHXArJEJqGBo9IZiQbIpFJeftt/OvUvlI8BeO1bA==", + "license": "MIT", + "dependencies": { + "@turf/distance-weight": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/nearest-neighbor-analysis": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-neighbor-analysis/-/nearest-neighbor-analysis-7.2.0.tgz", + "integrity": "sha512-LmP/crXb7gilgsL0wL9hsygqc537W/a1W5r9XBKJT4SKdqjoXX5APJatJfd3nwXbRIqwDH0cDA9/YyFjBPlKnA==", + "license": "MIT", + "dependencies": { + "@turf/area": "^7.2.0", + "@turf/bbox": "^7.2.0", + "@turf/bbox-polygon": "^7.2.0", + "@turf/centroid": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/nearest-point": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/nearest-point": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-7.2.0.tgz", + "integrity": "sha512-0wmsqXZ8CGw4QKeZmS+NdjYTqCMC+HXZvM3XAQIU6k6laNLqjad2oS4nDrtcRs/nWDvcj1CR+Io7OiQ6sbpn5Q==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/nearest-point-on-line": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-7.2.0.tgz", + "integrity": "sha512-UOhAeoDPVewBQV+PWg1YTMQcYpJsIqfW5+EuZ5vJl60XwUa0+kqB/eVfSLNXmHENjKKIlEt9Oy9HIDF4VeWmXA==", + "license": "MIT", + "dependencies": { + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/nearest-point-to-line": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-7.2.0.tgz", + "integrity": "sha512-EorU7Qj30A7nAjh++KF/eTPDlzwuuV4neBz7tmSTB21HKuXZAR0upJsx6M2X1CSyGEgNsbFB0ivNKIvymRTKBw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/point-to-line-distance": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/planepoint": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-7.2.0.tgz", + "integrity": "sha512-8Vno01tvi5gThUEKBQ46CmlEKDAwVpkl7stOPFvJYlA1oywjAL4PsmgwjXgleZuFtXQUPBNgv5a42Pf438XP4g==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/point-grid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-7.2.0.tgz", + "integrity": "sha512-ai7lwBV2FREPW3XiUNohT4opC1hd6+F56qZe20xYhCTkTD9diWjXHiNudQPSmVAUjgMzQGasblQQqvOdL+bJ3Q==", + "license": "MIT", + "dependencies": { + "@turf/boolean-within": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/point-on-feature": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-7.2.0.tgz", + "integrity": "sha512-ksoYoLO9WtJ/qI8VI9ltF+2ZjLWrAjZNsCsu8F7nyGeCh4I8opjf4qVLytFG44XA2qI5yc6iXDpyv0sshvP82Q==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/center": "^7.2.0", + "@turf/explode": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/nearest-point": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/point-to-line-distance": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-7.2.0.tgz", + "integrity": "sha512-fB9Rdnb5w5+t76Gho2dYDkGe20eRrFk8CXi4v1+l1PC8YyLXO+x+l3TrtT8HzL/dVaZeepO6WUIsIw3ditTOPg==", + "license": "MIT", + "dependencies": { + "@turf/bearing": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/nearest-point-on-line": "^7.2.0", + "@turf/projection": "^7.2.0", + "@turf/rhumb-bearing": "^7.2.0", + "@turf/rhumb-distance": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/point-to-polygon-distance": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/point-to-polygon-distance/-/point-to-polygon-distance-7.2.0.tgz", + "integrity": "sha512-w+WYuINgTiFjoZemQwOaQSje/8Kq+uqJOynvx7+gleQPHyWQ3VtTodtV4LwzVzXz8Sf7Mngx1Jcp2SNai5CJYA==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/point-to-line-distance": "^7.2.0", + "@turf/polygon-to-line": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/points-within-polygon": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-7.2.0.tgz", + "integrity": "sha512-jRKp8/mWNMzA+hKlQhxci97H5nOio9tp14R2SzpvkOt+cswxl+NqTEi1hDd2XetA7tjU0TSoNjEgVY8FfA0S6w==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/polygon-smooth": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-7.2.0.tgz", + "integrity": "sha512-KCp9wF2IEynvGXVhySR8oQ2razKP0zwg99K+fuClP21pSKCFjAPaihPEYq6e8uI/1J7ibjL5++6EMl+LrUTrLg==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/polygon-tangents": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-7.2.0.tgz", + "integrity": "sha512-AHUUPmOjiQDrtP/ODXukHBlUG0C/9I1je7zz50OTfl2ZDOdEqFJQC3RyNELwq07grTXZvg5TS5wYx/Y7nsm47g==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/boolean-within": "^7.2.0", + "@turf/explode": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/nearest-point": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/polygon-to-line": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-7.2.0.tgz", + "integrity": "sha512-9jeTN3LiJ933I5sd4K0kwkcivOYXXm1emk0dHorwXeSFSHF+nlYesEW3Hd889wb9lZd7/SVLMUeX/h39mX+vCA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/polygonize": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-7.2.0.tgz", + "integrity": "sha512-U9v+lBhUPDv+nsg/VcScdiqCB59afO6CHDGrwIl2+5i6Ve+/KQKjpTV/R+NqoC1iMXAEq3brY6HY8Ukp/pUWng==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/envelope": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/projection": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-7.2.0.tgz", + "integrity": "sha512-/qke5vJScv8Mu7a+fU3RSChBRijE6EVuFHU3RYihMuYm04Vw8dBMIs0enEpoq0ke/IjSbleIrGQNZIMRX9EwZQ==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/quadrat-analysis": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/quadrat-analysis/-/quadrat-analysis-7.2.0.tgz", + "integrity": "sha512-fDQh3+ldYNxUqS6QYlvJ7GZLlCeDZR6tD3ikdYtOsSemwW1n/4gm2xcgWJqy3Y0uszBwxc13IGGY7NGEjHA+0w==", + "license": "MIT", + "dependencies": { + "@turf/area": "^7.2.0", + "@turf/bbox": "^7.2.0", + "@turf/bbox-polygon": "^7.2.0", + "@turf/centroid": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/point-grid": "^7.2.0", + "@turf/random": "^7.2.0", + "@turf/square-grid": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/random": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/random/-/random-7.2.0.tgz", + "integrity": "sha512-fNXs5mOeXsrirliw84S8UCNkpm4RMNbefPNsuCTfZEXhcr1MuHMzq4JWKb4FweMdN1Yx2l/xcytkO0s71cJ50w==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/rectangle-grid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-7.2.0.tgz", + "integrity": "sha512-f0o5ifvy0Ml/nHDJzMNcuSk4h11aa3BfvQNnYQhLpuTQu03j/ICZNlzKTLxwjcUqvxADUifty7Z9CX5W6zky4A==", + "license": "MIT", + "dependencies": { + "@turf/boolean-intersects": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/rewind": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-7.2.0.tgz", + "integrity": "sha512-SZpRAZiZsE22+HVz6pEID+ST25vOdpAMGk5NO1JeqzhpMALIkIGnkG+xnun2CfYHz7wv8/Z0ADiAvei9rkcQYA==", + "license": "MIT", + "dependencies": { + "@turf/boolean-clockwise": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/rhumb-bearing": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-7.2.0.tgz", + "integrity": "sha512-jbdexlrR8X2ZauUciHx3tRwG+BXoMXke4B8p8/IgDlAfIrVdzAxSQN89FMzIKnjJ/kdLjo9bFGvb92bu31Etug==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/rhumb-destination": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-7.2.0.tgz", + "integrity": "sha512-U9OLgLAHlH4Wfx3fBZf3jvnkDjdTcfRan5eI7VPV1+fQWkOteATpzkiRjCvSYK575GljVwWBjkKca8LziGWitQ==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/rhumb-distance": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-7.2.0.tgz", + "integrity": "sha512-NsijTPON1yOc9tirRPEQQuJ5aQi7pREsqchQquaYKbHNWsexZjcDi4wnw2kM3Si4XjmgynT+2f7aXH7FHarHzw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/sample": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-7.2.0.tgz", + "integrity": "sha512-f+ZbcbQJ9glQ/F26re8LadxO0ORafy298EJZe6XtbctRTJrNus6UNAsl8+GYXFqMnXM22tbTAznnJX3ZiWNorA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/sector": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-7.2.0.tgz", + "integrity": "sha512-zL06MjbbMG4DdpiNz+Q9Ax8jsCekt3R76uxeWShulAGkyDB5smdBOUDoRwxn05UX7l4kKv4Ucq2imQXhxKFd1w==", + "license": "MIT", + "dependencies": { + "@turf/circle": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/line-arc": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/shortest-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-7.2.0.tgz", + "integrity": "sha512-6fpx8feZ2jMSaeRaFdqFShGWkNb+veUOeyLFSHA/aRD9n/e9F2pWZoRbQWKbKTpcKFJ2FnDEqCZnh/GrcAsqWA==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/bbox-polygon": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/clean-coords": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/transform-scale": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/simplify": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-7.2.0.tgz", + "integrity": "sha512-9YHIfSc8BXQfi5IvEMbCeQYqNch0UawIGwbboJaoV8rodhtk6kKV2wrpXdGqk/6Thg6/RWvChJFKVVTjVrULyQ==", + "license": "MIT", + "dependencies": { + "@turf/clean-coords": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/square": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/square/-/square-7.2.0.tgz", + "integrity": "sha512-9pMoAGFvqzCDOlO9IRSSBCGXKbl8EwMx6xRRBMKdZgpS0mZgfm9xiptMmx/t1m4qqHIlb/N+3MUF7iMBx6upcA==", + "license": "MIT", + "dependencies": { + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/square-grid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-7.2.0.tgz", + "integrity": "sha512-EmzGXa90hz+tiCOs9wX+Lak6pH0Vghb7QuX6KZej+pmWi3Yz7vdvQLmy/wuN048+wSkD5c8WUo/kTeNDe7GnmA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/rectangle-grid": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/standard-deviational-ellipse": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-7.2.0.tgz", + "integrity": "sha512-+uC0pR2nRjm90JvMXe/2xOCZsYV2II1ZZ2zmWcBWv6bcFXBspcxk2QfCC3k0bj6jDapELzoQgnn3cG5lbdQV2w==", + "license": "MIT", + "dependencies": { + "@turf/center-mean": "^7.2.0", + "@turf/ellipse": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/points-within-polygon": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/tag": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-7.2.0.tgz", + "integrity": "sha512-TAFvsbp5TCBqXue8ui+CtcLsPZ6NPC88L8Ad6Hb/R6VAi21qe0U42WJHQYXzWmtThoTNwxi+oKSeFbRDsr0FIA==", + "license": "MIT", + "dependencies": { + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/tesselate": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-7.2.0.tgz", + "integrity": "sha512-zHGcG85aOJJu1seCm+CYTJ3UempX4Xtyt669vFG6Hbr/Hc7ii6STQ2ysFr7lJwFtU9uyYhphVrrgwIqwglvI/Q==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "earcut": "^2.2.4", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/tesselate/node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "license": "ISC" + }, + "node_modules/@turf/tin": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-7.2.0.tgz", + "integrity": "sha512-y24Vt3oeE6ZXvyLJamP0Ke02rPlDGE9gF7OFADnR0mT+2uectb0UTIBC3kKzON80TEAlA3GXpKFkCW5Fo/O/Kg==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/transform-rotate": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-7.2.0.tgz", + "integrity": "sha512-EMCj0Zqy3cF9d3mGRqDlYnX2ZBXe3LgT+piDR0EuF5c5sjuKErcFcaBIsn/lg1gp4xCNZFinkZ3dsFfgGHf6fw==", + "license": "MIT", + "dependencies": { + "@turf/centroid": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/rhumb-bearing": "^7.2.0", + "@turf/rhumb-destination": "^7.2.0", + "@turf/rhumb-distance": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/transform-scale": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-7.2.0.tgz", + "integrity": "sha512-HYB+pw938eeI8s1/zSWFy6hq+t38fuUaBb0jJsZB1K9zQ1WjEYpPvKF/0//80zNPlyxLv3cOkeBucso3hzI07A==", + "license": "MIT", + "dependencies": { + "@turf/bbox": "^7.2.0", + "@turf/center": "^7.2.0", + "@turf/centroid": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/rhumb-bearing": "^7.2.0", + "@turf/rhumb-destination": "^7.2.0", + "@turf/rhumb-distance": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/transform-translate": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-7.2.0.tgz", + "integrity": "sha512-zAglR8MKCqkzDTjGMIQgbg/f+Q3XcKVzr9cELw5l9CrS1a0VTSDtBZLDm0kWx0ankwtam7ZmI2jXyuQWT8Gbug==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/rhumb-destination": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/triangle-grid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-7.2.0.tgz", + "integrity": "sha512-4gcAqWKh9hg6PC5nNSb9VWyLgl821cwf9yR9yEzQhEFfwYL/pZONBWCO1cwVF23vSYMSMm+/TwqxH4emxaArfw==", + "license": "MIT", + "dependencies": { + "@turf/distance": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/intersect": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/truncate": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-7.2.0.tgz", + "integrity": "sha512-jyFzxYbPugK4XjV5V/k6Xr3taBjjvo210IbPHJXw0Zh7Y6sF+hGxeRVtSuZ9VP/6oRyqAOHKUrze+OOkPqBgUg==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/turf": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-7.2.0.tgz", + "integrity": "sha512-G1kKBu4hYgoNoRJgnpJohNuS7bLnoWHZ2G/4wUMym5xOSiYah6carzdTEsMoTsauyi7ilByWHx5UHwbjjCVcBw==", + "license": "MIT", + "dependencies": { + "@turf/along": "^7.2.0", + "@turf/angle": "^7.2.0", + "@turf/area": "^7.2.0", + "@turf/bbox": "^7.2.0", + "@turf/bbox-clip": "^7.2.0", + "@turf/bbox-polygon": "^7.2.0", + "@turf/bearing": "^7.2.0", + "@turf/bezier-spline": "^7.2.0", + "@turf/boolean-clockwise": "^7.2.0", + "@turf/boolean-concave": "^7.2.0", + "@turf/boolean-contains": "^7.2.0", + "@turf/boolean-crosses": "^7.2.0", + "@turf/boolean-disjoint": "^7.2.0", + "@turf/boolean-equal": "^7.2.0", + "@turf/boolean-intersects": "^7.2.0", + "@turf/boolean-overlap": "^7.2.0", + "@turf/boolean-parallel": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/boolean-point-on-line": "^7.2.0", + "@turf/boolean-touches": "^7.2.0", + "@turf/boolean-valid": "^7.2.0", + "@turf/boolean-within": "^7.2.0", + "@turf/buffer": "^7.2.0", + "@turf/center": "^7.2.0", + "@turf/center-mean": "^7.2.0", + "@turf/center-median": "^7.2.0", + "@turf/center-of-mass": "^7.2.0", + "@turf/centroid": "^7.2.0", + "@turf/circle": "^7.2.0", + "@turf/clean-coords": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/clusters": "^7.2.0", + "@turf/clusters-dbscan": "^7.2.0", + "@turf/clusters-kmeans": "^7.2.0", + "@turf/collect": "^7.2.0", + "@turf/combine": "^7.2.0", + "@turf/concave": "^7.2.0", + "@turf/convex": "^7.2.0", + "@turf/destination": "^7.2.0", + "@turf/difference": "^7.2.0", + "@turf/dissolve": "^7.2.0", + "@turf/distance": "^7.2.0", + "@turf/distance-weight": "^7.2.0", + "@turf/ellipse": "^7.2.0", + "@turf/envelope": "^7.2.0", + "@turf/explode": "^7.2.0", + "@turf/flatten": "^7.2.0", + "@turf/flip": "^7.2.0", + "@turf/geojson-rbush": "^7.2.0", + "@turf/great-circle": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/hex-grid": "^7.2.0", + "@turf/interpolate": "^7.2.0", + "@turf/intersect": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@turf/isobands": "^7.2.0", + "@turf/isolines": "^7.2.0", + "@turf/kinks": "^7.2.0", + "@turf/length": "^7.2.0", + "@turf/line-arc": "^7.2.0", + "@turf/line-chunk": "^7.2.0", + "@turf/line-intersect": "^7.2.0", + "@turf/line-offset": "^7.2.0", + "@turf/line-overlap": "^7.2.0", + "@turf/line-segment": "^7.2.0", + "@turf/line-slice": "^7.2.0", + "@turf/line-slice-along": "^7.2.0", + "@turf/line-split": "^7.2.0", + "@turf/line-to-polygon": "^7.2.0", + "@turf/mask": "^7.2.0", + "@turf/meta": "^7.2.0", + "@turf/midpoint": "^7.2.0", + "@turf/moran-index": "^7.2.0", + "@turf/nearest-neighbor-analysis": "^7.2.0", + "@turf/nearest-point": "^7.2.0", + "@turf/nearest-point-on-line": "^7.2.0", + "@turf/nearest-point-to-line": "^7.2.0", + "@turf/planepoint": "^7.2.0", + "@turf/point-grid": "^7.2.0", + "@turf/point-on-feature": "^7.2.0", + "@turf/point-to-line-distance": "^7.2.0", + "@turf/point-to-polygon-distance": "^7.2.0", + "@turf/points-within-polygon": "^7.2.0", + "@turf/polygon-smooth": "^7.2.0", + "@turf/polygon-tangents": "^7.2.0", + "@turf/polygon-to-line": "^7.2.0", + "@turf/polygonize": "^7.2.0", + "@turf/projection": "^7.2.0", + "@turf/quadrat-analysis": "^7.2.0", + "@turf/random": "^7.2.0", + "@turf/rectangle-grid": "^7.2.0", + "@turf/rewind": "^7.2.0", + "@turf/rhumb-bearing": "^7.2.0", + "@turf/rhumb-destination": "^7.2.0", + "@turf/rhumb-distance": "^7.2.0", + "@turf/sample": "^7.2.0", + "@turf/sector": "^7.2.0", + "@turf/shortest-path": "^7.2.0", + "@turf/simplify": "^7.2.0", + "@turf/square": "^7.2.0", + "@turf/square-grid": "^7.2.0", + "@turf/standard-deviational-ellipse": "^7.2.0", + "@turf/tag": "^7.2.0", + "@turf/tesselate": "^7.2.0", + "@turf/tin": "^7.2.0", + "@turf/transform-rotate": "^7.2.0", + "@turf/transform-scale": "^7.2.0", + "@turf/transform-translate": "^7.2.0", + "@turf/triangle-grid": "^7.2.0", + "@turf/truncate": "^7.2.0", + "@turf/union": "^7.2.0", + "@turf/unkink-polygon": "^7.2.0", + "@turf/voronoi": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/union": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/union/-/union-7.2.0.tgz", + "integrity": "sha512-Xex/cfKSmH0RZRWSJl4RLlhSmEALVewywiEXcu0aIxNbuZGTcpNoI0h4oLFrE/fUd0iBGFg/EGLXRL3zTfpg6g==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/unkink-polygon": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-7.2.0.tgz", + "integrity": "sha512-dFPfzlIgkEr15z6oXVxTSWshWi51HeITGVFtl1GAKGMtiXJx1uMqnfRsvljqEjaQu/4AzG1QAp3b+EkSklQSiQ==", + "license": "MIT", + "dependencies": { + "@turf/area": "^7.2.0", + "@turf/boolean-point-in-polygon": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "rbush": "^3.0.1", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/unkink-polygon/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@turf/unkink-polygon/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/@turf/voronoi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-7.2.0.tgz", + "integrity": "sha512-3K6N0LtJsWTXxPb/5N2qD9e8f4q8+tjTbGV3lE3v8x06iCnNlnuJnqM5NZNPpvgvCatecBkhClO3/3RndE61Fw==", + "license": "MIT", + "dependencies": { + "@turf/clone": "^7.2.0", + "@turf/helpers": "^7.2.0", + "@turf/invariant": "^7.2.0", + "@types/d3-voronoi": "^1.1.12", + "@types/geojson": "^7946.0.10", + "d3-voronoi": "1.1.2", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, + "node_modules/@types/brotli": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/brotli/-/brotli-1.3.4.tgz", + "integrity": "sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/crypto-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", + "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", + "license": "MIT" + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.4.5.tgz", + "integrity": "sha512-5sNP3DmtSnSozxcjqmzQKsDOuVJXZkceo1KJScDc1982kk/TS9mTPc6lpli1gTu1MIBF1YWutpHpjucNWcIj5g==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", + "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-time": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", + "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==", + "license": "MIT" + }, + "node_modules/@types/d3-voronoi": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.12.tgz", + "integrity": "sha512-DauBl25PKZZ0WVJr42a6CNvI6efsdzofl9sajqZr2Gf5Gu733WkDdUGiPkUHXiUvYGzNNlFQde2wdZdfQPG+yw==", + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", + "license": "MIT" + }, "node_modules/@types/hast": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", @@ -2854,6 +7754,18 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/offscreencanvas": { + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", + "license": "MIT" + }, + "node_modules/@types/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==", + "license": "MIT" + }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", @@ -2866,6 +7778,12 @@ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", "license": "MIT" }, + "node_modules/@types/rbush": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz", + "integrity": "sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==", + "license": "MIT" + }, "node_modules/@types/react": { "version": "19.1.12", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", @@ -3938,6 +8856,58 @@ "npm": ">=6" } }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -3974,6 +8944,15 @@ ], "license": "MIT" }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4039,6 +9018,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -4083,6 +9069,16 @@ "node": ">=8" } }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.1.2" + } + }, "node_modules/browserslist": { "version": "4.25.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", @@ -4115,6 +9111,15 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buf-compare": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", + "integrity": "sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -4256,6 +9261,15 @@ "cdl": "bin/cdl.js" } }, + "node_modules/cartocolor": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-5.0.2.tgz", + "integrity": "sha512-Ihb/wU5V6BVbHwapd8l/zg7bnhZ4YPFVfa7quSpL86lfkPJSf4YuNBT+EvesPRP5vSqhl6vZVsQJwCR8alBooQ==", + "license": "CC-BY-4.0", + "dependencies": { + "colorbrewer": "1.5.6" + } + }, "node_modules/ccount": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", @@ -4340,6 +9354,24 @@ "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", "license": "MIT" }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -4502,6 +9534,17 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/colorbrewer": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-1.5.6.tgz", + "integrity": "sha512-fONg2pGXyID8zNgKHBlagW8sb/AMShGzj4rRJfz5biZ7iuHQZYquSCLE/Co1oSQFmt/vvwjyezJCejQl7FG/tg==", + "license": [ + { + "type": "Apache-Style", + "url": "https://github.com/saikocat/colorbrewer/blob/master/LICENSE.txt" + } + ] + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -4551,6 +9594,33 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/concaveman": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.1.tgz", + "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==", + "license": "ISC", + "dependencies": { + "point-in-polygon": "^1.1.0", + "rbush": "^3.0.1", + "robust-predicates": "^2.0.4", + "tinyqueue": "^2.0.3" + } + }, + "node_modules/concaveman/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/concaveman/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, "node_modules/conf": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", @@ -4617,6 +9687,39 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "license": "MIT" }, + "node_modules/core-assert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", + "integrity": "sha512-IG97qShIP+nrJCXMCgkNZgH7jZQ4n8RpPyPeXX++T6avR/KhLhgLiHKoEn5Rc1KjfycSfA9DMa6m+4C4eguHhw==", + "license": "MIT", + "dependencies": { + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", + "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -4687,12 +9790,222 @@ "node": ">= 8" } }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, + "node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", + "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1" + } + }, + "node_modules/d3-hexbin": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/d3-hexbin/-/d3-hexbin-0.2.2.tgz", + "integrity": "sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale/node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time/node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-voronoi": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", + "integrity": "sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==", + "license": "BSD-3-Clause" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -4804,6 +10117,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/deck.gl": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/deck.gl/-/deck.gl-9.1.14.tgz", + "integrity": "sha512-y6gBkHlGU5XpxnNOy5POE9oA1m6GAJURvB9cBgRAcnDidVfpY4VZT75a5034T09fKBQK0zB/kzHs/2VGZrfrWw==", + "license": "MIT", + "dependencies": { + "@deck.gl/aggregation-layers": "9.1.14", + "@deck.gl/arcgis": "9.1.14", + "@deck.gl/carto": "9.1.14", + "@deck.gl/core": "9.1.14", + "@deck.gl/extensions": "9.1.14", + "@deck.gl/geo-layers": "9.1.14", + "@deck.gl/google-maps": "9.1.14", + "@deck.gl/json": "9.1.14", + "@deck.gl/layers": "9.1.14", + "@deck.gl/mapbox": "9.1.14", + "@deck.gl/mesh-layers": "9.1.14", + "@deck.gl/react": "9.1.14", + "@deck.gl/widgets": "9.1.14", + "@loaders.gl/core": "^4.2.0", + "@luma.gl/core": "~9.1.9", + "@luma.gl/engine": "~9.1.9" + }, + "peerDependencies": { + "@arcgis/core": "^4.0.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "@arcgis/core": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", @@ -4826,6 +10179,18 @@ "dev": true, "license": "MIT" }, + "node_modules/deep-strict-equal": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz", + "integrity": "sha512-3daSWyvZ/zwJvuMGlzG1O+Ow0YSadGfb3jsh9xoCutv2tWyB9dA4YvR9L9/fSdDZa2dByYQe+TqapSGUrjnkoA==", + "license": "MIT", + "dependencies": { + "core-assert": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -4916,7 +10281,6 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8" } @@ -5011,6 +10375,17 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/dot-prop": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", @@ -5038,6 +10413,12 @@ "url": "https://dotenvx.com" } }, + "node_modules/draco3d": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", + "license": "Apache-2.0" + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -5052,6 +10433,12 @@ "node": ">= 0.4" } }, + "node_modules/earcut": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", + "license": "ISC" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -5091,6 +10478,19 @@ "node": ">= 0.8" } }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -5813,6 +11213,13 @@ "node": ">=4.0" } }, + "node_modules/esri-loader": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.7.0.tgz", + "integrity": "sha512-cB1Sw9EQjtW4mtT7eFBjn/6VaaIWNTjmTd2asnnEyuZk1xVSFRMCfLZSBSjZM7ZarDcVu5WIjOP0t0MYVu4hVQ==", + "deprecated": "Use @arcgis/core instead.", + "license": "Apache-2.0" + }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", @@ -6035,6 +11442,24 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-parser": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.1.1" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -6062,6 +11487,12 @@ } } }, + "node_modules/fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", + "license": "MIT" + }, "node_modules/figlet": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.9.0.tgz", @@ -6485,6 +11916,58 @@ "node": ">=6.9.0" } }, + "node_modules/geojson-equality-ts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/geojson-equality-ts/-/geojson-equality-ts-1.0.2.tgz", + "integrity": "sha512-h3Ryq+0mCSN/7yLs0eDgrZhvc9af23o/QuC4aTiuuzP/MRCtd6mf5rLsLRY44jX0RPUfM8c4GqERQmlUxPGPoQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "^7946.0.14" + } + }, + "node_modules/geojson-polygon-self-intersections": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/geojson-polygon-self-intersections/-/geojson-polygon-self-intersections-1.2.1.tgz", + "integrity": "sha512-/QM1b5u2d172qQVO//9CGRa49jEmclKEsYOQmWP9ooEjj63tBM51m2805xsbxkzlEELQ2REgTf700gUhhlegxA==", + "license": "MIT", + "dependencies": { + "rbush": "^2.0.1" + } + }, + "node_modules/geojson-polygon-self-intersections/node_modules/quickselect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", + "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==", + "license": "ISC" + }, + "node_modules/geojson-polygon-self-intersections/node_modules/rbush": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", + "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", + "license": "MIT", + "dependencies": { + "quickselect": "^1.0.1" + } + }, + "node_modules/geotiff": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", + "integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==", + "license": "MIT", + "dependencies": { + "@petamoriken/float16": "^3.4.7", + "lerc": "^3.0.0", + "pako": "^2.0.4", + "parse-headers": "^2.0.2", + "quick-lru": "^6.1.1", + "web-worker": "^1.2.0", + "xml-utils": "^1.0.2", + "zstddec": "^0.1.0" + }, + "engines": { + "node": ">=10.19" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -6565,6 +12048,12 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, "node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -6746,6 +12235,17 @@ "node": ">=0.10.0" } }, + "node_modules/h3-js": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.3.0.tgz", + "integrity": "sha512-zgvyHZz5bEKeuyYGh0bF9/kYSxJ2SqroopkXHqKnD3lfjaZawcxulcI9nWbNC54gakl/2eObRLHWueTf1iLSaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=4", + "npm": ">=3", + "yarn": ">=1.3.0" + } + }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", @@ -7009,6 +12509,24 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -7140,6 +12658,15 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -7369,6 +12896,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "license": "MIT" + }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -7778,6 +13311,15 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jiti": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", + "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/jose": { "version": "4.15.9", "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", @@ -7855,6 +13397,15 @@ } } }, + "node_modules/jsep": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-0.3.5.tgz", + "integrity": "sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -7926,6 +13477,15 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsts": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/jsts/-/jsts-2.7.1.tgz", + "integrity": "sha512-x2wSZHEBK20CY+Wy+BPE7MrFQHW6sIsdaGUMEqmGAio+3gFzQaBYPwLRonUfQf9Ak8pBieqj9tUofX1+WtAEIg==", + "license": "(EDL-1.0 OR EPL-1.0)", + "engines": { + "node": ">= 12" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -7942,6 +13502,60 @@ "node": ">=4.0" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/kbar": { "version": "0.1.0-beta.40", "resolved": "https://registry.npmjs.org/kbar/-/kbar-0.1.0-beta.40.tgz", @@ -7978,6 +13592,12 @@ "node": ">=0.10.0" } }, + "node_modules/ktx-parse": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.7.1.tgz", + "integrity": "sha512-FeA3g56ksdFNwjXJJsc1CCc7co+AJYDp6ipIp878zZ2bU8kWROatLYf39TQEd4/XRSUvBXovQ8gaVKWPXsCLEQ==", + "license": "MIT" + }, "node_modules/language-subtag-registry": { "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", @@ -7998,6 +13618,12 @@ "node": ">=0.10" } }, + "node_modules/lerc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", + "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==", + "license": "Apache-2.0" + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -8012,6 +13638,243 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -8082,6 +13945,13 @@ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", "license": "MIT" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -8105,6 +13975,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.6" + } + }, "node_modules/longest": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", @@ -8136,12 +14015,44 @@ "loose-envify": "cli.js" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, + "node_modules/lz4js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz", + "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg==", + "license": "ISC", + "optional": true + }, + "node_modules/lzo-wasm": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/lzo-wasm/-/lzo-wasm-0.0.4.tgz", + "integrity": "sha512-VKlnoJRFrB8SdJhlVKvW5vI1gGwcZ+mvChEXcSX6r2xDNc/Q2FD9esfBmGCuPZdrJ1feO+YcVFd2PTk0c137Gw==", + "license": "BSD-2-Clause" + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -8164,6 +14075,12 @@ "semver": "bin/semver" } }, + "node_modules/marchingsquares": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/marchingsquares/-/marchingsquares-1.3.3.tgz", + "integrity": "sha512-gz6nNQoVK7Lkh2pZulrT4qd4347S/toG9RXH2pyzhLgkL5mLkBoqgv4EvAGXcV0ikDW72n/OQb3Xe8bGagQZCg==", + "license": "AGPL-3.0" + }, "node_modules/markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", @@ -8242,6 +14159,23 @@ "node": ">= 0.4" } }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, "node_modules/mdast-util-definitions": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", @@ -8407,6 +14341,13 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -8640,6 +14581,24 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mjolnir.js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-3.0.0.tgz", + "integrity": "sha512-siX3YCG7N2HnmN1xMH3cK4JkUZJhbkhRFJL+G5N1vH0mh1t5088rJknIoqDFWDIU6NPGvRRgLnYW3ZHjSMEBLA==", + "license": "MIT" + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -8652,6 +14611,27 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.48", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", + "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -8804,6 +14784,45 @@ } } }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/node-emoji": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", @@ -8969,6 +14988,19 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/oauth": { "version": "0.9.15", "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", @@ -9114,6 +15146,23 @@ "node": "^10.13.0 || >=12.0.0" } }, + "node_modules/ol": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/ol/-/ol-10.6.1.tgz", + "integrity": "sha512-xp174YOwPeLj7c7/8TCIEHQ4d41tgTDDhdv6SqNdySsql5/MaFJEJkjlsYcvOPt7xA6vrum/QG4UdJ0iCGT1cg==", + "license": "BSD-2-Clause", + "dependencies": { + "@types/rbush": "4.0.0", + "earcut": "^3.0.0", + "geotiff": "^2.1.3", + "pbf": "4.0.1", + "rbush": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openlayers" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -9302,6 +15351,12 @@ "integrity": "sha512-iePyefLTOm2gEzbaZKSW+eBMjg+UYsQvUKxmvGXAQ987K16efBg10MxIjZs08iyX+DY2/owKY9DIdu193kX33w==", "license": "MIT" }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, "node_modules/papaparse": { "version": "5.5.3", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", @@ -9338,6 +15393,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "license": "MIT" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -9441,6 +15502,18 @@ "node": ">=8" } }, + "node_modules/pbf": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz", + "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==", + "license": "BSD-3-Clause", + "dependencies": { + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -9632,6 +15705,37 @@ "node": ">=4" } }, + "node_modules/point-in-polygon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", + "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", + "license": "MIT" + }, + "node_modules/point-in-polygon-hao": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/point-in-polygon-hao/-/point-in-polygon-hao-1.2.4.tgz", + "integrity": "sha512-x2pcvXeqhRHlNRdhLs/tgFapAbSSe86wa/eqmj1G6pWftbEs5aVRJhRGM6FYSUERKu0PjekJzMq0gsI2XyiclQ==", + "license": "MIT", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/point-in-polygon-hao/node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" + }, + "node_modules/polyclip-ts": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/polyclip-ts/-/polyclip-ts-0.16.8.tgz", + "integrity": "sha512-JPtKbDRuPEuAjuTdhR62Gph7Is2BS1Szx69CFOO3g71lpJDFo78k4tFyi+qFOMVPePEzdSKkpGU3NBXPHHjvKQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.1.0", + "splaytree-ts": "^1.0.2" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -9643,9 +15747,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -9662,9 +15766,9 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -9747,6 +15851,12 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -9796,6 +15906,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "license": "MIT" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -9840,6 +15956,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/quadbin": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/quadbin/-/quadbin-0.4.2.tgz", + "integrity": "sha512-1NFzjFVM23Um51/ttD6lFDqGtUHNS5Ky1slZHk3YPwMbC+7Jl3ULLb4QvDo6+Nerv8b8SgUV+ysOhziUh4B5cQ==", + "license": "MIT", + "dependencies": { + "@math.gl/web-mercator": "^4.1.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", @@ -9878,6 +16006,24 @@ ], "license": "MIT" }, + "node_modules/quick-lru": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", + "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -9902,6 +16048,15 @@ "node": ">= 0.8" } }, + "node_modules/rbush": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", + "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", + "license": "MIT", + "dependencies": { + "quickselect": "^3.0.0" + } + }, "node_modules/react": { "version": "19.1.1", "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", @@ -9939,6 +16094,15 @@ "react": "^16.8.0 || ^17 || ^18 || ^19" } }, + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "19.1.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz", @@ -10107,6 +16271,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -10128,6 +16312,44 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, "node_modules/remark-gfm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", @@ -10237,6 +16459,15 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -10308,6 +16539,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", + "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==", + "license": "Unlicense" + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -10638,6 +16875,12 @@ "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -10849,6 +17092,12 @@ "node": ">=8" } }, + "node_modules/skmeans": { + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", + "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==", + "license": "MIT" + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -10858,6 +17107,23 @@ "node": ">=8" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snappyjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/snappyjs/-/snappyjs-0.6.1.tgz", + "integrity": "sha512-YIK6I2lsH072UE0aOFxxY1dPDCS43I5ktqHpeAsuLNYWkE5pGxRGWfDM4/vSUfNzXjC1Ivzt3qx31PCLmc9yqg==", + "license": "MIT" + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -10937,6 +17203,12 @@ "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "license": "CC0-1.0" }, + "node_modules/splaytree-ts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/splaytree-ts/-/splaytree-ts-1.0.2.tgz", + "integrity": "sha512-0kGecIZNIReCSiznK3uheYB8sbstLjCZLiwcQwbmLhgHJj2gz6OnSPkVzJQCMnmEz1BQ4gPK59ylhBoEWOhGNA==", + "license": "BDS-3-Clause" + }, "node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", @@ -11225,6 +17497,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/style-to-object": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", @@ -11303,6 +17587,102 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/sweepline-intersections": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sweepline-intersections/-/sweepline-intersections-1.5.0.tgz", + "integrity": "sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ==", + "license": "MIT", + "dependencies": { + "tinyqueue": "^2.0.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", + "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", + "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/temp": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", @@ -11357,6 +17737,28 @@ "dev": true, "license": "MIT" }, + "node_modules/texture-compressor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/texture-compressor/-/texture-compressor-1.0.2.tgz", + "integrity": "sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.10", + "image-size": "^0.7.4" + }, + "bin": { + "texture-compressor": "bin/texture-compressor.js" + } + }, + "node_modules/texture-compressor/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -11399,6 +17801,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "license": "ISC" + }, "node_modules/tmp": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", @@ -11429,6 +17837,44 @@ "node": ">=0.6" } }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "license": "ISC", + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/topojson-server": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", + "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", + "license": "ISC", + "dependencies": { + "commander": "2" + }, + "bin": { + "geo2topo": "bin/geo2topo" + } + }, + "node_modules/topojson-server/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -11658,6 +18104,16 @@ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/unicode-emoji-modifier-base": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", @@ -11667,6 +18123,40 @@ "node": ">=4" } }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/unified": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", @@ -11966,12 +18456,24 @@ "defaults": "^1.0.3" } }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "license": "Apache-2.0" + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, + "node_modules/wgsl_reflect": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/wgsl_reflect/-/wgsl_reflect-1.2.3.tgz", + "integrity": "sha512-BQWBIsOn411M+ffBxmA6QRLvAOVbuz3Uk4NusxnqC1H7aeQcVLhdA3k2k/EFFFtqVjhz3z7JOOZF1a9hj2tv4Q==", + "license": "MIT" + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -12214,6 +18716,12 @@ } } }, + "node_modules/xml-utils": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", + "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==", + "license": "CC0-1.0" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -12250,6 +18758,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zstd-codec": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/zstd-codec/-/zstd-codec-0.1.5.tgz", + "integrity": "sha512-v3fyjpK8S/dpY/X5WxqTK3IoCnp/ZOLxn144GZVlNUjtwAchzrVo03h+oMATFhCIiJ5KTr4V3vDQQYz4RU684g==", + "license": "MIT", + "optional": true + }, + "node_modules/zstddec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", + "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", + "license": "MIT AND BSD-3-Clause" + }, "node_modules/zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/package.json b/package.json index 643e255..0a8c876 100644 --- a/package.json +++ b/package.json @@ -13,35 +13,44 @@ "refine": "refine" }, "dependencies": { - "@refinedev/cli": "^2.16.48", - "@refinedev/core": "^5.0.0", - "@refinedev/devtools": "^2.0.1", - "@refinedev/nextjs-router": "^7.0.0", - "@refinedev/kbar": "^2.0.0", - "next": "^15.2.4", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "@refinedev/simple-rest": "^6.0.0", - "@refinedev/mui": "^7.0.0", - "@refinedev/react-hook-form": "^5.0.0", - "@mui/icons-material": "^6.1.6", "@emotion/react": "^11.8.2", "@emotion/styled": "^11.8.1", + "@mui/icons-material": "^6.1.6", "@mui/lab": "^6.0.0-beta.14", "@mui/material": "^6.1.7", "@mui/x-data-grid": "^7.22.2", + "@refinedev/cli": "^2.16.48", + "@refinedev/core": "^5.0.0", + "@refinedev/devtools": "^2.0.1", + "@refinedev/kbar": "^2.0.0", + "@refinedev/mui": "^7.0.0", + "@refinedev/nextjs-router": "^7.0.0", + "@refinedev/react-hook-form": "^5.0.0", + "@refinedev/simple-rest": "^6.0.0", + "@tailwindcss/postcss": "^4.1.13", + "@turf/turf": "^7.2.0", + "clsx": "^2.1.1", + "deck.gl": "^9.1.14", "js-cookie": "^3.0.5", - "next-auth": "^4.24.5" + "next": "^15.2.4", + "next-auth": "^4.24.5", + "ol": "^10.6.1", + "postcss": "^8.5.6", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-icons": "^5.5.0", + "tailwindcss": "^4.1.13" }, "devDependencies": { + "@svgr/webpack": "^8.1.0", + "@types/js-cookie": "^3.0.6", + "@types/node": "^20", "@types/react": "^19.1.0", "@types/react-dom": "^19.1.0", - "@types/node": "^20", - "typescript": "^5.8.3", "cross-env": "^7.0.3", "eslint": "^8", "eslint-config-next": "^15.0.3", - "@types/js-cookie": "^3.0.6" + "typescript": "^5.8.3" }, "refine": { "projectId": "4LwOCL-BBaV29-qUYMAJ" diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..5f04293 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; + +export default config; \ No newline at end of file diff --git a/src/app/OlMap/Controls/BaseLayers.tsx b/src/app/OlMap/Controls/BaseLayers.tsx new file mode 100644 index 0000000..393d936 --- /dev/null +++ b/src/app/OlMap/Controls/BaseLayers.tsx @@ -0,0 +1,250 @@ +import React, { useState, useEffect } from "react"; +import { useMap } from "../MapComponent"; +import TileLayer from "ol/layer/Tile.js"; +import XYZ from "ol/source/XYZ.js"; +import mapboxOutdoors from "@assets/map/layers/mapbox-outdoors.png"; +import mapboxSatellite from "@assets/map/layers/mapbox-satellite.png"; +import mapboxSatelliteStreet from "@assets/map/layers/mapbox-satellite-streets.png"; +import mapboxStreets from "@assets/map/layers/mapbox-streets.png"; +import clsx from "clsx"; +import Group from "ol/layer/Group"; +import { MAPBOX_TOKEN } from "@config/config"; +import { TIANDITU_TOKEN } from "@config/config"; +const INITIAL_LAYER = "mapbox-outdoors"; + +const streetsLayer = new TileLayer({ + source: new XYZ({ + url: `https://api.mapbox.com/styles/v1/mapbox/streets-v12/tiles/256/{z}/{x}/{y}@2x?access_token=${MAPBOX_TOKEN}`, + tileSize: 512, + maxZoom: 20, + projection: "EPSG:3857", + attributions: + '数据来源:Mapbox & OpenStreetMap', + }), +}); +const outdoorsLayer = new TileLayer({ + source: new XYZ({ + url: `https://api.mapbox.com/styles/v1/mapbox/outdoors-v12/tiles/256/{z}/{x}/{y}@2x?access_token=${MAPBOX_TOKEN}`, + tileSize: 512, + maxZoom: 20, + projection: "EPSG:3857", + attributions: + '数据来源:Mapbox & OpenStreetMap', + }), +}); +const satelliteLayer = new TileLayer({ + source: new XYZ({ + url: `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/256/{z}/{x}/{y}@2x?access_token=${MAPBOX_TOKEN}`, + tileSize: 512, + maxZoom: 20, + projection: "EPSG:3857", + attributions: + '数据来源:Mapbox & OpenStreetMap', + }), +}); +const satelliteStreetsLayer = new TileLayer({ + source: new XYZ({ + url: `https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v12/tiles/256/{z}/{x}/{y}@2x?access_token=${MAPBOX_TOKEN}`, + tileSize: 512, + maxZoom: 20, + projection: "EPSG:3857", + attributions: + '数据来源:Mapbox & OpenStreetMap', + }), +}); + +const tiandituVectorLayer = new TileLayer({ + source: new XYZ({ + url: `https://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${TIANDITU_TOKEN}`, + projection: "EPSG:3857", + attributions: '数据来源:天地图', + }), +}); +const tiandituVectorAnnotationLayer = new TileLayer({ + source: new XYZ({ + url: `https://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${TIANDITU_TOKEN}`, + projection: "EPSG:3857", + attributions: '数据来源:天地图', + }), +}); +const tiandituImageLayer = new TileLayer({ + source: new XYZ({ + url: `https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${TIANDITU_TOKEN}`, + projection: "EPSG:3857", + attributions: '数据来源:天地图', + }), +}); +const tiandituImageAnnotationLayer = new TileLayer({ + source: new XYZ({ + url: `https://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${TIANDITU_TOKEN}`, + projection: "EPSG:3857", + attributions: '数据来源:天地图', + }), +}); +const tiandituVectorLayerGroup = new Group({ + layers: [tiandituVectorLayer, tiandituVectorAnnotationLayer], +}); +const tiandituImageLayerGroup = new Group({ + layers: [tiandituImageLayer, tiandituImageAnnotationLayer], +}); +const baseLayers = [ + { + id: "mapbox-outdoors", + name: "户外地图", + layer: outdoorsLayer, + // layer: tiandituVectorLayerGroup, + img: mapboxOutdoors.src, + }, + { + id: "mapbox-satellite", + name: "卫星地图", + layer: satelliteLayer, + // layer: tiandituImageLayerGroup, + img: mapboxSatellite.src, + }, + { + id: "mapbox-satellite-streets", + name: "卫星街道地图", + layer: satelliteStreetsLayer, + img: mapboxSatelliteStreet.src, + }, + { + id: "mapbox-streets", + name: "街道地图", + layer: streetsLayer, + img: mapboxStreets.src, + }, +]; + +const BaseLayers: React.FC = () => { + const map = useMap(); + // 切换底图选项展开,控制显示和卸载 + const [isShow, setShow] = useState(false); + const [isExpanded, setExpanded] = useState(false); + // 快速切换底图 + const [activeId, setActiveId] = useState(INITIAL_LAYER); + + // 初始化默认底图 + useEffect(() => { + if (!map) return; + // 添加所有底图至地图并根据 activeId 控制可见性 + baseLayers.forEach((layerInfo) => { + const layers = map.getLayers().getArray(); + if (!layers.includes(layerInfo.layer)) { + map.getLayers().insertAt(0, layerInfo.layer); + } + layerInfo.layer.setVisible(layerInfo.id === activeId); + }); + }, [map]); + + const changeMapLayers = (id: string) => { + if (map) { + // 根据 id 设置每个图层的可见性 + baseLayers.forEach(({ id: lid, layer }) => { + layer.setVisible(lid === id); + }); + } + }; + + const handleQuickSwitch = () => { + const nextId = + activeId === baseLayers[0].id ? baseLayers[1].id : baseLayers[0].id; + setActiveId(nextId); + handleMapLayers(nextId); + }; + + const handleMapLayers = (id: string) => { + setActiveId(id); + changeMapLayers(id); + }; + + // 记录定时器,避免多次触发 + const hideTimer = React.useRef(null); + + const handleEnter = () => { + if (hideTimer.current) { + clearTimeout(hideTimer.current); + hideTimer.current = null; + } + setShow(true); + setExpanded(true); + }; + + const handleLeave = () => { + setShow(false); + hideTimer.current = setTimeout(() => { + setExpanded(false); + }, 300); + }; + + return ( +
+
+
+ +
+
+ {isExpanded && ( +
+ {baseLayers.map((item) => ( + + ))} +
+ )} +
+ ); +}; + +export default BaseLayers; diff --git a/src/app/OlMap/Controls/DrawPanel.tsx b/src/app/OlMap/Controls/DrawPanel.tsx new file mode 100644 index 0000000..fc4c129 --- /dev/null +++ b/src/app/OlMap/Controls/DrawPanel.tsx @@ -0,0 +1,382 @@ +import React, { useState, useEffect, useCallback, useRef } from "react"; +import ToolbarButton from "@components/olmap/common/ToolbarButton"; + +// 导入Material-UI图标 +import BackHandOutlinedIcon from "@mui/icons-material/BackHandOutlined"; +import BorderColorOutlinedIcon from "@mui/icons-material/BorderColorOutlined"; +import MoreHorizOutlinedIcon from "@mui/icons-material/MoreHorizOutlined"; +import TimelineIcon from "@mui/icons-material/Timeline"; +import CircleOutlinedIcon from "@mui/icons-material/CircleOutlined"; +import CheckBoxOutlineBlankIcon from "@mui/icons-material/CheckBoxOutlineBlank"; +import GestureIcon from "@mui/icons-material/Gesture"; +import UndoIcon from "@mui/icons-material/Undo"; +import RedoIcon from "@mui/icons-material/Redo"; +import DeleteIcon from "@mui/icons-material/Delete"; +import SaveIcon from "@mui/icons-material/Save"; + +// 导入OpenLayers绘图相关模块 +import Draw, { + DrawEvent, + createBox, + GeometryFunction, +} from "ol/interaction/Draw"; +import VectorSource from "ol/source/Vector"; +import VectorLayer from "ol/layer/Vector"; +import { Style, Stroke, Fill, Circle } from "ol/style"; +import { Geometry } from "ol/geom"; +import Feature from "ol/Feature"; +import { Type as GeometryType } from "ol/geom/Geometry"; +import { useMap } from "../MapComponent"; + +const DrawPanel: React.FC = () => { + const map = useMap(); + const [activeTool, setActiveTool] = useState("pan"); + const [drawLayer, setDrawLayer] = useState | null>( + null + ); + const [drawnFeatures, setDrawnFeatures] = useState[]>([]); + const [historyStack, setHistoryStack] = useState[][]>([]); + const [historyIndex, setHistoryIndex] = useState(-1); + + const drawInteractionRef = useRef(null); + + // 创建并添加绘图图层 + useEffect(() => { + if (!map) return; + const drawSource = new VectorSource(); + const drawVectorLayer = new VectorLayer({ + source: drawSource, + style: new Style({ + stroke: new Stroke({ + color: `rgba(255, 152, 0, 0.9)`, + width: 2, + }), + fill: new Fill({ + color: `rgba(255, 152, 0, 0.3)`, + }), + image: new Circle({ + radius: 7, + stroke: new Stroke({ + color: `rgba(255, 152, 0, 0.9)`, + width: 2, + }), + fill: new Fill({ + color: `rgba(255, 152, 0, 0.3)`, + }), + }), + }), + }); + + map.addLayer(drawVectorLayer); + setDrawLayer(drawVectorLayer); + + return () => { + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + drawInteractionRef.current = null; + } + map.removeLayer(drawVectorLayer); + }; + }, [map, drawInteractionRef]); + + // 保存到历史记录 + const saveToHistory = useCallback( + (features: Feature[]) => { + setHistoryStack((prevStack) => { + const newHistory = prevStack.slice(0, historyIndex + 1); + newHistory.push([...features]); + setHistoryIndex(newHistory.length - 1); + return newHistory; + }); + }, + [historyIndex] + ); + + // 添加绘图交互 + const addDrawInteraction = ( + type: GeometryType, + geometryFunction?: GeometryFunction + ) => { + if (!drawLayer) return; + if (!map) return; + + // 清除现有的绘图交互 + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + } + + const source = drawLayer.getSource(); + if (!source) return; + + const drawOptions: { + source: VectorSource; + type: GeometryType; + style: Style; + geometryFunction?: GeometryFunction; + } = { + source: source, + type: type, + style: new Style({ + stroke: new Stroke({ + color: `rgba(255, 152, 0, 0.9)`, + width: 2, + }), + fill: new Fill({ + color: `rgba(255, 152, 0, 0.3)`, + }), + image: new Circle({ + radius: 7, + stroke: new Stroke({ + color: `rgba(255, 152, 0, 0.9)`, + width: 2, + }), + fill: new Fill({ + color: `rgba(255, 152, 0, 0.3)`, + }), + }), + }), + }; + + // 如果有几何函数,添加它 + if (geometryFunction) { + drawOptions.geometryFunction = geometryFunction; + } + + const draw = new Draw(drawOptions); + + // 绘图完成事件 + draw.on("drawend", (event: DrawEvent) => { + const feature = event.feature; + const currentFeatures = [...drawnFeatures, feature]; + setDrawnFeatures(currentFeatures); + saveToHistory(currentFeatures); + }); + + map.addInteraction(draw); + drawInteractionRef.current = draw; + }; + + // 处理工具点击 + const handleToolClick = (tool: string) => { + // 如果点击的是当前激活的工具,则取消激活 + // console.log("当前激活的工具:", activeTool); + // console.log("点击的工具:", tool); + if (activeTool === tool) { + setActiveTool(""); + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + drawInteractionRef.current = null; + } + return; + } + if ( + tool !== "undo" && + tool !== "redo" && + tool !== "delete" && + tool !== "save" + ) { + setActiveTool(tool); + } + // 根据工具类型处理不同的交互 + switch (tool) { + case "pan": + // 平移地图,移除所有绘图交互 + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + drawInteractionRef.current = null; + } + break; + case "select": + // 选定要素,移除所有绘图交互 + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + drawInteractionRef.current = null; + } + break; + case "edit": + // 编辑要素,移除所有绘图交互 + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + drawInteractionRef.current = null; + } + break; + case "point": + addDrawInteraction("Point"); + break; + case "line": + addDrawInteraction("LineString"); + break; + case "circle": + addDrawInteraction("Circle"); + break; + case "box": + // 使用矩形绘制函数 + addDrawInteraction("Circle", createBox()); + break; + case "polygon": + addDrawInteraction("Polygon"); + break; + case "undo": + handleUndo(); + break; + case "redo": + handleRedo(); + break; + case "delete": + handleDelete(); + break; + case "save": + handleSave(); + break; + default: + if (drawInteractionRef.current && map) { + map.removeInteraction(drawInteractionRef.current); + drawInteractionRef.current = null; + } + } + }; + + // 撤销功能 + const handleUndo = () => { + if (historyIndex > 0) { + const newIndex = historyIndex - 1; + const previousFeatures = historyStack[newIndex]; + updateDrawLayer(previousFeatures); + setDrawnFeatures(previousFeatures); + setHistoryIndex(newIndex); + } + }; + + // 重做功能 + const handleRedo = () => { + if (historyIndex < historyStack.length - 1) { + const newIndex = historyIndex + 1; + const nextFeatures = historyStack[newIndex]; + updateDrawLayer(nextFeatures); + setDrawnFeatures(nextFeatures); + setHistoryIndex(newIndex); + } + }; + + // 删除所有绘制的要素 + const handleDelete = () => { + if (!drawLayer) return; + + const source = drawLayer.getSource(); + if (source) { + source.clear(); + const emptyFeatures: Feature[] = []; + setDrawnFeatures(emptyFeatures); + saveToHistory(emptyFeatures); + } + }; + + // 保存绘制的要素 + const handleSave = () => {}; + + // 更新绘图图层 + const updateDrawLayer = (features: Feature[]) => { + if (!drawLayer) return; + + const source = drawLayer.getSource(); + if (source) { + source.clear(); + source.addFeatures(features); + } + }; + + // 初始化历史记录 + useEffect(() => { + // 初始化空的历史记录 + if (historyStack.length === 0) { + saveToHistory([]); + } + }, [historyStack.length, saveToHistory]); + + // 判断按钮是否应该禁用 + const isUndoDisabled = historyIndex <= 0; + const isRedoDisabled = historyIndex >= historyStack.length - 1; + const isDeleteDisabled = drawnFeatures.length === 0; + const isSaveDisabled = drawnFeatures.length === 0; + + return ( +
+
+ } + name="平移地图" + isActive={activeTool === "pan"} + onClick={() => handleToolClick("pan")} + /> + } + name="矢量编辑" + isActive={activeTool === "edit"} + onClick={() => handleToolClick("edit")} + /> + } + name="绘制点" + isActive={activeTool === "point"} + onClick={() => handleToolClick("point")} + /> + } + name="绘制线" + isActive={activeTool === "line"} + onClick={() => handleToolClick("line")} + /> + } + name="绘制圆" + isActive={activeTool === "circle"} + onClick={() => handleToolClick("circle")} + /> + } + name="绘制框" + isActive={activeTool === "box"} + onClick={() => handleToolClick("box")} + /> + } + name="绘制多边形" + isActive={activeTool === "polygon"} + onClick={() => handleToolClick("polygon")} + /> +
+
+ } + name="撤销" + isActive={false} + onClick={() => handleToolClick("undo")} + disabled={isUndoDisabled} + /> + } + name="重做" + isActive={false} + onClick={() => handleToolClick("redo")} + disabled={isRedoDisabled} + /> + } + name="删除" + isActive={false} + onClick={() => handleToolClick("delete")} + disabled={isDeleteDisabled} + /> + } + name="保存" + isActive={false} + onClick={() => handleToolClick("save")} + disabled={isSaveDisabled} + /> +
+
+ ); +}; + +export default DrawPanel; diff --git a/src/app/OlMap/Controls/PropertyPanel.tsx b/src/app/OlMap/Controls/PropertyPanel.tsx new file mode 100644 index 0000000..f1138c3 --- /dev/null +++ b/src/app/OlMap/Controls/PropertyPanel.tsx @@ -0,0 +1,63 @@ +import React from "react"; + +interface BaseProperty { + label: string; + value: string | number; + unit?: string; + formatter?: (value: string | number) => string; +} + +interface PropertyPanelProps { + id?: string; + type?: string; + properties?: BaseProperty[]; +} + +const PropertyPanel: React.FC = ({ + id, + type = "未知类型", + properties = [], +}) => { + if (!id) { + return ( +
+

属性面板

+

请选择一个要素以查看其属性。

+
+ ); + } + + const formatValue = (property: BaseProperty) => { + if (property.formatter) { + return property.formatter(property.value); + } + if (property.unit) { + return `${property.value} ${property.unit}`; + } + return property.value; + }; + + return ( +
+

属性面板

+
+
+ ID: + {id} +
+
+ 类型: + {type} +
+ {properties.map((property, index) => ( +
+ {property.label}: + {formatValue(property)} +
+ ))} +
+
+ ); +}; + +export default PropertyPanel; diff --git a/src/app/OlMap/Controls/ScaleLine.tsx b/src/app/OlMap/Controls/ScaleLine.tsx new file mode 100644 index 0000000..0911ef8 --- /dev/null +++ b/src/app/OlMap/Controls/ScaleLine.tsx @@ -0,0 +1,47 @@ +import React, { useEffect, useState } from "react"; +import { useMap } from "../MapComponent"; + +const Scale: React.FC = () => { + const map = useMap(); + const [zoomLevel, setZoomLevel] = useState(0); + const [coordinates, setCoordinates] = useState<[number, number]>([0, 0]); + + useEffect(() => { + if (!map) return; + + const updateZoomLevel = () => { + const zoom = map.getView().getZoom(); + setZoomLevel(zoom ?? 0); // 如果 zoom 是 undefined,则使用默认值 0 + }; + + const updateCoordinates = (event: any) => { + const coords = event.coordinate; + const transformedCoords = coords.map((c: number) => + parseFloat(c.toFixed(4)) + ); + setCoordinates(transformedCoords); + }; + + map.on("moveend", updateZoomLevel); + map.on("pointermove", updateCoordinates); + + // Initialize values + updateZoomLevel(); + + return () => { + map.un("moveend", updateZoomLevel); + map.un("pointermove", updateCoordinates); + }; + }, [map]); + + return ( +
+
Zoom Level: {zoomLevel.toFixed(1)}
+
+ Coordinates: {coordinates[0]}, {coordinates[1]} +
+
+ ); +}; + +export default Scale; diff --git a/src/app/OlMap/Controls/StyleEditorPanel.tsx b/src/app/OlMap/Controls/StyleEditorPanel.tsx new file mode 100644 index 0000000..adcbb0c --- /dev/null +++ b/src/app/OlMap/Controls/StyleEditorPanel.tsx @@ -0,0 +1,1005 @@ +import React, { useState, useEffect, useCallback } from "react"; + +// 导入Material-UI图标和组件 +import ColorLensIcon from "@mui/icons-material/ColorLens"; +import ApplyIcon from "@mui/icons-material/Check"; +import ResetIcon from "@mui/icons-material/Refresh"; +import { + Select, + MenuItem, + FormControl, + InputLabel, + Slider, + Typography, + Button, + Box, + Checkbox, + FormControlLabel, +} from "@mui/material"; + +// 导入OpenLayers样式相关模块 +import VectorTileLayer from "ol/layer/VectorTile"; +import WebGLVectorTileLayer from "ol/layer/WebGLVectorTile"; +import { useMap } from "../MapComponent"; + +import StyleLegend, { LegendStyleConfig } from "./StyleLegend"; +import { FlatStyleLike } from "ol/style/flat"; + +interface StyleConfig { + property: string; + classificationMethod: string; // 分类方法 + segments: number; + minSize: number; // 最小点尺寸 + maxSize: number; // 最大点尺寸 + minStrokeWidth: number; // 最小线宽 + maxStrokeWidth: number; // 最大线宽 + fixedStrokeWidth: number; // 固定线宽 + colorType: string; // 颜色类型 + startColor: string; + endColor: string; + showLabels: boolean; + opacity: number; + adjustWidthByProperty: boolean; // 是否根据属性调整线条宽度 +} + +// 图层样式状态接口 +interface LayerStyleState { + layerId: string; + layerName: string; + styleConfig: StyleConfig; + legendConfig: LegendStyleConfig; + isActive: boolean; +} + +// 预设颜色方案 +const SINGLE_COLOR_PALETTES = [ + { + color: "rgba(51, 153, 204, 1)", + }, + { + color: "rgba(204, 51, 51, 1)", + }, + { + color: "rgba(255, 235, 59, 1)", + }, + { + color: "rgba(44, 160, 44, 1)", + }, + { + color: "rgba(227, 119, 194, 1)", + }, + { + color: "rgba(148, 103, 189, 1)", + }, +]; +const GRADIENT_PALETTES = [ + { + name: "蓝-红", + start: "rgba(51, 153, 204, 1)", + end: "rgba(204, 51, 51, 1)", + }, + { + name: "黄-绿", + start: "rgba(255, 235, 59, 1)", + end: "rgba(44, 160, 44, 1)", + }, + { + name: "粉-紫", + start: "rgba(227, 119, 194, 1)", + end: "rgba(148, 103, 189, 1)", + }, +]; +// 预设分类方法 +const CLASSIFICATION_METHODS = [ + { name: "优雅分段", value: "pretty_breaks" }, + { name: "自然间断", value: "jenks_optimized" }, +]; + +const StyleEditorPanel: React.FC = () => { + const map = useMap(); + const [renderLayers, setRenderLayers] = useState([]); + const [selectedRenderLayer, setSelectedRenderLayer] = + useState(); + const [selectedProperty, setSelectedProperty] = useState<{ + name: string; + value: string; + }>({ name: "", value: "" }); + + const [availableProperties, setAvailableProperties] = useState< + { name: string; value: string }[] + >([]); + const [styleConfig, setStyleConfig] = useState({ + property: "", + classificationMethod: "pretty_breaks", + segments: 5, + minSize: 4, + maxSize: 15, + minStrokeWidth: 2, + maxStrokeWidth: 6, + fixedStrokeWidth: 3, + colorType: "single", + startColor: "rgba(51, 153, 204, 0.9)", + endColor: "rgba(204, 51, 51, 0.9)", + showLabels: false, + opacity: 0.9, + adjustWidthByProperty: true, + }); + const [legendStyleConfig, setLegendStyleConfig] = useState( + { + layerName: "", + layerId: "", + property: "", + colors: [], + type: "point", + dimensions: [], + breaks: [], + } + ); + + // 样式状态管理 - 存储多个图层的样式状态 + const [layerStyleStates, setLayerStyleStates] = useState( + [] + ); + + // 通用颜色解析函数 + const parseColor = useCallback((color: string) => { + // 解析 rgba 格式的颜色 + const match = color.match( + /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/ + ); + if (match) { + return { + r: parseInt(match[1], 10), + g: parseInt(match[2], 10), + b: parseInt(match[3], 10), + // 如果没有 alpha 值,默认为 1 + a: match[4] ? parseFloat(match[4]) : 1, + }; + } + // 如果还是十六进制格式,保持原来的解析方式 + const hex = color.replace("#", ""); + return { + r: parseInt(hex.slice(0, 2), 16), + g: parseInt(hex.slice(2, 4), 16), + b: parseInt(hex.slice(4, 6), 16), + }; + }, []); + // 获取数据分段分类结果 + const fetchClassification = async ( + layer_name: string, + prop: string, + n_classes: number, + algorithm: string + ) => { + if (!algorithm) { + algorithm = "pretty_breaks"; // 默认算法 + } + const response = await fetch("http://localhost:8000/jenks-classification", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + layer_name: layer_name, // 图层名称 + prop: prop, // 属性名称 + n_classes: n_classes, // 分段数 + algorithm: algorithm, + // algorithm: "pretty_breaks", + // algorithm: "hybrid_jenks" + }), + }); + if (!response.ok) { + console.error("API 请求失败:", response.status, response.statusText); + return false; + } + + const data = await response.json(); + const breaks = data.breaks; // 从响应对象中提取 breaks 数组 + // console.log(breaks); + // 验证返回的数据 + if (!Array.isArray(breaks) || breaks.length === 0) { + console.error("API 返回的 breaks 不是有效数组:", breaks); + return false; + } + + return breaks; + }; + // 颜色方案选择 + const [singlePaletteIndex, setSinglePaletteIndex] = useState(0); + const [gradientPaletteIndex, setGradientPaletteIndex] = useState(0); + // 根据分段数生成相应数量的渐进颜色 + const generateGradientColors = useCallback( + (segments: number): string[] => { + const { start, end } = GRADIENT_PALETTES[gradientPaletteIndex]; + const colors: string[] = []; + const startColor = parseColor(start); + const endColor = parseColor(end); + + for (let i = 0; i < segments; i++) { + const ratio = i / (segments - 1); + const r = Math.round( + startColor.r + (endColor.r - startColor.r) * ratio + ); + const g = Math.round( + startColor.g + (endColor.g - startColor.g) * ratio + ); + const b = Math.round( + startColor.b + (endColor.b - startColor.b) * ratio + ); + colors.push(`rgba(${r}, ${g}, ${b}, 1)`); + } + return colors; + }, + [gradientPaletteIndex, parseColor] + ); + // 应用分类样式 + const applyStyle = (breaks?: number[]) => { + // 使用传入的 breaks 数据 + if (!breaks) { + console.warn("没有有效的 breaks 数据"); + return; + } + if (!selectedRenderLayer || !styleConfig.property) return; + const layerType: string = selectedRenderLayer?.get("type"); + const source = selectedRenderLayer.getSource(); + if (!source) return; + + if (breaks.length === 0) { + console.log("没有有效的 breaks 数据,无法应用样式"); + return; + } + const breaksLength = breaks.length; + // 根据 breaks 计算每个分段的颜色,线条粗细 + const colors: string[] = + styleConfig.colorType === "single" + ? // 单一色重复多次 + Array.from({ length: breaksLength }, () => { + return SINGLE_COLOR_PALETTES[singlePaletteIndex].color; + }) + : generateGradientColors(breaksLength); + // 计算每个分段的线条粗细和点大小 + const dimensions: number[] = + layerType === "linestring" + ? styleConfig.adjustWidthByProperty + ? Array.from({ length: breaksLength }, (_, i) => { + const ratio = i / (breaksLength - 1); + return ( + styleConfig.minStrokeWidth + + (styleConfig.maxStrokeWidth - styleConfig.minStrokeWidth) * + ratio + ); + }) + : Array.from( + { length: breaksLength }, + () => styleConfig.fixedStrokeWidth + ) // 使用固定宽度 + : Array.from({ length: breaksLength }, (_, i) => { + const ratio = i / (breaksLength - 1); + return ( + styleConfig.minSize + + (styleConfig.maxSize - styleConfig.minSize) * ratio + ); + }); + // 创建图例配置对象 + const legendConfig: LegendStyleConfig = { + layerName: selectedRenderLayer.get("name"), + layerId: selectedRenderLayer.get("value"), + property: selectedProperty.name, + colors: colors, + type: layerType, + dimensions: dimensions, + breaks: breaks, + }; + + // 更新图例配置 + setLegendStyleConfig(legendConfig); + // 动态生成颜色条件表达式 + const generateColorConditions = (): any[] => { + const conditions: any[] = ["case"]; + + for (let i = 0; i < breaks.length; i++) { + // 添加条件:属性值 <= 当前断点 + conditions.push(["<=", ["get", styleConfig.property], breaks[i]]); + // 添加对应的颜色值 + const colorObj = parseColor(colors[i]); + const color = `rgba(${colorObj.r}, ${colorObj.g}, ${colorObj.b}, ${styleConfig.opacity})`; + conditions.push(color); + } + const colorObj = parseColor(colors[colors.length - 1]); + const color = `rgba(${colorObj.r}, ${colorObj.g}, ${colorObj.b}, ${styleConfig.opacity})`; + // 添加默认值(最后一个颜色) + conditions.push(color); + return conditions; + }; + // 动态生成尺寸条件表达式 + const generateDimensionConditions = (): any[] => { + const conditions: any[] = ["case"]; + + for (let i = 0; i < breaks.length; i++) { + conditions.push(["<=", ["get", styleConfig.property], breaks[i]]); + conditions.push(dimensions[i]); + } + + conditions.push(dimensions[dimensions.length - 1]); + return conditions; + }; + // 创建基于 breaks 的动态 FlatStyle + const dynamicStyle: FlatStyleLike = {}; + + // 根据图层类型设置不同的样式属性 + if (layerType === "linestring") { + dynamicStyle["stroke-color"] = generateColorConditions(); + dynamicStyle["stroke-width"] = generateDimensionConditions(); + } else if (layerType === "point") { + dynamicStyle["circle-fill-color"] = generateColorConditions(); + dynamicStyle["circle-radius"] = generateDimensionConditions(); + dynamicStyle["circle-stroke-color"] = generateColorConditions(); + dynamicStyle["circle-stroke-width"] = 2; + } else { + // 面要素 + dynamicStyle["fill-color"] = generateColorConditions(); + dynamicStyle["stroke-color"] = generateColorConditions(); + dynamicStyle["stroke-width"] = generateDimensionConditions(); + } + + selectedRenderLayer.setStyle(dynamicStyle); + // console.log(map?.getAllLayers()); + + // 创建图例配置对象 + const finalLegendConfig: LegendStyleConfig = { + layerName: selectedRenderLayer.get("name"), + layerId: selectedRenderLayer.get("value"), + property: selectedProperty.name, + colors: colors, + type: layerType, + dimensions: dimensions, + breaks: breaks, + }; + + // 更新图例配置 + setLegendStyleConfig(finalLegendConfig); + + // 自动保存样式状态,直接传入图例配置 + setTimeout(() => { + saveLayerStyle(finalLegendConfig); + }, 100); + }; + // 重置样式 + const resetStyle = useCallback(() => { + if (!selectedRenderLayer) return; + + // 重置 WebGL 图层样式 + const defaultFlatStyle: FlatStyleLike = { + "stroke-width": 2, + "stroke-color": `rgba(51, 153, 204, 0.9)`, + "fill-color": `rgba(51, 153, 204, 0.5)`, + "circle-radius": 7, + "circle-stroke-width": 2, + "circle-stroke-color": `rgba(51, 153, 204, 0.9)`, + "circle-fill-color": `rgba(51, 153, 204, 0.5)`, + }; + selectedRenderLayer.setStyle(defaultFlatStyle); + + // 删除对应图层的样式状态,从而移除图例显示 + const layerId = selectedRenderLayer.get("value"); + if (layerId !== undefined) { + setLayerStyleStates((prev) => + prev.filter((state) => state.layerId !== layerId) + ); + } + }, [selectedRenderLayer]); + // 样式状态管理功能 + // 保存当前图层的样式状态 + const saveLayerStyle = useCallback( + (overrideLegendConfig?: LegendStyleConfig) => { + if (!selectedRenderLayer || !styleConfig.property) { + console.warn("无法保存样式:缺少必要的图层或样式配置"); + return; + } + + const layerId = selectedRenderLayer.get("value"); + const layerName = selectedRenderLayer.get("name") || `图层${layerId}`; + + // 使用传入的图例配置,或者使用当前状态的图例配置 + const finalLegendConfig = overrideLegendConfig || legendStyleConfig; + + const newStyleState: LayerStyleState = { + layerId, + layerName, + styleConfig: { ...styleConfig }, + legendConfig: { ...finalLegendConfig }, + isActive: true, + }; + + setLayerStyleStates((prev) => { + // 检查是否已存在该图层的样式状态 + const existingIndex = prev.findIndex( + (state) => state.layerId === layerId + ); + + if (existingIndex !== -1) { + // 更新已存在的状态 + const updated = [...prev]; + updated[existingIndex] = newStyleState; + return updated; + } else { + // 添加新的状态 + return [...prev, newStyleState]; + } + }); + }, + [selectedRenderLayer, styleConfig, legendStyleConfig] + ); + // 获取地图中的矢量图层 + useEffect(() => { + if (!map) return; + + const updateVisibleLayers = () => { + const layers = map.getAllLayers(); + // 筛选矢量瓦片图层 + const webGLVectorTileLayers = layers.filter((layer) => + layer.get("value") + ) as WebGLVectorTileLayer[]; + + setRenderLayers(webGLVectorTileLayers); + }; + + updateVisibleLayers(); + }, [map]); + // 获取选中图层的属性 + useEffect(() => { + // 如果没有矢量图层或没有选中图层,清空属性列表 + if (!renderLayers || renderLayers.length === 0) { + setAvailableProperties([]); + // console.log("没有可用的矢量图层"); + return; + } + // 如果没有选中图层,清空属性列表 + if (!selectedRenderLayer) { + setAvailableProperties([]); + // console.log("没有选中的图层"); + return; + } + + // 获取第一个要素的数值型属性 + const properties = selectedRenderLayer.get("properties") || {}; + setAvailableProperties(properties); + + // 设置选中的渲染图层 + const renderLayer = renderLayers.filter((layer) => { + return layer.get("value") === selectedRenderLayer?.get("value"); + })[0]; + setSelectedRenderLayer(renderLayer); + + // 检查是否有已缓存的样式状态,如果有则自动恢复 + const layerId = selectedRenderLayer.get("value"); + const cachedStyleState = layerStyleStates.find( + (state) => state.layerId === layerId + ); + + if (cachedStyleState) { + setStyleConfig(cachedStyleState.styleConfig); + setLegendStyleConfig(cachedStyleState.legendConfig); + // console.log(`已自动恢复图层 ${cachedStyleState.layerName} 的样式状态`); + } + }, [renderLayers, selectedRenderLayer, map, renderLayers, layerStyleStates]); + // 同步属性状态 + useEffect(() => { + // 当属性值变化时自动同步 selectedProperty + if (styleConfig.property) { + const prop = availableProperties.find( + (p) => p.value === styleConfig.property + ); + if (prop) { + setSelectedProperty({ name: prop.name, value: prop.value }); + } + } else { + setSelectedProperty({ name: "", value: "" }); + } + }, [styleConfig.property, availableProperties]); + // 监听颜色类型变化,当切换到单一色时自动勾选宽度调整选项 + useEffect(() => { + if (styleConfig.colorType === "single") { + setStyleConfig((prev) => ({ + ...prev, + adjustWidthByProperty: true, + })); + } + }, [styleConfig.colorType]); + // 获取所有激活的图例配置 + const getActiveLegendConfigs = useCallback(() => { + return layerStyleStates + .filter((state) => state.isActive && state.legendConfig.property) + .map((state) => ({ + ...state.legendConfig, + layerName: state.layerName, + layerId: state.layerId, + })); + }, [layerStyleStates]); + + const getColorSetting = () => { + if (styleConfig.colorType === "single") { + return ( + + 单一色方案 + + + ); + } + if (styleConfig.colorType === "gradient") { + return ( + + 渐进色方案 + + + ); + } + }; + // 根据不同图层的类型和颜色分类方案显示不同的大小设置 + const getSizeSetting = () => { + let colors: string[] = []; + if (styleConfig.colorType === "single") { + const color = SINGLE_COLOR_PALETTES[singlePaletteIndex].color; + colors = [color, color]; + } else if (styleConfig.colorType === "gradient") { + const { start, end } = GRADIENT_PALETTES[gradientPaletteIndex]; + colors = [start, end]; + } else if (styleConfig.colorType === "categorical") { + } + + if (selectedRenderLayer?.get("type") === "point") { + return ( + + + 点大小范围: {styleConfig.minSize} - {styleConfig.maxSize} 像素 + + + + + 最小值 + + + setStyleConfig((prev) => ({ + ...prev, + minSize: value as number, + })) + } + min={5} + max={15} + step={1} + size="small" + /> + + + + 最大值 + + + setStyleConfig((prev) => ({ + ...prev, + maxSize: value as number, + })) + } + min={20} + max={30} + step={1} + size="small" + /> + + + {/* 点大小预览 */} + + 预览: + + + + + + ); + } + if (selectedRenderLayer?.get("type") === "linestring") { + return ( + + {/* 勾选项:是否根据属性调整线条宽度 */} + + setStyleConfig((prev) => ({ + ...prev, + adjustWidthByProperty: e.target.checked, + })) + } + disabled={styleConfig.colorType === "single"} + /> + } + label="根据数值分段调整线条宽度" + /> + {styleConfig.adjustWidthByProperty && ( + <> + + 线条宽度范围: {styleConfig.minStrokeWidth} -{" "} + {styleConfig.maxStrokeWidth}px + + + + + 最小值 + + + setStyleConfig((prev) => ({ + ...prev, + minStrokeWidth: value as number, + })) + } + min={1} + max={4} + step={0.5} + size="small" + /> + + + + 最大值 + + + setStyleConfig((prev) => ({ + ...prev, + maxStrokeWidth: value as number, + })) + } + min={6} + max={12} + step={0.5} + size="small" + /> + + + {/* 线条宽度预览 */} + + 预览: + + + + + + )} + {!styleConfig.adjustWidthByProperty && ( + <> + + 固定线条宽度: {styleConfig.fixedStrokeWidth}px + + + setStyleConfig((prev) => ({ + ...prev, + fixedStrokeWidth: value as number, + })) + } + min={1} + max={10} + step={0.5} + size="small" + /> + {/* 固定宽度预览 */} + + 预览: + + + + )} + + ); + } + }; + + return ( + <> +
+ {/* 图层选择 */} + + 选择图层 + + + {/* 属性选择 */} + + 分级属性 + + + {/* 分类选择 */} + + 分类方法 + + + {/* 分类数量 */} + + 分类数量: {styleConfig.segments} + + setStyleConfig((prev) => ({ ...prev, segments: value as number })) + } + min={3} + max={10} + step={1} + marks + size="small" + /> + + {/* 颜色方案 */} + + + + 颜色方案 + + + {getColorSetting()} + + + {/* 大小设置 */} + {getSizeSetting()} + + {/* 透明度设置 */} + + + 透明度: {(styleConfig.opacity * 100).toFixed(0)}% + + + setStyleConfig((prev) => ({ + ...prev, + opacity: value as number, + })) + } + min={0.1} + max={1} + step={0.05} + size="small" + /> + + + {/* 是否显示属性文字 */} + + setStyleConfig((prev) => ({ + ...prev, + showLabels: e.target.checked, + })) + } + /> + } + label="显示属性(放大后显示)" + /> +
+ {/* 操作按钮 */} + + + + +
+ {/* 显示多图层图例 */} + {getActiveLegendConfigs().length > 0 && ( +
+
+ {getActiveLegendConfigs().map((config, index) => ( + + ))} +
+
+ )} + + ); +}; + +export default StyleEditorPanel; diff --git a/src/app/OlMap/Controls/StyleLegend.tsx b/src/app/OlMap/Controls/StyleLegend.tsx new file mode 100644 index 0000000..cd7f879 --- /dev/null +++ b/src/app/OlMap/Controls/StyleLegend.tsx @@ -0,0 +1,74 @@ +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; + +interface LegendStyleConfig { + layerName: string; + layerId: string; + property: string; + colors: string[]; + type: string; // 图例类型 + dimensions: number[]; // 尺寸大小 + breaks: number[]; // 分段值 +} +// 图例组件 +// 该组件用于显示图层样式的图例,包含属性名称、颜色、尺寸和分段值等信息 +// 通过传入的配置对象动态生成图例内容,适用于不同的样式配置 +// 使用时需要确保传入的 colors、dimensions 和 breaks 数组长度一致 + +const StyleLegend: React.FC = ({ + layerName, + layerId, + property, + colors, + type, // 图例类型 + dimensions, + breaks, +}) => { + return ( + + + {layerName} - {property} + + {breaks.map((breakValue, index) => { + const color = colors[index]; // 默认颜色为黑色 + // 获取对应的尺寸和分段值 + const dimension = dimensions[index]; // 默认尺寸为16 + const nextValue = breaks[index + 1]; // 下一个值或默认0 + // 确保分段区间均有意义 + if (nextValue !== undefined) { + return ( + + + + {breakValue?.toFixed(1)} - {nextValue?.toFixed(1)} + + + ); + } + })} + + ); +}; + +export default StyleLegend; +export type { LegendStyleConfig }; \ No newline at end of file diff --git a/src/app/OlMap/Controls/Timeline.tsx b/src/app/OlMap/Controls/Timeline.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/app/OlMap/Controls/Toolbar.tsx b/src/app/OlMap/Controls/Toolbar.tsx new file mode 100644 index 0000000..72fee94 --- /dev/null +++ b/src/app/OlMap/Controls/Toolbar.tsx @@ -0,0 +1,471 @@ +import React, { useState, useEffect, useCallback } from "react"; +import { useMap } from "../MapComponent"; +import ToolbarButton from "@/components/olmap/common/ToolbarButton"; +import InfoOutlinedIcon from "@mui/icons-material/InfoOutlined"; +import EditOutlinedIcon from "@mui/icons-material/EditOutlined"; +import PaletteOutlinedIcon from "@mui/icons-material/PaletteOutlined"; +import PropertyPanel from "./PropertyPanel"; // 引入属性面板组件 +import DrawPanel from "./DrawPanel"; // 引入绘图面板组件 + +import VectorSource from "ol/source/Vector"; +import VectorLayer from "ol/layer/Vector"; +import { Style, Stroke, Fill, Circle } from "ol/style"; +import { Geometry } from "ol/geom"; +import { Point, LineString, Polygon } from "ol/geom"; +import { FeatureLike } from "ol/Feature"; +import Feature from "ol/Feature"; +import GeoJSON from "ol/format/GeoJSON"; +import StyleEditorPanel from "./StyleEditorPanel"; +import WebGLVectorTileLayer from "ol/layer/WebGLVectorTile"; +import VectorTileSource from "ol/source/VectorTile"; +import TileState from "ol/TileState"; +import { toLonLat } from "ol/proj"; +import { booleanIntersects, buffer, point, toWgs84 } from "@turf/turf"; +import RenderFeature from "ol/render/Feature"; + +const Toolbar: React.FC = () => { + const map = useMap(); + const [activeTools, setActiveTools] = useState([]); + const [highlightFeature, setHighlightFeature] = useState( + null + ); + const [showPropertyPanel, setShowPropertyPanel] = useState(false); + const [showDrawPanel, setShowDrawPanel] = useState(false); + const [showStyleEditor, setShowStyleEditor] = useState(false); + const [highlightLayer, setHighlightLayer] = + useState | null>(null); + + // 创建高亮图层 + useEffect(() => { + if (!map) return; + + const highLightSource = new VectorSource(); + const highLightLayer = new VectorLayer({ + source: highLightSource, + style: new Style({ + stroke: new Stroke({ + color: `rgba(255, 0, 0, 1)`, + width: 5, + }), + fill: new Fill({ + color: `rgba(255, 0, 0, 0.2)`, + }), + image: new Circle({ + radius: 7, + stroke: new Stroke({ + color: `rgba(255, 0, 0, 1)`, + width: 3, + }), + fill: new Fill({ + color: `rgba(255, 0, 0, 0.2)`, + }), + }), + }), + }); + + map.addLayer(highLightLayer); + setHighlightLayer(highLightLayer); + + return () => { + map.removeLayer(highLightLayer); + }; + }, [map]); + + // 高亮要素的函数 + useEffect(() => { + if (!highlightLayer) { + return; + } + const source = highlightLayer.getSource(); + if (!source) { + return; + } + // 清除之前的高亮 + source.clear(); + // 添加新的高亮要素 + if (highlightFeature instanceof Feature) { + source.addFeature(highlightFeature); + } + }, [highlightFeature]); + // 将 RenderFeature 转换为 Feature + const renderFeature2Feature = (renderFeature: RenderFeature) => { + if (renderFeature) { + const geometry = renderFeature.getGeometry(); + + if (geometry) { + try { + let clonedGeometry; + + if (geometry instanceof Geometry) { + // 标准 Feature 的几何体 + clonedGeometry = geometry; + } else { + // RenderFeature 或其他类型的几何体 + const type = geometry.getType(); + const flatCoordinates = geometry.getFlatCoordinates(); + let coordinates: number[] | number[][] | number[][][]; + switch (type) { + case "Point": + // Point: [x, y] + coordinates = [flatCoordinates[0], flatCoordinates[1]]; + clonedGeometry = new Point(coordinates as number[]); + break; + case "LineString": + // LineString: [[x1, y1], [x2, y2], ...] + const lineCoords: number[][] = []; + for (let i = 0; i < flatCoordinates.length; i += 2) { + lineCoords.push([flatCoordinates[i], flatCoordinates[i + 1]]); + } + clonedGeometry = new LineString(lineCoords); + break; + case "Polygon": + // Polygon: [[[x1, y1], [x2, y2], ...]] + // 需要获取环的结束位置 + const ends = ( + geometry as { getEnds?: () => number[] } + ).getEnds?.() || [flatCoordinates.length]; + const rings: number[][][] = []; + let start = 0; + + for (const end of ends) { + const ring: number[][] = []; + for (let i = start; i < end; i += 2) { + ring.push([flatCoordinates[i], flatCoordinates[i + 1]]); + } + rings.push(ring); + start = end; + } + clonedGeometry = new Polygon(rings); + break; + default: + console.log("不支持的几何体类型:", type); + return; + } + } + const feature = new Feature({ + geometry: clonedGeometry, + ...renderFeature.getProperties(), + }); + return feature; + } catch (error) { + console.error("RenderFeature转换Feature时出错:", error); + } + } + } + }; + // 根据 IDs,通过 Geoserver WFS 服务查询要素 + const queryFeaturesByIds = async (ids: string[], layer?: string) => { + if (!ids.length) return []; + const geoserverUrl = "http://127.0.0.1:8080/geoserver"; + const network = "TJWater"; + const layers = ["geo_pipes_mat", "geo_junctions_mat"]; + const orFilter = ids.map((id) => `id=${id}`).join(" OR "); + + try { + if (!layer) { + // 遍历所有图层 + const promises = layers.map(async (layer) => { + try { + const url = + `${geoserverUrl}/${network}/ows?` + + `service=WFS&version=1.0.0&request=GetFeature&` + + `typeName=${network}:${layer}&outputFormat=application/json&` + + `CQL_FILTER=${encodeURIComponent(orFilter)}`; + const response = await fetch(url); + if (!response.ok) { + throw new Error(`请求失败: ${response.statusText}`); + } + return await response.json(); + } catch (error) { + console.error(`图层 ${layer} 查询失败:`, error); + return null; // 返回 null 表示该图层查询失败 + } + }); + + const results = await Promise.all(promises); + const features = results + .filter((json) => json !== null) // 过滤掉失败的请求 + .flatMap((json) => new GeoJSON().readFeatures(json)); + console.log("查询到的要素:", features); + return features; + } else { + // 查询指定图层 + const url = + `${geoserverUrl}/${network}/ows?` + + `service=WFS&version=1.0.0&request=GetFeature&` + + `typeName=${network}:${layer}&outputFormat=application/json&` + + `CQL_FILTER=${encodeURIComponent(orFilter)}`; + const response = await fetch(url); + if (!response.ok) { + throw new Error(`请求失败: ${response.statusText}`); + } + const json = await response.json(); + const features = new GeoJSON().readFeatures(json); + console.log("查询到的要素:", features); + return features; + } + } catch (error) { + console.error("根据 IDs 查询要素时出错:", error); + return []; + } + }; + // 处理地图点击选择要素 + const handleMapClickSelectFeatures = useCallback( + (event: { coordinate: number[] }) => { + if (!map) return; + const coord = event.coordinate; + let z = Math.floor(map.getView().getZoom() || 0) - 1; // 确保 z 是整数 + const projection = map.getView().getProjection(); // 获取地图的投影 + const pixelRatio = window.devicePixelRatio; // 获取设备像素比率 + const [x, y] = coord; + + // 遍历所有的 VectorTileSources + const vectorTileSources = map + .getAllLayers() + .filter((layer) => layer instanceof WebGLVectorTileLayer) + .map((layer) => layer.getSource() as VectorTileSource) + .filter((source) => source); + if (!vectorTileSources.length) return; + + // 按几何类型分类,优先处理级别 + const points: any[] = []; + const lines: any[] = []; + const others: any[] = []; + + vectorTileSources.forEach((vectorTileSource) => { + const tileGrid = vectorTileSource.getTileGrid(); + if (tileGrid) { + const minZoom = tileGrid.getMinZoom(); // 最小缩放级别 + const maxZoom = tileGrid.getMaxZoom(); // 最大缩放级别 + // 确保 z 在有效范围内 + if (z < minZoom) z = minZoom; + if (z > maxZoom) z = maxZoom; + } else { + return; + } + + const tileCoord = tileGrid.getTileCoordForCoordAndZ([x, y], z); + // 设置 resolution 用于基于屏幕像素的 buffer 容差计算 + const resolution = tileGrid.getResolution(tileCoord[0]); + const hitTolerance = 5; // 像素容差 + const hitPoint = point(toLonLat(coord)); + const buffered = buffer(hitPoint, resolution * hitTolerance, { + units: "meters", + }); + // 获取 VectorRenderTile + const vectorRenderTile = vectorTileSource.getTile( + tileCoord[0], + tileCoord[1], + tileCoord[2], + pixelRatio, + projection + ); + + // 获取 SourceTiles + const vectorTiles = vectorTileSource.getSourceTiles( + pixelRatio, + projection, + vectorRenderTile + ); + + vectorTiles.forEach((vectorTile) => { + if (vectorTile.getState() === TileState.LOADED) { + const renderFeatures = vectorTile.getFeatures(); + + const selectedFeatures = renderFeatures + .map( + (renderFeature) => + renderFeature2Feature(renderFeature) as Feature + ) + .filter((feature) => { + if (feature && buffered) { + const geoJSONGeometry = new GeoJSON().writeGeometryObject( + feature.getGeometry() + ); + const bufferedGeometry = buffered.geometry; + return booleanIntersects( + toWgs84(geoJSONGeometry), + bufferedGeometry + ); + } + return false; + }); + selectedFeatures.forEach((selectedFeature) => { + const geometryType = selectedFeature.getGeometry()?.getType(); + if (geometryType === "Point") { + points.push(selectedFeature); + } else if (geometryType === "LineString") { + lines.push(selectedFeature); + } else { + others.push(selectedFeature); + } + }); + } + }); + }); + // 按优先级处理:点 > 线 > 其他 + const selectedFeatures = [...points, ...lines, ...others]; + const firstFeature = selectedFeatures[0] as Feature; + const queryId = firstFeature?.getProperties().id; + // console.log(queryId, "queryId"); + if (queryId) { + queryFeaturesByIds([queryId]).then((features) => { + // console.log("查询到的要素:", features); + setHighlightFeature(features[0]); + }); + } else { + setHighlightFeature(null); + } + }, + [map, highlightLayer, setHighlightFeature] + ); + + // 添加矢量属性查询事件监听器 + useEffect(() => { + if (!activeTools.includes("info") || !map) return; + map.on("click", handleMapClickSelectFeatures); + + return () => { + map.un("click", handleMapClickSelectFeatures); + }; + }, [activeTools, map, handleMapClickSelectFeatures]); + + // 处理工具栏按钮点击事件 + const handleToolClick = (tool: string) => { + // 样式工具的特殊处理 - 只有再次点击时才会取消激活和关闭 + if (tool === "style") { + if (activeTools.includes("style")) { + // 如果样式工具已激活,点击时关闭 + setShowStyleEditor(false); + setActiveTools((prev) => prev.filter((t) => t !== "style")); + } else { + // 激活样式工具,打开样式面板 + setActiveTools((prev) => [...prev, "style"]); + setShowStyleEditor(true); + } + return; + } + + // 其他工具的处理逻辑 + if (activeTools.includes(tool)) { + // 如果当前工具已激活,再次点击时取消激活并关闭面板 + deactivateTool(tool); + setActiveTools((prev) => prev.filter((t) => t !== tool)); + } else { + // 如果当前工具未激活,先关闭所有其他工具,然后激活当前工具 + // 关闭所有面板(但保持样式编辑器状态) + closeAllPanelsExceptStyle(); + + // 取消激活所有非样式工具 + setActiveTools((prev) => { + const styleActive = prev.includes("style"); + return styleActive ? ["style", tool] : [tool]; + }); + + // 激活当前工具并打开对应面板 + activateTool(tool); + } + }; + + // 取消激活指定工具并关闭对应面板 + const deactivateTool = (tool: string) => { + switch (tool) { + case "info": + setShowPropertyPanel(false); + setHighlightFeature(null); + break; + case "draw": + setShowDrawPanel(false); + break; + } + }; + + // 激活指定工具并打开对应面板 + const activateTool = (tool: string) => { + switch (tool) { + case "info": + setShowPropertyPanel(true); + break; + case "draw": + setShowDrawPanel(true); + break; + } + }; + + // 关闭所有面板(除了样式编辑器) + const closeAllPanelsExceptStyle = () => { + setShowPropertyPanel(false); + setHighlightFeature(null); + setShowDrawPanel(false); + // 样式编辑器保持其当前状态,不自动关闭 + }; + + // 从要素属性中提取属性面板需要的数据 + const getFeatureProperties = useCallback(() => { + if (!highlightFeature) return {}; + + const properties = highlightFeature.getProperties(); + console.log(properties, properties.geometry.type, "properties"); + if (properties.geometry.getType() === "LineString") { + console.log(properties, "properties"); + return { + id: properties.id, + type: "管道", + properties: [ + { label: "起始节点ID", value: properties.node1 }, + { label: "终点节点ID", value: properties.node2 }, + { label: "长度", value: properties.length.toFixed(1), unit: "m" }, + { label: "管径", value: properties.diameter.toFixed(1), unit: "mm" }, + { label: "粗糙度", value: properties.roughness }, + { label: "局部损失", value: properties.minor_loss }, + { label: "初始状态", value: "开" }, + ], + }; + } + if (properties.geometry.getType() === "Point") { + return { + id: properties.id, + type: "节点", + properties: [ + { label: "海拔", value: properties.elevation.toFixed(1), unit: "m" }, + { + label: "需求量", + value: properties.demand.toFixed(1), + unit: "m³/s", + }, + ], + }; + } + return {}; + }, [highlightFeature]); + + return ( + <> +
+ } + name="查看属性" + isActive={activeTools.includes("info")} + onClick={() => handleToolClick("info")} + /> + } + name="矢量编辑" + isActive={activeTools.includes("draw")} + onClick={() => handleToolClick("draw")} + /> + } + name="图层样式" + isActive={activeTools.includes("style")} + onClick={() => handleToolClick("style")} + /> +
+ {showPropertyPanel && } + {showDrawPanel && map && } + {showStyleEditor && } + + ); +}; + +export default Toolbar; diff --git a/src/app/OlMap/Controls/Zoom.tsx b/src/app/OlMap/Controls/Zoom.tsx new file mode 100644 index 0000000..a2eb852 --- /dev/null +++ b/src/app/OlMap/Controls/Zoom.tsx @@ -0,0 +1,104 @@ +import React, { useState } from "react"; +import { useMap } from "../MapComponent"; +import Geolocation from "ol/Geolocation"; +import AddRoundedIcon from "@mui/icons-material/AddRounded"; +import RemoveRoundedIcon from "@mui/icons-material/RemoveRounded"; +import GpsFixedRoundedIcon from "@mui/icons-material/GpsFixedRounded"; +import clsx from "clsx"; + +const INITIAL_ZOOM = 14; // 默认缩放级别 + +const Zoom: React.FC = () => { + const map = useMap(); + const [locateDisabled, setLocateDisabled] = useState(false); + + // 放大函数 + const handleZoomIn = () => { + if (!map) return; + const view = map.getView(); + view.animate({ zoom: (view.getZoom() ?? 0) + 1, duration: 200 }); + }; + + // 缩小函数 + const handleZoomOut = () => { + if (!map) return; + const view = map.getView(); + view.animate({ zoom: (view.getZoom() ?? 0) - 1, duration: 200 }); + }; + + // 定位功能 + const handleLocate = () => { + if (!map) return; + + const geolocation = new Geolocation({ + trackingOptions: { enableHighAccuracy: true }, + projection: map.getView().getProjection(), + }); + + geolocation.once("change:position", () => { + const coords = geolocation.getPosition(); + if (coords) { + map + .getView() + .animate({ center: coords, zoom: INITIAL_ZOOM, duration: 500 }); + } + geolocation.setTracking(false); + }); + + geolocation.setTracking(true); + }; + + // 包装 handleLocate,点击后禁用按钮一段时间 + const onLocateClick = () => { + navigator.geolocation.getCurrentPosition( + () => { + handleLocate(); + }, + (error) => { + console.log(error.message); + setLocateDisabled(true); // 定位失败后禁用按钮 + // alert("定位失败,将使用默认位置。"); + } + ); + }; + + return ( +
+
+
+ +
+
+ +
+ +
+
+
+ ); +}; + +export default Zoom; diff --git a/src/app/OlMap/MapComponent.tsx b/src/app/OlMap/MapComponent.tsx new file mode 100644 index 0000000..3e66ddc --- /dev/null +++ b/src/app/OlMap/MapComponent.tsx @@ -0,0 +1,547 @@ +// @refresh reset // 添加此注释强制热重载时重新挂载组件 +"use client"; +import { config } from "@/config/config"; +import React, { + createContext, + useContext, + useState, + useEffect, + useRef, +} from "react"; +import { Map as OlMap, VectorTile } from "ol"; +import View from "ol/View.js"; +import "ol/ol.css"; +import MapTools from "./MapTools"; + +import { Layer } from "ol/layer"; // 保留导入,但用于继承 +import VectorTileSource from "ol/source/VectorTile"; +import WebGLVectorTileLayer from "ol/layer/WebGLVectorTile"; +import MVT from "ol/format/MVT"; +import { FlatStyleLike } from "ol/style/flat"; +import { toLonLat } from "ol/proj"; +import { center } from "@turf/center"; +import { bearing } from "@turf/turf"; +import { Deck } from "@deck.gl/core"; +import { TextLayer } from "@deck.gl/layers"; +import { TripsLayer } from "@deck.gl/geo-layers"; + +// 创建自定义Layer类来包装deck.gl +class DeckLayer extends Layer { + private deck: Deck; + + constructor(deckInstance: Deck) { + super({}); + this.deck = deckInstance; + } + + render(frameState: any): HTMLElement { + const { size, viewState } = frameState; + const [width, height] = size; + const [longitude, latitude] = toLonLat(viewState.center); + const zoom = viewState.zoom - 1; // 调整 zoom 以匹配 + const bearing = (-viewState.rotation * 180) / Math.PI; + const deckViewState = { bearing, longitude, latitude, zoom }; + this.deck.setProps({ width, height, viewState: deckViewState }); + this.deck.redraw(); + // 返回deck.gl的canvas元素 + return document.getElementById("deck-canvas") as HTMLElement; + } +} +// 跨组件传递 +const MapContext = createContext(undefined); +const extent = config.mapExtent; +const backendUrl = config.backendUrl; +const mapUrl = config.mapUrl; + +// 添加防抖函数 +function debounce any>(func: F, waitFor: number) { + let timeout: ReturnType | null = null; + + return (...args: Parameters): void => { + if (timeout !== null) { + clearTimeout(timeout); + } + timeout = setTimeout(() => func(...args), waitFor); + }; +} + +export const useMap = () => { + return useContext(MapContext); +}; + +const MapComponent: React.FC = () => { + const mapRef = useRef(null); + const deckRef = useRef(null); + + const [map, setMap] = useState(); + const [currentTime, setCurrentTime] = useState( + new Date("2025-09-17T00:30:00+08:00") + ); + const intervalRef = useRef(null); + const [junctionData, setJunctionDataState] = useState([]); + const [pipeData, setPipeDataState] = useState([]); + const junctionDataIds = useRef(new Set()); + const pipeDataIds = useRef(new Set()); + const tileJunctionDataBuffer = useRef([]); + const tilePipeDataBuffer = useRef([]); + + let showJunctionText = true; // 控制节点文本显示 + let showPipeText = true; // 控制管道文本显示 + let junctionText = "pressure"; + let pipeText = "flow"; + const isAnimating = useRef(false); // 添加动画控制标志 + + // 防抖更新函数 + const debouncedUpdateData = useRef( + debounce(() => { + if (tileJunctionDataBuffer.current.length > 0) { + setJunctionData(tileJunctionDataBuffer.current); + tileJunctionDataBuffer.current = []; + } + if (tilePipeDataBuffer.current.length > 0) { + setPipeData(tilePipeDataBuffer.current); + tilePipeDataBuffer.current = []; + } + }, 100) + ); + + const setJunctionData = (newData: any[]) => { + const uniqueNewData = newData.filter((item) => { + if (!item || !item.id) return false; + if (!junctionDataIds.current.has(item.id)) { + junctionDataIds.current.add(item.id); + return true; + } + return false; + }); + if (uniqueNewData.length > 0) { + setJunctionDataState((prev) => [...prev, ...uniqueNewData]); + } + }; + const setPipeData = (newData: any[]) => { + const uniqueNewData = newData.filter((item) => { + if (!item || !item.id) return false; + if (!pipeDataIds.current.has(item.id)) { + pipeDataIds.current.add(item.id); + return true; + } + return false; + }); + if (uniqueNewData.length > 0) { + setPipeDataState((prev) => [...prev, ...uniqueNewData]); + } + }; + + const setFrameData = async (queryTime: Date) => { + const query_time = queryTime.toISOString(); + console.log("Query Time:", query_time); + try { + // 定义需要查询的属性 + const junctionProperties = junctionText; + const pipeProperties = pipeText; + // 同时查询节点和管道数据 + const starttime = Date.now(); + const [nodeResponse, linkResponse] = await Promise.all([ + fetch( + `${backendUrl}/queryallrecordsbytimeproperty/?querytime=${query_time}&type=node&property=${junctionProperties}` + ), + fetch( + `${backendUrl}/queryallrecordsbytimeproperty/?querytime=${query_time}&type=link&property=${pipeProperties}` + ), + ]); + + const nodeRecords = await nodeResponse.json(); + const linkRecords = await linkResponse.json(); + // 将 nodeRecords 转换为 Map 以提高查找效率 + const nodeMap: Map = new Map( + nodeRecords.results.map((r: any) => [r.ID, r]) + ); + // 将 linkRecords 转换为 Map 以提高查找效率 + const linkMap: Map = new Map( + linkRecords.results.map((r: any) => [r.ID, r]) + ); + + // 更新junctionData + setJunctionDataState((prev) => + prev.map((j) => { + const record = nodeMap.get(j.id); + if (record) { + return { + ...j, + [junctionProperties]: record.value, + }; + } + return j; + }) + ); + + // 更新pipeData + setPipeDataState((prev) => + prev.map((p) => { + const record = linkMap.get(p.id); + if (record) { + return { + ...p, + flowFlag: pipeProperties === "flow" && record.value < 0 ? -1 : 1, + path: + pipeProperties === "flow" && record.value < 0 && p.flowFlag > 0 + ? [...p.path].reverse() + : p.path, + [pipeProperties]: record.value, + }; + } + return p; + }) + ); + // 属性为 flow 时启动动画 + if (pipeProperties === "flow") { + isAnimating.current = true; + } else { + isAnimating.current = false; + } + const endtime = Date.now(); + console.log("Data fetch and update time:", endtime - starttime, "ms"); + } catch (error) { + console.error("Error fetching data:", error); + } + }; + + useEffect(() => { + if (!mapRef.current) return; + // 添加 MVT 瓦片加载逻辑 + const defaultFlatStyle: FlatStyleLike = { + "stroke-width": 3, + "stroke-color": "rgba(51, 153, 204, 0.9)", + "circle-fill-color": "rgba(255,255,255,0.4)", + "circle-stroke-color": "rgba(255,255,255,0.9)", + "circle-radius": [ + "interpolate", + ["linear"], + ["zoom"], + 12, + 1, // 在缩放级别 12 时,圆形半径为 1px + 24, + 12, // 在缩放级别 24 时,圆形半径为 12px + ], + }; + const junctionSource = new VectorTileSource({ + url: `${mapUrl}/gwc/service/tms/1.0.0/TJWater:geo_junctions_mat@WebMercatorQuad@pbf/{z}/{x}/{-y}.pbf`, // 替换为你的 MVT 瓦片服务 URL + format: new MVT(), + projection: "EPSG:3857", + }); + const pipeSource = new VectorTileSource({ + url: `${mapUrl}/gwc/service/tms/1.0.0/TJWater:geo_pipes_mat@WebMercatorQuad@pbf/{z}/{x}/{-y}.pbf`, // 替换为你的 MVT 瓦片服务 URL + format: new MVT(), + projection: "EPSG:3857", + }); + + // 缓存数据 + junctionSource.on("tileloadend", (event) => { + try { + if (event.tile instanceof VectorTile) { + const renderFeatures = event.tile.getFeatures(); + const data = new Map(); + + renderFeatures.forEach((renderFeature) => { + const props = renderFeature.getProperties(); + const featureId = props.id; + if (featureId && !junctionDataIds.current.has(featureId)) { + const geometry = renderFeature.getGeometry(); + if (geometry) { + const coordinates = geometry.getFlatCoordinates(); + const coordWGS84 = toLonLat(coordinates); + data.set(featureId, { + id: featureId, + position: coordWGS84, + elevation: props.elevation || 0, + demand: props.demand || 0, + }); + } + } + }); + + const uniqueData = Array.from(data.values()); + if (uniqueData.length > 0) { + tileJunctionDataBuffer.current.push(...uniqueData); + debouncedUpdateData.current(); + } + } + } catch (error) { + console.error("Junction tile load error:", error); + } + }); + pipeSource.on("tileloadend", (event) => { + try { + if (event.tile instanceof VectorTile) { + const renderFeatures = event.tile.getFeatures(); + const data = new Map(); + + renderFeatures.forEach((renderFeature) => { + try { + const props = renderFeature.getProperties(); + const featureId = props.id; + if (featureId && !pipeDataIds.current.has(featureId)) { + const geometry = renderFeature.getGeometry(); + if (geometry) { + const flatCoordinates = geometry.getFlatCoordinates(); + const stride = geometry.getStride(); // 获取步长,通常为 2 + // 重建为 LineString GeoJSON 格式的 coordinates: [[x1, y1], [x2, y2], ...] + const lineCoords = []; + for (let i = 0; i < flatCoordinates.length; i += stride) { + lineCoords.push([ + flatCoordinates[i], + flatCoordinates[i + 1], + ]); + } + const lineCoordsWGS84 = lineCoords.map((coord) => { + const [lon, lat] = toLonLat(coord); + return [lon, lat]; + }); + // 计算中点 + const midPoint = center({ + type: "LineString", + coordinates: lineCoordsWGS84, + }).geometry.coordinates; + // 计算角度 + let lineAngle = bearing( + lineCoordsWGS84[0], + lineCoordsWGS84[lineCoordsWGS84.length - 1] + ); + lineAngle = -lineAngle + 90; + if (lineAngle < -90 || lineAngle > 90) { + lineAngle += 180; + } + + // 计算时间戳(可选) + const numSegments = lineCoordsWGS84.length - 1; + const timestamps = [0]; + if (numSegments > 0) { + for (let i = 1; i <= numSegments; i++) { + timestamps.push((i / numSegments) * 10); + } + } + + data.set(featureId, { + id: featureId, + diameter: props.diameter || 0, + path: lineCoordsWGS84, // 使用重建后的坐标 + position: midPoint, + angle: lineAngle, + timestamps, + }); + } + } + } catch (geomError) { + console.error("Geometry calculation error:", geomError); + } + }); + + const uniqueData = Array.from(data.values()); + if (uniqueData.length > 0) { + tilePipeDataBuffer.current.push(...uniqueData); + debouncedUpdateData.current(); + } + } + } catch (error) { + console.error("Pipe tile load error:", error); + } + }); + + // WebGL 渲染优化显示 + const junctionLayer = new WebGLVectorTileLayer({ + source: junctionSource as any, // 使用 WebGL 渲染 + style: defaultFlatStyle, + extent: extent, // 设置图层范围 + maxZoom: 24, + minZoom: 12, + properties: { + name: "节点图层", // 设置图层名称 + value: "junctions", + type: "point", + properties: [ + { name: "需求量", value: "demand" }, + { name: "海拔高度", value: "elevation" }, + ], + }, + }); + + const pipeLayer = new WebGLVectorTileLayer({ + source: pipeSource as any, // 使用 WebGL 渲染 + style: defaultFlatStyle, + extent: extent, // 设置图层范围 + maxZoom: 24, + minZoom: 12, + properties: { + name: "管道图层", // 设置图层名称 + value: "pipes", + type: "linestring", + properties: [ + { name: "直径", value: "diameter" }, + { name: "粗糙度", value: "roughness" }, + { name: "局部损失", value: "minor_loss" }, + ], + }, + }); + + const map = new OlMap({ + target: mapRef.current, + view: new View({ + projection: "EPSG:3857", + }), + // 图层依面、线、点、标注次序添加 + layers: [pipeLayer, junctionLayer], + controls: [], + }); + setMap(map); + map.getView().fit(extent, { + padding: [50, 50, 50, 50], // 添加一些内边距 + duration: 1000, // 动画持续时间 + }); + // 初始化 deck.gl + const deck = new Deck({ + initialViewState: { + longitude: 0, + latitude: 0, + zoom: 1, + }, + canvas: "deck-canvas", + controller: false, // 由 OpenLayers 控制视图 + layers: [], + }); + deckRef.current = deck; + const deckLayer = new DeckLayer(deck); + // deckLayer.setZIndex(1000); // 确保在最上层 + map.addLayer(deckLayer); + // 清理函数 + return () => { + map.setTarget(undefined); + map.dispose(); + deck.finalize(); + }; + }, []); + + // 当数据变化时,更新 deck.gl 图层 + useEffect(() => { + const deck = deckRef.current; + if (!deck) return; // 如果 deck 实例还未创建,则退出 + const newLayers = [ + new TextLayer({ + id: "junctionTextLayer", + zIndex: 1000, + data: showJunctionText ? junctionData : [], + getPosition: (d: any) => d.position, + fontFamily: "Monaco, monospace", + getText: (d: any) => + d[junctionText] ? (d[junctionText] as number).toFixed(3) : "", + getSize: 12, + getColor: [150, 150, 255], + getAngle: 0, + getTextAnchor: "middle", + getAlignmentBaseline: "center", + getPixelOffset: [0, -10], + // --- 修改以下属性 --- + // characterSet: "auto", + // outlineWidth: 4, + // outlineColor: [255, 255, 255, 255], // 设置为白色轮廓 + }), + new TextLayer({ + id: "pipeTextLayer", + zIndex: 1000, + data: showPipeText ? pipeData : [], + getPosition: (d: any) => d.position, + fontFamily: "Monaco, monospace", + getText: (d: any) => + d[pipeText] ? (d[pipeText] as number).toFixed(3) : "", + getSize: 14, + getColor: [120, 128, 181], + getAngle: (d: any) => d.angle || 0, + getPixelOffset: [0, -8], + getTextAnchor: "middle", + getAlignmentBaseline: "bottom", + // --- 修改以下属性 --- + // characterSet: "auto", + // outlineWidth: 5, + // outlineColor: [255, 255, 255, 255], // 设置为白色轮廓 + }), + ]; + deck.setProps({ layers: newLayers }); + + // 动画循环 + const animate = () => { + if (!deck || !isAnimating.current) return; // 添加检查,防止空数据或停止旧循环 + // 动画总时长(秒) + if (pipeData.length === 0) { + requestAnimationFrame(animate); + return; + } + const animationDuration = 10; + // 缓冲时间(秒) + const bufferTime = 2; + // 完整循环周期 + const loopLength = animationDuration + bufferTime; + // 确保时间范围与你的时间戳数据匹配 + const currentTime = (Date.now() / 1000) % loopLength; // (0,12) 之间循环 + // console.log("Current Time:", currentTime); + const waterflowLayer = new TripsLayer({ + id: "waterflowLayer", + data: pipeData, + getPath: (d) => (isAnimating.current ? d.path : []), + getTimestamps: (d) => { + return d.timestamps; // 这些应该是与 currentTime 匹配的数值 + }, + getColor: [0, 220, 255], + opacity: 0.8, + widthMinPixels: 5, + jointRounded: true, // 拐角变圆 + // capRounded: true, // 端点变圆 + trailLength: 2, // 水流尾迹淡出时间 + currentTime: currentTime, + }); + + // 获取当前除 waterflowLayer 之外的所有图层 + const otherLayers = deck.props.layers.filter( + (layer: any) => layer && layer.id !== "waterflowLayer" + ); + + deck.setProps({ + layers: [...otherLayers, waterflowLayer], + }); + + // 继续请求动画帧,每帧执行一次函数 + requestAnimationFrame(animate); + }; + animate(); + }, [isAnimating, junctionData, pipeData]); + + // 启动时间更新interval + useEffect(() => { + intervalRef.current = setInterval(() => { + setCurrentTime((prev) => new Date(prev.getTime() + 1800 * 1000)); + }, 10 * 1000); + return () => { + if (intervalRef.current) clearInterval(intervalRef.current); + }; + }, []); + + // 当currentTime改变时,获取数据 + useEffect(() => { + const fetchData = async () => { + await setFrameData(currentTime); + }; + fetchData(); + }, [currentTime]); + + return ( + <> + +
+
+ +
+ +
+ + ); +}; + +export default MapComponent; diff --git a/src/app/OlMap/MapTools.tsx b/src/app/OlMap/MapTools.tsx new file mode 100644 index 0000000..54ebde7 --- /dev/null +++ b/src/app/OlMap/MapTools.tsx @@ -0,0 +1,19 @@ +import React from "react"; +import Zoom from "./Controls/Zoom"; +import BaseLayers from "./Controls/BaseLayers"; +import MapToolbar from "./Controls/Toolbar"; +import ScaleLine from "./Controls/ScaleLine"; + +const MapTools = () => { + return ( + <> + + + + + {/* 继续添加其他自定义控件 */} + + ); +}; + +export default MapTools; diff --git a/src/app/_refine_context.tsx b/src/app/_refine_context.tsx index 314636c..0a0cbb3 100644 --- a/src/app/_refine_context.tsx +++ b/src/app/_refine_context.tsx @@ -1,6 +1,6 @@ "use client"; -import { GitHubBanner, Refine, type AuthProvider } from "@refinedev/core"; +import { Refine, type AuthProvider } from "@refinedev/core"; import { RefineKbar, RefineKbarProvider } from "@refinedev/kbar"; import { RefineSnackbarProvider, @@ -15,6 +15,13 @@ import routerProvider from "@refinedev/nextjs-router"; import { ColorModeContextProvider } from "@contexts/color-mode"; import { dataProvider } from "@providers/data-provider"; +import { LiaNetworkWiredSolid } from "react-icons/lia"; +import { TbDatabaseEdit } from "react-icons/tb"; +import { LuReplace } from "react-icons/lu"; +import { PiAsteriskDuotone } from "react-icons/pi"; +import { TbLocationPin } from "react-icons/tb"; +import { AiOutlinePartition } from "react-icons/ai"; + type RefineContextProps = { defaultMode?: string; }; @@ -105,7 +112,6 @@ const App = (props: React.PropsWithChildren) => { return ( <> - @@ -116,23 +122,51 @@ const App = (props: React.PropsWithChildren) => { authProvider={authProvider} resources={[ { - name: "blog_posts", - list: "/blog-posts", - create: "/blog-posts/create", - edit: "/blog-posts/edit/:id", - show: "/blog-posts/show/:id", + name: "管网在线模拟", + list: "/network-simulation", meta: { - canDelete: true, + icon: , + label: "管网在线模拟", }, }, { - name: "categories", - list: "/categories", - create: "/categories/create", - edit: "/categories/edit/:id", - show: "/categories/show/:id", + name: "SCADA 数据清洗", + list: "/scada-data-cleaning", meta: { - canDelete: true, + icon: , + label: "SCADA 数据清洗", + }, + }, + { + name: "监测点优化布置", + list: "/monitoring-place-optimization", + meta: { + icon: , + label: "监测点优化布置", + }, + }, + { + name: "健康风险分析", + list: "/health-risk-analysis", + meta: { + icon: , + label: "健康风险分析", + }, + }, + { + name: "爆管分析定位", + list: "/burst-pipe-analysis", + meta: { + icon: , + label: "爆管分析定位", + }, + }, + { + name: "管网优化分区", + list: "/network-partition-optimization", + meta: { + icon: , + label: "管网优化分区", }, }, ]} diff --git a/src/app/globals.css b/src/app/globals.css new file mode 100644 index 0000000..2fea8fa --- /dev/null +++ b/src/app/globals.css @@ -0,0 +1,9 @@ +@import "tailwindcss"; + +html, +body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 03a2a8a..7d2b51f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -3,13 +3,18 @@ import { cookies } from "next/headers"; import React, { Suspense } from "react"; import { RefineContext } from "./_refine_context"; -export const metadata: Metadata = { - title: "Refine", - description: "Generated by create refine app", - icons: { - icon: "/favicon.ico", - }, -}; +import authOptions from "@app/api/auth/[...nextauth]/options"; +import { Header } from "@components/header"; +import { Title } from "@components/title"; +import { ThemedLayout } from "@refinedev/mui"; +import { getServerSession } from "next-auth/next"; +import { redirect } from "next/navigation"; + +import "./globals.css"; + +import { META_DATA } from "@config/config"; + +export const metadata: Metadata = META_DATA; export default async function RootLayout({ children, @@ -20,13 +25,39 @@ export default async function RootLayout({ const theme = cookieStore.get("theme"); const defaultMode = theme?.value === "dark" ? "dark" : "light"; + const data = await getData(); + + if (!data.session?.user) { + return redirect("/login"); + } + return ( - {children} + + + {children} + + ); } + +async function getData() { + const session = await getServerSession(authOptions); + return { + session, + }; +} diff --git a/src/app/network-simulation/page.tsx b/src/app/network-simulation/page.tsx new file mode 100644 index 0000000..dee979d --- /dev/null +++ b/src/app/network-simulation/page.tsx @@ -0,0 +1,11 @@ +"use client"; + +import MapComponent from "@app/OlMap/MapComponent"; + +export default function Home() { + return ( +
+ +
+ ); +} diff --git a/src/app/scada-data-cleaning/page.tsx b/src/app/scada-data-cleaning/page.tsx new file mode 100644 index 0000000..dee979d --- /dev/null +++ b/src/app/scada-data-cleaning/page.tsx @@ -0,0 +1,11 @@ +"use client"; + +import MapComponent from "@app/OlMap/MapComponent"; + +export default function Home() { + return ( +
+ +
+ ); +} diff --git a/src/assets/avatar/avatar-small.jpeg b/src/assets/avatar/avatar-small.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..448b9b34354de4614a661b8ea84a8a9f7435e070 GIT binary patch literal 93026 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

P6}C<=igrf({p4|8*~i^QkZfQC-iAgIWa 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 z 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 literal 0 HcmV?d00001 diff --git a/src/assets/map/layers/mapbox-streets.png b/src/assets/map/layers/mapbox-streets.png new file mode 100644 index 0000000000000000000000000000000000000000..98ffbe1ff7f1489efa0a37bc53e6dfde16956289 GIT binary patch literal 39123 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 KMNUMnLSTZhqJ+}` literal 0 HcmV?d00001 diff --git a/src/components/olmap/common/ToolbarButton.tsx b/src/components/olmap/common/ToolbarButton.tsx new file mode 100644 index 0000000..6427437 --- /dev/null +++ b/src/components/olmap/common/ToolbarButton.tsx @@ -0,0 +1,57 @@ +import clsx from "clsx"; +import { useState } from "react"; + +const ToolbarButton: React.FC<{ + icon: React.ReactNode; + name: string; + isActive: boolean; + onClick: () => void; + disabled?: boolean; +}> = ({ icon, name, isActive, onClick, disabled = false }) => { + const [showTooltip, setShowTooltip] = useState(false); + + return ( +

+ ); +}; + +export default ToolbarButton; diff --git a/src/components/title/index.tsx b/src/components/title/index.tsx new file mode 100644 index 0000000..405a282 --- /dev/null +++ b/src/components/title/index.tsx @@ -0,0 +1,18 @@ +"use client"; + +import React from "react"; +import { IoIosWater } from "react-icons/io"; +import { PROJECT_TITLE } from "@config/config"; + +interface TitleProps { + collapsed?: boolean; +} + +export const Title: React.FC = ({ collapsed = false }) => { + return ( +
+ + {!collapsed && {PROJECT_TITLE} } +
+ ); +}; diff --git a/src/config/config.ts b/src/config/config.ts new file mode 100644 index 0000000..4b296cd --- /dev/null +++ b/src/config/config.ts @@ -0,0 +1,24 @@ +export const config = { + backendUrl: process.env.NEXT_PUBLIC_BACKEND_URL || "http://192.168.1.42:8000", + mapUrl: process.env.NEXT_PUBLIC_MAP_URL || "http://127.0.0.1:8080/geoserver", + mapExtent: [13508849, 3608035.75, 13555781, 3633812.75], + // 添加其他配置项... +}; + +export const MAPBOX_TOKEN = + process.env.NEXT_PUBLIC_MAPBOX_TOKEN || + "pk.eyJ1IjoiemhpZnUiLCJhIjoiY205azNyNGY1MGkyZDJxcTJleDUwaHV1ZCJ9.wOmSdOnDDdre-mB1Lpy6Fg"; +export const TIANDITU_TOKEN = + process.env.NEXT_PUBLIC_TIANDITU_TOKEN || "e3e8ad95ee911741fa71ed7bff2717ec"; +export const PROJECT_TITLE = + process.env.NEXT_PUBLIC_PROJECT_TITLE || "TJWater Project"; + +export const META_DATA = { + title: PROJECT_TITLE, + description: "Developed by TJWATER", + icons: { + icon: "/favicon.ico", + }, +}; + +export default config;