├── .gitignore ├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ └── publish.yml ├── src ├── events │ ├── index.ts │ ├── reference.ts │ ├── map.ts │ ├── global.ts │ └── layer.ts ├── index.ts ├── types.ts └── GeomanControls.ts ├── tsconfig.build.json ├── .vscode └── launch.json ├── example ├── index.tsx ├── App.tsx ├── geojson.ts └── Geoman.tsx ├── tsconfig.json ├── index.html ├── LICENSE ├── package.json ├── vite.config.ts ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .DS_Store -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: TurtIeSocks 4 | -------------------------------------------------------------------------------- /src/events/index.ts: -------------------------------------------------------------------------------- 1 | export * from './global' 2 | export * from './layer' 3 | export * from './map' 4 | export * from './reference' 5 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import GeomanControls from "./GeomanControls" 2 | 3 | export * from "./types" 4 | export * from "./events" 5 | export { GeomanControls, GeomanControls as useGeomanControls } 6 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | // "emitDeclarationOnly": true, 5 | "outDir": "dist", 6 | "rootDir": "src" 7 | }, 8 | "include": [ 9 | "src" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "type": "chrome", 6 | "request": "launch", 7 | "name": "Launch Chrome against localhost", 8 | "url": "http://localhost:3001", 9 | "webRoot": "${workspaceFolder}/example" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /example/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { createRoot } from 'react-dom/client' 3 | 4 | import App from './App' 5 | 6 | import '@geoman-io/leaflet-geoman-free/dist/leaflet-geoman.css' 7 | import 'leaflet/dist/leaflet.css' 8 | 9 | // eslint-disable-next-line @typescript-eslint/no-non-null-assertion 10 | createRoot(document.getElementById('root')!).render() 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "moduleResolution": "node", 4 | "esModuleInterop": true, 5 | "target": "es2020", 6 | "module": "es2020", 7 | "lib": [ 8 | "es2020" 9 | ], 10 | "strict": true, 11 | "declaration": true, 12 | "allowSyntheticDefaultImports": true, 13 | "skipLibCheck": true 14 | }, 15 | "exclude": [ 16 | "dist", 17 | "node_modules" 18 | ], 19 | "include": [ 20 | "src", 21 | "test" 22 | ] 23 | } -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish 2 | 3 | on: 4 | release: 5 | types: [created] 6 | 7 | jobs: 8 | publish-npm: 9 | name: Publish to NPM 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout Code 13 | uses: actions/checkout@v3 14 | with: 15 | fetch-depth: 2 16 | 17 | - name: Setup Node.js environment 18 | uses: actions/setup-node@v3 19 | with: 20 | node-version: 16 21 | registry-url: https://registry.npmjs.org/ 22 | - run: yarn install 23 | - run: yarn build:ts 24 | - uses: JS-DevTools/npm-publish@v1 25 | with: 26 | token: ${{ secrets.NPM_TOKEN }} 27 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | React Leaflet Geoman 12 | 26 | 27 | 28 | 29 |
30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 TurtIeSocks 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /example/App.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { MapContainer, TileLayer } from 'react-leaflet' 3 | import type { FeatureCollection } from 'geojson' 4 | 5 | import GeomanWrapper from './Geoman' 6 | import { GEOJSON } from './geojson' 7 | 8 | export default function App() { 9 | const [geojson, setGeojson] = React.useState(GEOJSON) 10 | 11 | return ( 12 |
13 |
14 | 15 | 19 | 20 | 21 |
22 |
23 |

{geojson.features.length} Features

24 |
{JSON.stringify(geojson, null, 2)}
25 |
26 |
27 | ) 28 | } 29 | -------------------------------------------------------------------------------- /src/events/reference.ts: -------------------------------------------------------------------------------- 1 | import type { GeomanHandlers } from '../types' 2 | 3 | export const reference = [ 4 | 'onMapRemove', 5 | 'onLayerRemove', 6 | 'onMapCut', 7 | 'onLayerCut', 8 | 'onMapRotateEnable', 9 | 'onLayerRotateEnable', 10 | 'onMapRotateDisable', 11 | 'onLayerRotateDisable', 12 | 'onMapRotateStart', 13 | 'onLayerRotateStart', 14 | 'onMapRotate', 15 | 'onLayerRotate', 16 | 'onMapRotateEnd', 17 | 'onLayerRotateEnd', 18 | 'onGlobalDrawModeToggled', 19 | 'onDrawStart', 20 | 'onDrawEnd', 21 | 'onCreate', 22 | 'onGlobalEditModeToggled', 23 | 'onGlobalDragModeToggled', 24 | 'onGlobalRemovalModeToggled', 25 | 'onGlobalCutModeToggled', 26 | 'onGlobalRotateModeToggled', 27 | 'onLangChange', 28 | 'onButtonClick', 29 | 'onActionClick', 30 | 'onKeyEvent', 31 | 'onSnapDrag', 32 | 'onSnap', 33 | 'onUnsnap', 34 | 'onCenterPlaced', 35 | 'onEdit', 36 | 'onUpdate', 37 | 'onEnable', 38 | 'onDisable', 39 | 'onVertexAdded', 40 | 'onVertexRemoved', 41 | 'onVertexClick', 42 | 'onMarkerDragStart', 43 | 'onMarkerDrag', 44 | 'onMarkerDragEnd', 45 | 'onLayerReset', 46 | 'onIntersect', 47 | 'onChange', 48 | 'onTextChange', 49 | 'onDragStart', 50 | 'onDrag', 51 | 'onDragEnd', 52 | 'onDragEnable', 53 | 'onDragDisable', 54 | ] as (keyof GeomanHandlers)[] 55 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-leaflet-geoman-v2", 3 | "version": "1.0.1", 4 | "description": "React wrapper for the leaflet-geoman plugin", 5 | "repository": "https://github.com/TurtIeSocks/react-leaflet-geoman", 6 | "author": "TurtIeSocks <58572875+TurtIeSocks@users.noreply.github.com>", 7 | "license": "MIT", 8 | "private": false, 9 | "files": [ 10 | "dist" 11 | ], 12 | "main": "dist/index.js", 13 | "types": "dist/index.d.ts", 14 | "scripts": { 15 | "start": "vite", 16 | "build": "vite build", 17 | "build:ts": "tsc --project tsconfig.build.json" 18 | }, 19 | "devDependencies": { 20 | "@geoman-io/leaflet-geoman-free": "^2.14.2", 21 | "@rollup/plugin-typescript": "^8.4.0", 22 | "@types/leaflet": "^1.7.11", 23 | "@types/node": "^18.7.13", 24 | "@types/react": "^18.0.17", 25 | "@types/react-dom": "^18.0.6", 26 | "@vitejs/plugin-react": "^2.0.1", 27 | "geojson": "^0.5.0", 28 | "leaflet": "^1.8.0", 29 | "react": "^18.2.0", 30 | "react-dom": "^18.2.0", 31 | "react-leaflet": "^4.0.2", 32 | "typescript": "^4.6.3", 33 | "vite": "^3.0.8", 34 | "vite-plugin-checker": "^0.4.9" 35 | }, 36 | "peerDependencies": { 37 | "@geoman-io/leaflet-geoman-free": "^2.14.2", 38 | "react": "^17.0.0 || ^18.0.0", 39 | "react-dom": "^17.0.0 || ^18.0.0", 40 | "react-leaflet": "^4" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/events/map.ts: -------------------------------------------------------------------------------- 1 | import type { Map } from 'leaflet' 2 | 3 | import { layerEvents } from './layer' 4 | import type { HandlersWithDebug, Method } from '../types' 5 | 6 | export function mapEvents( 7 | map: Map, 8 | handlers: HandlersWithDebug, 9 | method: Method 10 | ) { 11 | // Cut 12 | if (handlers.onMapCut) { 13 | map[method]('pm:cut', (e) => { 14 | layerEvents(e.layer, handlers, 'off') 15 | layerEvents(e.layer, handlers, 'on') 16 | if (handlers.onMapCut) handlers.onMapCut(e) 17 | }) 18 | } 19 | 20 | // Draw 21 | if (handlers.onCreate) { 22 | map[method]('pm:create', (e) => { 23 | layerEvents(e.layer, handlers, 'off') 24 | layerEvents(e.layer, handlers, 'on') 25 | if (handlers.onCreate) handlers.onCreate(e) 26 | }) 27 | } 28 | if (handlers.onDrawStart) { 29 | map[method]('pm:drawstart', handlers.onDrawStart) 30 | } 31 | if (handlers.onDrawEnd) { 32 | map[method]('pm:drawend', handlers.onDrawEnd) 33 | } 34 | 35 | // Remove 36 | if (handlers.onMapRemove) { 37 | map[method]('pm:remove', handlers.onMapRemove) 38 | } 39 | 40 | // Rotate 41 | if (handlers.onMapRotateEnable) { 42 | map[method]('pm:rotateenable', handlers.onMapRotateEnable) 43 | } 44 | if (handlers.onMapRotateDisable) { 45 | map[method]('pm:rotatedisable', handlers.onMapRotateDisable) 46 | } 47 | if (handlers.onMapRotate) { 48 | map[method]('pm:rotate', handlers.onMapRotate) 49 | } 50 | if (handlers.onMapRotateStart) { 51 | map[method]('pm:rotatestart', handlers.onMapRotateStart) 52 | } 53 | if (handlers.onMapRotateEnd) { 54 | map[method]('pm:rotateend', handlers.onMapRotateEnd) 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/events/global.ts: -------------------------------------------------------------------------------- 1 | import type { Map } from 'leaflet' 2 | 3 | import type { HandlersWithDebug, Method } from '../types' 4 | 5 | export function globalEvents( 6 | map: Map, 7 | handlers: HandlersWithDebug, 8 | method: Method 9 | ) { 10 | // Cut Mode 11 | if (handlers.onGlobalCutModeToggled) { 12 | map[method]('pm:globalcutmodetoggled', handlers.onGlobalCutModeToggled) 13 | } 14 | 15 | // Drag Mode 16 | if (handlers.onGlobalDragModeToggled) { 17 | map[method]('pm:globaldragmodetoggled', handlers.onGlobalDragModeToggled) 18 | } 19 | 20 | // Draw Mode 21 | if (handlers.onGlobalDrawModeToggled) { 22 | map[method]('pm:globaldrawmodetoggled', handlers.onGlobalDrawModeToggled) 23 | } 24 | 25 | // Edit Mode 26 | if (handlers.onGlobalEditModeToggled) { 27 | map[method]('pm:globaleditmodetoggled', handlers.onGlobalEditModeToggled) 28 | } 29 | 30 | // Misc Actions 31 | if (handlers.onButtonClick) { 32 | map[method]('pm:buttonclick', handlers.onButtonClick) 33 | } 34 | if (handlers.onActionClick) { 35 | map[method]('pm:actionclick', handlers.onActionClick) 36 | } 37 | if (handlers.onKeyEvent) { 38 | map[method]('pm:keyevent', handlers.onKeyEvent) 39 | } 40 | if (handlers.onLangChange) { 41 | map[method]('pm:langchange', handlers.onLangChange) 42 | } 43 | 44 | // Remove Mode 45 | if (handlers.onGlobalRemovalModeToggled) { 46 | map[method]( 47 | 'pm:globalremovalmodetoggled', 48 | handlers.onGlobalRemovalModeToggled 49 | ) 50 | } 51 | 52 | // Rotate Mode 53 | if (handlers.onGlobalRotateModeToggled) { 54 | map[method]( 55 | 'pm:globalrotatemodetoggled', 56 | handlers.onGlobalRotateModeToggled 57 | ) 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { resolve } from 'path' 2 | 3 | import { defineConfig } from 'vite' 4 | import react from '@vitejs/plugin-react' 5 | import checker from 'vite-plugin-checker' 6 | import typescript from '@rollup/plugin-typescript' 7 | 8 | export default defineConfig(({ mode }) => ({ 9 | plugins: 10 | mode === 'development' 11 | ? [ 12 | react({ 13 | jsxRuntime: 'classic', 14 | }), 15 | checker({ 16 | overlay: { 17 | initialIsOpen: false, 18 | }, 19 | typescript: { 20 | tsconfigPath: resolve(__dirname, 'tsconfig.json'), 21 | }, 22 | }), 23 | ] 24 | : [], 25 | build: { 26 | target: ['safari11.1', 'chrome64', 'firefox66', 'edge88'], 27 | outDir: resolve(__dirname, './dist'), 28 | sourcemap: true, 29 | minify: false, 30 | input: 31 | mode === 'development' 32 | ? { main: resolve(__dirname, 'index.html') } 33 | : undefined, 34 | lib: 35 | mode === 'development' 36 | ? undefined 37 | : { 38 | name: 'react-leaflet-geoman', 39 | entry: 'src/index.ts', 40 | fileName: 'index', 41 | }, 42 | rollupOptions: 43 | mode === 'development' 44 | ? {} 45 | : { 46 | plugins: [typescript({ tsconfig: './tsconfig.build.json' })], 47 | external: [ 48 | 'react', 49 | 'leaflet', 50 | 'react-leaflet', 51 | '@geoman-io/leaflet-geoman-free', 52 | ], 53 | }, 54 | assetsDir: '', 55 | emptyOutDir: true, 56 | }, 57 | server: { 58 | host: '0.0.0.0', 59 | open: true, 60 | port: 3001, 61 | fs: { 62 | strict: false, 63 | }, 64 | }, 65 | })) 66 | -------------------------------------------------------------------------------- /example/geojson.ts: -------------------------------------------------------------------------------- 1 | import type { FeatureCollection } from 'geojson' 2 | 3 | export const GEOJSON: FeatureCollection = { 4 | type: 'FeatureCollection', 5 | features: [ 6 | { 7 | type: 'Feature', 8 | properties: {}, 9 | geometry: { 10 | type: 'Polygon', 11 | coordinates: [ 12 | [ 13 | [-73.97408, 40.778104], 14 | [-73.97172, 40.78808], 15 | [-73.966141, 40.786001], 16 | [-73.97408, 40.778104], 17 | ], 18 | ], 19 | }, 20 | }, 21 | { 22 | type: 'Feature', 23 | properties: {}, 24 | geometry: { 25 | type: 'Polygon', 26 | coordinates: [ 27 | [ 28 | [-73.974982, 40.776187], 29 | [-73.965283, 40.774724], 30 | [-73.957644, 40.779534], 31 | [-73.959189, 40.782231], 32 | [-73.971034, 40.778819], 33 | [-73.974982, 40.776187], 34 | ], 35 | ], 36 | }, 37 | }, 38 | { 39 | type: 'Feature', 40 | properties: {}, 41 | geometry: { type: 'Point', coordinates: [-73.979187, 40.783498] }, 42 | }, 43 | { 44 | type: 'Feature', 45 | properties: { radius: 20 }, 46 | geometry: { type: 'Point', coordinates: [-73.961507, 40.786585] }, 47 | }, 48 | { 49 | type: 'Feature', 50 | properties: { radius: 15 }, 51 | geometry: { type: 'Point', coordinates: [-73.977685, 40.771604] }, 52 | }, 53 | { 54 | type: 'Feature', 55 | properties: { radius: 160 }, 56 | geometry: { type: 'Point', coordinates: [-73.967772, 40.769719] }, 57 | }, 58 | { 59 | type: 'Feature', 60 | properties: { radius: 200 }, 61 | geometry: { type: 'Point', coordinates: [-73.961936, 40.771539] }, 62 | }, 63 | { 64 | type: 'Feature', 65 | properties: { radius: 40 }, 66 | geometry: { type: 'Point', coordinates: [-73.958288, 40.774952] }, 67 | }, 68 | { 69 | type: 'Feature', 70 | properties: { radius: 70 }, 71 | geometry: { type: 'Point', coordinates: [-73.971205, 40.772742] }, 72 | }, 73 | { 74 | type: 'Feature', 75 | properties: {}, 76 | geometry: { 77 | type: 'Polygon', 78 | coordinates: [ 79 | [ 80 | [-73.988543, 40.769882], 81 | [-73.988543, 40.778787], 82 | [-73.980475, 40.778787], 83 | [-73.980475, 40.769882], 84 | [-73.988543, 40.769882], 85 | ], 86 | ], 87 | }, 88 | }, 89 | { 90 | type: 'Feature', 91 | properties: {}, 92 | geometry: { 93 | type: 'LineString', 94 | coordinates: [ 95 | [-73.951684, 40.78977], 96 | [-73.949409, 40.775277], 97 | [-73.948594, 40.789932], 98 | [-73.951641, 40.792499], 99 | ], 100 | }, 101 | }, 102 | ], 103 | } 104 | -------------------------------------------------------------------------------- /example/Geoman.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { FeatureGroup } from 'react-leaflet' 3 | import type { FeatureCollection } from 'geojson' 4 | import * as L from 'leaflet' 5 | 6 | import { GeomanControls } from '../src/index' 7 | 8 | interface Props { 9 | geojson: FeatureCollection 10 | setGeojson: (geojson: FeatureCollection) => void 11 | } 12 | 13 | export default function Geoman({ geojson, setGeojson }: Props) { 14 | const ref = React.useRef(null) 15 | 16 | React.useEffect(() => { 17 | if (ref.current?.getLayers().length === 0 && geojson) { 18 | L.geoJSON(geojson).eachLayer((layer) => { 19 | if ( 20 | layer instanceof L.Polyline || 21 | layer instanceof L.Polygon || 22 | layer instanceof L.Marker 23 | ) { 24 | if (layer?.feature?.properties.radius && ref.current) { 25 | new L.Circle(layer.feature.geometry.coordinates.slice().reverse(), { 26 | radius: layer.feature?.properties.radius, 27 | }).addTo(ref.current) 28 | } else { 29 | ref.current?.addLayer(layer) 30 | } 31 | } 32 | }) 33 | } 34 | }, [geojson]) 35 | 36 | const handleChange = () => { 37 | const newGeo: FeatureCollection = { 38 | type: 'FeatureCollection', 39 | features: [], 40 | } 41 | const layers = ref.current?.getLayers() 42 | if (layers) { 43 | layers.forEach((layer) => { 44 | if (layer instanceof L.Circle || layer instanceof L.CircleMarker) { 45 | const { lat, lng } = layer.getLatLng() 46 | newGeo.features.push({ 47 | type: 'Feature', 48 | properties: { 49 | radius: layer.getRadius(), 50 | }, 51 | geometry: { 52 | type: 'Point', 53 | coordinates: [lng, lat], 54 | }, 55 | }) 56 | } else if ( 57 | layer instanceof L.Marker || 58 | layer instanceof L.Polygon || 59 | layer instanceof L.Rectangle || 60 | layer instanceof L.Polyline 61 | ) { 62 | newGeo.features.push(layer.toGeoJSON()) 63 | } 64 | }) 65 | } 66 | setGeojson(newGeo) 67 | } 68 | 69 | return ( 70 | 71 | L.PM.setOptIn(true)} 81 | // onUnmount={() => L.PM.setOptIn(false)} 82 | eventDebugFn={console.log} 83 | onCreate={handleChange} 84 | onChange={handleChange} 85 | onUpdate={handleChange} 86 | onEdit={handleChange} 87 | onMapRemove={handleChange} 88 | onMapCut={handleChange} 89 | onDragEnd={handleChange} 90 | onMarkerDragEnd={handleChange} 91 | /> 92 | 93 | ) 94 | } 95 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import type { PM, PathOptions } from 'leaflet' 2 | 3 | export type Method = 'on' | 'off' 4 | 5 | export type EventDebugFn = (input?: any) => void 6 | 7 | export type ValueOf = GeomanHandlers[T] 8 | 9 | export interface HandlersWithDebug extends GeomanHandlers { 10 | eventDebugFn?: EventDebugFn 11 | } 12 | 13 | export interface GeomanHandlers { 14 | // Global 15 | onGlobalDrawModeToggled?: PM.GlobalDrawModeToggledEventHandler 16 | onGlobalEditModeToggled?: PM.GlobalEditModeToggledEventHandler 17 | onGlobalDragModeToggled?: PM.GlobalDragModeToggledEventHandler 18 | onGlobalRemovalModeToggled?: PM.GlobalRemovalModeToggledEventHandler 19 | onGlobalCutModeToggled?: PM.GlobalCutModeToggledEventHandler 20 | onGlobalRotateModeToggled?: PM.GlobalRotateModeToggledEventHandler 21 | onButtonClick?: PM.ButtonClickEventHandler 22 | onActionClick?: PM.ActionClickEventHandler 23 | onKeyEvent?: PM.KeyboardKeyEventHandler 24 | onLangChange?: PM.LangChangeEventHandler 25 | 26 | // map 27 | onCreate?: PM.CreateEventHandler 28 | onDrawStart?: PM.DrawStartEventHandler 29 | onDrawEnd?: PM.DrawEndEventHandler 30 | onMapRemove?: PM.RemoveEventHandler 31 | onMapCut?: PM.CutEventHandler 32 | onMapRotateEnable?: PM.RotateEnableEventHandler 33 | onMapRotateDisable?: PM.RotateDisableEventHandler 34 | onMapRotateStart?: PM.RotateStartEventHandler 35 | onMapRotate?: PM.RotateEventHandler 36 | onMapRotateEnd?: PM.RotateEndEventHandler 37 | 38 | // layer 39 | onSnapDrag?: PM.SnapEventHandler 40 | onSnap?: PM.SnapEventHandler 41 | onUnsnap?: PM.SnapEventHandler 42 | onCenterPlaced?: PM.CenterPlacedEventHandler 43 | onEdit?: PM.EditEventHandler 44 | onUpdate?: PM.UpdateEventHandler 45 | onEnable?: PM.EnableEventHandler 46 | onDisable?: PM.DisableEventHandler 47 | onVertexAdded?: PM.VertexAddedEventHandler 48 | onVertexRemoved?: PM.VertexRemovedEventHandler 49 | onVertexClick?: PM.VertexClickEventHandler 50 | onMarkerDragStart?: PM.MarkerDragStartEventHandler 51 | onMarkerDrag?: PM.MarkerDragEventHandler 52 | onMarkerDragEnd?: PM.MarkerDragEndEventHandler 53 | onLayerReset?: PM.LayerResetEventHandler 54 | onIntersect?: PM.IntersectEventHandler 55 | onChange?: PM.ChangeEventHandler 56 | onTextChange?: PM.TextChangeEventHandler 57 | onDragStart?: PM.DragStartEventHandler 58 | onDrag?: PM.DragEventHandler 59 | onDragEnd?: PM.DragEndEventHandler 60 | onDragEnable?: PM.DragEnableEventHandler 61 | onDragDisable?: PM.DragDisableEventHandler 62 | onLayerRemove?: PM.RemoveEventHandler 63 | onLayerCut?: PM.CutEventHandler 64 | onLayerRotateEnable?: PM.RotateEnableEventHandler 65 | onLayerRotateDisable?: PM.RotateDisableEventHandler 66 | onLayerRotateStart?: PM.RotateStartEventHandler 67 | onLayerRotate?: PM.RotateEventHandler 68 | onLayerRotateEnd?: PM.RotateEndEventHandler 69 | } 70 | 71 | export interface GeomanProps extends GeomanHandlers { 72 | options?: PM.ToolbarOptions 73 | globalOptions?: PM.GlobalOptions 74 | pathOptions?: PathOptions 75 | eventDebugFn?: EventDebugFn 76 | onMount?: () => void 77 | onUnmount?: () => void 78 | lang?: PM.SupportLocales 79 | } 80 | -------------------------------------------------------------------------------- /src/GeomanControls.ts: -------------------------------------------------------------------------------- 1 | import '@geoman-io/leaflet-geoman-free' 2 | import { useLayoutEffect, useEffect, useState } from 'react' 3 | import { useLeafletContext } from '@react-leaflet/core' 4 | import type { LayerGroup } from 'leaflet' 5 | 6 | import type { GeomanProps } from './types' 7 | import { reference, layerEvents, globalEvents, mapEvents } from './events' 8 | 9 | export default function GeomanControls({ 10 | options = {}, 11 | globalOptions = {}, 12 | pathOptions = {}, 13 | lang = 'en', 14 | eventDebugFn, 15 | onMount, 16 | onUnmount, 17 | ...handlers 18 | }: GeomanProps): null { 19 | const [mounted, setMounted] = useState(false) 20 | const [handlersRef, setHandlersRef] = useState>( 21 | process.env.NODE_ENV === 'development' ? handlers : {} 22 | ) 23 | const { map, layerContainer } = useLeafletContext() 24 | const container = (layerContainer as LayerGroup) || map 25 | 26 | if (!container) { 27 | console.warn('[GEOMAN-CONTROLS] No map or container instance found') 28 | return null 29 | } 30 | 31 | useLayoutEffect(() => { 32 | // add controls 33 | if (!map.pm.controlsVisible()) { 34 | map.pm.addControls(options) 35 | if (onMount) onMount() 36 | setMounted(true) 37 | } 38 | return () => { 39 | map.pm.disableDraw() 40 | map.pm.disableGlobalEditMode() 41 | map.pm.disableGlobalRemovalMode() 42 | map.pm.disableGlobalDragMode() 43 | map.pm.disableGlobalCutMode() 44 | map.pm.disableGlobalRotateMode() 45 | map.pm.disableGlobalDragMode() 46 | map.pm.disableGlobalCutMode() 47 | if (onUnmount) onUnmount() 48 | map.pm.removeControls() 49 | setMounted(false) 50 | } 51 | }, []) 52 | 53 | useEffect(() => { 54 | // set path options 55 | if (mounted) map.pm.setPathOptions(pathOptions) 56 | }, [pathOptions, mounted]) 57 | 58 | useEffect(() => { 59 | // set global options 60 | if (mounted) 61 | map.pm.setGlobalOptions({ layerGroup: container, ...globalOptions }) 62 | }, [globalOptions, mounted]) 63 | 64 | useEffect(() => { 65 | // set language 66 | if (mounted) map.pm.setLang(lang) 67 | }, [lang, mounted]) 68 | 69 | useEffect(() => { 70 | // attach and remove event handlers 71 | if (mounted) { 72 | const withDebug = Object.fromEntries( 73 | reference.map((handler) => [handler, handlers[handler] ?? eventDebugFn]) 74 | ) 75 | const layers = layerContainer 76 | ? container.getLayers() 77 | : map.pm.getGeomanLayers() 78 | layers.forEach((layer) => layerEvents(layer, withDebug, 'on')) 79 | 80 | globalEvents(map, withDebug, 'on') 81 | mapEvents(map, withDebug, 'on') 82 | 83 | return () => { 84 | globalEvents(map, withDebug, 'off') 85 | mapEvents(map, withDebug, 'off') 86 | layers.forEach((layer) => layerEvents(layer, withDebug, 'off')) 87 | setHandlersRef(handlers) 88 | } 89 | } 90 | }, [ 91 | mounted, 92 | process.env.NODE_ENV === 'development' 93 | ? Object.entries(handlers).every(([k, fn]) => handlersRef[k] === fn) 94 | : true, 95 | ]) 96 | 97 | return null 98 | } 99 | -------------------------------------------------------------------------------- /src/events/layer.ts: -------------------------------------------------------------------------------- 1 | import type { Layer } from 'leaflet' 2 | 3 | import type { HandlersWithDebug, Method } from '../types' 4 | 5 | export function layerEvents( 6 | layer: Layer, 7 | handlers: HandlersWithDebug, 8 | method: Method 9 | ) { 10 | // Drawing Mode 11 | if (handlers.onVertexAdded) { 12 | layer[method]('pm:vertexadded', handlers.onVertexAdded) 13 | } 14 | if (handlers.onSnapDrag) { 15 | layer[method]('pm:snapdrag', handlers.onSnapDrag) 16 | } 17 | if (handlers.onSnap) { 18 | layer[method]('pm:snap', handlers.onSnap) 19 | } 20 | if (handlers.onUnsnap) { 21 | layer[method]('pm:unsnap', handlers.onUnsnap) 22 | } 23 | if (handlers.onCenterPlaced) { 24 | layer[method]('pm:centerplaced', handlers.onCenterPlaced) 25 | } 26 | if (handlers.onChange) { 27 | layer[method]('pm:change', handlers.onChange) 28 | } 29 | 30 | // Edit Mode 31 | if (handlers.onEdit) { 32 | layer[method]('pm:edit', handlers.onEdit) 33 | } 34 | if (handlers.onUpdate) { 35 | layer[method]('pm:update', handlers.onUpdate) 36 | } 37 | if (handlers.onEnable) { 38 | layer[method]('pm:enable', handlers.onEnable) 39 | } 40 | if (handlers.onDisable) { 41 | layer[method]('pm:disable', handlers.onDisable) 42 | } 43 | if (handlers.onVertexRemoved) { 44 | layer[method]('pm:vertexremoved', handlers.onVertexRemoved) 45 | } 46 | if (handlers.onVertexClick) { 47 | layer[method]('pm:vertexclick', handlers.onVertexClick) 48 | } 49 | if (handlers.onMarkerDragStart) { 50 | layer[method]('pm:markerdragstart', handlers.onMarkerDragStart) 51 | } 52 | if (handlers.onMarkerDrag) { 53 | layer[method]('pm:markerdrag', handlers.onMarkerDrag) 54 | } 55 | if (handlers.onMarkerDragEnd) { 56 | layer[method]('pm:markerdragend', handlers.onMarkerDragEnd) 57 | } 58 | if (handlers.onLayerReset) { 59 | layer[method]('pm:layerreset', handlers.onLayerReset) 60 | } 61 | if (handlers.onIntersect) { 62 | layer[method]('pm:intersect', handlers.onIntersect) 63 | } 64 | 65 | // Drag Mode 66 | if (handlers.onDragStart) { 67 | layer[method]('pm:dragstart', handlers.onDragStart) 68 | } 69 | if (handlers.onDrag) { 70 | layer[method]('pm:drag', handlers.onDrag) 71 | } 72 | if (handlers.onDragEnd) { 73 | layer[method]('pm:dragend', handlers.onDragEnd) 74 | } 75 | if (handlers.onDragEnable) { 76 | layer[method]('pm:dragenable', handlers.onDragEnable) 77 | } 78 | if (handlers.onDragDisable) { 79 | layer[method]('pm:dragdisable', handlers.onDragDisable) 80 | } 81 | 82 | // Remove Mode 83 | if (handlers.onLayerRemove) { 84 | layer[method]('pm:remove', handlers.onLayerRemove) 85 | } 86 | 87 | // Cut Mode 88 | if (handlers.onLayerCut) { 89 | layer[method]('pm:cut', handlers.onLayerCut) 90 | } 91 | 92 | // Rotate Mode 93 | if (handlers.onLayerRotateEnable) { 94 | layer[method]('pm:rotateenable', handlers.onLayerRotateEnable) 95 | } 96 | if (handlers.onLayerRotateDisable) { 97 | layer[method]('pm:rotatedisable', handlers.onLayerRotateDisable) 98 | } 99 | if (handlers.onLayerRotateStart) { 100 | layer[method]('pm:rotatestart', handlers.onLayerRotateStart) 101 | } 102 | if (handlers.onLayerRotate) { 103 | layer[method]('pm:rotate', handlers.onLayerRotate) 104 | } 105 | if (handlers.onLayerRotateEnd) { 106 | layer[method]('pm:rotateend', handlers.onLayerRotateEnd) 107 | } 108 | 109 | // Text Mode 110 | if (handlers.onTextChange) { 111 | layer[method]('pm:textchange', handlers.onTextChange) 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-leaflet-geoman 2 | 3 | [![npm version](https://badge.fury.io/js/react-leaflet-geoman-v2.svg)](https://badge.fury.io/js/react-leaflet-geoman-v2) 4 | 5 | Basic React wrapper for the [Leaflet Geoman Plugin](https://github.com/geoman-io/leaflet-geoman) 6 | 7 | ## Installation 8 | 9 | Add Peer Dependencies: 10 | 11 | ```sh 12 | // npm 13 | npm i react react-dom react-leaflet @geoman-io/leaflet-geoman-free 14 | 15 | // yarn 16 | yarn add react react-dom react-leaflet @geoman-io/leaflet-geoman-free 17 | ``` 18 | 19 | Add React Leaflet Geoman 20 | 21 | ```sh 22 | // npm 23 | npm i react-leaflet-geoman-v2 24 | 25 | // yarn 26 | yarn add react-leaflet-geoman-v2 27 | ``` 28 | 29 | ## Usage 30 | 31 | Since this package modifies the DOM directly, it can be imported either as hook or a component. At a minimum, it must be initiated inside of a `MapContainer` component. You can either draw shapes directly to the map container or wrap it in a `FeatureGroup` component. See the [Example](/example) code for a more detailed usage example. 32 | 33 | ## V2 Breaking Changes 34 | 35 | This component wrapper no longer imports the Leaflet Geoman CSS file. You must import it yourself, this is for compatibility reasons for different frameworks. 36 | 37 | ```tsx 38 | // as a React component 39 | import '@geoman-io/leaflet-geoman-free/dist/leaflet-geoman.css' 40 | import { GeomanControls } from 'react-leaflet-geoman-v2' 41 | 42 | export default function Drawing() { 43 | const handleChange = () => { 44 | console.log('Event fired!') 45 | } 46 | return ( 47 | 48 | console.log('onChange', e)} 59 | /> 60 | 61 | ) 62 | } 63 | 64 | // as a hook 65 | import '@geoman-io/leaflet-geoman-free/dist/leaflet-geoman.css' 66 | import { useGeomanControls } from 'react-leaflet-geoman-v2' 67 | 68 | export default function Drawing() { 69 | useGeomanControls({ 70 | options: { drawText: true, drawCircle: true }, 71 | onCreate: (e) => console.log('onCreate', e), 72 | eventDebugFn: console.log, 73 | }) 74 | return null 75 | } 76 | ``` 77 | 78 | ## Options 79 | 80 | Respects all of the options, global options, and event handlers from Leaflet Geoman. 81 | 82 | - [Options](https://github.com/geoman-io/leaflet-geoman/blob/0fabb8c2bfe0d40d1d9d6a827912bd53d8f6ad3b/leaflet-geoman.d.ts#L1083) 83 | - [Global Options](https://github.com/geoman-io/leaflet-geoman/blob/0fabb8c2bfe0d40d1d9d6a827912bd53d8f6ad3b/leaflet-geoman.d.ts#L748) 84 | - [Path Options](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/3b442d0c53fe1de99bcaf2b82fae33c22c42a052/types/leaflet/index.d.ts#L1000) 85 | - [Lang Options](https://github.com/geoman-io/leaflet-geoman/blob/3458b8541dc283fa5404dbb3e6558bdee4a32874/leaflet-geoman.d.ts#L488) 86 | 87 | ```ts 88 | // Additional Props 89 | interface GeomanProps extends GeomanHandlers { 90 | options?: PM.ToolbarOptions // See options link above 91 | globalOptions?: PM.GlobalOptions // See global options link above 92 | pathOptions?: L.PathOptions // See Leaflet PathOptions link above 93 | eventDebugFn?: EventDebugFn // optional function that can be used to debug events, such as `console.log` 94 | lang?: PM.SupportLocales // See lang options link above 95 | onMount?: () => void // callback that runs after it mounts to the DOM 96 | onUnmount?: () => void // callback that runs after it unmounts 97 | } 98 | ``` 99 | 100 | ## Event Handlers 101 | 102 | Hooks into all of the Leaflet Geoman events. **Some events names have been altered slightly to allow more customization.** For example, `onMapCut` allows you to hook into the `pm:cut` event linked to the map container when a cut happens and `onLayerCut` allows you to hook a different callback into the `pm:cut` event linked to each of the layers. 103 | 104 | ```ts 105 | interface GeomanHandlers { 106 | // Global (also applied to the map container) 107 | onGlobalDrawModeToggled?: PM.GlobalDrawModeToggledEventHandler 108 | onGlobalEditModeToggled?: PM.GlobalEditModeToggledEventHandler 109 | onGlobalDragModeToggled?: PM.GlobalDragModeToggledEventHandler 110 | onGlobalRemovalModeToggled?: PM.GlobalRemovalModeToggledEventHandler 111 | onGlobalCutModeToggled?: PM.GlobalCutModeToggledEventHandler 112 | onGlobalRotateModeToggled?: PM.GlobalRotateModeToggledEventHandler 113 | onButtonClick?: PM.ButtonClickEventHandler 114 | onActionClick?: PM.ActionClickEventHandler 115 | onKeyEvent?: PM.KeyboardKeyEventHandler 116 | onLangChange?: PM.LangChangeEventHandler 117 | 118 | // Map 119 | onCreate?: PM.CreateEventHandler 120 | onDrawStart?: PM.DrawStartEventHandler 121 | onDrawEnd?: PM.DrawEndEventHandler 122 | onMapRemove?: PM.RemoveEventHandler 123 | onMapCut?: PM.CutEventHandler 124 | onMapRotateEnable?: PM.RotateEnableEventHandler 125 | onMapRotateDisable?: PM.RotateDisableEventHandler 126 | onMapRotateStart?: PM.RotateStartEventHandler 127 | onMapRotate?: PM.RotateEventHandler 128 | onMapRotateEnd?: PM.RotateEndEventHandler 129 | 130 | // Layer 131 | onSnapDrag?: PM.SnapEventHandler 132 | onSnap?: PM.SnapEventHandler 133 | onUnsnap?: PM.SnapEventHandler 134 | onCenterPlaced?: PM.CenterPlacedEventHandler 135 | onEdit?: PM.EditEventHandler 136 | onUpdate?: PM.UpdateEventHandler 137 | onEnable?: PM.EnableEventHandler 138 | onDisable?: PM.DisableEventHandler 139 | onVertexAdded?: PM.VertexAddedEventHandler 140 | onVertexRemoved?: PM.VertexRemovedEventHandler 141 | onVertexClick?: PM.VertexClickEventHandler 142 | onMarkerDragStart?: PM.MarkerDragStartEventHandler 143 | onMarkerDrag?: PM.MarkerDragEventHandler 144 | onMarkerDragEnd?: PM.MarkerDragEndEventHandler 145 | onLayerReset?: PM.LayerResetEventHandler 146 | onIntersect?: PM.IntersectEventHandler 147 | onChange?: PM.ChangeEventHandler 148 | onTextChange?: PM.TextChangeEventHandler 149 | onDragStart?: PM.DragStartEventHandler 150 | onDrag?: PM.DragEventHandler 151 | onDragEnd?: PM.DragEndEventHandler 152 | onDragEnable?: PM.DragEnableEventHandler 153 | onDragDisable?: PM.DragDisableEventHandler 154 | onLayerRemove?: PM.RemoveEventHandler 155 | onLayerCut?: PM.CutEventHandler 156 | onLayerRotateEnable?: PM.RotateEnableEventHandler 157 | onLayerRotateDisable?: PM.RotateDisableEventHandler 158 | onLayerRotateStart?: PM.RotateStartEventHandler 159 | onLayerRotate?: PM.RotateEventHandler 160 | onLayerRotateEnd?: PM.RotateEndEventHandler 161 | } 162 | ``` 163 | 164 | Layer Events are automatically applied when... 165 | 166 | - `pm:create`/`onCreate` is fired 167 | - `pm:cut`/`onMapCut` is fired 168 | - If you add new layers to the `MapContainer` or `FeatureGroup` via a `ref` 169 | 170 | Though generally not necessarily, you can import and apply layerEvents yourself with: 171 | ```ts 172 | import { layerEvents } from 'react-leaflet-geoman-v2' 173 | 174 | export default function Drawing({ geojson }) { 175 | React.useEffect(() => { 176 | L.geoJSON(geojson).eachLayer((layer) => { 177 | layerEvents( 178 | layer, 179 | { 180 | onDragStart: (e) => console.log('onDragStart', e), 181 | onDrag: (e) => console.log('onDrag', e), 182 | onDragEnd: (e) => console.log('onDragEnd', e), 183 | }, 184 | 'on' 185 | ) 186 | }) 187 | }, [geojson]) 188 | } 189 | ``` 190 | 191 | 192 | ## TypeScript Note 193 | This library is only typed as well as the base plugin, if you see an issue, [please consider contributing better types to Leaflet Geoman](https://github.com/geoman-io/leaflet-geoman/issues?q=is%3Aissue+is%3Aopen+typescript)! 194 | 195 | ## Contributing 196 | 197 | - `yarn start` to start the Vite dev server with HMR enabled. 198 | - With VS Code you can open a debugger in Chrome for IDE debugging 199 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": 14 | version "7.18.6" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 16 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.18.8": 21 | version "7.18.13" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" 23 | integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== 24 | 25 | "@babel/core@^7.18.10": 26 | version "7.18.13" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" 28 | integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.18.13" 33 | "@babel/helper-compilation-targets" "^7.18.9" 34 | "@babel/helper-module-transforms" "^7.18.9" 35 | "@babel/helpers" "^7.18.9" 36 | "@babel/parser" "^7.18.13" 37 | "@babel/template" "^7.18.10" 38 | "@babel/traverse" "^7.18.13" 39 | "@babel/types" "^7.18.13" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.1" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.18.13": 47 | version "7.18.13" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" 49 | integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== 50 | dependencies: 51 | "@babel/types" "^7.18.13" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-annotate-as-pure@^7.18.6": 56 | version "7.18.6" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" 58 | integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== 59 | dependencies: 60 | "@babel/types" "^7.18.6" 61 | 62 | "@babel/helper-compilation-targets@^7.18.9": 63 | version "7.18.9" 64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" 65 | integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== 66 | dependencies: 67 | "@babel/compat-data" "^7.18.8" 68 | "@babel/helper-validator-option" "^7.18.6" 69 | browserslist "^4.20.2" 70 | semver "^6.3.0" 71 | 72 | "@babel/helper-environment-visitor@^7.18.9": 73 | version "7.18.9" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 75 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 76 | 77 | "@babel/helper-function-name@^7.18.9": 78 | version "7.18.9" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" 80 | integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== 81 | dependencies: 82 | "@babel/template" "^7.18.6" 83 | "@babel/types" "^7.18.9" 84 | 85 | "@babel/helper-hoist-variables@^7.18.6": 86 | version "7.18.6" 87 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 88 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 89 | dependencies: 90 | "@babel/types" "^7.18.6" 91 | 92 | "@babel/helper-module-imports@^7.18.6": 93 | version "7.18.6" 94 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 95 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 96 | dependencies: 97 | "@babel/types" "^7.18.6" 98 | 99 | "@babel/helper-module-transforms@^7.18.9": 100 | version "7.18.9" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" 102 | integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== 103 | dependencies: 104 | "@babel/helper-environment-visitor" "^7.18.9" 105 | "@babel/helper-module-imports" "^7.18.6" 106 | "@babel/helper-simple-access" "^7.18.6" 107 | "@babel/helper-split-export-declaration" "^7.18.6" 108 | "@babel/helper-validator-identifier" "^7.18.6" 109 | "@babel/template" "^7.18.6" 110 | "@babel/traverse" "^7.18.9" 111 | "@babel/types" "^7.18.9" 112 | 113 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9": 114 | version "7.18.9" 115 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" 116 | integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== 117 | 118 | "@babel/helper-simple-access@^7.18.6": 119 | version "7.18.6" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" 121 | integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== 122 | dependencies: 123 | "@babel/types" "^7.18.6" 124 | 125 | "@babel/helper-split-export-declaration@^7.18.6": 126 | version "7.18.6" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 128 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 129 | dependencies: 130 | "@babel/types" "^7.18.6" 131 | 132 | "@babel/helper-string-parser@^7.18.10": 133 | version "7.18.10" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" 135 | integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== 136 | 137 | "@babel/helper-validator-identifier@^7.18.6": 138 | version "7.18.6" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" 140 | integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== 141 | 142 | "@babel/helper-validator-option@^7.18.6": 143 | version "7.18.6" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 145 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 146 | 147 | "@babel/helpers@^7.18.9": 148 | version "7.18.9" 149 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" 150 | integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== 151 | dependencies: 152 | "@babel/template" "^7.18.6" 153 | "@babel/traverse" "^7.18.9" 154 | "@babel/types" "^7.18.9" 155 | 156 | "@babel/highlight@^7.18.6": 157 | version "7.18.6" 158 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 159 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 160 | dependencies: 161 | "@babel/helper-validator-identifier" "^7.18.6" 162 | chalk "^2.0.0" 163 | js-tokens "^4.0.0" 164 | 165 | "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": 166 | version "7.18.13" 167 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" 168 | integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== 169 | 170 | "@babel/plugin-syntax-jsx@^7.18.6": 171 | version "7.18.6" 172 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" 173 | integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== 174 | dependencies: 175 | "@babel/helper-plugin-utils" "^7.18.6" 176 | 177 | "@babel/plugin-transform-react-jsx-development@^7.18.6": 178 | version "7.18.6" 179 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" 180 | integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== 181 | dependencies: 182 | "@babel/plugin-transform-react-jsx" "^7.18.6" 183 | 184 | "@babel/plugin-transform-react-jsx-self@^7.18.6": 185 | version "7.18.6" 186 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7" 187 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig== 188 | dependencies: 189 | "@babel/helper-plugin-utils" "^7.18.6" 190 | 191 | "@babel/plugin-transform-react-jsx-source@^7.18.6": 192 | version "7.18.6" 193 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz#06e9ae8a14d2bc19ce6e3c447d842032a50598fc" 194 | integrity sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw== 195 | dependencies: 196 | "@babel/helper-plugin-utils" "^7.18.6" 197 | 198 | "@babel/plugin-transform-react-jsx@^7.18.10", "@babel/plugin-transform-react-jsx@^7.18.6": 199 | version "7.18.10" 200 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1" 201 | integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A== 202 | dependencies: 203 | "@babel/helper-annotate-as-pure" "^7.18.6" 204 | "@babel/helper-module-imports" "^7.18.6" 205 | "@babel/helper-plugin-utils" "^7.18.9" 206 | "@babel/plugin-syntax-jsx" "^7.18.6" 207 | "@babel/types" "^7.18.10" 208 | 209 | "@babel/template@^7.18.10", "@babel/template@^7.18.6": 210 | version "7.18.10" 211 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" 212 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== 213 | dependencies: 214 | "@babel/code-frame" "^7.18.6" 215 | "@babel/parser" "^7.18.10" 216 | "@babel/types" "^7.18.10" 217 | 218 | "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9": 219 | version "7.18.13" 220 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" 221 | integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== 222 | dependencies: 223 | "@babel/code-frame" "^7.18.6" 224 | "@babel/generator" "^7.18.13" 225 | "@babel/helper-environment-visitor" "^7.18.9" 226 | "@babel/helper-function-name" "^7.18.9" 227 | "@babel/helper-hoist-variables" "^7.18.6" 228 | "@babel/helper-split-export-declaration" "^7.18.6" 229 | "@babel/parser" "^7.18.13" 230 | "@babel/types" "^7.18.13" 231 | debug "^4.1.0" 232 | globals "^11.1.0" 233 | 234 | "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9": 235 | version "7.18.13" 236 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" 237 | integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== 238 | dependencies: 239 | "@babel/helper-string-parser" "^7.18.10" 240 | "@babel/helper-validator-identifier" "^7.18.6" 241 | to-fast-properties "^2.0.0" 242 | 243 | "@esbuild/linux-loong64@0.14.54": 244 | version "0.14.54" 245 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" 246 | integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== 247 | 248 | "@geoman-io/leaflet-geoman-free@^2.14.2": 249 | version "2.14.2" 250 | resolved "https://registry.yarnpkg.com/@geoman-io/leaflet-geoman-free/-/leaflet-geoman-free-2.14.2.tgz#c84c2115c263f34d11dc0b43859551639fe3d56b" 251 | integrity sha512-6lIyG8RvSVdFjVjiQgBPyNASjymSyqzsiUeBW0pA+q41lB5fAg4SDC6SfJvWdEyDHa81Jb5FWjUkCc9O+u0gbg== 252 | dependencies: 253 | "@turf/boolean-contains" "^6.5.0" 254 | "@turf/kinks" "^6.5.0" 255 | "@turf/line-intersect" "^6.5.0" 256 | "@turf/line-split" "^6.5.0" 257 | lodash "4.17.21" 258 | polygon-clipping "0.15.3" 259 | 260 | "@jridgewell/gen-mapping@^0.1.0": 261 | version "0.1.1" 262 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 263 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 264 | dependencies: 265 | "@jridgewell/set-array" "^1.0.0" 266 | "@jridgewell/sourcemap-codec" "^1.4.10" 267 | 268 | "@jridgewell/gen-mapping@^0.3.2": 269 | version "0.3.2" 270 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 271 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 272 | dependencies: 273 | "@jridgewell/set-array" "^1.0.1" 274 | "@jridgewell/sourcemap-codec" "^1.4.10" 275 | "@jridgewell/trace-mapping" "^0.3.9" 276 | 277 | "@jridgewell/resolve-uri@^3.0.3": 278 | version "3.1.0" 279 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 280 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 281 | 282 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 283 | version "1.1.2" 284 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 285 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 286 | 287 | "@jridgewell/sourcemap-codec@^1.4.10": 288 | version "1.4.14" 289 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 290 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 291 | 292 | "@jridgewell/trace-mapping@^0.3.9": 293 | version "0.3.15" 294 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" 295 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== 296 | dependencies: 297 | "@jridgewell/resolve-uri" "^3.0.3" 298 | "@jridgewell/sourcemap-codec" "^1.4.10" 299 | 300 | "@nodelib/fs.scandir@2.1.5": 301 | version "2.1.5" 302 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 303 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 304 | dependencies: 305 | "@nodelib/fs.stat" "2.0.5" 306 | run-parallel "^1.1.9" 307 | 308 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 309 | version "2.0.5" 310 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 311 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 312 | 313 | "@nodelib/fs.walk@^1.2.3": 314 | version "1.2.8" 315 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 316 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 317 | dependencies: 318 | "@nodelib/fs.scandir" "2.1.5" 319 | fastq "^1.6.0" 320 | 321 | "@react-leaflet/core@^2.0.1": 322 | version "2.0.1" 323 | resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-2.0.1.tgz#19d4bb7c83525fab786982e5750a3f53a4bb0168" 324 | integrity sha512-XGmx01DovDt0IWsW4tqeuSYifpY19aUn9NYCqTBI3KNtjbCjj0pfiWa7krNsnJ6l2oQbv4Nt0/BabLbIvT4ocA== 325 | 326 | "@rollup/plugin-typescript@^8.4.0": 327 | version "8.4.0" 328 | resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.4.0.tgz#a8a384b6dbaab42b4cafb075278b15743c0f5ef8" 329 | integrity sha512-QssfoOP6V4/6skX12EfOW5UzJAv/c334F4OJWmQpe2kg3agEa0JwVCckwmfuvEgDixyX+XyxjFenH7M2rDKUyQ== 330 | dependencies: 331 | "@rollup/pluginutils" "^3.1.0" 332 | resolve "^1.17.0" 333 | 334 | "@rollup/pluginutils@^3.1.0": 335 | version "3.1.0" 336 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" 337 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 338 | dependencies: 339 | "@types/estree" "0.0.39" 340 | estree-walker "^1.0.1" 341 | picomatch "^2.2.2" 342 | 343 | "@turf/bbox@*", "@turf/bbox@^6.5.0": 344 | version "6.5.0" 345 | resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-6.5.0.tgz#bec30a744019eae420dac9ea46fb75caa44d8dc5" 346 | integrity sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw== 347 | dependencies: 348 | "@turf/helpers" "^6.5.0" 349 | "@turf/meta" "^6.5.0" 350 | 351 | "@turf/bearing@^6.5.0": 352 | version "6.5.0" 353 | resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.5.0.tgz#462a053c6c644434bdb636b39f8f43fb0cd857b0" 354 | integrity sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A== 355 | dependencies: 356 | "@turf/helpers" "^6.5.0" 357 | "@turf/invariant" "^6.5.0" 358 | 359 | "@turf/boolean-contains@^6.5.0": 360 | version "6.5.0" 361 | resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz#f802e7432fb53109242d5bf57393ef2f53849bbf" 362 | integrity sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ== 363 | dependencies: 364 | "@turf/bbox" "^6.5.0" 365 | "@turf/boolean-point-in-polygon" "^6.5.0" 366 | "@turf/boolean-point-on-line" "^6.5.0" 367 | "@turf/helpers" "^6.5.0" 368 | "@turf/invariant" "^6.5.0" 369 | 370 | "@turf/boolean-point-in-polygon@^6.5.0": 371 | version "6.5.0" 372 | resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz#6d2e9c89de4cd2e4365004c1e51490b7795a63cf" 373 | integrity sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A== 374 | dependencies: 375 | "@turf/helpers" "^6.5.0" 376 | "@turf/invariant" "^6.5.0" 377 | 378 | "@turf/boolean-point-on-line@^6.5.0": 379 | version "6.5.0" 380 | resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz#a8efa7bad88760676f395afb9980746bc5b376e9" 381 | integrity sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ== 382 | dependencies: 383 | "@turf/helpers" "^6.5.0" 384 | "@turf/invariant" "^6.5.0" 385 | 386 | "@turf/destination@^6.5.0": 387 | version "6.5.0" 388 | resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-6.5.0.tgz#30a84702f9677d076130e0440d3223ae503fdae1" 389 | integrity sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ== 390 | dependencies: 391 | "@turf/helpers" "^6.5.0" 392 | "@turf/invariant" "^6.5.0" 393 | 394 | "@turf/distance@^6.5.0": 395 | version "6.5.0" 396 | resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.5.0.tgz#21f04d5f86e864d54e2abde16f35c15b4f36149a" 397 | integrity sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg== 398 | dependencies: 399 | "@turf/helpers" "^6.5.0" 400 | "@turf/invariant" "^6.5.0" 401 | 402 | "@turf/helpers@6.x", "@turf/helpers@^6.5.0": 403 | version "6.5.0" 404 | resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e" 405 | integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw== 406 | 407 | "@turf/invariant@^6.5.0": 408 | version "6.5.0" 409 | resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f" 410 | integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg== 411 | dependencies: 412 | "@turf/helpers" "^6.5.0" 413 | 414 | "@turf/kinks@^6.5.0": 415 | version "6.5.0" 416 | resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-6.5.0.tgz#80e7456367535365012f658cf1a988b39a2c920b" 417 | integrity sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ== 418 | dependencies: 419 | "@turf/helpers" "^6.5.0" 420 | 421 | "@turf/line-intersect@^6.5.0": 422 | version "6.5.0" 423 | resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.5.0.tgz#dea48348b30c093715d2195d2dd7524aee4cf020" 424 | integrity sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA== 425 | dependencies: 426 | "@turf/helpers" "^6.5.0" 427 | "@turf/invariant" "^6.5.0" 428 | "@turf/line-segment" "^6.5.0" 429 | "@turf/meta" "^6.5.0" 430 | geojson-rbush "3.x" 431 | 432 | "@turf/line-segment@^6.5.0": 433 | version "6.5.0" 434 | resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-6.5.0.tgz#ee73f3ffcb7c956203b64ed966d96af380a4dd65" 435 | integrity sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw== 436 | dependencies: 437 | "@turf/helpers" "^6.5.0" 438 | "@turf/invariant" "^6.5.0" 439 | "@turf/meta" "^6.5.0" 440 | 441 | "@turf/line-split@^6.5.0": 442 | version "6.5.0" 443 | resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-6.5.0.tgz#116d7fbf714457878225187f5820ef98db7b02c2" 444 | integrity sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw== 445 | dependencies: 446 | "@turf/bbox" "^6.5.0" 447 | "@turf/helpers" "^6.5.0" 448 | "@turf/invariant" "^6.5.0" 449 | "@turf/line-intersect" "^6.5.0" 450 | "@turf/line-segment" "^6.5.0" 451 | "@turf/meta" "^6.5.0" 452 | "@turf/nearest-point-on-line" "^6.5.0" 453 | "@turf/square" "^6.5.0" 454 | "@turf/truncate" "^6.5.0" 455 | geojson-rbush "3.x" 456 | 457 | "@turf/meta@6.x", "@turf/meta@^6.5.0": 458 | version "6.5.0" 459 | resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.5.0.tgz#b725c3653c9f432133eaa04d3421f7e51e0418ca" 460 | integrity sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA== 461 | dependencies: 462 | "@turf/helpers" "^6.5.0" 463 | 464 | "@turf/nearest-point-on-line@^6.5.0": 465 | version "6.5.0" 466 | resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz#8e1cd2cdc0b5acaf4c8d8b3b33bb008d3cb99e7b" 467 | integrity sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg== 468 | dependencies: 469 | "@turf/bearing" "^6.5.0" 470 | "@turf/destination" "^6.5.0" 471 | "@turf/distance" "^6.5.0" 472 | "@turf/helpers" "^6.5.0" 473 | "@turf/invariant" "^6.5.0" 474 | "@turf/line-intersect" "^6.5.0" 475 | "@turf/meta" "^6.5.0" 476 | 477 | "@turf/square@^6.5.0": 478 | version "6.5.0" 479 | resolved "https://registry.yarnpkg.com/@turf/square/-/square-6.5.0.tgz#ab43eef99d39c36157ab5b80416bbeba1f6b2122" 480 | integrity sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ== 481 | dependencies: 482 | "@turf/distance" "^6.5.0" 483 | "@turf/helpers" "^6.5.0" 484 | 485 | "@turf/truncate@^6.5.0": 486 | version "6.5.0" 487 | resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-6.5.0.tgz#c3a16cad959f1be1c5156157d5555c64b19185d8" 488 | integrity sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg== 489 | dependencies: 490 | "@turf/helpers" "^6.5.0" 491 | "@turf/meta" "^6.5.0" 492 | 493 | "@types/estree@0.0.39": 494 | version "0.0.39" 495 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 496 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 497 | 498 | "@types/geojson@*": 499 | version "7946.0.10" 500 | resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" 501 | integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA== 502 | 503 | "@types/geojson@7946.0.8": 504 | version "7946.0.8" 505 | resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca" 506 | integrity sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA== 507 | 508 | "@types/leaflet@^1.7.11": 509 | version "1.7.11" 510 | resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.7.11.tgz#48b33b7a15b015bbb1e8950399298a112c3220c8" 511 | integrity sha512-VwAYom2pfIAf/pLj1VR5aLltd4tOtHyvfaJlNYCoejzP2nu52PrMi1ehsLRMUS+bgafmIIKBV1cMfKeS+uJ0Vg== 512 | dependencies: 513 | "@types/geojson" "*" 514 | 515 | "@types/node@^18.7.13": 516 | version "18.7.13" 517 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.13.tgz#23e6c5168333480d454243378b69e861ab5c011a" 518 | integrity sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw== 519 | 520 | "@types/prop-types@*": 521 | version "15.7.5" 522 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 523 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 524 | 525 | "@types/react-dom@^18.0.6": 526 | version "18.0.6" 527 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" 528 | integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== 529 | dependencies: 530 | "@types/react" "*" 531 | 532 | "@types/react@*", "@types/react@^18.0.17": 533 | version "18.0.17" 534 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.17.tgz#4583d9c322d67efe4b39a935d223edcc7050ccf4" 535 | integrity sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ== 536 | dependencies: 537 | "@types/prop-types" "*" 538 | "@types/scheduler" "*" 539 | csstype "^3.0.2" 540 | 541 | "@types/scheduler@*": 542 | version "0.16.2" 543 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 544 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 545 | 546 | "@vitejs/plugin-react@^2.0.1": 547 | version "2.0.1" 548 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.0.1.tgz#3197c01d8e4a4eb9fed829c7888c467a43aadd4e" 549 | integrity sha512-uINzNHmjrbunlFtyVkST6lY1ewSfz/XwLufG0PIqvLGnpk2nOIOa/1CACTDNcKi1/RwaCzJLmsXwm1NsUVV/NA== 550 | dependencies: 551 | "@babel/core" "^7.18.10" 552 | "@babel/plugin-transform-react-jsx" "^7.18.10" 553 | "@babel/plugin-transform-react-jsx-development" "^7.18.6" 554 | "@babel/plugin-transform-react-jsx-self" "^7.18.6" 555 | "@babel/plugin-transform-react-jsx-source" "^7.18.6" 556 | magic-string "^0.26.2" 557 | react-refresh "^0.14.0" 558 | 559 | ansi-escapes@^4.3.0: 560 | version "4.3.2" 561 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" 562 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== 563 | dependencies: 564 | type-fest "^0.21.3" 565 | 566 | ansi-regex@^5.0.1: 567 | version "5.0.1" 568 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 569 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 570 | 571 | ansi-styles@^3.2.1: 572 | version "3.2.1" 573 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 574 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 575 | dependencies: 576 | color-convert "^1.9.0" 577 | 578 | ansi-styles@^4.1.0: 579 | version "4.3.0" 580 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 581 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 582 | dependencies: 583 | color-convert "^2.0.1" 584 | 585 | anymatch@~3.1.2: 586 | version "3.1.2" 587 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 588 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 589 | dependencies: 590 | normalize-path "^3.0.0" 591 | picomatch "^2.0.4" 592 | 593 | balanced-match@^1.0.0: 594 | version "1.0.2" 595 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 596 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 597 | 598 | binary-extensions@^2.0.0: 599 | version "2.2.0" 600 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 601 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 602 | 603 | brace-expansion@^1.1.7: 604 | version "1.1.11" 605 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 606 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 607 | dependencies: 608 | balanced-match "^1.0.0" 609 | concat-map "0.0.1" 610 | 611 | braces@^3.0.2, braces@~3.0.2: 612 | version "3.0.2" 613 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 614 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 615 | dependencies: 616 | fill-range "^7.0.1" 617 | 618 | browserslist@^4.20.2: 619 | version "4.21.3" 620 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" 621 | integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== 622 | dependencies: 623 | caniuse-lite "^1.0.30001370" 624 | electron-to-chromium "^1.4.202" 625 | node-releases "^2.0.6" 626 | update-browserslist-db "^1.0.5" 627 | 628 | caniuse-lite@^1.0.30001370: 629 | version "1.0.30001383" 630 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz#aecf317ccd940690725ae3ae4f28293c5fb8050e" 631 | integrity sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg== 632 | 633 | chalk@^2.0.0: 634 | version "2.4.2" 635 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 636 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 637 | dependencies: 638 | ansi-styles "^3.2.1" 639 | escape-string-regexp "^1.0.5" 640 | supports-color "^5.3.0" 641 | 642 | chalk@^4.1.1: 643 | version "4.1.2" 644 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 645 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 646 | dependencies: 647 | ansi-styles "^4.1.0" 648 | supports-color "^7.1.0" 649 | 650 | chokidar@^3.5.1: 651 | version "3.5.3" 652 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 653 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 654 | dependencies: 655 | anymatch "~3.1.2" 656 | braces "~3.0.2" 657 | glob-parent "~5.1.2" 658 | is-binary-path "~2.1.0" 659 | is-glob "~4.0.1" 660 | normalize-path "~3.0.0" 661 | readdirp "~3.6.0" 662 | optionalDependencies: 663 | fsevents "~2.3.2" 664 | 665 | color-convert@^1.9.0: 666 | version "1.9.3" 667 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 668 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 669 | dependencies: 670 | color-name "1.1.3" 671 | 672 | color-convert@^2.0.1: 673 | version "2.0.1" 674 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 675 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 676 | dependencies: 677 | color-name "~1.1.4" 678 | 679 | color-name@1.1.3: 680 | version "1.1.3" 681 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 682 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 683 | 684 | color-name@~1.1.4: 685 | version "1.1.4" 686 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 687 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 688 | 689 | commander@^8.0.0: 690 | version "8.3.0" 691 | resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" 692 | integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== 693 | 694 | concat-map@0.0.1: 695 | version "0.0.1" 696 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 697 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 698 | 699 | convert-source-map@^1.7.0: 700 | version "1.8.0" 701 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 702 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 703 | dependencies: 704 | safe-buffer "~5.1.1" 705 | 706 | csstype@^3.0.2: 707 | version "3.1.0" 708 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" 709 | integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== 710 | 711 | debug@^4.1.0: 712 | version "4.3.4" 713 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 714 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 715 | dependencies: 716 | ms "2.1.2" 717 | 718 | electron-to-chromium@^1.4.202: 719 | version "1.4.233" 720 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.233.tgz#aa142e45468bda111b88abc9cc59d573b75d6a60" 721 | integrity sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw== 722 | 723 | esbuild-android-64@0.14.54: 724 | version "0.14.54" 725 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" 726 | integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== 727 | 728 | esbuild-android-arm64@0.14.54: 729 | version "0.14.54" 730 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" 731 | integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== 732 | 733 | esbuild-darwin-64@0.14.54: 734 | version "0.14.54" 735 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" 736 | integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== 737 | 738 | esbuild-darwin-arm64@0.14.54: 739 | version "0.14.54" 740 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" 741 | integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== 742 | 743 | esbuild-freebsd-64@0.14.54: 744 | version "0.14.54" 745 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" 746 | integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== 747 | 748 | esbuild-freebsd-arm64@0.14.54: 749 | version "0.14.54" 750 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" 751 | integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== 752 | 753 | esbuild-linux-32@0.14.54: 754 | version "0.14.54" 755 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" 756 | integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== 757 | 758 | esbuild-linux-64@0.14.54: 759 | version "0.14.54" 760 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" 761 | integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== 762 | 763 | esbuild-linux-arm64@0.14.54: 764 | version "0.14.54" 765 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" 766 | integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== 767 | 768 | esbuild-linux-arm@0.14.54: 769 | version "0.14.54" 770 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" 771 | integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== 772 | 773 | esbuild-linux-mips64le@0.14.54: 774 | version "0.14.54" 775 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" 776 | integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== 777 | 778 | esbuild-linux-ppc64le@0.14.54: 779 | version "0.14.54" 780 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" 781 | integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== 782 | 783 | esbuild-linux-riscv64@0.14.54: 784 | version "0.14.54" 785 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" 786 | integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== 787 | 788 | esbuild-linux-s390x@0.14.54: 789 | version "0.14.54" 790 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" 791 | integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== 792 | 793 | esbuild-netbsd-64@0.14.54: 794 | version "0.14.54" 795 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" 796 | integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== 797 | 798 | esbuild-openbsd-64@0.14.54: 799 | version "0.14.54" 800 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" 801 | integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== 802 | 803 | esbuild-sunos-64@0.14.54: 804 | version "0.14.54" 805 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" 806 | integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== 807 | 808 | esbuild-windows-32@0.14.54: 809 | version "0.14.54" 810 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" 811 | integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== 812 | 813 | esbuild-windows-64@0.14.54: 814 | version "0.14.54" 815 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" 816 | integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== 817 | 818 | esbuild-windows-arm64@0.14.54: 819 | version "0.14.54" 820 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" 821 | integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== 822 | 823 | esbuild@^0.14.47: 824 | version "0.14.54" 825 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" 826 | integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== 827 | optionalDependencies: 828 | "@esbuild/linux-loong64" "0.14.54" 829 | esbuild-android-64 "0.14.54" 830 | esbuild-android-arm64 "0.14.54" 831 | esbuild-darwin-64 "0.14.54" 832 | esbuild-darwin-arm64 "0.14.54" 833 | esbuild-freebsd-64 "0.14.54" 834 | esbuild-freebsd-arm64 "0.14.54" 835 | esbuild-linux-32 "0.14.54" 836 | esbuild-linux-64 "0.14.54" 837 | esbuild-linux-arm "0.14.54" 838 | esbuild-linux-arm64 "0.14.54" 839 | esbuild-linux-mips64le "0.14.54" 840 | esbuild-linux-ppc64le "0.14.54" 841 | esbuild-linux-riscv64 "0.14.54" 842 | esbuild-linux-s390x "0.14.54" 843 | esbuild-netbsd-64 "0.14.54" 844 | esbuild-openbsd-64 "0.14.54" 845 | esbuild-sunos-64 "0.14.54" 846 | esbuild-windows-32 "0.14.54" 847 | esbuild-windows-64 "0.14.54" 848 | esbuild-windows-arm64 "0.14.54" 849 | 850 | escalade@^3.1.1: 851 | version "3.1.1" 852 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 853 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 854 | 855 | escape-string-regexp@^1.0.5: 856 | version "1.0.5" 857 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 858 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 859 | 860 | estree-walker@^1.0.1: 861 | version "1.0.1" 862 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" 863 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 864 | 865 | fast-glob@^3.2.7: 866 | version "3.2.11" 867 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 868 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 869 | dependencies: 870 | "@nodelib/fs.stat" "^2.0.2" 871 | "@nodelib/fs.walk" "^1.2.3" 872 | glob-parent "^5.1.2" 873 | merge2 "^1.3.0" 874 | micromatch "^4.0.4" 875 | 876 | fastq@^1.6.0: 877 | version "1.13.0" 878 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 879 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 880 | dependencies: 881 | reusify "^1.0.4" 882 | 883 | fill-range@^7.0.1: 884 | version "7.0.1" 885 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 886 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 887 | dependencies: 888 | to-regex-range "^5.0.1" 889 | 890 | fsevents@~2.3.2: 891 | version "2.3.2" 892 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 893 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 894 | 895 | function-bind@^1.1.1: 896 | version "1.1.1" 897 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 898 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 899 | 900 | gensync@^1.0.0-beta.2: 901 | version "1.0.0-beta.2" 902 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 903 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 904 | 905 | geojson-rbush@3.x: 906 | version "3.2.0" 907 | resolved "https://registry.yarnpkg.com/geojson-rbush/-/geojson-rbush-3.2.0.tgz#8b543cf0d56f99b78faf1da52bb66acad6dfc290" 908 | integrity sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w== 909 | dependencies: 910 | "@turf/bbox" "*" 911 | "@turf/helpers" "6.x" 912 | "@turf/meta" "6.x" 913 | "@types/geojson" "7946.0.8" 914 | rbush "^3.0.1" 915 | 916 | geojson@^0.5.0: 917 | version "0.5.0" 918 | resolved "https://registry.yarnpkg.com/geojson/-/geojson-0.5.0.tgz#3cd6c96399be65b56ee55596116fe9191ce701c0" 919 | integrity sha512-/Bx5lEn+qRF4TfQ5aLu6NH+UKtvIv7Lhc487y/c8BdludrCTpiWf9wyI0RTyqg49MFefIAvFDuEi5Dfd/zgNxQ== 920 | 921 | glob-parent@^5.1.2, glob-parent@~5.1.2: 922 | version "5.1.2" 923 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 924 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 925 | dependencies: 926 | is-glob "^4.0.1" 927 | 928 | globals@^11.1.0: 929 | version "11.12.0" 930 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 931 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 932 | 933 | has-flag@^3.0.0: 934 | version "3.0.0" 935 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 936 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 937 | 938 | has-flag@^4.0.0: 939 | version "4.0.0" 940 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 941 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 942 | 943 | has@^1.0.3: 944 | version "1.0.3" 945 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 946 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 947 | dependencies: 948 | function-bind "^1.1.1" 949 | 950 | is-binary-path@~2.1.0: 951 | version "2.1.0" 952 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 953 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 954 | dependencies: 955 | binary-extensions "^2.0.0" 956 | 957 | is-core-module@^2.9.0: 958 | version "2.10.0" 959 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" 960 | integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== 961 | dependencies: 962 | has "^1.0.3" 963 | 964 | is-extglob@^2.1.1: 965 | version "2.1.1" 966 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 967 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 968 | 969 | is-glob@^4.0.1, is-glob@~4.0.1: 970 | version "4.0.3" 971 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 972 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 973 | dependencies: 974 | is-extglob "^2.1.1" 975 | 976 | is-number@^7.0.0: 977 | version "7.0.0" 978 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 979 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 980 | 981 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 982 | version "4.0.0" 983 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 984 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 985 | 986 | jsesc@^2.5.1: 987 | version "2.5.2" 988 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 989 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 990 | 991 | json5@^2.2.1: 992 | version "2.2.1" 993 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" 994 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== 995 | 996 | leaflet@^1.8.0: 997 | version "1.8.0" 998 | resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.8.0.tgz#4615db4a22a304e8e692cae9270b983b38a2055e" 999 | integrity sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA== 1000 | 1001 | lodash.debounce@^4.0.8: 1002 | version "4.0.8" 1003 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1004 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 1005 | 1006 | lodash.pick@^4.4.0: 1007 | version "4.4.0" 1008 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 1009 | integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== 1010 | 1011 | lodash@4.17.21: 1012 | version "4.17.21" 1013 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1014 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1015 | 1016 | loose-envify@^1.1.0: 1017 | version "1.4.0" 1018 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1019 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1020 | dependencies: 1021 | js-tokens "^3.0.0 || ^4.0.0" 1022 | 1023 | lru-cache@^6.0.0: 1024 | version "6.0.0" 1025 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1026 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1027 | dependencies: 1028 | yallist "^4.0.0" 1029 | 1030 | magic-string@^0.26.2: 1031 | version "0.26.2" 1032 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432" 1033 | integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== 1034 | dependencies: 1035 | sourcemap-codec "^1.4.8" 1036 | 1037 | merge2@^1.3.0: 1038 | version "1.4.1" 1039 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1040 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1041 | 1042 | micromatch@^4.0.4: 1043 | version "4.0.5" 1044 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1045 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1046 | dependencies: 1047 | braces "^3.0.2" 1048 | picomatch "^2.3.1" 1049 | 1050 | minimatch@^3.0.4: 1051 | version "3.1.2" 1052 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1053 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1054 | dependencies: 1055 | brace-expansion "^1.1.7" 1056 | 1057 | ms@2.1.2: 1058 | version "2.1.2" 1059 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1060 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1061 | 1062 | nanoid@^3.3.4: 1063 | version "3.3.4" 1064 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 1065 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 1066 | 1067 | node-releases@^2.0.6: 1068 | version "2.0.6" 1069 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" 1070 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== 1071 | 1072 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1073 | version "3.0.0" 1074 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1075 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1076 | 1077 | npm-run-path@^4.0.1: 1078 | version "4.0.1" 1079 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1080 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 1081 | dependencies: 1082 | path-key "^3.0.0" 1083 | 1084 | path-key@^3.0.0: 1085 | version "3.1.1" 1086 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1087 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1088 | 1089 | path-parse@^1.0.7: 1090 | version "1.0.7" 1091 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1092 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1093 | 1094 | picocolors@^1.0.0: 1095 | version "1.0.0" 1096 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1097 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1098 | 1099 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: 1100 | version "2.3.1" 1101 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1102 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1103 | 1104 | polygon-clipping@0.15.3: 1105 | version "0.15.3" 1106 | resolved "https://registry.yarnpkg.com/polygon-clipping/-/polygon-clipping-0.15.3.tgz#0215840438470ba2e9e6593625e4ea5c1087b4b7" 1107 | integrity sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg== 1108 | dependencies: 1109 | splaytree "^3.1.0" 1110 | 1111 | postcss@^8.4.16: 1112 | version "8.4.16" 1113 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" 1114 | integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== 1115 | dependencies: 1116 | nanoid "^3.3.4" 1117 | picocolors "^1.0.0" 1118 | source-map-js "^1.0.2" 1119 | 1120 | queue-microtask@^1.2.2: 1121 | version "1.2.3" 1122 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1123 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1124 | 1125 | quickselect@^2.0.0: 1126 | version "2.0.0" 1127 | resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" 1128 | integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== 1129 | 1130 | rbush@^3.0.1: 1131 | version "3.0.1" 1132 | resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" 1133 | integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== 1134 | dependencies: 1135 | quickselect "^2.0.0" 1136 | 1137 | react-dom@^18.2.0: 1138 | version "18.2.0" 1139 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 1140 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 1141 | dependencies: 1142 | loose-envify "^1.1.0" 1143 | scheduler "^0.23.0" 1144 | 1145 | react-leaflet@^4.0.2: 1146 | version "4.0.2" 1147 | resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-4.0.2.tgz#ffa3d8dde9859459e3dc91436f84ffd56f39ec57" 1148 | integrity sha512-pDyIf50Ek/LZ0p4Qxw2D9LMOx+LytQs2R+MY3mhTUPGzubrpP4QAgbCv2qc0L9y0qVRgx7dHavWuPFkc/WCJCw== 1149 | dependencies: 1150 | "@react-leaflet/core" "^2.0.1" 1151 | 1152 | react-refresh@^0.14.0: 1153 | version "0.14.0" 1154 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" 1155 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== 1156 | 1157 | react@^18.2.0: 1158 | version "18.2.0" 1159 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 1160 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 1161 | dependencies: 1162 | loose-envify "^1.1.0" 1163 | 1164 | readdirp@~3.6.0: 1165 | version "3.6.0" 1166 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1167 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1168 | dependencies: 1169 | picomatch "^2.2.1" 1170 | 1171 | resolve@^1.17.0, resolve@^1.22.1: 1172 | version "1.22.1" 1173 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 1174 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 1175 | dependencies: 1176 | is-core-module "^2.9.0" 1177 | path-parse "^1.0.7" 1178 | supports-preserve-symlinks-flag "^1.0.0" 1179 | 1180 | reusify@^1.0.4: 1181 | version "1.0.4" 1182 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1183 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1184 | 1185 | "rollup@>=2.75.6 <2.77.0 || ~2.77.0": 1186 | version "2.77.3" 1187 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" 1188 | integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== 1189 | optionalDependencies: 1190 | fsevents "~2.3.2" 1191 | 1192 | run-parallel@^1.1.9: 1193 | version "1.2.0" 1194 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1195 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1196 | dependencies: 1197 | queue-microtask "^1.2.2" 1198 | 1199 | safe-buffer@~5.1.1: 1200 | version "5.1.2" 1201 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1202 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1203 | 1204 | scheduler@^0.23.0: 1205 | version "0.23.0" 1206 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 1207 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 1208 | dependencies: 1209 | loose-envify "^1.1.0" 1210 | 1211 | semver@^6.3.0: 1212 | version "6.3.0" 1213 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1214 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1215 | 1216 | semver@^7.3.4: 1217 | version "7.3.7" 1218 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" 1219 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== 1220 | dependencies: 1221 | lru-cache "^6.0.0" 1222 | 1223 | source-map-js@^1.0.2: 1224 | version "1.0.2" 1225 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1226 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1227 | 1228 | sourcemap-codec@^1.4.8: 1229 | version "1.4.8" 1230 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1231 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1232 | 1233 | splaytree@^3.1.0: 1234 | version "3.1.1" 1235 | resolved "https://registry.yarnpkg.com/splaytree/-/splaytree-3.1.1.tgz#e1bc8e68e64ef5a9d5f09d36e6d9f3621795a438" 1236 | integrity sha512-9FaQ18FF0+sZc/ieEeXHt+Jw2eSpUgUtTLDYB/HXKWvhYVyOc7h1hzkn5MMO3GPib9MmXG1go8+OsBBzs/NMww== 1237 | 1238 | strip-ansi@^6.0.0: 1239 | version "6.0.1" 1240 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1241 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1242 | dependencies: 1243 | ansi-regex "^5.0.1" 1244 | 1245 | supports-color@^5.3.0: 1246 | version "5.5.0" 1247 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1248 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1249 | dependencies: 1250 | has-flag "^3.0.0" 1251 | 1252 | supports-color@^7.1.0: 1253 | version "7.2.0" 1254 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1255 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1256 | dependencies: 1257 | has-flag "^4.0.0" 1258 | 1259 | supports-preserve-symlinks-flag@^1.0.0: 1260 | version "1.0.0" 1261 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1262 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1263 | 1264 | tiny-invariant@^1.1.0: 1265 | version "1.2.0" 1266 | resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" 1267 | integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== 1268 | 1269 | to-fast-properties@^2.0.0: 1270 | version "2.0.0" 1271 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1272 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1273 | 1274 | to-regex-range@^5.0.1: 1275 | version "5.0.1" 1276 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1277 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1278 | dependencies: 1279 | is-number "^7.0.0" 1280 | 1281 | type-fest@^0.21.3: 1282 | version "0.21.3" 1283 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" 1284 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== 1285 | 1286 | typescript@^4.6.3: 1287 | version "4.8.2" 1288 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" 1289 | integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== 1290 | 1291 | update-browserslist-db@^1.0.5: 1292 | version "1.0.5" 1293 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" 1294 | integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== 1295 | dependencies: 1296 | escalade "^3.1.1" 1297 | picocolors "^1.0.0" 1298 | 1299 | vite-plugin-checker@^0.4.9: 1300 | version "0.4.9" 1301 | resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.4.9.tgz#ec0c6cd5c1d98a826915a729cf1de3026c8db3bb" 1302 | integrity sha512-Oii9mTum8bqZovWejcR739kCqST32oG6LdB/XMdwcLVzmcjq0gf1iVDIedVzJJ7t6GLQAYgjNwvB0fuMiT3tlg== 1303 | dependencies: 1304 | "@babel/code-frame" "^7.12.13" 1305 | ansi-escapes "^4.3.0" 1306 | chalk "^4.1.1" 1307 | chokidar "^3.5.1" 1308 | commander "^8.0.0" 1309 | fast-glob "^3.2.7" 1310 | lodash.debounce "^4.0.8" 1311 | lodash.pick "^4.4.0" 1312 | npm-run-path "^4.0.1" 1313 | strip-ansi "^6.0.0" 1314 | tiny-invariant "^1.1.0" 1315 | vscode-languageclient "^7.0.0" 1316 | vscode-languageserver "^7.0.0" 1317 | vscode-languageserver-textdocument "^1.0.1" 1318 | vscode-uri "^3.0.2" 1319 | 1320 | vite@^3.0.8: 1321 | version "3.0.9" 1322 | resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.9.tgz#45fac22c2a5290a970f23d66c1aef56a04be8a30" 1323 | integrity sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw== 1324 | dependencies: 1325 | esbuild "^0.14.47" 1326 | postcss "^8.4.16" 1327 | resolve "^1.22.1" 1328 | rollup ">=2.75.6 <2.77.0 || ~2.77.0" 1329 | optionalDependencies: 1330 | fsevents "~2.3.2" 1331 | 1332 | vscode-jsonrpc@6.0.0: 1333 | version "6.0.0" 1334 | resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" 1335 | integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg== 1336 | 1337 | vscode-languageclient@^7.0.0: 1338 | version "7.0.0" 1339 | resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" 1340 | integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg== 1341 | dependencies: 1342 | minimatch "^3.0.4" 1343 | semver "^7.3.4" 1344 | vscode-languageserver-protocol "3.16.0" 1345 | 1346 | vscode-languageserver-protocol@3.16.0: 1347 | version "3.16.0" 1348 | resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" 1349 | integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A== 1350 | dependencies: 1351 | vscode-jsonrpc "6.0.0" 1352 | vscode-languageserver-types "3.16.0" 1353 | 1354 | vscode-languageserver-textdocument@^1.0.1: 1355 | version "1.0.5" 1356 | resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz#838769940ece626176ec5d5a2aa2d0aa69f5095c" 1357 | integrity sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg== 1358 | 1359 | vscode-languageserver-types@3.16.0: 1360 | version "3.16.0" 1361 | resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" 1362 | integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== 1363 | 1364 | vscode-languageserver@^7.0.0: 1365 | version "7.0.0" 1366 | resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" 1367 | integrity sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw== 1368 | dependencies: 1369 | vscode-languageserver-protocol "3.16.0" 1370 | 1371 | vscode-uri@^3.0.2: 1372 | version "3.0.3" 1373 | resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.3.tgz#a95c1ce2e6f41b7549f86279d19f47951e4f4d84" 1374 | integrity sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA== 1375 | 1376 | yallist@^4.0.0: 1377 | version "4.0.0" 1378 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1379 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1380 | --------------------------------------------------------------------------------