@defra/interactive-map 0.0.37-alpha → 0.0.39-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/templates/draw-tools.njk +4 -3
- package/dist/css/index.css +1 -1
- package/dist/esm/im-core.js +1 -1
- package/dist/esm/im-shell.js +1 -1
- package/dist/umd/im-core.js +1 -1
- package/dist/umd/index.js +1 -1
- package/docs/api.md +32 -0
- package/docs/examples/draw-tools.mdx +0 -4
- package/docs/plugins/draw.md +482 -0
- package/docs/plugins.md +2 -6
- package/govuk-prototype-kit.config.json +3 -2
- package/package.json +2 -4
- package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
- package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
- package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
- package/plugins/beta/draw-ol/dist/esm/im-draw-ol-plugin.js +1 -1
- package/plugins/beta/map-styles/dist/css/index.css +1 -97
- package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
- package/plugins/datasets/src/registry/dataset.js +3 -1
- package/plugins/datasets/src/registry/datasetRegistry.js +30 -24
- package/plugins/datasets/src/registry/datasetRegistry.test.js +25 -18
- package/plugins/draw/dist/esm/im-draw-ml-adapter.js +1 -0
- package/plugins/draw/dist/esm/im-draw-ol-adapter.js +1 -0
- package/plugins/draw/dist/esm/im-draw-plugin.js +1 -0
- package/plugins/draw/dist/esm/index.js +1 -0
- package/plugins/draw/dist/umd/im-draw-ml-adapter.js +1 -0
- package/plugins/draw/dist/umd/im-draw-ol-adapter.js +2 -0
- package/plugins/draw/dist/umd/im-draw-ol-adapter.js.LICENSE.txt +1 -0
- package/plugins/draw/dist/umd/im-draw-plugin.js +2 -0
- package/plugins/draw/dist/umd/im-draw-plugin.js.LICENSE.txt +1 -0
- package/plugins/draw/dist/umd/index.js +2 -0
- package/plugins/draw/dist/umd/index.js.LICENSE.txt +1 -0
- package/plugins/draw/src/DrawInit.jsx +89 -0
- package/plugins/draw/src/DrawInit.test.jsx +184 -0
- package/plugins/draw/src/adapterEvents.js +127 -0
- package/plugins/draw/src/adapterEvents.test.js +20 -0
- package/plugins/draw/src/adapters/adapterContract.test.js +48 -0
- package/plugins/draw/src/adapters/loadDrawAdapter.js +14 -0
- package/plugins/draw/src/adapters/loadDrawAdapter.test.js +53 -0
- package/plugins/draw/src/adapters/maplibre/MaplibreDrawAdapter.js +367 -0
- package/plugins/draw/src/adapters/maplibre/MaplibreDrawAdapter.test.js +799 -0
- package/plugins/draw/src/adapters/maplibre/defaults.js +1 -0
- package/plugins/draw/src/adapters/maplibre/drawEvents.js +35 -0
- package/plugins/draw/src/adapters/maplibre/mapboxDraw.js +126 -0
- package/plugins/draw/src/adapters/maplibre/mapboxDraw.test.js +268 -0
- package/plugins/draw/src/adapters/maplibre/mapboxSnap.js +39 -0
- package/plugins/draw/src/adapters/maplibre/mapboxSnap.test.js +91 -0
- package/plugins/draw/src/adapters/maplibre/modes/createDrawMode.js +58 -0
- package/plugins/draw/src/adapters/maplibre/modes/createDrawMode.test.js +53 -0
- package/plugins/draw/src/adapters/maplibre/modes/disabledMode.js +23 -0
- package/plugins/draw/src/adapters/maplibre/modes/disabledMode.test.js +21 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawLineMode.js +15 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawLineMode.test.js +37 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/__helpers__/harness.js +115 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/clickHandlers.js +193 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/clickHandlers.test.js +241 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/keyboardHandlers.js +78 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/keyboardHandlers.test.js +75 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/lifecycle.js +78 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/lifecycle.test.js +48 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/pointerHandlers.js +103 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/pointerHandlers.test.js +127 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/renderHelpers.js +59 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/renderHelpers.test.js +34 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/undoHandlers.js +193 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/undoHandlers.test.js +195 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawPolygonMode.js +16 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawPolygonMode.test.js +27 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/__helpers__/harness.js +107 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/geometryHelpers.js +139 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/geometryHelpers.test.js +46 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/helpers.js +2 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/helpers.test.js +17 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/keyboardHandlers.js +151 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/keyboardHandlers.test.js +123 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/pointerHandlers.js +161 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/pointerHandlers.test.js +98 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/touchHandlers.js +133 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/touchHandlers.test.js +105 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/undoHandlers.js +166 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/undoHandlers.test.js +133 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexOperations.js +210 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexOperations.test.js +167 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexQueries.js +121 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexQueries.test.js +73 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode.js +249 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode.test.js +153 -0
- package/plugins/draw/src/adapters/maplibre/snap/constants.js +2 -0
- package/plugins/draw/src/adapters/maplibre/snap/mapHandlers.js +39 -0
- package/plugins/draw/src/adapters/maplibre/snap/mapHandlers.test.js +106 -0
- package/plugins/draw/src/adapters/maplibre/snap/prototypePatches.js +148 -0
- package/plugins/draw/src/adapters/maplibre/snap/prototypePatches.test.js +238 -0
- package/plugins/draw/src/adapters/maplibre/snap/snapInstance.js +115 -0
- package/plugins/draw/src/adapters/maplibre/snap/snapInstance.test.js +151 -0
- package/plugins/draw/src/adapters/maplibre/snap/sourceData.js +34 -0
- package/plugins/draw/src/adapters/maplibre/snap/sourceData.test.js +62 -0
- package/plugins/draw/src/adapters/maplibre/styles.js +207 -0
- package/plugins/draw/src/adapters/maplibre/styles.test.js +155 -0
- package/plugins/draw/src/adapters/maplibre/utils/snapHelpers.js +202 -0
- package/plugins/draw/src/adapters/maplibre/utils/snapHelpers.test.js +253 -0
- package/plugins/draw/src/adapters/maplibre/utils/touchClickWorkaround.js +57 -0
- package/plugins/draw/src/adapters/maplibre/utils/touchClickWorkaround.test.js +106 -0
- package/plugins/draw/src/adapters/openlayers/OLDrawAdapter.js +117 -0
- package/plugins/draw/src/adapters/openlayers/OLDrawAdapter.test.js +159 -0
- package/plugins/draw/src/adapters/openlayers/__helpers__/harness.js +90 -0
- package/plugins/draw/src/adapters/openlayers/core/OLDrawManager.js +178 -0
- package/plugins/draw/src/adapters/openlayers/core/OLDrawManager.test.js +153 -0
- package/plugins/draw/src/adapters/openlayers/core/featureStore.js +69 -0
- package/plugins/draw/src/adapters/openlayers/core/featureStore.test.js +58 -0
- package/plugins/draw/src/adapters/openlayers/core/internalEvents.js +8 -0
- package/plugins/draw/src/adapters/openlayers/core/styles.js +155 -0
- package/plugins/draw/src/adapters/openlayers/core/styles.test.js +143 -0
- package/plugins/draw/src/adapters/openlayers/defaults.js +1 -0
- package/plugins/draw/src/adapters/openlayers/draw/DrawMode.js +272 -0
- package/plugins/draw/src/adapters/openlayers/draw/DrawMode.test.js +431 -0
- package/plugins/draw/src/adapters/openlayers/draw/drawInput.js +139 -0
- package/plugins/draw/src/adapters/openlayers/draw/drawInput.test.js +140 -0
- package/plugins/draw/src/adapters/openlayers/draw/vertexPlacement.js +144 -0
- package/plugins/draw/src/adapters/openlayers/draw/vertexPlacement.test.js +196 -0
- package/plugins/draw/src/adapters/openlayers/edit/EditMode.js +385 -0
- package/plugins/draw/src/adapters/openlayers/edit/EditMode.test.js +303 -0
- package/plugins/draw/src/adapters/openlayers/edit/activeVertexLayer.js +55 -0
- package/plugins/draw/src/adapters/openlayers/edit/activeVertexLayer.test.js +53 -0
- package/plugins/draw/src/adapters/openlayers/edit/keyboardHandler.js +157 -0
- package/plugins/draw/src/adapters/openlayers/edit/keyboardHandler.test.js +195 -0
- package/plugins/draw/src/adapters/openlayers/edit/midpointLayer.js +57 -0
- package/plugins/draw/src/adapters/openlayers/edit/midpointLayer.test.js +42 -0
- package/plugins/draw/src/adapters/openlayers/edit/modifyInteraction.js +83 -0
- package/plugins/draw/src/adapters/openlayers/edit/modifyInteraction.test.js +80 -0
- package/plugins/draw/src/adapters/openlayers/edit/nudge.js +118 -0
- package/plugins/draw/src/adapters/openlayers/edit/nudge.test.js +165 -0
- package/plugins/draw/src/adapters/openlayers/edit/pointerHandlers.js +79 -0
- package/plugins/draw/src/adapters/openlayers/edit/pointerHandlers.test.js +78 -0
- package/plugins/draw/src/adapters/openlayers/edit/selectionState.js +116 -0
- package/plugins/draw/src/adapters/openlayers/edit/selectionState.test.js +109 -0
- package/plugins/draw/src/adapters/openlayers/edit/touchHandler.js +184 -0
- package/plugins/draw/src/adapters/openlayers/edit/touchHandler.test.js +133 -0
- package/plugins/draw/src/adapters/openlayers/edit/undoOps.js +94 -0
- package/plugins/draw/src/adapters/openlayers/edit/undoOps.test.js +64 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexHitTest.js +74 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexHitTest.test.js +28 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexLayer.js +49 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexLayer.test.js +42 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexOps.js +100 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexOps.test.js +80 -0
- package/plugins/draw/src/adapters/openlayers/olDraw.js +40 -0
- package/plugins/draw/src/adapters/openlayers/olDraw.test.js +70 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapEngine.js +220 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapEngine.test.js +232 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapGeometry.js +198 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapGeometry.test.js +136 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapIndicator.js +81 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapIndicator.test.js +72 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapInteraction.js +57 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapInteraction.test.js +68 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapManager.js +99 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapManager.test.js +101 -0
- package/plugins/draw/src/adapters/openlayers/utils/geometryHelpers.js +103 -0
- package/plugins/draw/src/adapters/openlayers/utils/geometryHelpers.test.js +76 -0
- package/plugins/draw/src/adapters/openlayers/utils/olCoords.js +35 -0
- package/plugins/draw/src/adapters/openlayers/utils/olCoords.test.js +22 -0
- package/plugins/draw/src/adapters/openlayers/utils/sketchHelpers.js +22 -0
- package/plugins/draw/src/adapters/openlayers/utils/sketchHelpers.test.js +18 -0
- package/plugins/draw/src/adapters/openlayers/utils/touchTarget.js +8 -0
- package/plugins/draw/src/api/addFeature.js +22 -0
- package/plugins/draw/src/api/addFeature.test.js +41 -0
- package/plugins/draw/src/api/deleteFeature.js +11 -0
- package/plugins/draw/src/api/deleteFeature.test.js +24 -0
- package/plugins/draw/src/api/editFeature.js +54 -0
- package/plugins/draw/src/api/editFeature.test.js +134 -0
- package/plugins/draw/src/api/merge.js +30 -0
- package/plugins/draw/src/api/merge.test.js +57 -0
- package/plugins/draw/src/api/newLine.js +41 -0
- package/plugins/draw/src/api/newLine.test.js +93 -0
- package/plugins/draw/src/api/newPolygon.js +41 -0
- package/plugins/draw/src/api/newPolygon.test.js +93 -0
- package/plugins/draw/src/api/split.js +117 -0
- package/plugins/draw/src/api/split.test.js +204 -0
- package/plugins/draw/src/defaults.js +52 -0
- package/plugins/draw/src/defaults.test.js +18 -0
- package/plugins/draw/src/draw.scss +43 -0
- package/plugins/draw/src/events.js +237 -0
- package/plugins/draw/src/events.test.js +369 -0
- package/plugins/draw/src/index.js +10 -0
- package/plugins/draw/src/index.test.js +24 -0
- package/plugins/draw/src/manifest.js +170 -0
- package/plugins/draw/src/manifest.test.js +147 -0
- package/plugins/draw/src/reducer.js +69 -0
- package/plugins/draw/src/reducer.test.js +85 -0
- package/plugins/draw/src/utils/debounce.js +16 -0
- package/plugins/draw/src/utils/debounce.test.js +40 -0
- package/plugins/draw/src/utils/eventBus.js +36 -0
- package/plugins/draw/src/utils/eventBus.test.js +47 -0
- package/plugins/draw/src/utils/flattenStyleProperties.js +25 -0
- package/plugins/draw/src/utils/flattenStyleProperties.test.js +33 -0
- package/plugins/draw/src/utils/getValueForStyle.js +33 -0
- package/plugins/draw/src/utils/getValueForStyle.test.js +32 -0
- package/plugins/draw/src/utils/resolveColors.js +39 -0
- package/plugins/draw/src/utils/resolveColors.test.js +34 -0
- package/plugins/draw/src/utils/spatial.js +243 -0
- package/plugins/draw/src/utils/spatial.test.js +243 -0
- package/plugins/draw/src/utils/touchTarget.js +95 -0
- package/plugins/draw/src/utils/touchTarget.test.js +107 -0
- package/plugins/draw/src/utils/undoStack.js +31 -0
- package/plugins/draw/src/utils/undoStack.test.js +49 -0
- package/plugins/draw/src/validation/liveDrawChecks.js +120 -0
- package/plugins/draw/src/validation/liveDrawChecks.test.js +159 -0
- package/plugins/draw/src/validation/liveStroke.js +85 -0
- package/plugins/draw/src/validation/liveStroke.test.js +150 -0
- package/plugins/draw/src/validation/rules.areaError.test.js +12 -0
- package/plugins/draw/src/validation/rules.js +186 -0
- package/plugins/draw/src/validation/rules.test.js +120 -0
- package/plugins/draw/src/validation/validateGeometry.js +119 -0
- package/plugins/draw/src/validation/validateGeometry.test.js +200 -0
- package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
- package/plugins/interact/src/hooks/useInteractionHandlers.js +1 -1
- package/plugins/interact/src/hooks/useInteractionHandlers.test.js +1 -1
- package/plugins/interact/src/utils/buildStylesMap.js +1 -0
- package/plugins/search/dist/css/index.css +1 -317
- package/rollup.esm.mjs +35 -28
- package/sonar-project.properties +2 -2
- package/src/App/components/Attributions/Attributions.module.scss +1 -0
- package/src/App/components/Hints/Hints.module.scss +5 -4
- package/src/App/components/KeyboardHelp/KeyboardHelp.jsx +1 -1
- package/src/App/components/KeyboardHelp/KeyboardHelp.test.jsx +11 -0
- package/src/App/components/MoveControl/MoveControl.jsx +73 -9
- package/src/App/components/MoveControl/MoveControl.module.scss +12 -2
- package/src/App/components/MoveControl/MoveControl.test.jsx +136 -0
- package/src/App/hooks/useHintsAPI.js +67 -0
- package/src/App/hooks/useHintsAPI.test.js +145 -0
- package/src/App/renderer/PluginInits.jsx +4 -0
- package/src/App/renderer/PluginInits.test.jsx +7 -1
- package/src/InteractiveMap/InteractiveMap.js +20 -0
- package/src/InteractiveMap/InteractiveMap.test.js +7 -0
- package/src/config/events.js +4 -0
- package/src/scss/settings/_dimensions.scss +3 -0
- package/src/services/announcer.js +38 -3
- package/src/services/announcer.test.js +133 -1
- package/src/services/hints.js +3 -0
- package/src/services/hints.test.js +19 -0
- package/src/types.js +12 -0
- package/src/utils/detectInterfaceType.js +5 -1
- package/src/utils/isMac.js +15 -0
- package/src/utils/isMac.test.js +37 -0
- package/webpack.umd.mjs +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@babel/runtime/helpers/asyncToGenerator";import n from"ol/layer/Vector.js";import a from"ol/source/Vector.js";import o from"ol/format/GeoJSON.js";import i from"ol/style/Style.js";import l from"ol/style/Fill.js";import d from"ol/style/Stroke.js";import s from"ol/style/Circle.js";import{transform as p}from"ol/proj.js";import c from"ol/layer/VectorTile.js";import u from"ol/Feature.js";import v from"ol/geom/Point.js";import{Style as f}from"ol/style.js";import h from"ol/interaction/Interaction.js";import g from"@babel/runtime/helpers/objectWithoutProperties";function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?m(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var _={SET_MODE:(e,t)=>y(y({},e),{},{mode:t,numVertices:null}),SET_FEATURE:(e,t)=>y(y({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature}),SET_SELECTED_VERTEX_INDEX:(e,t)=>y(y({},e),{},{selectedVertexIndex:t.index,numVertices:t.numVertices}),SET_UNDO_STACK_LENGTH:(e,t)=>y(y({},e),{},{undoStackLength:t}),TOGGLE_SNAP:e=>y(y({},e),{},{snap:!e.snap}),SET_HAS_SNAP_LAYERS:(e,t)=>y(y({},e),{},{hasSnapLayers:!!t})},S={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},P="EPSG:27700",w=new o({dataProjection:P,featureProjection:P}),E=()=>{var e=new a;return{source:e,getOL(t){var r;return null!==(r=e.getFeatureById(String(t)))&&void 0!==r?r:null},add(t){var r=this.getOL(t.id);r&&e.removeFeature(r);var n=w.readFeature(t);return e.addFeature(n),n},get(e){var t=this.getOL(e);return t?w.writeFeatureObject(t):null},remove(t){var r=this.getOL(t);r&&e.removeFeature(r)},clear(){e.clear()},toGeoJSON:e=>w.writeFeatureObject(e),fromGeoJSON:e=>w.readFeature(e)}},b={outer:11,mid:8,inner:6},O={outer:9,mid:6,inner:4},A=(e,t,r,n,a)=>{e.beginPath(),e.arc(t,r,n,0,2*Math.PI),e.fillStyle=a,e.fill()},T=(e,t,r)=>{var{outer:n,mid:a,inner:o}=e;return(e,i)=>{var l=i.context,d=i.pixelRatio,[s,p]=e;l.save(),A(l,s,p,n*d,t.editActive),A(l,s,p,a*d,t.editHalo),A(l,s,p,o*d,t[r]),l.restore()}},j=e=>e.charAt(0).toUpperCase()+e.slice(1),M=e=>{var t=new i({image:new s({radius:6,fill:new l({color:e.editVertex})})}),r=new i({renderer:T(b,e,"editVertex")}),n=new i({image:new s({radius:4,fill:new l({color:e.editMidpoint})})}),a=new i({renderer:T(O,e,"editMidpoint")}),o=new i({stroke:new d({color:e.editStroke,width:2}),fill:new l({color:e.shapeFill})}),p=new i({stroke:new d({color:e.editStroke,width:2}),fill:new l({color:e.shapeFill})}),c=new i({image:new s({radius:5,fill:new l({color:e.editVertex})})});return{vertexStyle:t,selectedVertexStyle:r,midpointStyle:n,selectedMidpointStyle:a,editFeatureStyle:o,createSketchStyle:()=>e=>"Point"===e.getGeometry().getType()?[c]:[p],createFeatureStyle:()=>t=>{var r=t.getProperties(),n=e.mapStyleId,a=n&&r["stroke".concat(j(n))]||r.stroke||e.shapeStroke,o=n&&r["fill".concat(j(n))]||r.fill||e.shapeFill,s=r.strokeWidth||e.strokeWidth;return[new i({stroke:new d({color:a,width:s}),fill:new l({color:o})})]}}},k={editStroke:{light:"#1a65a6",dark:"#ffffff"},editVertex:{light:"#1a65a6",dark:"#ffffff"},editMidpoint:{light:"#1a65a6",dark:"#ffffff"},editHalo:{light:"#ffffff",dark:"rgba(11,12,12,1)"},editActive:{light:"#000000",dark:"#ffffff"},splitInvalid:{light:"rgba(29,112,184,1)",dark:"rgba(29,112,184,1)"},splitValid:{light:"rgba(29,112,184,1)",dark:"rgba(29,112,184,1)"},shapeStroke:"#1a65a6",shapeFill:"rgba(26,101,166,0.1)",strokeWidth:2,snapVertex:"rgba(212,53,28,0.5)",snapMidpoint:"rgba(40,161,151,1)",snapEdge:"rgba(29,112,184,0.5)",snapRadius:10},D=function(e){var t,r,n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null!==(t=null==e?void 0:e.mapColorScheme)&&void 0!==t?t:"light",i=null!==(r=null==e?void 0:e.id)&&void 0!==r?r:null,l=e=>{var t;return((e,t,r)=>"object"!=typeof e||null===e?e:r&&void 0!==e[r]?e[r]:void 0!==e[t]?e[t]:void 0!==e.light?e.light:Object.values(e)[0])(null!==(t=a[e])&&void 0!==t?t:k[e],o,i)};return{editStroke:l("editStroke"),editVertex:l("editVertex"),editMidpoint:l("editMidpoint"),editActive:l("editActive"),editHalo:l("editHalo"),shapeStroke:l("shapeStroke"),strokeWidth:null!==(n=a.strokeWidth)&&void 0!==n?n:k.strokeWidth,shapeFill:l("shapeFill"),snapVertex:l("snapVertex"),snapEdge:l("snapEdge"),mapStyleId:i}},x=(e,t)=>{var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n},C=(e,t,r)=>{var n=r[0]-t[0],a=r[1]-t[1],o=n*n+a*a;if(0===o)return[t[0],t[1]];var i=Math.max(0,Math.min(1,((e[0]-t[0])*n+(e[1]-t[1])*a)/o));return[t[0]+i*n,t[1]+i*a]},I=(e,t)=>L(e,t)?t:e,L=(e,t)=>e?!!t&&("edge"===e.type&&"vertex"===t.type||("vertex"!==e.type||"edge"!==t.type)&&t.distSq<e.distSq):!!t,V=(e,t,r,n)=>{for(var a=null,o=n&&e.length>1?e.length-1:e.length,i=n?o:o-1,l=0;l<o;l++){var d=e[l],s=x(t,d);s<=r&&(a=I(a,{type:"vertex",coord:[d[0],d[1]],distSq:s}))}for(var p=0;p<i;p++){var c=e[p],u=e[(p+1)%o],v=C(t,c,u),f=x(t,v);f<=r&&(a=I(a,{type:"edge",coord:v,distSq:f}))}return a},F=(e,t,r,n,a,o)=>I(((e,t,r,n,a)=>{for(var o=null,i=0;i<r;i++){var l=t+2*i,d=[e[l],e[l+1]],s=x(n,d);s<=a&&(o=I(o,{type:"vertex",coord:d,distSq:s}))}return o})(e,t,r,a,o),((e,t,r,n,a,o)=>{for(var i=null,l=0;l<n;l++){var d=t+2*l,s=t+(l+1)%r*2,p=[e[d],e[d+1]],c=[e[s],e[s+1]],u=C(a,p,c),v=x(a,u);v<=o&&(i=I(i,{type:"edge",coord:u,distSq:v}))}return i})(e,t,r,n,a,o)),R=(e,t,r,n,a,o)=>{var i=(r-t)/2;return F(e,t,i,o?i:i-1,n,a)},N={point:(e,t,r)=>{var n=e.getCoordinates(),a=x(t,n);return a<=r?{type:"vertex",coord:[n[0],n[1]],distSq:a}:null},lineString:(e,t,r)=>V(e.getCoordinates(),t,r,!1),linearRing:(e,t,r)=>V(e.getCoordinates(),t,r,!0),polygon:(e,t,r)=>{var n=null;for(var a of e.getCoordinates())n=I(n,V(a,t,r,!0));return n},multiLineString:(e,t,r)=>{var n=null;for(var a of e.getCoordinates())n=I(n,V(a,t,r,!1));return n},multiPolygon:(e,t,r)=>{var n=null;for(var a of e.getCoordinates())for(var o of a)n=I(n,V(o,t,r,!0));return n}},W=(e,t,r)=>{var n=e.getGeometry();if(!n)return null;var a=n.getType(),o=N[a[0].toLowerCase()+a.slice(1)];return o?o(n,t,r):null},G=(e,t)=>t?e?"vertex"===e.type&&"edge"===t.type?e:"edge"===e.type&&"vertex"===t.type||t.distSq<e.distSq?t:e:t:e,H=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=new Set,a=[],o=e=>{for(var t of(r=new Set,a=[],null!=e?e:[]))"string"==typeof t?r.add(t):t instanceof n&&a.push(t)};o(t);return{query:(t,n)=>{var o=e.getView().getResolution();if(!o)return null;var i=n*o,l=i*i,d=[t[0]-i,t[1]-i,t[0]+i,t[1]+i],s=null;for(var u of a){var v=u.getSource();if(v)for(var f of v.getFeaturesInExtent(d))s=G(s,W(f,t,l))}if(r.size>0){var h=(e=>{var t=[];return e.getLayers().forEach(e=>{e instanceof c&&t.push(e)}),t})(e),g=h.length>0?e.getPixelFromCoordinate(t):null;if(g){var m=new Map;e.forEachFeatureAtPixel(g,(n,a)=>{var i=n.get("mapbox-layer");if(r.has(null==i?void 0:i.id)){var d=((e,t,r)=>{var n=e.getType(),a=e.getFlatCoordinates(),o=null;if("Point"===n){var i=x(t,a);i<=r&&(o={type:"vertex",coord:[a[0],a[1]],distSq:i})}else if("LineString"===n)o=R(a,0,a.length,t,r,!1);else if("Polygon"===n||"MultiLineString"===n){var l=e.getEnds(),d=0,s="Polygon"===n;for(var p of l)o=I(o,R(a,d,p,t,r,s)),d=p}return o})(n,t,l);d&&(m.has(a)||m.set(a,((e,t)=>{var r,n=e.getSource(),a=null==n?void 0:n.getTileGrid();if(!a)return null;var o=t.getView().getProjection(),i=null!==(r=n.getProjection())&&void 0!==r?r:o,l=a.getZForResolution(t.getView().getResolution(),0);return{tileGrid:a,viewProj:o,sourceProj:i,zoom:l}})(a,e)),((e,t)=>{if(!e)return!1;var{tileGrid:r,viewProj:n,sourceProj:a,zoom:o}=e,i=p(t,n,a),l=r.getTileCoordForCoordAndZ(i,o),[d,s,c,u]=r.getTileCoordExtent(l),v=.03125*(c-d)+1;return Math.abs(i[0]-d)<v||Math.abs(i[0]-c)<v||Math.abs(i[1]-s)<v||Math.abs(i[1]-u)<v})(m.get(a),d.coord)||"edge"===d.type&&"fill"===(null==i?void 0:i.type)&&((e,t,r,n,a,o)=>{var i=e[0]-t[0],l=e[1]-t[1],d=i*i+l*l;if(d<1)return!1;var s=Math.sqrt(d),p=4*o,c=[e[0]+i/s*p,e[1]+l/s*p],u=n.getPixelFromCoordinate(c);return!!u&&!!n.forEachFeatureAtPixel(u,e=>{var t;return(null===(t=e.get("mapbox-layer"))||void 0===t?void 0:t.id)===r},{hitTolerance:2,layerFilter:e=>a.includes(e)})})(d.coord,t,i.id,e,h,o)||(s=G(s,d)))}},{hitTolerance:n,layerFilter:e=>h.includes(e)})}}return s?{type:s.type,coord:s.coord}:null},setLayers:o}},U=e=>(t,r)=>{var n=r.context,[a,o]=t;n.beginPath(),n.arc(a,o,10*r.pixelRatio,0,2*Math.PI),n.fillStyle=e,n.fill()},B=e=>({vertex:new f({renderer:U(e.snapVertex)}),edge:new f({renderer:U(e.snapEdge)})}),q=new Set(["pointermove","pointerdrag","pointerdown","pointerup","singleclick","click"]),Y=(e,t,r,n)=>{var a=new h({handleEvent:o=>(a.getActive()&&((e,t,r,n,a)=>{var{type:o}=e;if("pointerout"!==o&&"pointerleave"!==o){if(q.has(o)){var i=t.query(e.coordinate,n);i&&(e.coordinate=i.coord.slice()),"pointermove"===o&&a()?i?r.show(i.coord,i.type):r.hide():"pointerdrag"===o&&r.hide()}}else r.hide()})(o,e,t,r,n),!0)});return a},z=(e,t,r,o)=>{if(null==t||!t.length)return null;var i=H(e,t),l=((e,t)=>{var r=B(t),o=new a,i=new n({source:o,style:e=>{var t;return null!==(t=r[e.get("snapType")])&&void 0!==t?t:null},zIndex:200,updateWhileAnimating:!0,updateWhileInteracting:!0});e.addLayer(i);var l=new u,d=!1;return{show(e,t){l.setGeometry(new v(e)),l.set("snapType",t,!0),d?o.changed():(o.addFeature(l),d=!0)},hide(){d&&(o.clear(),d=!1)},updateColors(e){r=B(e),d&&o.changed()},remove(){o.clear(),e.removeLayer(i)}}})(e,r),d=!1,s=Y(i,l,o,()=>d);e.addInteraction(s),s.setActive(!1);var p=!1;return{snapRadius:o,apply(e){if(!p)return e;var t=i.query(e,o);return t?(l.show(t.coord,t.type),t.coord):(l.hide(),e)},hideIndicator(){l.hide()},setIndicatorActive(e){d=e,e||l.hide()},setActive(e){p=e,s.setActive(e),e||l.hide()},setSnapLayers(e){i.setLayers(null==e?null!=t?t:[]:e)},reattach(){e.removeInteraction(s),e.addInteraction(s)},updateColors(e){l.updateColors(e)},destroy(){e.removeInteraction(s),l.remove()}}};function X(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function K(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?X(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}class Z{constructor(e){var t,r,a,o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._map=e,this._pluginConfig=i,this._mode="disabled",this._modeInstance=null,this._listeners=new Map,this.store=E(),this.undoStack=(a=e=>this.emit("undochange",e),o=[],{push(e){o.push(e),a(o.length)},pop(){var e=o.pop();return a(o.length),e},clear(){o.length=0,a(o.length)},get length(){return o.length}}),this.colors=D(null,i),this.styles=M(this.colors),this.snap=z(e,null!==(t=i.snapLayers)&&void 0!==t?t:null,this.colors,null!==(r=i.snapRadius)&&void 0!==r?r:k.snapRadius),this._layer=new n({source:this.store.source,style:this.styles.createFeatureStyle(),zIndex:100}),this._layer.set("layerId","draw"),e.addLayer(this._layer)}setMapStyle(e){var t;this.colors=D(e,this._pluginConfig),this.styles=M(this.colors),this._layer.setStyle(this.styles.createFeatureStyle()),this.store.source.changed(),null===(t=this.snap)||void 0===t||t.updateColors(this.colors),this.emit("styleschanged",this.styles)}on(e,t){this._listeners.has(e)||this._listeners.set(e,new Set),this._listeners.get(e).add(t)}off(e,t){var r;null===(r=this._listeners.get(e))||void 0===r||r.delete(t)}emit(e,t){var r;null===(r=this._listeners.get(e))||void 0===r||r.forEach(e=>e(t))}changeMode(e){var t=arguments,n=this;return r(function*(){var r,a,o,i=t.length>1&&void 0!==t[1]?t[1]:{};null===(r=n._modeInstance)||void 0===r||r.destroy(),n._modeInstance=null,n._mode=e;var l="draw_polygon"===e||"draw_line"===e||"edit_vertex"===e;null===(a=n.snap)||void 0===a||a.setIndicatorActive(l);var d=K(K({},i),{},{snap:n.snap});if("draw_polygon"===e||"draw_line"===e){var{createDrawMode:s}=yield import(/* webpackChunkName: "DrawMode" */ "./DrawMode.js");n._modeInstance=s({map:n._map,manager:n,options:d})}else if("edit_vertex"===e){var{createEditMode:p}=yield import(/* webpackChunkName: "EditMode" */ "./EditMode.js");n._modeInstance=p({map:n._map,manager:n,options:d})}null===(o=n.snap)||void 0===o||o.reattach()})()}getMode(){return this._mode}done(){var e;null===(e=this._modeInstance)||void 0===e||e.done()}cancel(){var e;null===(e=this._modeInstance)||void 0===e||e.cancel(),this.changeMode("disabled")}undo(){var e;null===(e=this._modeInstance)||void 0===e||e.undo()}deleteVertex(){var e;null===(e=this._modeInstance)||void 0===e||e.deleteVertex()}setInterfaceType(e){var t,r;null===(t=this._modeInstance)||void 0===t||null===(r=t.setInterfaceType)||void 0===r||r.call(t,e)}get(e){return this.store.get(e)}add(e){return this.store.add(e)}delete(e){return this.store.remove(e)}deleteAll(){return this.store.clear()}remove(){var e,t;null===(e=this._modeInstance)||void 0===e||e.destroy(),this._modeInstance=null,null===(t=this.snap)||void 0===t||t.destroy(),this.snap=null,this.store.clear(),this._map.removeLayer(this._layer),this._listeners.clear()}}var J=["stroke","fill","strokeWidth"],Q=e=>{if(!e)return{};var t={};for(var[r,n]of Object.entries(e))if(J.includes(r)&&"object"==typeof n&&null!==n){var a=Object.entries(n);for(var[o,i]of(a.length>0&&(t[r]=a[0][1]),a))t["".concat(r).concat(o.charAt(0).toUpperCase()+o.slice(1))]=i}else t[r]=n;return t},$=["stroke","fill","strokeWidth","properties"];function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function te(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ee(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ee(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var re=["stroke","fill","strokeWidth","properties"];function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ae(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ne(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ne(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var oe=["stroke","fill","strokeWidth","properties"];function ie(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function le(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ie(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ie(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function de(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function se(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?de(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):de(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var pe=e=>({mobile:{slot:"actions",showLabel:e},tablet:{slot:"actions",showLabel:e},desktop:{slot:"actions",showLabel:e}}),ce={reducer:{initialState:{mode:null,feature:null,tempFeature:null,selectedVertexIndex:-1,numVertices:null,undoStackLength:0,snap:!1,hasSnapLayers:!1},actions:_},InitComponent:e=>{var{appState:r,appConfig:n,mapState:a,pluginConfig:o,pluginState:i,services:l,mapProvider:d,buttonConfig:s}=e,{eventBus:p}=l,{crossHair:c}=a,u=["touch","keyboard"].includes(r.interfaceType);t(()=>{var e,t,n,l,s,c=null===(e=null===(t=o.includeModes)||void 0===t?void 0:t.includes(r.mode))||void 0===e||e,u=null!==(n=null===(l=o.excludeModes)||void 0===l?void 0:l.includes(r.mode))&&void 0!==n&&n;if(a.isMapReady&&c&&!u){var{remove:v}=(e=>{var{mapProvider:t,events:r,eventBus:n,pluginConfig:a={},mapStyle:o=null}=e,{map:i}=t,l=new Z(i,a);o&&l.setMapStyle(o),t.draw=l;var d=e=>{var r;t.drawScale=null!==(r={small:1,medium:1.5,large:2}[e])&&void 0!==r?r:1};n.on(r.MAP_SET_SIZE,d);var s=e=>{l.setMapStyle(e)};return n.on(r.MAP_SET_STYLE,s),{remove(){n.off(r.MAP_SET_SIZE,d),n.off(r.MAP_SET_STYLE,s),l.remove(),t.draw=null}}})({mapProvider:d,events:S,eventBus:p,pluginConfig:o,mapStyle:a.mapStyle});return i.dispatch({type:"SET_MODE",payload:null}),i.dispatch({type:"SET_HAS_SNAP_LAYERS",payload:(null===(s=o.snapLayers)||void 0===s?void 0:s.length)>0}),p.emit("draw:ready"),()=>v()}},[a.isMapReady,r.mode]),t(()=>{if(["draw_polygon","draw_line"].includes(i.mode)&&u){var e=c.isVisible;return c.fixAtCenter(),()=>{e||c.hide()}}},[i.mode,r.interfaceType]),t(()=>{"edit_vertex"===i.mode&&d.draw&&d.draw.setInterfaceType(r.interfaceType)},[r.interfaceType,i.mode]),t(()=>{if(d.draw)return function(e){var{pluginState:t,mapProvider:r,buttonConfig:n,eventBus:a}=e,{drawDone:o,drawCancel:i,drawUndo:l,drawDeletePoint:d,drawSnap:s}=n,{draw:p}=r,{dispatch:c,feature:u,tempFeature:v}=t,f=()=>{p.undoStack.clear(),c({type:"SET_MODE",payload:null}),c({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}})},h=e=>{f(),p.changeMode("disabled"),a.emit("draw:created",e)},g=e=>{f(),p.changeMode("disabled"),a.emit("draw:edited",e)},m=()=>{},y=e=>{c({type:"SET_SELECTED_VERTEX_INDEX",payload:e}),a.emit("draw:vertexselection",e)},_=e=>{c({type:"SET_SELECTED_VERTEX_INDEX",payload:{index:-1,numVertices:e.numVertices}})},S=e=>{c({type:"SET_UNDO_STACK_LENGTH",payload:e})},P=e=>{a.emit("draw:updated",e)};return o.onClick=()=>{p.undoStack.clear(),p.done()},i.onClick=()=>{"edit_vertex"===p.getMode()&&null!=v&&v.id&&p.add(u),p.cancel(),f(),a.emit("draw:cancelled",u)},l.onClick=()=>{p.undo()},d&&(d.onClick=()=>{p.deleteVertex()}),s&&(s.onClick=()=>{var e,r=!t.snap;c({type:"TOGGLE_SNAP"}),null===(e=p.snap)||void 0===e||e.setActive(r)}),p.on("create",h),p.on("editfinish",g),p.on("cancel",m),p.on("vertexselection",y),p.on("vertexchange",_),p.on("undochange",S),p.on("update",P),()=>{o.onClick=null,i.onClick=null,l.onClick=null,d&&(d.onClick=null),s&&(s.onClick=null),p.off("create",h),p.off("editfinish",g),p.off("cancel",m),p.off("vertexselection",y),p.off("vertexchange",_),p.off("undochange",S),p.off("update",P)}}({mapProvider:d,buttonConfig:s,pluginState:i,eventBus:p})},[d,r,i])},buttons:[se({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},pe(!0)),se({id:"drawAddPoint",label:"Add point",variant:"primary",hiddenWhen:e=>{var{appState:t,pluginState:r}=e;return!["draw_polygon","draw_line"].includes(r.mode)||"touch"!==t.interfaceType}},pe(!0)),se({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!["draw_polygon","draw_line","edit_vertex"].includes(t.mode)},enableWhen:e=>{var{pluginState:t}=e;return"draw_polygon"===t.mode?t.numVertices>=3:"draw_line"===t.mode?t.numVertices>=2:"edit_vertex"===t.mode}},pe(!0)),{id:"drawMenu",label:"Menu",iconId:"menu",hiddenWhen:e=>{var{pluginState:t}=e;return!["draw_polygon","draw_line","edit_vertex"].includes(t.mode)},menuItems:[{id:"drawUndo",label:"Undo",iconId:"undo",hiddenWhen:e=>{var{pluginState:t}=e;return!["draw_polygon","draw_line","edit_vertex"].includes(t.mode)},enableWhen:e=>{var{pluginState:t}=e;return["draw_polygon","draw_line"].includes(t.mode)?t.numVertices>0:t.undoStackLength>0}},{id:"drawSnap",label:"Snap to feature",iconId:"magnet",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode||!t.hasSnapLayers},pressedWhen:e=>{var{pluginState:t}=e;return!!t.snap}},{id:"drawDeletePoint",label:"Delete point",iconId:"trash",enableWhen:e=>{var t,{pluginState:r}=e;return!(r.selectedVertexIndex<0)&&("Polygon"===(null===(t=r.feature)||void 0===t||null===(t=t.geometry)||void 0===t?void 0:t.type)?r.numVertices>3:r.numVertices>2)},hiddenWhen:e=>{var{pluginState:t}=e;return"edit_vertex"!==t.mode}}],mobile:{slot:"bottom-right"},tablet:{slot:"top-middle"},desktop:{slot:"top-middle"}}],keyboardShortcuts:[{id:"drawStart",group:"Drawing",title:"Edit vertex",command:"<kbd>Spacebar</kbd></dd>"}],icons:[{id:"menu",svgContent:'<path d="m6 9 6 6 6-6"/>'},{id:"undo",svgContent:'<path d="M9 14 4 9l5-5"/><path d="M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11"/>'},{id:"magnet",svgContent:'<path d="m12 15 4 4"/><path d="M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z"/><path d="m5 8 4 4"/>'},{id:"trash",svgContent:'<path d="M10 11v6"/><path d="M14 11v6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"/><path d="M3 6h18"/><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>'}],api:{newPolygon:function(e,t){var{appState:r,appConfig:n,mapState:a,pluginState:o,mapProvider:i,services:l}=e,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:s}=o,{draw:p}=i,{eventBus:c}=l;if(p){c.emit("draw:started",{mode:"draw_polygon"});var{stroke:u,fill:v,strokeWidth:f,properties:h}=d,m=g(d,$),y=te(te({},h),Q({stroke:u,fill:v,strokeWidth:f}));p.changeMode("draw_polygon",te({container:r.layoutRefs.viewportRef.current,interfaceType:r.interfaceType,addVertexButtonId:"".concat(n.id,"-draw-add-point"),featureId:t,geometryType:"Polygon",properties:y,mapProvider:i,crossHair:a.crossHair},m)),s({type:"SET_MODE",payload:"draw_polygon"})}},newLine:function(e,t){var{appState:r,appConfig:n,mapState:a,pluginState:o,mapProvider:i,services:l}=e,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:s}=o,{draw:p}=i,{eventBus:c}=l;if(p){c.emit("draw:started",{mode:"draw_line"});var{stroke:u,fill:v,strokeWidth:f,properties:h}=d,m=g(d,re),y=ae(ae({},h),Q({stroke:u,fill:v,strokeWidth:f}));p.changeMode("draw_line",ae({container:r.layoutRefs.viewportRef.current,interfaceType:r.interfaceType,addVertexButtonId:"".concat(n.id,"-draw-add-point"),featureId:t,geometryType:"LineString",properties:y,mapProvider:i,crossHair:a.crossHair},m)),s({type:"SET_MODE",payload:"draw_line"})}},editFeature:function(e,t){var r,n,{appState:a,appConfig:o,pluginConfig:i,pluginState:l,mapProvider:d,services:s}=e,p=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:c}=l,{draw:u}=d,{eventBus:v}=s;if(!u)return!1;var f=u.get(t);if(!f)return!1;v.emit("draw:editstart",{mode:"edit_vertex"});var h=void 0===p.snapLayers?null!==(r=i.snapLayers)&&void 0!==r?r:null:p.snapLayers;return null===(n=u.snap)||void 0===n||n.setSnapLayers(h),c({type:"SET_HAS_SNAP_LAYERS",payload:(null==h?void 0:h.length)>0}),u.changeMode("edit_vertex",{container:a.layoutRefs.viewportRef.current,deleteVertexButtonId:"".concat(o.id,"-draw-delete-point"),interfaceType:a.interfaceType,featureId:t}),c({type:"SET_FEATURE",payload:{feature:f,tempFeature:f}}),c({type:"SET_MODE",payload:"edit_vertex"}),!0},addFeature:(e,t)=>{var{mapProvider:r,services:n}=e,{draw:a}=r,{eventBus:o}=n;if(a){var{stroke:i,fill:l,strokeWidth:d,properties:s}=t,p=le(le({},g(t,oe)),{},{properties:le(le({},s),Q({stroke:i,fill:l,strokeWidth:d}))});a.add(p),o.emit("draw:add",p)}},deleteFeature:(e,t)=>{var{mapProvider:r}=e,{draw:n}=r;n&&n.delete(t)}}};export{ce as manifest};
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@babel/runtime/helpers/asyncToGenerator";import n from"ol/layer/Vector.js";import a from"ol/source/Vector.js";import o from"ol/format/GeoJSON.js";import i from"ol/style/Style.js";import l from"ol/style/Fill.js";import d from"ol/style/Stroke.js";import s from"ol/style/Circle.js";import{transform as p}from"ol/proj.js";import c from"ol/layer/VectorTile.js";import u from"ol/Feature.js";import v from"ol/geom/Point.js";import{Style as f}from"ol/style.js";import h from"ol/interaction/Interaction.js";import g from"@babel/runtime/helpers/objectWithoutProperties";function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?m(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var _={SET_MODE:(e,t)=>y(y({},e),{},{mode:t,numVertices:null}),SET_FEATURE:(e,t)=>y(y({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature}),SET_SELECTED_VERTEX_INDEX:(e,t)=>y(y({},e),{},{selectedVertexIndex:t.index,numVertices:t.numVertices}),SET_UNDO_STACK_LENGTH:(e,t)=>y(y({},e),{},{undoStackLength:t}),TOGGLE_SNAP:e=>y(y({},e),{},{snap:!e.snap}),SET_HAS_SNAP_LAYERS:(e,t)=>y(y({},e),{},{hasSnapLayers:!!t})},S={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_SHOW_HINT:"app:showhint",APP_DISMISS_HINT:"app:dismisshint",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},P="EPSG:27700",w=new o({dataProjection:P,featureProjection:P}),E=()=>{var e=new a;return{source:e,getOL(t){var r;return null!==(r=e.getFeatureById(String(t)))&&void 0!==r?r:null},add(t){var r=this.getOL(t.id);r&&e.removeFeature(r);var n=w.readFeature(t);return e.addFeature(n),n},get(e){var t=this.getOL(e);return t?w.writeFeatureObject(t):null},remove(t){var r=this.getOL(t);r&&e.removeFeature(r)},clear(){e.clear()},toGeoJSON:e=>w.writeFeatureObject(e),fromGeoJSON:e=>w.readFeature(e)}},b={outer:11,mid:8,inner:6},O={outer:9,mid:6,inner:4},A=(e,t,r,n,a)=>{e.beginPath(),e.arc(t,r,n,0,2*Math.PI),e.fillStyle=a,e.fill()},T=(e,t,r)=>{var{outer:n,mid:a,inner:o}=e;return(e,i)=>{var l=i.context,d=i.pixelRatio,[s,p]=e;l.save(),A(l,s,p,n*d,t.editActive),A(l,s,p,a*d,t.editHalo),A(l,s,p,o*d,t[r]),l.restore()}},j=e=>e.charAt(0).toUpperCase()+e.slice(1),M=e=>{var t=new i({image:new s({radius:6,fill:new l({color:e.editVertex})})}),r=new i({renderer:T(b,e,"editVertex")}),n=new i({image:new s({radius:4,fill:new l({color:e.editMidpoint})})}),a=new i({renderer:T(O,e,"editMidpoint")}),o=new i({stroke:new d({color:e.editStroke,width:2}),fill:new l({color:e.shapeFill})}),p=new i({stroke:new d({color:e.editStroke,width:2}),fill:new l({color:e.shapeFill})}),c=new i({image:new s({radius:5,fill:new l({color:e.editVertex})})});return{vertexStyle:t,selectedVertexStyle:r,midpointStyle:n,selectedMidpointStyle:a,editFeatureStyle:o,createSketchStyle:()=>e=>"Point"===e.getGeometry().getType()?[c]:[p],createFeatureStyle:()=>t=>{var r=t.getProperties(),n=e.mapStyleId,a=n&&r["stroke".concat(j(n))]||r.stroke||e.shapeStroke,o=n&&r["fill".concat(j(n))]||r.fill||e.shapeFill,s=r.strokeWidth||e.strokeWidth;return[new i({stroke:new d({color:a,width:s}),fill:new l({color:o})})]}}},k={editStroke:{light:"#1a65a6",dark:"#ffffff"},editVertex:{light:"#1a65a6",dark:"#ffffff"},editMidpoint:{light:"#1a65a6",dark:"#ffffff"},editHalo:{light:"#ffffff",dark:"rgba(11,12,12,1)"},editActive:{light:"#000000",dark:"#ffffff"},splitInvalid:{light:"rgba(29,112,184,1)",dark:"rgba(29,112,184,1)"},splitValid:{light:"rgba(29,112,184,1)",dark:"rgba(29,112,184,1)"},shapeStroke:"#1a65a6",shapeFill:"rgba(26,101,166,0.1)",strokeWidth:2,snapVertex:"rgba(212,53,28,0.5)",snapMidpoint:"rgba(40,161,151,1)",snapEdge:"rgba(29,112,184,0.5)",snapRadius:10},D=function(e){var t,r,n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null!==(t=null==e?void 0:e.mapColorScheme)&&void 0!==t?t:"light",i=null!==(r=null==e?void 0:e.id)&&void 0!==r?r:null,l=e=>{var t;return((e,t,r)=>"object"!=typeof e||null===e?e:r&&void 0!==e[r]?e[r]:void 0!==e[t]?e[t]:void 0!==e.light?e.light:Object.values(e)[0])(null!==(t=a[e])&&void 0!==t?t:k[e],o,i)};return{editStroke:l("editStroke"),editVertex:l("editVertex"),editMidpoint:l("editMidpoint"),editActive:l("editActive"),editHalo:l("editHalo"),shapeStroke:l("shapeStroke"),strokeWidth:null!==(n=a.strokeWidth)&&void 0!==n?n:k.strokeWidth,shapeFill:l("shapeFill"),snapVertex:l("snapVertex"),snapEdge:l("snapEdge"),mapStyleId:i}},x=(e,t)=>{var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n},I=(e,t,r)=>{var n=r[0]-t[0],a=r[1]-t[1],o=n*n+a*a;if(0===o)return[t[0],t[1]];var i=Math.max(0,Math.min(1,((e[0]-t[0])*n+(e[1]-t[1])*a)/o));return[t[0]+i*n,t[1]+i*a]},C=(e,t)=>L(e,t)?t:e,L=(e,t)=>e?!!t&&("edge"===e.type&&"vertex"===t.type||("vertex"!==e.type||"edge"!==t.type)&&t.distSq<e.distSq):!!t,V=(e,t,r,n)=>{for(var a=null,o=n&&e.length>1?e.length-1:e.length,i=n?o:o-1,l=0;l<o;l++){var d=e[l],s=x(t,d);s<=r&&(a=C(a,{type:"vertex",coord:[d[0],d[1]],distSq:s}))}for(var p=0;p<i;p++){var c=e[p],u=e[(p+1)%o],v=I(t,c,u),f=x(t,v);f<=r&&(a=C(a,{type:"edge",coord:v,distSq:f}))}return a},F=(e,t,r,n,a,o)=>C(((e,t,r,n,a)=>{for(var o=null,i=0;i<r;i++){var l=t+2*i,d=[e[l],e[l+1]],s=x(n,d);s<=a&&(o=C(o,{type:"vertex",coord:d,distSq:s}))}return o})(e,t,r,a,o),((e,t,r,n,a,o)=>{for(var i=null,l=0;l<n;l++){var d=t+2*l,s=t+(l+1)%r*2,p=[e[d],e[d+1]],c=[e[s],e[s+1]],u=I(a,p,c),v=x(a,u);v<=o&&(i=C(i,{type:"edge",coord:u,distSq:v}))}return i})(e,t,r,n,a,o)),R=(e,t,r,n,a,o)=>{var i=(r-t)/2;return F(e,t,i,o?i:i-1,n,a)},N={point:(e,t,r)=>{var n=e.getCoordinates(),a=x(t,n);return a<=r?{type:"vertex",coord:[n[0],n[1]],distSq:a}:null},lineString:(e,t,r)=>V(e.getCoordinates(),t,r,!1),linearRing:(e,t,r)=>V(e.getCoordinates(),t,r,!0),polygon:(e,t,r)=>{var n=null;for(var a of e.getCoordinates())n=C(n,V(a,t,r,!0));return n},multiLineString:(e,t,r)=>{var n=null;for(var a of e.getCoordinates())n=C(n,V(a,t,r,!1));return n},multiPolygon:(e,t,r)=>{var n=null;for(var a of e.getCoordinates())for(var o of a)n=C(n,V(o,t,r,!0));return n}},W=(e,t,r)=>{var n=e.getGeometry();if(!n)return null;var a=n.getType(),o=N[a[0].toLowerCase()+a.slice(1)];return o?o(n,t,r):null},H=(e,t)=>t?e?"vertex"===e.type&&"edge"===t.type?e:"edge"===e.type&&"vertex"===t.type||t.distSq<e.distSq?t:e:t:e,G=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=new Set,a=[],o=e=>{for(var t of(r=new Set,a=[],null!=e?e:[]))"string"==typeof t?r.add(t):t instanceof n&&a.push(t)};o(t);return{query:(t,n)=>{var o=e.getView().getResolution();if(!o)return null;var i=n*o,l=i*i,d=[t[0]-i,t[1]-i,t[0]+i,t[1]+i],s=null;for(var u of a){var v=u.getSource();if(v)for(var f of v.getFeaturesInExtent(d))s=H(s,W(f,t,l))}if(r.size>0){var h=(e=>{var t=[];return e.getLayers().forEach(e=>{e instanceof c&&t.push(e)}),t})(e),g=h.length>0?e.getPixelFromCoordinate(t):null;if(g){var m=new Map;e.forEachFeatureAtPixel(g,(n,a)=>{var i=n.get("mapbox-layer");if(r.has(null==i?void 0:i.id)){var d=((e,t,r)=>{var n=e.getType(),a=e.getFlatCoordinates(),o=null;if("Point"===n){var i=x(t,a);i<=r&&(o={type:"vertex",coord:[a[0],a[1]],distSq:i})}else if("LineString"===n)o=R(a,0,a.length,t,r,!1);else if("Polygon"===n||"MultiLineString"===n){var l=e.getEnds(),d=0,s="Polygon"===n;for(var p of l)o=C(o,R(a,d,p,t,r,s)),d=p}return o})(n,t,l);d&&(m.has(a)||m.set(a,((e,t)=>{var r,n=e.getSource(),a=null==n?void 0:n.getTileGrid();if(!a)return null;var o=t.getView().getProjection(),i=null!==(r=n.getProjection())&&void 0!==r?r:o,l=a.getZForResolution(t.getView().getResolution(),0);return{tileGrid:a,viewProj:o,sourceProj:i,zoom:l}})(a,e)),((e,t)=>{if(!e)return!1;var{tileGrid:r,viewProj:n,sourceProj:a,zoom:o}=e,i=p(t,n,a),l=r.getTileCoordForCoordAndZ(i,o),[d,s,c,u]=r.getTileCoordExtent(l),v=.03125*(c-d)+1;return Math.abs(i[0]-d)<v||Math.abs(i[0]-c)<v||Math.abs(i[1]-s)<v||Math.abs(i[1]-u)<v})(m.get(a),d.coord)||"edge"===d.type&&"fill"===(null==i?void 0:i.type)&&((e,t,r,n,a,o)=>{var i=e[0]-t[0],l=e[1]-t[1],d=i*i+l*l;if(d<1)return!1;var s=Math.sqrt(d),p=4*o,c=[e[0]+i/s*p,e[1]+l/s*p],u=n.getPixelFromCoordinate(c);return!!u&&!!n.forEachFeatureAtPixel(u,e=>{var t;return(null===(t=e.get("mapbox-layer"))||void 0===t?void 0:t.id)===r},{hitTolerance:2,layerFilter:e=>a.includes(e)})})(d.coord,t,i.id,e,h,o)||(s=H(s,d)))}},{hitTolerance:n,layerFilter:e=>h.includes(e)})}}return s?{type:s.type,coord:s.coord}:null},setLayers:o}},U=e=>(t,r)=>{var n=r.context,[a,o]=t;n.beginPath(),n.arc(a,o,10*r.pixelRatio,0,2*Math.PI),n.fillStyle=e,n.fill()},B=e=>({vertex:new f({renderer:U(e.snapVertex)}),edge:new f({renderer:U(e.snapEdge)})}),q=new Set(["pointermove","pointerdrag","pointerdown","pointerup","singleclick","click"]),Y=(e,t,r,n)=>{var a=new h({handleEvent:o=>(a.getActive()&&((e,t,r,n,a)=>{var{type:o}=e;if("pointerout"!==o&&"pointerleave"!==o){if(q.has(o)){var i=t.query(e.coordinate,n);i&&(e.coordinate=i.coord.slice()),"pointermove"===o&&a()?i?r.show(i.coord,i.type):r.hide():"pointerdrag"===o&&r.hide()}}else r.hide()})(o,e,t,r,n),!0)});return a},z=(e,t,r,o)=>{if(null==t||!t.length)return null;var i=G(e,t),l=((e,t)=>{var r=B(t),o=new a,i=new n({source:o,style:e=>{var t;return null!==(t=r[e.get("snapType")])&&void 0!==t?t:null},zIndex:200,updateWhileAnimating:!0,updateWhileInteracting:!0});e.addLayer(i);var l=new u,d=!1;return{show(e,t){l.setGeometry(new v(e)),l.set("snapType",t,!0),d?o.changed():(o.addFeature(l),d=!0)},hide(){d&&(o.clear(),d=!1)},updateColors(e){r=B(e),d&&o.changed()},remove(){o.clear(),e.removeLayer(i)}}})(e,r),d=!1,s=Y(i,l,o,()=>d);e.addInteraction(s),s.setActive(!1);var p=!1;return{snapRadius:o,apply(e){if(!p)return e;var t=i.query(e,o);return t?(l.show(t.coord,t.type),t.coord):(l.hide(),e)},hideIndicator(){l.hide()},setIndicatorActive(e){d=e,e||l.hide()},setActive(e){p=e,s.setActive(e),e||l.hide()},setSnapLayers(e){i.setLayers(null==e?null!=t?t:[]:e)},reattach(){e.removeInteraction(s),e.addInteraction(s)},updateColors(e){l.updateColors(e)},destroy(){e.removeInteraction(s),l.remove()}}};function X(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function K(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?X(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}class Z{constructor(e){var t,r,a,o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._map=e,this._pluginConfig=i,this._mode="disabled",this._modeInstance=null,this._listeners=new Map,this.store=E(),this.undoStack=(a=e=>this.emit("undochange",e),o=[],{push(e){o.push(e),a(o.length)},pop(){var e=o.pop();return a(o.length),e},clear(){o.length=0,a(o.length)},get length(){return o.length}}),this.colors=D(null,i),this.styles=M(this.colors),this.snap=z(e,null!==(t=i.snapLayers)&&void 0!==t?t:null,this.colors,null!==(r=i.snapRadius)&&void 0!==r?r:k.snapRadius),this._layer=new n({source:this.store.source,style:this.styles.createFeatureStyle(),zIndex:100}),this._layer.set("layerId","draw"),e.addLayer(this._layer)}setMapStyle(e){var t;this.colors=D(e,this._pluginConfig),this.styles=M(this.colors),this._layer.setStyle(this.styles.createFeatureStyle()),this.store.source.changed(),null===(t=this.snap)||void 0===t||t.updateColors(this.colors),this.emit("styleschanged",this.styles)}on(e,t){this._listeners.has(e)||this._listeners.set(e,new Set),this._listeners.get(e).add(t)}off(e,t){var r;null===(r=this._listeners.get(e))||void 0===r||r.delete(t)}emit(e,t){var r;null===(r=this._listeners.get(e))||void 0===r||r.forEach(e=>e(t))}changeMode(e){var t=arguments,n=this;return r(function*(){var r,a,o,i=t.length>1&&void 0!==t[1]?t[1]:{};null===(r=n._modeInstance)||void 0===r||r.destroy(),n._modeInstance=null,n._mode=e;var l="draw_polygon"===e||"draw_line"===e||"edit_vertex"===e;null===(a=n.snap)||void 0===a||a.setIndicatorActive(l);var d=K(K({},i),{},{snap:n.snap});if("draw_polygon"===e||"draw_line"===e){var{createDrawMode:s}=yield import(/* webpackChunkName: "DrawMode" */ "./DrawMode.js");n._modeInstance=s({map:n._map,manager:n,options:d})}else if("edit_vertex"===e){var{createEditMode:p}=yield import(/* webpackChunkName: "EditMode" */ "./EditMode.js");n._modeInstance=p({map:n._map,manager:n,options:d})}null===(o=n.snap)||void 0===o||o.reattach()})()}getMode(){return this._mode}done(){var e;null===(e=this._modeInstance)||void 0===e||e.done()}cancel(){var e;null===(e=this._modeInstance)||void 0===e||e.cancel(),this.changeMode("disabled")}undo(){var e;null===(e=this._modeInstance)||void 0===e||e.undo()}deleteVertex(){var e;null===(e=this._modeInstance)||void 0===e||e.deleteVertex()}setInterfaceType(e){var t,r;null===(t=this._modeInstance)||void 0===t||null===(r=t.setInterfaceType)||void 0===r||r.call(t,e)}get(e){return this.store.get(e)}add(e){return this.store.add(e)}delete(e){return this.store.remove(e)}deleteAll(){return this.store.clear()}remove(){var e,t;null===(e=this._modeInstance)||void 0===e||e.destroy(),this._modeInstance=null,null===(t=this.snap)||void 0===t||t.destroy(),this.snap=null,this.store.clear(),this._map.removeLayer(this._layer),this._listeners.clear()}}var J=["stroke","fill","strokeWidth"],Q=e=>{if(!e)return{};var t={};for(var[r,n]of Object.entries(e))if(J.includes(r)&&"object"==typeof n&&null!==n){var a=Object.entries(n);for(var[o,i]of(a.length>0&&(t[r]=a[0][1]),a))t["".concat(r).concat(o.charAt(0).toUpperCase()+o.slice(1))]=i}else t[r]=n;return t},$=["stroke","fill","strokeWidth","properties"];function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function te(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ee(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ee(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var re=["stroke","fill","strokeWidth","properties"];function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ae(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ne(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ne(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var oe=["stroke","fill","strokeWidth","properties"];function ie(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function le(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ie(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ie(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function de(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function se(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?de(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):de(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var pe=e=>({mobile:{slot:"actions",showLabel:e},tablet:{slot:"actions",showLabel:e},desktop:{slot:"actions",showLabel:e}}),ce={reducer:{initialState:{mode:null,feature:null,tempFeature:null,selectedVertexIndex:-1,numVertices:null,undoStackLength:0,snap:!1,hasSnapLayers:!1},actions:_},InitComponent:e=>{var{appState:r,appConfig:n,mapState:a,pluginConfig:o,pluginState:i,services:l,mapProvider:d,buttonConfig:s}=e,{eventBus:p}=l,{crossHair:c}=a,u=["touch","keyboard"].includes(r.interfaceType);t(()=>{var e,t,n,l,s,c=null===(e=null===(t=o.includeModes)||void 0===t?void 0:t.includes(r.mode))||void 0===e||e,u=null!==(n=null===(l=o.excludeModes)||void 0===l?void 0:l.includes(r.mode))&&void 0!==n&&n;if(a.isMapReady&&c&&!u){var{remove:v}=(e=>{var{mapProvider:t,events:r,eventBus:n,pluginConfig:a={},mapStyle:o=null}=e,{map:i}=t,l=new Z(i,a);o&&l.setMapStyle(o),t.draw=l;var d=e=>{var r;t.drawScale=null!==(r={small:1,medium:1.5,large:2}[e])&&void 0!==r?r:1};n.on(r.MAP_SET_SIZE,d);var s=e=>{l.setMapStyle(e)};return n.on(r.MAP_SET_STYLE,s),{remove(){n.off(r.MAP_SET_SIZE,d),n.off(r.MAP_SET_STYLE,s),l.remove(),t.draw=null}}})({mapProvider:d,events:S,eventBus:p,pluginConfig:o,mapStyle:a.mapStyle});return i.dispatch({type:"SET_MODE",payload:null}),i.dispatch({type:"SET_HAS_SNAP_LAYERS",payload:(null===(s=o.snapLayers)||void 0===s?void 0:s.length)>0}),p.emit("draw:ready"),()=>v()}},[a.isMapReady,r.mode]),t(()=>{if(["draw_polygon","draw_line"].includes(i.mode)&&u){var e=c.isVisible;return c.fixAtCenter(),()=>{e||c.hide()}}},[i.mode,r.interfaceType]),t(()=>{"edit_vertex"===i.mode&&d.draw&&d.draw.setInterfaceType(r.interfaceType)},[r.interfaceType,i.mode]),t(()=>{if(d.draw)return function(e){var{pluginState:t,mapProvider:r,buttonConfig:n,eventBus:a}=e,{drawDone:o,drawCancel:i,drawUndo:l,drawDeletePoint:d,drawSnap:s}=n,{draw:p}=r,{dispatch:c,feature:u,tempFeature:v}=t,f=()=>{p.undoStack.clear(),c({type:"SET_MODE",payload:null}),c({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}})},h=e=>{f(),p.changeMode("disabled"),a.emit("draw:created",e)},g=e=>{f(),p.changeMode("disabled"),a.emit("draw:edited",e)},m=()=>{},y=e=>{c({type:"SET_SELECTED_VERTEX_INDEX",payload:e}),a.emit("draw:vertexselection",e)},_=e=>{c({type:"SET_SELECTED_VERTEX_INDEX",payload:{index:-1,numVertices:e.numVertices}})},S=e=>{c({type:"SET_UNDO_STACK_LENGTH",payload:e})},P=e=>{a.emit("draw:updated",e)};return o.onClick=()=>{p.undoStack.clear(),p.done()},i.onClick=()=>{"edit_vertex"===p.getMode()&&null!=v&&v.id&&p.add(u),p.cancel(),f(),a.emit("draw:cancelled",u)},l.onClick=()=>{p.undo()},d&&(d.onClick=()=>{p.deleteVertex()}),s&&(s.onClick=()=>{var e,r=!t.snap;c({type:"TOGGLE_SNAP"}),null===(e=p.snap)||void 0===e||e.setActive(r)}),p.on("create",h),p.on("editfinish",g),p.on("cancel",m),p.on("vertexselection",y),p.on("vertexchange",_),p.on("undochange",S),p.on("update",P),()=>{o.onClick=null,i.onClick=null,l.onClick=null,d&&(d.onClick=null),s&&(s.onClick=null),p.off("create",h),p.off("editfinish",g),p.off("cancel",m),p.off("vertexselection",y),p.off("vertexchange",_),p.off("undochange",S),p.off("update",P)}}({mapProvider:d,buttonConfig:s,pluginState:i,eventBus:p})},[d,r,i])},buttons:[se({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},pe(!0)),se({id:"drawAddPoint",label:"Add point",variant:"primary",hiddenWhen:e=>{var{appState:t,pluginState:r}=e;return!["draw_polygon","draw_line"].includes(r.mode)||"touch"!==t.interfaceType}},pe(!0)),se({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!["draw_polygon","draw_line","edit_vertex"].includes(t.mode)},enableWhen:e=>{var{pluginState:t}=e;return"draw_polygon"===t.mode?t.numVertices>=3:"draw_line"===t.mode?t.numVertices>=2:"edit_vertex"===t.mode}},pe(!0)),{id:"drawMenu",label:"Menu",iconId:"menu",hiddenWhen:e=>{var{pluginState:t}=e;return!["draw_polygon","draw_line","edit_vertex"].includes(t.mode)},menuItems:[{id:"drawUndo",label:"Undo",iconId:"undo",hiddenWhen:e=>{var{pluginState:t}=e;return!["draw_polygon","draw_line","edit_vertex"].includes(t.mode)},enableWhen:e=>{var{pluginState:t}=e;return["draw_polygon","draw_line"].includes(t.mode)?t.numVertices>0:t.undoStackLength>0}},{id:"drawSnap",label:"Snap to feature",iconId:"magnet",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode||!t.hasSnapLayers},pressedWhen:e=>{var{pluginState:t}=e;return!!t.snap}},{id:"drawDeletePoint",label:"Delete point",iconId:"trash",enableWhen:e=>{var t,{pluginState:r}=e;return!(r.selectedVertexIndex<0)&&("Polygon"===(null===(t=r.feature)||void 0===t||null===(t=t.geometry)||void 0===t?void 0:t.type)?r.numVertices>3:r.numVertices>2)},hiddenWhen:e=>{var{pluginState:t}=e;return"edit_vertex"!==t.mode}}],mobile:{slot:"bottom-right"},tablet:{slot:"top-middle"},desktop:{slot:"top-middle"}}],keyboardShortcuts:[{id:"drawStart",group:"Drawing",title:"Edit vertex",command:"<kbd>Spacebar</kbd></dd>"}],icons:[{id:"menu",svgContent:'<path d="m6 9 6 6 6-6"/>'},{id:"undo",svgContent:'<path d="M9 14 4 9l5-5"/><path d="M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11"/>'},{id:"magnet",svgContent:'<path d="m12 15 4 4"/><path d="M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z"/><path d="m5 8 4 4"/>'},{id:"trash",svgContent:'<path d="M10 11v6"/><path d="M14 11v6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"/><path d="M3 6h18"/><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>'}],api:{newPolygon:function(e,t){var{appState:r,appConfig:n,mapState:a,pluginState:o,mapProvider:i,services:l}=e,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:s}=o,{draw:p}=i,{eventBus:c}=l;if(p){c.emit("draw:started",{mode:"draw_polygon"});var{stroke:u,fill:v,strokeWidth:f,properties:h}=d,m=g(d,$),y=te(te({},h),Q({stroke:u,fill:v,strokeWidth:f}));p.changeMode("draw_polygon",te({container:r.layoutRefs.viewportRef.current,interfaceType:r.interfaceType,addVertexButtonId:"".concat(n.id,"-draw-add-point"),featureId:t,geometryType:"Polygon",properties:y,mapProvider:i,crossHair:a.crossHair},m)),s({type:"SET_MODE",payload:"draw_polygon"})}},newLine:function(e,t){var{appState:r,appConfig:n,mapState:a,pluginState:o,mapProvider:i,services:l}=e,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:s}=o,{draw:p}=i,{eventBus:c}=l;if(p){c.emit("draw:started",{mode:"draw_line"});var{stroke:u,fill:v,strokeWidth:f,properties:h}=d,m=g(d,re),y=ae(ae({},h),Q({stroke:u,fill:v,strokeWidth:f}));p.changeMode("draw_line",ae({container:r.layoutRefs.viewportRef.current,interfaceType:r.interfaceType,addVertexButtonId:"".concat(n.id,"-draw-add-point"),featureId:t,geometryType:"LineString",properties:y,mapProvider:i,crossHair:a.crossHair},m)),s({type:"SET_MODE",payload:"draw_line"})}},editFeature:function(e,t){var r,n,{appState:a,appConfig:o,pluginConfig:i,pluginState:l,mapProvider:d,services:s}=e,p=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:c}=l,{draw:u}=d,{eventBus:v}=s;if(!u)return!1;var f=u.get(t);if(!f)return!1;v.emit("draw:editstart",{mode:"edit_vertex"});var h=void 0===p.snapLayers?null!==(r=i.snapLayers)&&void 0!==r?r:null:p.snapLayers;return null===(n=u.snap)||void 0===n||n.setSnapLayers(h),c({type:"SET_HAS_SNAP_LAYERS",payload:(null==h?void 0:h.length)>0}),u.changeMode("edit_vertex",{container:a.layoutRefs.viewportRef.current,deleteVertexButtonId:"".concat(o.id,"-draw-delete-point"),interfaceType:a.interfaceType,featureId:t}),c({type:"SET_FEATURE",payload:{feature:f,tempFeature:f}}),c({type:"SET_MODE",payload:"edit_vertex"}),!0},addFeature:(e,t)=>{var{mapProvider:r,services:n}=e,{draw:a}=r,{eventBus:o}=n;if(a){var{stroke:i,fill:l,strokeWidth:d,properties:s}=t,p=le(le({},g(t,oe)),{},{properties:le(le({},s),Q({stroke:i,fill:l,strokeWidth:d}))});a.add(p),o.emit("draw:add",p)}},deleteFeature:(e,t)=>{var{mapProvider:r}=e,{draw:n}=r;n&&n.delete(t)}}};export{ce as manifest};
|
|
@@ -1,97 +1 @@
|
|
|
1
|
-
.im-c-map-styles {
|
|
2
|
-
display: block;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.im-c-map-styles__inner {
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-wrap: wrap;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.im-c-map-styles__heading {
|
|
11
|
-
padding: var(--primary-gap) 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.im-c-map-styles__item {
|
|
15
|
-
display: flex;
|
|
16
|
-
justify-content: center;
|
|
17
|
-
padding: calc(var(--divider-gap) / 2);
|
|
18
|
-
flex: 0 0 33.3333%;
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
min-width: 90px;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.im-c-map-styles__button {
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: column;
|
|
26
|
-
align-items: center;
|
|
27
|
-
border: 0;
|
|
28
|
-
margin: 0;
|
|
29
|
-
color: var(--foreground-color);
|
|
30
|
-
background-color: transparent;
|
|
31
|
-
cursor: pointer;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.im-c-map-styles__image {
|
|
35
|
-
position: relative;
|
|
36
|
-
padding: 1px;
|
|
37
|
-
border: 4px solid transparent;
|
|
38
|
-
margin-bottom: 2px;
|
|
39
|
-
}
|
|
40
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
41
|
-
.im-c-map-styles__image {
|
|
42
|
-
border-width: 2px;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.im-c-map-styles__image svg {
|
|
47
|
-
fill: currentColor;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.im-c-map-styles__image-bg {
|
|
51
|
-
fill: none;
|
|
52
|
-
stroke: var(--image-placeholder-color);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.im-c-map-styles img {
|
|
56
|
-
display: block;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.im-c-map-styles__group:not(:first-child) {
|
|
60
|
-
margin-top: var(--divider-gap);
|
|
61
|
-
border-top: 1px solid var(--content-border-color);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.im-c-map-styles__button[aria-pressed=true] .im-c-map-styles__image {
|
|
65
|
-
border-color: var(--foreground-color);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.im-c-map-styles__button:focus {
|
|
69
|
-
outline: 0;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
73
|
-
.im-c-map-styles__button[aria-pressed=true] .im-c-map-styles__image::after {
|
|
74
|
-
content: "";
|
|
75
|
-
position: absolute;
|
|
76
|
-
inset: -4px;
|
|
77
|
-
border: 4px solid var(--focus-border-color);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.im-c-map-styles__button[data-focus-visible=true] .im-c-map-styles__image::after {
|
|
82
|
-
content: "";
|
|
83
|
-
position: absolute;
|
|
84
|
-
inset: -4px;
|
|
85
|
-
outline: 3px solid var(--focus-outline-color);
|
|
86
|
-
border: 4px solid var(--focus-border-color);
|
|
87
|
-
}
|
|
88
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
89
|
-
.im-c-map-styles__button[data-focus-visible=true] .im-c-map-styles__image::after {
|
|
90
|
-
outline-offset: 1px;
|
|
91
|
-
outline-color: Highlight;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.im-c-map-styles__button:hover:not([aria-pressed=true]) .im-c-map-styles__image {
|
|
96
|
-
border-color: var(--button-hover-color);
|
|
97
|
-
}
|
|
1
|
+
.im-c-map-styles{display:block}.im-c-map-styles__inner{display:flex;flex-wrap:wrap}.im-c-map-styles__heading{padding:var(--primary-gap) 0}.im-c-map-styles__item{display:flex;justify-content:center;padding:calc(var(--divider-gap)/2);flex:0 0 33.3333%;box-sizing:border-box;min-width:90px}.im-c-map-styles__button{display:flex;flex-direction:column;align-items:center;border:0;margin:0;color:var(--foreground-color);background-color:rgba(0,0,0,0);cursor:pointer}.im-c-map-styles__image{position:relative;padding:1px;border:4px solid rgba(0,0,0,0);margin-bottom:2px}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-map-styles__image{border-width:2px}}.im-c-map-styles__image svg{fill:currentColor}.im-c-map-styles__image-bg{fill:none;stroke:var(--image-placeholder-color)}.im-c-map-styles img{display:block}.im-c-map-styles__group:not(:first-child){margin-top:var(--divider-gap);border-top:1px solid var(--content-border-color)}.im-c-map-styles__button[aria-pressed=true] .im-c-map-styles__image{border-color:var(--foreground-color)}.im-c-map-styles__button:focus{outline:0}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-map-styles__button[aria-pressed=true] .im-c-map-styles__image::after{content:"";position:absolute;inset:-4px;border:4px solid var(--focus-border-color)}}.im-c-map-styles__button[data-focus-visible=true] .im-c-map-styles__image::after{content:"";position:absolute;inset:-4px;outline:3px solid var(--focus-outline-color);border:4px solid var(--focus-border-color)}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-map-styles__button[data-focus-visible=true] .im-c-map-styles__image::after{outline-offset:1px;outline-color:Highlight}}.im-c-map-styles__button:hover:not([aria-pressed=true]) .im-c-map-styles__image{border-color:var(--button-hover-color)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useRef as e,useEffect as t}from"preact/compat";import{jsx as a,jsxs as r,Fragment as s}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var d=e=>{var{datasets:t=[]}=e,a=[],r=t.filter(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))}),s=new Map;return r.forEach(e=>{var t;if(null!==(t=e.sublayers)&&void 0!==t&&t.length){var r=e.sublayers.filter(t=>e.showInMenu?!1!==t.showInMenu:t.showInMenu);if(!1===e.showInMenu&&!r.length)return;var i={id:e.id,groupLabel:e.label,visibleWhen:!0,type:"checkbox",items:r.map(t=>({id:"".concat(e.id,"-").concat(t.id),label:t.label}))};0===i.items.length&&(delete i.groupLabel,i.items.push({id:e.id,label:e.label})),a.push(i)}else if(e.groupLabel){var n=s.has(e.groupLabel)?s.get(e.groupLabel):{id:e.groupLabel,groupLabel:e.groupLabel,visibleWhen:!0,type:"checkbox",items:[]};s.has(e.groupLabel)||(s.set(e.groupLabel,n),a.push(n)),n.items.push({id:e.id,label:e.label})}else a.push({visibleWhen:!0,type:"checkbox",id:e.id,items:[{id:e.id,label:e.label}]})}),a},p=(e,t)=>e.reduce((e,a)=>{var r=a.items.filter(e=>!t.includes(e.id));return r.length&&e.push(l(l({},a),{},{items:r})),e},[]),u=e=>{var t={};return e.forEach(e=>{var a;"radio"===e.type&&(t[e.id]=e.value||(null===(a=e.items)||void 0===a?void 0:a[0].value))}),t};function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var h={minZoom:6,maxZoom:24,showInKey:!1,showInMenu:!1,visible:!0,style:{stroke:"#d4351c",strokeWidth:2,symbolDescription:"red outline"}},b=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],m=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],v=e=>m.some(t=>t in e);function g(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?g(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):g(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var D=(e,t)=>{var a,{id:r}=t,s=(e=>{!0!==e.visible&&!1!==e.visible&&(e.visible="hidden"!==e.visibility);var t=y(y(y({},h),e),{},{style:y(y({},h.style),e.style)}),a=e.style||{};return!("symbolDescription"in a)&&v(a)&&delete t.style.symbolDescription,b.forEach(e=>delete t[e]),t})(t);t.parentId&&("showInKey"in t||delete s.showInKey,"showInMenu"in t||delete s.showInMenu),e[r]=s;var{orderedDatasets:i}=e;i.push(r);var n=null===(a=t.sublayers)||void 0===a?void 0:a.map(e=>((e,t)=>{var a="".concat(e,"-").concat(t.id),r=t.id;return"hidden"!==t.visibility&&(t.visibility="visible"),f(f({},t),{},{id:a,parentId:e,sublayerId:r})})(r,e));if(null!=n&&n.length){var o=null==n?void 0:n.map(e=>e.id),l=null==n?void 0:n.reduce(D,{orderedDatasets:i});return e[r].sublayerIds=o,delete e[r].sublayers,f(f(f({},e),l),{},{orderedDatasets:i})}return f(f({},e),{},{orderedDatasets:i})},O=e=>{var t=(e.datasets||[]).reduce(D,{orderedDatasets:[]}),{orderedDatasets:a}=t;return delete t.orderedDatasets,f(f({},e),{},{mappedDatasets:t,orderedDatasets:a})},S="[interactive-map]",_={warn:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.warn(S,...t)},error:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.error(S,...t)}};function P(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function E(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?P(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):P(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var w=function(e,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"not found";return!!e.mappedDatasets[t]||(_.error("".concat(a,": Dataset with id '").concat(t,"' ").concat(r)),!1)},A=0,I=(e,t,a)=>(A=a.actionsArray.length?A+1:0,E(E({},a),{},{actionsArray:[...a.actionsArray,{method:e,parameters:t,actionId:A}]})),j={SET_DATASETS:(e,t)=>{var{mappedDatasets:a,orderedDatasets:r}=t;return E(E({},e),{},{mappedDatasets:a,orderedDatasets:r})},ADD_DATASET:(e,t)=>{var{dataset:a,mapStyle:r}=t;if(e.mappedDatasets[a.id])return _.error("addDataset: Dataset with id '".concat(a.id,"' already exists")),e;var{mappedDatasets:s,orderedDatasets:i}=O({datasets:[a]}),n=((e,t)=>{var a=[...e.menu],r=d({datasets:[t]}),s=a.find(e=>e.groupLabel===r[0].groupLabel);return s?s.items.push(...r[0].items):a.push(...r),a})(e,a);return I("addDataset",[a.id,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),s),orderedDatasets:[...e.orderedDatasets,...i],menu:n}))},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;if(!w(e,r,"removeDataset"))return e;var s=E({},e.mappedDatasets),i=[r,...(null===(a=s[r])||void 0===a?void 0:a.sublayerIds)||[]];i.forEach(e=>delete s[e]);var n=e.orderedDatasets.filter(e=>!i.includes(e));return E(E({},e),{},{mappedDatasets:s,orderedDatasets:n,menu:p(e.menu,i)})},SET_DATASET_VISIBILITY:(e,t)=>{var{datasetId:a,visible:r}=t;return w(e,a,"setDatasetVisibility")?e.mappedDatasets[a].visible===r?e:I("applyDatasetVisibility",[a,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:E(E({},e.mappedDatasets[a]),{},{visible:r})})})):e},SET_GLOBAL_VISIBILITY:(e,t)=>{var{visible:a}=t;return I("applyGlobalVisibility",[a],E(E({},e),{},{globals:E(E({},e.globals),{},{visible:a})}))},SET_DATASET_STYLE:(e,t)=>{var{datasetId:a,styleChanges:r,mapStyle:s}=t;if(!w(e,a,"setDatasetStyle"))return e;var i=E(E({},e.mappedDatasets[a].style),r),n=E(E(E({},e.mappedDatasets[a]),r),{},{style:i});return I("applyStyle",[a,s],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:n})}))},SET_OPACITY:(e,t)=>{var{datasetId:a,opacity:r}=t;if(!w(e,a,"setOpacity"))return e;var s=E(E({},e.mappedDatasets[a].style),{},{opacity:r}),i=E(E({},e.mappedDatasets[a]),{},{style:s});return I("applyDatasetOpacity",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:i})}))},SET_GLOBAL_OPACITY:(e,t)=>{var{opacity:a}=t;return I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),{},{opacity:a})}))},HIDE_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!w(e,a,"setFeatureVisibility - hideFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=s.hiddenFeatures||[],n=Array.from(new Set([...i,...r]));return s.hiddenFeatures=n,I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},SHOW_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!w(e,a,"setFeatureVisibility - showFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=(s.hiddenFeatures||[]).filter(e=>!r.includes(e));return s.hiddenFeatures=i.length?i:[-1],I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},REMOVE_ADAPTER_ACTIONS:(e,t)=>null!=t&&t.length?E(E({},e),{},{actionsArray:e.actionsArray.filter(e=>!t.includes(e))}):e,SET_GLOBAL_STATE:(e,t)=>I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),t)})),SET_MENU:(e,t)=>{var{menu:a}=t,r=u(a);return E(E({},e),{},{menu:a,menuState:r})},UPDATE_MENU_STATE:(e,t)=>I("applyGlobalVisibility",[],E(E({},e),{},{menuState:E(E({},e.menuState),t)}))},T={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},M=function(){var e=n(function*(e,t,a,r){var s=a(e,t),i="string"==typeof s?{url:s}:s,{url:n,headers:o={}}=i,l=yield fetch(n,{headers:o,signal:r});if(!l.ok)throw new Error("Failed to fetch GeoJSON: ".concat(l.status," ").concat(l.statusText));var d=yield l.json();if("FeatureCollection"===d.type)return d;if("Feature"===d.type)return{type:"FeatureCollection",features:[d]};if(Array.isArray(d))return{type:"FeatureCollection",features:d};throw new Error("Invalid GeoJSON response")});return function(t,a,r,s){return e.apply(this,arguments)}}(),k=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),C=e=>{var t=1/0,a=1/0,r=-1/0,s=-1/0,i=(e,n)=>{var o;0===n?(o=e,t=Math.min(t,o[0]),a=Math.min(a,o[1]),r=Math.max(r,o[0]),s=Math.max(s,o[1])):e.forEach(e=>i(e,n-1))};switch(e.type){case"Point":i(e.coordinates,0);break;case"LineString":case"MultiPoint":i(e.coordinates,1);break;case"Polygon":case"MultiLineString":i(e.coordinates,2);break;case"MultiPolygon":i(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var i=C(e);t=Math.min(t,i[0]),a=Math.min(a,i[1]),r=Math.max(r,i[2]),s=Math.max(s,i[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,s]},L=e=>{var t,a,r,s,{dynamicGeoJSON:i,map:o,onUpdate:l}=e,{url:d,idProperty:p,transformRequest:u,maxFeatures:c,minZoom:y=0}=i,h=new Map,b=null,m=null,v=()=>({type:"FeatureCollection",features:Array.from(h.values()).map(e=>e.feature)}),g=function(){var e=n(function*(){var e=o.getZoom();if(!(e<y)){var t=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(o);if(!(b&&(a=b,r=t,a&&r&&r[0]>=a[0]&&r[1]>=a[1]&&r[2]<=a[2]&&r[3]<=a[3]))){var a,r,s,n;m&&m.abort(),m=new AbortController;try{var g={bbox:t,zoom:e},f=yield M(d,g,u,m.signal),D=Date.now();f.features.forEach(e=>{var t=(e=>{var t,a;return p&&null!==(t=null===(a=e.properties)||void 0===a?void 0:a[p])&&void 0!==t?t:e.id})(e);null!=t?h.set(t,{feature:e,bbox:C(e.geometry),lastSeenAt:D}):console.warn("Feature missing ID, skipping:",e)}),n=t,b=(s=b)?[Math.min(s[0],n[0]),Math.min(s[1],n[1]),Math.max(s[2],n[2]),Math.max(s[3],n[3])]:[...n];var O=h.size;(e=>{if(c&&!(h.size<=1.2*c)){var t=c,a=[],r=[];for(var[s,i]of h)k(i.bbox,e)?a.push(s):r.push({id:s,lastSeenAt:i.lastSeenAt});r.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var n=h.size-t,o=0;o<n&&o<r.length;o++)h.delete(r[o].id);if(h.size>t)for(var l=h.size-t,d=a.map(e=>({id:e,lastSeenAt:h.get(e).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),p=0;p<l&&p<d.length;p++)h.delete(d[p].id)}})(t),h.size<O&&(b=t),l(i.id,v())}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(i.id,":"),e)}}}});return function(){return e.apply(this,arguments)}}(),f=(t=g,a=200,(s=function(){for(var e=arguments.length,s=new Array(e),i=0;i<e;i++)s[i]=arguments[i];clearTimeout(r),r=setTimeout(()=>t(...s),a)}).cancel=()=>{clearTimeout(r),r=null},s),D=()=>{f()};return o.on("moveend",D),g(),{destroy(){o.off("moveend",D),f.cancel(),m&&m.abort()},clear(){h.clear(),b=null,l(i.id,{type:"FeatureCollection",features:[]})},refresh(){h.clear(),b=null,g()},getFeatureCount:()=>h.size,reapply(){h.size>0&&l(i.id,v())}}},N={},R=e=>{N=e},F=e=>{for(var[t,a]of Object.entries(e)){var r=N[t];if(!a.includes(r))return!1}return!0},x=e=>(Array.isArray(e)?e:[e]).includes(G()),G=()=>$.mapStyle.id,V=e=>{if(null==e)return!0;if("boolean"==typeof e)return e;if("object"==typeof e){for(var[t,a]of Object.entries(e)){if("mapStyleId"===t&&!x(a))return!1;if("menu"===t&&!F(a))return!1}return!0}return!0},B=e=>{var t=0;for(var a of e)t=Math.trunc((t<<5)-t+a.codePointAt(0));return Math.abs(t).toString(36)};function W(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}class K{constructor(e){this.id=e.id,this.url=e.url,this.transformRequest=e.transformRequest,this.maxFeatures=e.maxFeatures,this.minZoom=e.minZoom,this.idProperty=e.idProperty,this.hiddenFeaturesIdExpression=["to-string",["get",this.idProperty]],this.sourceId="geojson-dynamic-".concat(this.id),this.source=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?W(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):W(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}({type:"geojson",data:{type:"FeatureCollection",features:[]}},this.idProperty?{promoteId:this.idProperty}:{generateId:!0})}}var U={};window.getGlobalState=()=>Object.freeze(U);var H=(e,t)=>{switch(U.opacityMode){case"global":return U.opacity;case"multiply":return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Math.round(100*(e*t*U.opacity+Number.EPSILON))/100}(e,t);default:return((e,t)=>void 0===e?void 0===t?U.opacity:t:e)(e,t)}},Z=()=>U.visible;function z(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?z(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):z(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}class J{constructor(e){this._datasetDefinition=e}get id(){return this._datasetDefinition.id}get label(){return this._datasetDefinition.label}get hasSymbol(){var e;return!this.hasSublayers&&Boolean(null===(e=this.style)||void 0===e?void 0:e.symbol)}get hasPattern(){return!(this.hasSublayers||this.hasSymbol||(e=this.style,!e.fillPattern&&!e.fillPatternSvgContent));var e}get hasFill(){var e,t;return!this.hasSublayers&&!this.hasSymbol&&(this.hasPattern||(null===(e=this.style)||void 0===e?void 0:e.fill)&&"transparent"!==(null===(t=this.style)||void 0===t?void 0:t.fill))}get hasStroke(){var e;return!this.hasSublayers&&!this.hasSymbol&&Boolean(null===(e=this.style)||void 0===e?void 0:e.stroke)}get tiles(){return this._datasetDefinition.tiles}get geojson(){return this._datasetDefinition.geojson}get idProperty(){return this._datasetDefinition.idProperty}get generateIds(){return this._datasetDefinition.generateIds}get parentId(){return this._datasetDefinition.parentId}get minZoom(){var e;return this._datasetDefinition.minZoom||(null===(e=this.parent)||void 0===e?void 0:e.minZoom)}get maxZoom(){var e;return this._datasetDefinition.maxZoom||(null===(e=this.parent)||void 0===e?void 0:e.maxZoom)}get type(){var e;return this._datasetDefinition.type||(null===(e=this.parent)||void 0===e?void 0:e.type)}get showInKey(){var e,t,a=this._datasetDefinition.showInKey;return void 0!==a?a:null!==(e=null===(t=this.parent)||void 0===t?void 0:t.showInKey)&&void 0!==e&&e}get visibleWhen(){var e;return void 0===this._datasetDefinition.visibleWhen?null===(e=this.parent)||void 0===e?void 0:e.visibleWhen:this._datasetDefinition.visibleWhen}get groupLabel(){return this._datasetDefinition.groupLabel}get opacity(){var e,t,a=null===(e=this.style)||void 0===e?void 0:e.opacity,r=null===(t=this.parent)||void 0===t||null===(t=t.style)||void 0===t?void 0:t.opacity;return H(a,r)}get hasDynamicGeoJSON(){return Boolean(this._datasetDefinition.dynamicGeoJSON)}get dynamicGeoJSON(){return new K(Y(Y({},this._datasetDefinition.dynamicGeoJSON),{},{id:this.id,minZoom:this.minZoom}))}get hiddenFeatures(){return this._datasetDefinition.hiddenFeatures}get hasHiddenFeatures(){var e,t;return Boolean((null===(e=this.hiddenFeatures)||void 0===e?void 0:e.length)>0||(null===(t=this.parent)||void 0===t?void 0:t.hasHiddenFeatures))}get filter(){return null}get isHiddenByInheritance(){var e;return this.isSublayer?!(null!==(e=this.parent)&&void 0!==e&&e.visible):!Z()}get isLocallyVisible(){return!!this.isVisible||this._datasetDefinition.visible}get visible(){var e;return this.isSublayer?this._datasetDefinition.visible&&(null===(e=this.parent)||void 0===e?void 0:e.visible):this._datasetDefinition.visible&&Z()}get esriStyleLayerId(){return this._datasetDefinition.esriStyleLayerId}get visibility(){var{visible:e,visibleWhen:t}=this;return e&&t?V(t)?"visible":"none":e?"visible":"none"}get keyVisibility(){return"visible"===this.visibility&&this.showInKey}get symbolAnchor(){var e,t;return null!==(e=this.style)&&void 0!==e&&e.symbolAnchor?this.style.symbolAnchor:null===(t=this.parent)||void 0===t?void 0:t.symbolAnchor}get sourceLayer(){return this.isSublayer?this.parent.sourceLayer:this.tiles?this._datasetDefinition.sourceLayer:void 0}get isSublayer(){return Boolean(this._datasetDefinition.parentId)}get hasSublayers(){var e;return(null===(e=this._datasetDefinition.sublayerIds)||void 0===e?void 0:e.length)>0}get sublayerIds(){return this._datasetDefinition.sublayerIds}get sublayers(){var{sublayerIds:e}=this;return e?e.map(e=>$.getDataset(e)):[]}get parent(){if(this._datasetDefinition.parentId)return $.getDataset(this._datasetDefinition.parentId)}get style(){var e,t=null===(e=this.parent)||void 0===e?void 0:e.style;return t?Y(Y(Y({},t),{},{opacity:void 0},this._datasetDefinition.style),{},{symbolDescription:this.symbolDescription}):this._datasetDefinition.style||{}}get hasCustomVisualStyle(){return v(this._datasetDefinition.style||{})}get symbolDescription(){var e,t;return null!==(e=this._datasetDefinition.style)&&void 0!==e&&e.symbolDescription?this._datasetDefinition.style.symbolDescription:this.hasCustomVisualStyle||null===(t=this.parent)||void 0===t?void 0:t.symbolDescription}get patternConfigs(){var e=this.hasPattern?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.patternConfigs)]:e}get symbolConfigs(){var e=this.hasSymbol?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.symbolConfigs)]:e}}class q{constructor(){this.idToDefinitionMap=new Map,this.definitionToInstanceMap=new Map}add(e){this.idToDefinitionMap.set(e.id,e._datasetDefinition),this.definitionToInstanceMap.set(e._datasetDefinition,e)}invalidateDataset(e){var t=this.idToDefinitionMap.get(e.id);[t.id,...(null==t?void 0:t.sublayerIds)||[]].forEach(e=>{var t=this.idToDefinitionMap.get(e);this.definitionToInstanceMap.delete(t),this.idToDefinitionMap.delete(e)})}invalidateChangedDatasets(e){e.forEach(e=>{var t=this.idToDefinitionMap.get(e.id);if(t&&t!==e){var a=this.definitionToInstanceMap.get(t);this.invalidateDataset(a.isSublayer&&a.parent?a.parent:a)}})}getByDefinition(e){return this.definitionToInstanceMap.get(e)}}function X(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Q(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?X(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):X(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var $={attach(e,t,a){this._datasets=e,this._orderedDatasets=t,this.attachMapStyle(a),this._invalidateChangedDatasets()},_definitionCache:new q,_invalidateCache(){this._definitionCache=new q},_invalidateChangedDatasets(){this._datasets?this._definitionCache.invalidateChangedDatasets(Object.values(this._datasets)):this._invalidateCache()},attachCreateDataset(e){this._createDataset=e},_createDataset:e=>(e=>new J(e))(e),attachMapStyle(e){e&&(this._mapStyle=e)},get mapStyle(){return this._mapStyle},getDataset(e){var t=this.datasets[e];if(t){var a=this._definitionCache.getByDefinition(t);if(a)return a;var r=this._createDataset(t);return this._definitionCache.add(r),r.isSublayer&&this.getDataset(r.parentId),r}},forEach(e){this._orderedDatasets.forEach(t=>e(this.getDataset(t)))},forEachDataset(e){Object.values(this.datasets).filter(e=>!e.parentId).forEach(t=>e(this.getDataset(t.id)))},topLevelDatasets(){return Object.values(this.datasets).filter(e=>!e.parentId).map(e=>this.getDataset(e.id))},getPatternAndSymbolConfigs(){return this.topLevelDatasets().reduce((e,t)=>Q(Q({},e),{},{patternConfigs:[...e.patternConfigs,...t.patternConfigs],symbolConfigs:[...e.symbolConfigs,...t.symbolConfigs]}),{patternConfigs:[],symbolConfigs:[]})},invalidateKeyItems(){this._lastKeyItemsDatasets=null},_lastKeyItems:{},keyItems(){if(this.datasets===this._lastKeyItemsDatasets)return this._lastKeyItems;this._lastKeyItemsDatasets=this.datasets;var e=[],t=new Set,a=!1;return this.forEachDataset(r=>{if(r.showInKey&&r.keyVisibility)if(r.hasSublayers){var s=r.sublayers.filter(e=>e.keyVisibility);s.length&&(a=!0,e.push({type:"sublayers",dataset:r,sublayers:s}))}else if(r.groupLabel){if(t.has(r.groupLabel))return;t.add(r.groupLabel),a=!0,e.push({type:"group",groupLabel:r.groupLabel,datasets:this.topLevelDatasets().filter(e=>e.groupLabel===r.groupLabel&&!e.hasSublayers&&e.keyVisibility)})}else e.push({type:"flat",dataset:r})}),this._lastKeyItems={items:e,hasGroups:a},this._lastKeyItems}};Object.defineProperty($,"datasets",{get:()=>$._datasets}),window.datasetRegistry=$;var ee,te=e=>{var{adapter:t,pluginConfig:a,mapStyle:r,mapProvider:s,events:i,dispatch:n,eventBus:o}=e,{datasets:l}=a,p=new Map;a.globals&&n({type:"SET_GLOBAL_STATE",payload:a.globals});var c=l.map(e=>((e,t)=>{var a=e.style||{},r=y(y({},t.style),a);!("symbolDescription"in a)&&v(a)&&delete r.symbolDescription;var s=y({},e);delete s.style,b.forEach(e=>delete s[e]);var i=y({},t);return delete i.style,y(y(y({},i),s),r)})(e,h)),{mappedDatasets:m,orderedDatasets:g}=O({datasets:l});t.createDataset&&$.attachCreateDataset(t.createDataset),$.attach(m,g,r);var f=a.menu||d({datasets:c});R(u(f)),n({type:"SET_MENU",payload:{menu:f}}),n({type:"SET_DATASETS",payload:{mappedDatasets:m,orderedDatasets:g}}),t.init().then(()=>{$.forEachDataset(e=>{if(e.hasDynamicGeoJSON){var{dynamicGeoJSON:a}=e,r=L({dynamicGeoJSON:a,map:s.map,onUpdate:(e,a)=>t.setData(e,a)});p.set(e.id,r)}}),t.attachDynamicSources(p),o.emit("datasets:ready")});var D=()=>{t.onMapSizeChange()};return o.on(i.MAP_SIZE_CHANGE,D),{remove(){o.off(i.MAP_SIZE_CHANGE,D),p.forEach(e=>e.destroy()),p.clear(),t.destroy()},refreshDataset(e){var t;null===(t=p.get(e))||void 0===t||t.refresh()},clearDatasetCache(e){var t;null===(t=p.get(e))||void 0===t||t.clear()},getFeatureCount(e){var t,a;return null!==(t=null===(a=p.get(e))||void 0===a?void 0:a.getFeatureCount())&&void 0!==t?t:null}}},ae=function(){var e=n(function*(e){switch(e.name){case"MapLibreProvider":var{default:t}=yield import(/* webpackChunkName: "im-datasets-ml-adapter" */ "./im-datasets-ml-adapter.js").then(function(e){return e.m});return t;case"EsriProvider":var{default:a}=yield import(/* webpackChunkName: "esriLayerAdapter" */ "./esriLayerAdapter.js");return a;default:throw new Error("No layer adapter available for map provider ".concat(e.name,". Please provide a compatible layer adapter."))}});return function(t){return e.apply(this,arguments)}}(),re={},se=function(){var e=n(function*(e,t,a){var r,s,i=yield ae(e);return ee=new i(e,t,a),re.removeDataset=ee.removeDataset.bind(ee),re.setData=ee.setData.bind(ee),re.applyStyle=ee.applyStyle.bind(ee),re.applyDatasetVisibility=ee.applyDatasetVisibility.bind(ee),re.applyGlobalVisibility=ee.applyGlobalVisibility.bind(ee),re.applyDatasetOpacity=ee.applyDatasetOpacity.bind(ee),re.applyGlobalOpacity=ee.applyGlobalOpacity.bind(ee),re.addDataset=ee.addDataset.bind(ee),re.applyFeatureFilter=ee.applyFeatureFilter.bind(ee),re.onMapStyleChange=null===(r=ee.onMapStyleChange)||void 0===r?void 0:r.bind(ee),re.onMapSizeChange=null===(s=ee.onMapSizeChange)||void 0===s?void 0:s.bind(ee),ee});return function(t,a,r){return e.apply(this,arguments)}}();var ie=function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_DATASET_VISIBILITY",payload:{datasetId:n,visible:t}}:{type:"SET_GLOBAL_VISIBILITY",payload:{visible:t}})},ne=e=>{var{menuGroupItem:t,onChange:s}=e,i=$.getDataset(t.id);if(!i)return null;var n=i.isSublayer?i.parentId:i.id,o=i.isSublayer?i.id:void 0,l="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(i.visible?"":" im-c-datasets-layers__item--checked");return a("div",{className:l,"data-module":"govuk-checkboxes",children:r("div",{className:"govuk-checkboxes__item",children:[a("input",{className:"govuk-checkboxes__input",id:i.id,"data-dataset-id":n,"data-sublayer-id":o,name:"layers",type:"checkbox",value:i.id,checked:i.isLocallyVisible,onChange:s}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:i.id,children:i.label})]})},i.id)},oe=e=>{var{menuGroupItem:t,name:s,checked:i,onChange:n}=e,{visibleWhen:o}=t;return!o||V(o)?a("div",{className:'im-c-datasets-layers__item govuk-radios govuk-radios--small"',"data-module":"govuk-radios",children:r("div",{className:"govuk-radios__item",children:[a("input",{id:t.id,className:"govuk-radios__input",type:"radio",name:s,value:t.id,checked:i,onChange:n}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-radios__label",htmlFor:t.id,children:t.label})]})}):null},le=e=>{var{pluginState:t,menuGroup:s}=e,{id:i,items:n,visibleWhen:o}=s;if(!(!o||V(o)))return null;var{menuState:l,dispatch:d}=t,p=l[i],u=e=>{d({type:"UPDATE_MENU_STATE",payload:{[i]:e.target.value}})};return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:a("h3",{children:s.label})}),a("div",{className:"govuk-radios govuk-radios--small","data-module":"govuk-radios",children:n.map(e=>a(oe,{menuGroupItem:e,name:i,checked:e.id===p,onChange:u},e.id))})]})},s.id)},de=e=>{var{menuGroup:t,children:i}=e;if(!t.groupLabel)return a(s,{children:i});return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:a("h3",{children:t.groupLabel})}),i]})},t.id)},pe=e=>{var{text:t}=e;return a("div",{className:"im-c-datasets-key",children:a("p",{className:"im-c-datasets-key__empty-message",children:t})})},ue=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var a=Object.values(e)[0];return null!=a?a:null}return null};function ce(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ye(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ce(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var he=20,be={xmlns:"http://www.w3.org/2000/svg",width:he,height:he,viewBox:"0 0 ".concat(he," ").concat(he),className:"am-c-datasets-key-symbol","aria-hidden":"true",focusable:"false"},me=ye(ye({},be),{},{width:44,height:44,className:"am-c-datasets-key-symbol am-c-datasets-key-symbol--point"});function ve(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ge(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ve(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var fe=e=>{var{patternRegistry:t,registryDataset:s,mapStyle:i}=e,{style:n}=s,o=t.getKeyPatternPaths(n,i.id);return r("svg",ge(ge({},be),{},{children:[a("g",{dangerouslySetInnerHTML:{__html:o.border}}),a("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]}))},De=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),Oe=(e,t)=>{var a;return e.symbolAnchor?e.symbolAnchor:null!==(a=null==t?void 0:t.anchor)&&void 0!==a?a:[.5,.5]};function Se(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function _e(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Se(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Pe=e=>{var t,{symbolRegistry:r,registryDataset:s,mapStyle:i,symbolDef:n}=e,{style:o}=s,l=null!==(t=null==i?void 0:i.appColorScheme)&&void 0!==t?t:"light",d=_e(_e({},i),{},{mapColorScheme:l}),p=r.resolve(n,(e=>{if(!(e=>!(!e.symbol&&!e.symbolSvgContent))(e))return{};var t={};return De.forEach(a=>{if(null!=e[a]){var r=a.charAt(6).toLowerCase()+a.slice(7);t[r]=e[a]}}),t})(o),d),u=((e,t)=>{var a;return e.symbolViewBox?e.symbolViewBox:null!==(a=null==t?void 0:t.viewBox)&&void 0!==a?a:"0 0 38 38"})(o,n);return a("svg",_e(_e({},me),{},{viewBox:u,children:a("g",{dangerouslySetInnerHTML:{__html:p}})}))};function Ee(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function we(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ee(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Ae=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",we(we({},be),{},{children:a("line",{x1:s.strokeWidth/2,y1:10,x2:he-s.strokeWidth/2,y2:10,stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinecap:"round"})}))};function Ie(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function je(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ie(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Te=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",je(je({},be),{},{children:a("rect",{x:s.strokeWidth/2,y:s.strokeWidth/2,width:he-s.strokeWidth,height:he-s.strokeWidth,rx:s.strokeWidth,ry:s.strokeWidth,fill:ue(s.fill,t.id),stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinejoin:"round"})}))},Me=e=>{var{symbolRegistry:t,registryDataset:r,mapStyle:s,patternRegistry:i}=e,{hasSymbol:n,hasPattern:o,style:l}=r,d=n&&t.getSymbolDef(l);return d?a(Pe,{mapStyle:s,registryDataset:r,symbolRegistry:t,symbolDef:d}):o?a(fe,{mapStyle:s,registryDataset:r,patternRegistry:i}):"line"===l.keySymbolShape?a(Ae,{mapStyle:s,registryDataset:r}):a(Te,{mapStyle:s,registryDataset:r})},ke=e=>{var{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n}=e;return t.showInKey?r("dl",{className:"im-c-datasets-key__item",children:[a("dt",{className:"im-c-datasets-key__item-symbol",children:a(Me,{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n})}),r("dd",{className:"im-c-datasets-key__item-label",children:[t.label,t.symbolDescription&&r("span",{className:"govuk-visually-hidden",children:["(",ue(t.symbolDescription,n.id),")"]})]})]}):null},Ce=e=>{var{headingId:t,label:s,datasets:i,symbolRegistry:n,patternRegistry:o,mapStyle:l}=e;return r("section",{className:"im-c-datasets-key__group","aria-labelledby":t,children:[a("h3",{id:t,className:"im-c-datasets-key__group-heading",children:s}),i.map(e=>a(ke,{registryDataset:e,symbolRegistry:n,patternRegistry:o,mapStyle:l},"".concat(e.id)))]})},Le={InitComponent:function(a){var{pluginConfig:r,pluginState:s,appState:i,mapState:o,mapProvider:l,services:d}=a,{dispatch:p}=s,{eventBus:u,symbolRegistry:c,patternRegistry:y}=d,h=Boolean(null==l?void 0:l.isBaseMapReady());e(s).current=s;var b=e(null);return t(()=>{var e,t,a,s,d=null===(e=null===(t=r.includeModes)||void 0===t?void 0:t.includes(i.mode))||void 0===e||e,m=null!==(a=null===(s=r.excludeModes)||void 0===s?void 0:s.includes(i.mode))&&void 0!==a&&a;if(h&&d&&!m&&!b.current){var v=function(){var e=n(function*(){var e=yield se(l,c,y);b.current=te({adapter:e,pluginConfig:r,mapStyle:o.mapStyle,mapProvider:l,events:T,dispatch:p,eventBus:u})});return function(){return e.apply(this,arguments)}}();v()}},[h,i.mode]),t(()=>{R(s.menuState),$.invalidateKeyItems()},[s.menuState]),t(()=>$.attach(s.mappedDatasets,s.orderedDatasets),[s.mappedDatasets,s.orderedDatasets]),t(()=>{$.attachMapStyle(o.mapStyle),null!=re&&re.onMapStyleChange&&re.onMapStyleChange()},[o.mapStyle]),t(()=>{return e=s.globals,void(U=e);var e},[s.globals]),t(()=>{var{actionsArray:e}=s;e.length&&(e.forEach(e=>{var{method:t,parameters:a}=e;return re[t](...a)}),p({type:"REMOVE_ADAPTER_ACTIONS",payload:e}))},[s.actionsArray]),t(()=>()=>{b.current&&(b.current.remove(),b.current=null)},[]),null},reducer:{initialState:{globals:{visible:!0,opacity:1,opacityMode:"dataset"},key:{items:[],hasGroups:!1},mappedDatasets:{},orderedDatasets:[],actionsArray:[],menu:[],menuState:{}},actions:j},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"260px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"280px"},render:e=>{var{pluginState:t}=e,{menu:s=[]}=t,i=e=>{var{value:a,checked:r}=e.target;ie({pluginState:t},r,{datasetId:a})},n=s.some(e=>e.groupLabel),o="im-c-datasets-layers".concat(n?" im-c-datasets-layers--has-groups":"");return a("div",{className:o,children:s.map(e=>{var{type:s}=e;return"checkbox"===s?r(de,{menuGroup:e,children:[" ",e.items.map(e=>a(ne,{menuGroupItem:e,onChange:i},e.id))]},e.id):a(le,{menuGroup:e,pluginState:t},e.id)})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:e=>{var{pluginConfig:{noKeyItemText:t},mapState:{mapStyle:r},services:{symbolRegistry:s,patternRegistry:i}}=e,{items:n,hasGroups:o}=$.keyItems();if(null==n||!n.length)return a(pe,{text:t});var l="im-c-datasets-key".concat(o?" im-c-datasets-key--has-groups":"");return a("div",{className:l,children:n.map(e=>{var t="group"===e.type?e.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"):e.dataset.id;if("sublayers"===e.type||"group"===e.type){var n="sublayers"===e.type?e.sublayers:e.datasets,o="sublayers"===e.type?e.dataset.label:e.groupLabel;return a(Ce,{headingId:"key-heading-".concat(t),label:o,datasets:n,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)}return a(ke,{registryDataset:e.dataset,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.menu&&!t.datasets.some(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.some(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{addDataset:(e,t)=>{var{pluginState:{dispatch:a},mapState:r}=e;a({type:"ADD_DATASET",payload:{dataset:t,mapStyle:r.mapStyle}})},removeDataset:(e,t)=>{var{pluginState:{dispatch:a}}=e;re.removeDataset(t),a({type:"REMOVE_DATASET",payload:{id:t}})},setDatasetVisibility:ie,setFeatureVisibility:function(e,t,a){var{pluginState:{dispatch:r}}=e,{datasetId:s=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(s){var i=$.getDataset(s);!i||i.idProperty||i.generateIds||_.warn('setFeatureVisibility: Dataset "'.concat(s,'" has no idProperty or generateIds configured. Features may not be matched correctly. Add idProperty to match by a feature property, or add generateIds: true to use auto-generated IDs.'))}r({type:t?"SHOW_FEATURES":"HIDE_FEATURES",payload:{datasetId:s,featureIds:a}})},setStyle:function(e,t){var{pluginState:{dispatch:a},mapState:r}=e,{datasetId:s,sublayerId:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};a({type:"SET_DATASET_STYLE",payload:{datasetId:s=i?"".concat(s,"-").concat(i):s,styleChanges:t,mapStyle:r.mapStyle}})},getStyle:function(e){var{_pluginState:t}=e,{datasetId:a,sublayerId:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a=r?"".concat(a,"-").concat(r):a;var s=$.getDataset(a);return s?s.style:(_.warn("getStyle: Dataset with id ".concat(a," not found")),null)},setOpacity:function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_OPACITY",payload:{datasetId:n,opacity:t}}:{type:"SET_GLOBAL_OPACITY",payload:{opacity:t}})},getOpacity:function(e){var t,{pluginState:{globals:a}}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;if(n){var o,l=$.getDataset(n);return l?null!==(o=l.opacity)&&void 0!==o?o:null:(_.warn("getOpacity: Dataset with id ".concat(n," not found")),null)}return null!==(t=a.opacity)&&void 0!==t?t:null},setData:(e,t,a)=>{var{_pluginState:r}=e,{datasetId:s}=a,i=$.getDataset(s);i?null!=i&&i.tiles?_.warn('setData called on vector tile dataset "'.concat(s,'" — has no effect')):re.setData(s,t):_.warn("setData: Dataset with id ".concat(s," not found"))},setGlobals:(e,t)=>{var{pluginState:{dispatch:a}}=e,{opacityMode:r}=t,s={},i=!1;r&&(["dataset","global","multiply"].includes(r)?(i=!0,s.opacityMode=r):_.warn("Ignoring invalid opacityMode: ".concat(r,". Must be one of 'dataset', 'global' or 'multiply'."))),i?a({type:"SET_GLOBAL_STATE",payload:s}):_.warn("setGlobals: requires a valid value for opacityMode to be set")}}},Ne=Object.freeze({__proto__:null,manifest:Le});export{J as D,ue as a,$ as d,Oe as g,B as h,_ as l,Ne as m};
|
|
1
|
+
import{useRef as e,useEffect as t}from"preact/compat";import{jsx as a,jsxs as r,Fragment as s}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var d=e=>{var{datasets:t=[]}=e,a=[],r=t.filter(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))}),s=new Map;return r.forEach(e=>{var t;if(null!==(t=e.sublayers)&&void 0!==t&&t.length){var r=e.sublayers.filter(t=>e.showInMenu?!1!==t.showInMenu:t.showInMenu);if(!1===e.showInMenu&&!r.length)return;var i={id:e.id,groupLabel:e.label,visibleWhen:!0,type:"checkbox",items:r.map(t=>({id:"".concat(e.id,"-").concat(t.id),label:t.label}))};0===i.items.length&&(delete i.groupLabel,i.items.push({id:e.id,label:e.label})),a.push(i)}else if(e.groupLabel){var n=s.has(e.groupLabel)?s.get(e.groupLabel):{id:e.groupLabel,groupLabel:e.groupLabel,visibleWhen:!0,type:"checkbox",items:[]};s.has(e.groupLabel)||(s.set(e.groupLabel,n),a.push(n)),n.items.push({id:e.id,label:e.label})}else a.push({visibleWhen:!0,type:"checkbox",id:e.id,items:[{id:e.id,label:e.label}]})}),a},p=(e,t)=>e.reduce((e,a)=>{var r=a.items.filter(e=>!t.includes(e.id));return r.length&&e.push(l(l({},a),{},{items:r})),e},[]),u=e=>{var t={};return e.forEach(e=>{var a;"radio"===e.type&&(t[e.id]=e.value||(null===(a=e.items)||void 0===a?void 0:a[0].value))}),t};function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var h={minZoom:6,maxZoom:24,showInKey:!1,showInMenu:!1,visible:!0,style:{stroke:"#d4351c",strokeWidth:2,symbolDescription:"red outline"}},m=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],b=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],v=e=>b.some(t=>t in e);function g(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?g(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):g(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var D=(e,t)=>{var a,{id:r}=t,s=(e=>{!0!==e.visible&&!1!==e.visible&&(e.visible="hidden"!==e.visibility);var t=y(y(y({},h),e),{},{style:y(y({},h.style),e.style)}),a=e.style||{};return!("symbolDescription"in a)&&v(a)&&delete t.style.symbolDescription,m.forEach(e=>delete t[e]),t})(t);t.parentId&&("showInKey"in t||delete s.showInKey,"showInMenu"in t||delete s.showInMenu),e[r]=s;var{orderedDatasets:i}=e;i.push(r);var n=null===(a=t.sublayers)||void 0===a?void 0:a.map(e=>((e,t)=>{var a="".concat(e,"-").concat(t.id),r=t.id;return"hidden"!==t.visibility&&(t.visibility="visible"),f(f({},t),{},{id:a,parentId:e,sublayerId:r})})(r,e));if(null!=n&&n.length){var o=null==n?void 0:n.map(e=>e.id),l=null==n?void 0:n.reduce(D,{orderedDatasets:i});return e[r].sublayerIds=o,delete e[r].sublayers,f(f(f({},e),l),{},{orderedDatasets:i})}return f(f({},e),{},{orderedDatasets:i})},O=e=>{var t=(e.datasets||[]).reduce(D,{orderedDatasets:[]}),{orderedDatasets:a}=t;return delete t.orderedDatasets,f(f({},e),{},{mappedDatasets:t,orderedDatasets:a})},S="[interactive-map]",_={warn:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.warn(S,...t)},error:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.error(S,...t)}};function P(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function E(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?P(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):P(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var A=function(e,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"not found";return!!e.mappedDatasets[t]||(_.error("".concat(a,": Dataset with id '").concat(t,"' ").concat(r)),!1)},w=0,I=(e,t,a)=>(w=a.actionsArray.length?w+1:0,E(E({},a),{},{actionsArray:[...a.actionsArray,{method:e,parameters:t,actionId:w}]})),j={SET_DATASETS:(e,t)=>{var{mappedDatasets:a,orderedDatasets:r}=t;return E(E({},e),{},{mappedDatasets:a,orderedDatasets:r})},ADD_DATASET:(e,t)=>{var{dataset:a,mapStyle:r}=t;if(e.mappedDatasets[a.id])return _.error("addDataset: Dataset with id '".concat(a.id,"' already exists")),e;var{mappedDatasets:s,orderedDatasets:i}=O({datasets:[a]}),n=((e,t)=>{var a=[...e.menu],r=d({datasets:[t]}),s=a.find(e=>e.groupLabel===r[0].groupLabel);return s?s.items.push(...r[0].items):a.push(...r),a})(e,a);return I("addDataset",[a.id,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),s),orderedDatasets:[...e.orderedDatasets,...i],menu:n}))},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;if(!A(e,r,"removeDataset"))return e;var s=E({},e.mappedDatasets),i=[r,...(null===(a=s[r])||void 0===a?void 0:a.sublayerIds)||[]];i.forEach(e=>delete s[e]);var n=e.orderedDatasets.filter(e=>!i.includes(e));return E(E({},e),{},{mappedDatasets:s,orderedDatasets:n,menu:p(e.menu,i)})},SET_DATASET_VISIBILITY:(e,t)=>{var{datasetId:a,visible:r}=t;return A(e,a,"setDatasetVisibility")?e.mappedDatasets[a].visible===r?e:I("applyDatasetVisibility",[a,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:E(E({},e.mappedDatasets[a]),{},{visible:r})})})):e},SET_GLOBAL_VISIBILITY:(e,t)=>{var{visible:a}=t;return I("applyGlobalVisibility",[a],E(E({},e),{},{globals:E(E({},e.globals),{},{visible:a})}))},SET_DATASET_STYLE:(e,t)=>{var{datasetId:a,styleChanges:r,mapStyle:s}=t;if(!A(e,a,"setDatasetStyle"))return e;var i=E(E({},e.mappedDatasets[a].style),r),n=E(E(E({},e.mappedDatasets[a]),r),{},{style:i});return I("applyStyle",[a,s],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:n})}))},SET_OPACITY:(e,t)=>{var{datasetId:a,opacity:r}=t;if(!A(e,a,"setOpacity"))return e;var s=E(E({},e.mappedDatasets[a].style),{},{opacity:r}),i=E(E({},e.mappedDatasets[a]),{},{style:s});return I("applyDatasetOpacity",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:i})}))},SET_GLOBAL_OPACITY:(e,t)=>{var{opacity:a}=t;return I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),{},{opacity:a})}))},HIDE_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!A(e,a,"setFeatureVisibility - hideFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=s.hiddenFeatures||[],n=Array.from(new Set([...i,...r]));return s.hiddenFeatures=n,I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},SHOW_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!A(e,a,"setFeatureVisibility - showFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=(s.hiddenFeatures||[]).filter(e=>!r.includes(e));return s.hiddenFeatures=i.length?i:[-1],I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},REMOVE_ADAPTER_ACTIONS:(e,t)=>null!=t&&t.length?E(E({},e),{},{actionsArray:e.actionsArray.filter(e=>!t.includes(e))}):e,SET_GLOBAL_STATE:(e,t)=>I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),t)})),SET_MENU:(e,t)=>{var{menu:a}=t,r=u(a);return E(E({},e),{},{menu:a,menuState:r})},UPDATE_MENU_STATE:(e,t)=>I("applyGlobalVisibility",[],E(E({},e),{},{menuState:E(E({},e.menuState),t)}))},T={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_SHOW_HINT:"app:showhint",APP_DISMISS_HINT:"app:dismisshint",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},M=function(){var e=n(function*(e,t,a,r){var s=a(e,t),i="string"==typeof s?{url:s}:s,{url:n,headers:o={}}=i,l=yield fetch(n,{headers:o,signal:r});if(!l.ok)throw new Error("Failed to fetch GeoJSON: ".concat(l.status," ").concat(l.statusText));var d=yield l.json();if("FeatureCollection"===d.type)return d;if("Feature"===d.type)return{type:"FeatureCollection",features:[d]};if(Array.isArray(d))return{type:"FeatureCollection",features:d};throw new Error("Invalid GeoJSON response")});return function(t,a,r,s){return e.apply(this,arguments)}}(),k=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),C=e=>{var t=1/0,a=1/0,r=-1/0,s=-1/0,i=(e,n)=>{var o;0===n?(o=e,t=Math.min(t,o[0]),a=Math.min(a,o[1]),r=Math.max(r,o[0]),s=Math.max(s,o[1])):e.forEach(e=>i(e,n-1))};switch(e.type){case"Point":i(e.coordinates,0);break;case"LineString":case"MultiPoint":i(e.coordinates,1);break;case"Polygon":case"MultiLineString":i(e.coordinates,2);break;case"MultiPolygon":i(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var i=C(e);t=Math.min(t,i[0]),a=Math.min(a,i[1]),r=Math.max(r,i[2]),s=Math.max(s,i[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,s]},L=e=>{var t,a,r,s,{dynamicGeoJSON:i,map:o,onUpdate:l}=e,{url:d,idProperty:p,transformRequest:u,maxFeatures:c,minZoom:y=0}=i,h=new Map,m=null,b=null,v=()=>({type:"FeatureCollection",features:Array.from(h.values()).map(e=>e.feature)}),g=function(){var e=n(function*(){var e=o.getZoom();if(!(e<y)){var t=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(o);if(!(m&&(a=m,r=t,a&&r&&r[0]>=a[0]&&r[1]>=a[1]&&r[2]<=a[2]&&r[3]<=a[3]))){var a,r,s,n;b&&b.abort(),b=new AbortController;try{var g={bbox:t,zoom:e},f=yield M(d,g,u,b.signal),D=Date.now();f.features.forEach(e=>{var t=(e=>{var t,a;return p&&null!==(t=null===(a=e.properties)||void 0===a?void 0:a[p])&&void 0!==t?t:e.id})(e);null!=t?h.set(t,{feature:e,bbox:C(e.geometry),lastSeenAt:D}):console.warn("Feature missing ID, skipping:",e)}),n=t,m=(s=m)?[Math.min(s[0],n[0]),Math.min(s[1],n[1]),Math.max(s[2],n[2]),Math.max(s[3],n[3])]:[...n];var O=h.size;(e=>{if(c&&!(h.size<=1.2*c)){var t=c,a=[],r=[];for(var[s,i]of h)k(i.bbox,e)?a.push(s):r.push({id:s,lastSeenAt:i.lastSeenAt});r.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var n=h.size-t,o=0;o<n&&o<r.length;o++)h.delete(r[o].id);if(h.size>t)for(var l=h.size-t,d=a.map(e=>({id:e,lastSeenAt:h.get(e).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),p=0;p<l&&p<d.length;p++)h.delete(d[p].id)}})(t),h.size<O&&(m=t),l(i.id,v())}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(i.id,":"),e)}}}});return function(){return e.apply(this,arguments)}}(),f=(t=g,a=200,(s=function(){for(var e=arguments.length,s=new Array(e),i=0;i<e;i++)s[i]=arguments[i];clearTimeout(r),r=setTimeout(()=>t(...s),a)}).cancel=()=>{clearTimeout(r),r=null},s),D=()=>{f()};return o.on("moveend",D),g(),{destroy(){o.off("moveend",D),f.cancel(),b&&b.abort()},clear(){h.clear(),m=null,l(i.id,{type:"FeatureCollection",features:[]})},refresh(){h.clear(),m=null,g()},getFeatureCount:()=>h.size,reapply(){h.size>0&&l(i.id,v())}}},N={},R=e=>{N=e},F=e=>{for(var[t,a]of Object.entries(e)){var r=N[t];if(!a.includes(r))return!1}return!0},x=e=>(Array.isArray(e)?e:[e]).includes(G()),G=()=>$.mapStyle.id,V=e=>{if(null==e)return!0;if("boolean"==typeof e)return e;if("object"==typeof e){for(var[t,a]of Object.entries(e)){if("mapStyleId"===t&&!x(a))return!1;if("menu"===t&&!F(a))return!1}return!0}return!0},B=e=>{var t=0;for(var a of e)t=Math.trunc((t<<5)-t+a.codePointAt(0));return Math.abs(t).toString(36)};function W(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}class K{constructor(e){this.id=e.id,this.url=e.url,this.transformRequest=e.transformRequest,this.maxFeatures=e.maxFeatures,this.minZoom=e.minZoom,this.idProperty=e.idProperty,this.hiddenFeaturesIdExpression=["to-string",["get",this.idProperty]],this.sourceId="geojson-dynamic-".concat(this.id),this.source=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?W(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):W(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}({type:"geojson",data:{type:"FeatureCollection",features:[]}},this.idProperty?{promoteId:this.idProperty}:{generateId:!0})}}var H={};window.getGlobalState=()=>Object.freeze(H);var U=(e,t)=>{switch(H.opacityMode){case"global":return H.opacity;case"multiply":return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Math.round(100*(e*t*H.opacity+Number.EPSILON))/100}(e,t);default:return((e,t)=>void 0===e?void 0===t?H.opacity:t:e)(e,t)}},Z=()=>H.visible;function z(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?z(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):z(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}class J{constructor(e){this._datasetDefinition=e}get id(){return this._datasetDefinition.id}get label(){return this._datasetDefinition.label}get hasSymbol(){var e;return!this.hasSublayers&&Boolean(null===(e=this.style)||void 0===e?void 0:e.symbol)}get hasPattern(){return!(this.hasSublayers||this.hasSymbol||(e=this.style,!e.fillPattern&&!e.fillPatternSvgContent));var e}get hasFill(){var e,t;return!this.hasSublayers&&!this.hasSymbol&&(this.hasPattern||(null===(e=this.style)||void 0===e?void 0:e.fill)&&"transparent"!==(null===(t=this.style)||void 0===t?void 0:t.fill))}get hasStroke(){var e;return!this.hasSublayers&&!this.hasSymbol&&Boolean(null===(e=this.style)||void 0===e?void 0:e.stroke)}get tiles(){return this._datasetDefinition.tiles}get geojson(){return this._datasetDefinition.geojson}get idProperty(){return this._datasetDefinition.idProperty}get generateIds(){return this._datasetDefinition.generateIds}get parentId(){return this._datasetDefinition.parentId}get minZoom(){var e;return this._datasetDefinition.minZoom||(null===(e=this.parent)||void 0===e?void 0:e.minZoom)}get maxZoom(){var e;return this._datasetDefinition.maxZoom||(null===(e=this.parent)||void 0===e?void 0:e.maxZoom)}get type(){var e;return this._datasetDefinition.type||(null===(e=this.parent)||void 0===e?void 0:e.type)}get showInKey(){var e,t,a=this._datasetDefinition.showInKey;return void 0!==a?a:null!==(e=null===(t=this.parent)||void 0===t?void 0:t.showInKey)&&void 0!==e&&e}get visibleWhen(){var e;return void 0===this._datasetDefinition.visibleWhen?null===(e=this.parent)||void 0===e?void 0:e.visibleWhen:this._datasetDefinition.visibleWhen}get groupLabel(){var e,t;return this._datasetDefinition.groupLabel||(null===(e=this.parent)||void 0===e?void 0:e.groupLabel)||(null===(t=this.parent)||void 0===t?void 0:t.label)}get opacity(){var e,t,a=null===(e=this.style)||void 0===e?void 0:e.opacity,r=null===(t=this.parent)||void 0===t||null===(t=t.style)||void 0===t?void 0:t.opacity;return U(a,r)}get hasDynamicGeoJSON(){return Boolean(this._datasetDefinition.dynamicGeoJSON)}get dynamicGeoJSON(){return new K(Y(Y({},this._datasetDefinition.dynamicGeoJSON),{},{id:this.id,minZoom:this.minZoom}))}get hiddenFeatures(){return this._datasetDefinition.hiddenFeatures}get hasHiddenFeatures(){var e,t;return Boolean((null===(e=this.hiddenFeatures)||void 0===e?void 0:e.length)>0||(null===(t=this.parent)||void 0===t?void 0:t.hasHiddenFeatures))}get filter(){return null}get isHiddenByInheritance(){var e;return this.isSublayer?!(null!==(e=this.parent)&&void 0!==e&&e.visible):!Z()}get isLocallyVisible(){return!!this.isVisible||this._datasetDefinition.visible}get visible(){var e;return this.isSublayer?this._datasetDefinition.visible&&(null===(e=this.parent)||void 0===e?void 0:e.visible):this._datasetDefinition.visible&&Z()}get esriStyleLayerId(){return this._datasetDefinition.esriStyleLayerId}get visibility(){var{visible:e,visibleWhen:t}=this;return e&&t?V(t)?"visible":"none":e?"visible":"none"}get keyVisibility(){return"visible"===this.visibility&&this.showInKey}get symbolAnchor(){var e,t;return null!==(e=this.style)&&void 0!==e&&e.symbolAnchor?this.style.symbolAnchor:null===(t=this.parent)||void 0===t?void 0:t.symbolAnchor}get sourceLayer(){return this.isSublayer?this.parent.sourceLayer:this.tiles?this._datasetDefinition.sourceLayer:void 0}get isSublayer(){return Boolean(this._datasetDefinition.parentId)}get hasSublayers(){var e;return(null===(e=this._datasetDefinition.sublayerIds)||void 0===e?void 0:e.length)>0}get sublayerIds(){return this._datasetDefinition.sublayerIds}get sublayers(){var{sublayerIds:e}=this;return e?e.map(e=>$.getDataset(e)):[]}get parent(){if(this._datasetDefinition.parentId)return $.getDataset(this._datasetDefinition.parentId)}get style(){var e,t=null===(e=this.parent)||void 0===e?void 0:e.style;return t?Y(Y(Y({},t),{},{opacity:void 0},this._datasetDefinition.style),{},{symbolDescription:this.symbolDescription}):this._datasetDefinition.style||{}}get hasCustomVisualStyle(){return v(this._datasetDefinition.style||{})}get symbolDescription(){var e,t;return null!==(e=this._datasetDefinition.style)&&void 0!==e&&e.symbolDescription?this._datasetDefinition.style.symbolDescription:this.hasCustomVisualStyle||null===(t=this.parent)||void 0===t?void 0:t.symbolDescription}get patternConfigs(){var e=this.hasPattern?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.patternConfigs)]:e}get symbolConfigs(){var e=this.hasSymbol?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.symbolConfigs)]:e}}class q{constructor(){this.idToDefinitionMap=new Map,this.definitionToInstanceMap=new Map}add(e){this.idToDefinitionMap.set(e.id,e._datasetDefinition),this.definitionToInstanceMap.set(e._datasetDefinition,e)}invalidateDataset(e){var t=this.idToDefinitionMap.get(e.id);[t.id,...(null==t?void 0:t.sublayerIds)||[]].forEach(e=>{var t=this.idToDefinitionMap.get(e);this.definitionToInstanceMap.delete(t),this.idToDefinitionMap.delete(e)})}invalidateChangedDatasets(e){e.forEach(e=>{var t=this.idToDefinitionMap.get(e.id);if(t&&t!==e){var a=this.definitionToInstanceMap.get(t);this.invalidateDataset(a.isSublayer&&a.parent?a.parent:a)}})}getByDefinition(e){return this.definitionToInstanceMap.get(e)}}function X(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Q(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?X(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):X(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var $={attach(e,t,a){this._datasets=e,this._orderedDatasets=t,this.attachMapStyle(a),this._invalidateChangedDatasets()},_definitionCache:new q,_invalidateCache(){this._definitionCache=new q},_invalidateChangedDatasets(){this._datasets?this._definitionCache.invalidateChangedDatasets(Object.values(this._datasets)):this._invalidateCache()},attachCreateDataset(e){this._createDataset=e},_createDataset:e=>(e=>new J(e))(e),attachMapStyle(e){e&&(this._mapStyle=e)},get mapStyle(){return this._mapStyle},getDataset(e){var t=this.datasets[e];if(t){var a=this._definitionCache.getByDefinition(t);if(a)return a;var r=this._createDataset(t);return this._definitionCache.add(r),r.isSublayer&&this.getDataset(r.parentId),r}},forEach(e){this._orderedDatasets.forEach(t=>e(this.getDataset(t)))},forEachDataset(e){Object.values(this.datasets).filter(e=>!e.parentId).forEach(t=>e(this.getDataset(t.id)))},topLevelDatasets(){return Object.values(this.datasets).filter(e=>!e.parentId).map(e=>this.getDataset(e.id))},getPatternAndSymbolConfigs(){return this.topLevelDatasets().reduce((e,t)=>Q(Q({},e),{},{patternConfigs:[...e.patternConfigs,...t.patternConfigs],symbolConfigs:[...e.symbolConfigs,...t.symbolConfigs]}),{patternConfigs:[],symbolConfigs:[]})},invalidateKeyItems(){this._lastKeyItemsDatasets=null},_lastKeyItems:{},keyItems(){if(this.datasets===this._lastKeyItemsDatasets)return this._lastKeyItems;this._lastKeyItemsDatasets=this.datasets;var e=[],t=new Map;this.forEach(a=>{if(a.showInKey&&a.keyVisibility)if(a.hasSublayers||a.groupLabel){var r=(a=>{if(t.has(a))return t.get(a);var r={type:"group",groupLabel:a,datasets:[]};return t.set(a,r),e.push(r),r})(a.groupLabel||a.label);a.hasSublayers||r.datasets.push(a)}else e.push({type:"flat",dataset:a})});var a=e.filter(e=>{var t;return"flat"===e.type||Boolean(null===(t=e.datasets)||void 0===t?void 0:t.length)}),r=a.some(e=>"group"===e.type);return this._lastKeyItems={items:a,hasGroups:r},this._lastKeyItems}};Object.defineProperty($,"datasets",{get:()=>$._datasets}),window.datasetRegistry=$;var ee,te=e=>{var{adapter:t,pluginConfig:a,mapStyle:r,mapProvider:s,events:i,dispatch:n,eventBus:o}=e,{datasets:l}=a,p=new Map;a.globals&&n({type:"SET_GLOBAL_STATE",payload:a.globals});var c=l.map(e=>((e,t)=>{var a=e.style||{},r=y(y({},t.style),a);!("symbolDescription"in a)&&v(a)&&delete r.symbolDescription;var s=y({},e);delete s.style,m.forEach(e=>delete s[e]);var i=y({},t);return delete i.style,y(y(y({},i),s),r)})(e,h)),{mappedDatasets:b,orderedDatasets:g}=O({datasets:l});t.createDataset&&$.attachCreateDataset(t.createDataset),$.attach(b,g,r);var f=a.menu||d({datasets:c});R(u(f)),n({type:"SET_MENU",payload:{menu:f}}),n({type:"SET_DATASETS",payload:{mappedDatasets:b,orderedDatasets:g}}),t.init().then(()=>{$.forEachDataset(e=>{if(e.hasDynamicGeoJSON){var{dynamicGeoJSON:a}=e,r=L({dynamicGeoJSON:a,map:s.map,onUpdate:(e,a)=>t.setData(e,a)});p.set(e.id,r)}}),t.attachDynamicSources(p),o.emit("datasets:ready")});var D=()=>{t.onMapSizeChange()};return o.on(i.MAP_SIZE_CHANGE,D),{remove(){o.off(i.MAP_SIZE_CHANGE,D),p.forEach(e=>e.destroy()),p.clear(),t.destroy()},refreshDataset(e){var t;null===(t=p.get(e))||void 0===t||t.refresh()},clearDatasetCache(e){var t;null===(t=p.get(e))||void 0===t||t.clear()},getFeatureCount(e){var t,a;return null!==(t=null===(a=p.get(e))||void 0===a?void 0:a.getFeatureCount())&&void 0!==t?t:null}}},ae=function(){var e=n(function*(e){switch(e.name){case"MapLibreProvider":var{default:t}=yield import(/* webpackChunkName: "im-datasets-ml-adapter" */ "./im-datasets-ml-adapter.js").then(function(e){return e.m});return t;case"EsriProvider":var{default:a}=yield import(/* webpackChunkName: "esriLayerAdapter" */ "./esriLayerAdapter.js");return a;default:throw new Error("No layer adapter available for map provider ".concat(e.name,". Please provide a compatible layer adapter."))}});return function(t){return e.apply(this,arguments)}}(),re={},se=function(){var e=n(function*(e,t,a){var r,s,i=yield ae(e);return ee=new i(e,t,a),re.removeDataset=ee.removeDataset.bind(ee),re.setData=ee.setData.bind(ee),re.applyStyle=ee.applyStyle.bind(ee),re.applyDatasetVisibility=ee.applyDatasetVisibility.bind(ee),re.applyGlobalVisibility=ee.applyGlobalVisibility.bind(ee),re.applyDatasetOpacity=ee.applyDatasetOpacity.bind(ee),re.applyGlobalOpacity=ee.applyGlobalOpacity.bind(ee),re.addDataset=ee.addDataset.bind(ee),re.applyFeatureFilter=ee.applyFeatureFilter.bind(ee),re.onMapStyleChange=null===(r=ee.onMapStyleChange)||void 0===r?void 0:r.bind(ee),re.onMapSizeChange=null===(s=ee.onMapSizeChange)||void 0===s?void 0:s.bind(ee),ee});return function(t,a,r){return e.apply(this,arguments)}}();var ie=function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_DATASET_VISIBILITY",payload:{datasetId:n,visible:t}}:{type:"SET_GLOBAL_VISIBILITY",payload:{visible:t}})},ne=e=>{var{menuGroupItem:t,onChange:s}=e,i=$.getDataset(t.id);if(!i)return null;var n=i.isSublayer?i.parentId:i.id,o=i.isSublayer?i.id:void 0,l="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(i.visible?"":" im-c-datasets-layers__item--checked");return a("div",{className:l,"data-module":"govuk-checkboxes",children:r("div",{className:"govuk-checkboxes__item",children:[a("input",{className:"govuk-checkboxes__input",id:i.id,"data-dataset-id":n,"data-sublayer-id":o,name:"layers",type:"checkbox",value:i.id,checked:i.isLocallyVisible,onChange:s}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:i.id,children:i.label})]})},i.id)},oe=e=>{var{menuGroupItem:t,name:s,checked:i,onChange:n}=e,{visibleWhen:o}=t;return!o||V(o)?a("div",{className:'im-c-datasets-layers__item govuk-radios govuk-radios--small"',"data-module":"govuk-radios",children:r("div",{className:"govuk-radios__item",children:[a("input",{id:t.id,className:"govuk-radios__input",type:"radio",name:s,value:t.id,checked:i,onChange:n}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-radios__label",htmlFor:t.id,children:t.label})]})}):null},le=e=>{var{pluginState:t,menuGroup:s}=e,{id:i,items:n,visibleWhen:o}=s;if(!(!o||V(o)))return null;var{menuState:l,dispatch:d}=t,p=l[i],u=e=>{d({type:"UPDATE_MENU_STATE",payload:{[i]:e.target.value}})};return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:a("h3",{children:s.label})}),a("div",{className:"govuk-radios govuk-radios--small","data-module":"govuk-radios",children:n.map(e=>a(oe,{menuGroupItem:e,name:i,checked:e.id===p,onChange:u},e.id))})]})},s.id)},de=e=>{var{menuGroup:t,children:i}=e;if(!t.groupLabel)return a(s,{children:i});return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:a("h3",{children:t.groupLabel})}),i]})},t.id)},pe=e=>{var{text:t}=e;return a("div",{className:"im-c-datasets-key",children:a("p",{className:"im-c-datasets-key__empty-message",children:t})})},ue=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var a=Object.values(e)[0];return null!=a?a:null}return null};function ce(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ye(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ce(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var he=20,me={xmlns:"http://www.w3.org/2000/svg",width:he,height:he,viewBox:"0 0 ".concat(he," ").concat(he),className:"am-c-datasets-key-symbol","aria-hidden":"true",focusable:"false"},be=ye(ye({},me),{},{width:44,height:44,className:"am-c-datasets-key-symbol am-c-datasets-key-symbol--point"});function ve(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ge(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ve(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var fe=e=>{var{patternRegistry:t,registryDataset:s,mapStyle:i}=e,{style:n}=s,o=t.getKeyPatternPaths(n,i.id);return r("svg",ge(ge({},me),{},{children:[a("g",{dangerouslySetInnerHTML:{__html:o.border}}),a("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]}))},De=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),Oe=(e,t)=>{var a;return e.symbolAnchor?e.symbolAnchor:null!==(a=null==t?void 0:t.anchor)&&void 0!==a?a:[.5,.5]};function Se(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function _e(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Se(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Pe=e=>{var t,{symbolRegistry:r,registryDataset:s,mapStyle:i,symbolDef:n}=e,{style:o}=s,l=null!==(t=null==i?void 0:i.appColorScheme)&&void 0!==t?t:"light",d=_e(_e({},i),{},{mapColorScheme:l}),p=r.resolve(n,(e=>{if(!(e=>!(!e.symbol&&!e.symbolSvgContent))(e))return{};var t={};return De.forEach(a=>{if(null!=e[a]){var r=a.charAt(6).toLowerCase()+a.slice(7);t[r]=e[a]}}),t})(o),d),u=((e,t)=>{var a;return e.symbolViewBox?e.symbolViewBox:null!==(a=null==t?void 0:t.viewBox)&&void 0!==a?a:"0 0 38 38"})(o,n);return a("svg",_e(_e({},be),{},{viewBox:u,children:a("g",{dangerouslySetInnerHTML:{__html:p}})}))};function Ee(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Ae(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ee(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var we=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",Ae(Ae({},me),{},{children:a("line",{x1:s.strokeWidth/2,y1:10,x2:he-s.strokeWidth/2,y2:10,stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinecap:"round"})}))};function Ie(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function je(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ie(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Te=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",je(je({},me),{},{children:a("rect",{x:s.strokeWidth/2,y:s.strokeWidth/2,width:he-s.strokeWidth,height:he-s.strokeWidth,rx:s.strokeWidth,ry:s.strokeWidth,fill:ue(s.fill,t.id),stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinejoin:"round"})}))},Me=e=>{var{symbolRegistry:t,registryDataset:r,mapStyle:s,patternRegistry:i}=e,{hasSymbol:n,hasPattern:o,style:l}=r,d=n&&t.getSymbolDef(l);return d?a(Pe,{mapStyle:s,registryDataset:r,symbolRegistry:t,symbolDef:d}):o?a(fe,{mapStyle:s,registryDataset:r,patternRegistry:i}):"line"===l.keySymbolShape?a(we,{mapStyle:s,registryDataset:r}):a(Te,{mapStyle:s,registryDataset:r})},ke=e=>{var{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n}=e;return t.showInKey?r("dl",{className:"im-c-datasets-key__item",children:[a("dt",{className:"im-c-datasets-key__item-symbol",children:a(Me,{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n})}),r("dd",{className:"im-c-datasets-key__item-label",children:[t.label,t.symbolDescription&&r("span",{className:"govuk-visually-hidden",children:["(",ue(t.symbolDescription,n.id),")"]})]})]}):null},Ce=e=>{var{headingId:t,label:s,datasets:i,symbolRegistry:n,patternRegistry:o,mapStyle:l}=e;return r("section",{className:"im-c-datasets-key__group","aria-labelledby":t,children:[a("h3",{id:t,className:"im-c-datasets-key__group-heading",children:s}),i.map(e=>a(ke,{registryDataset:e,symbolRegistry:n,patternRegistry:o,mapStyle:l},"".concat(e.id)))]})},Le={InitComponent:function(a){var{pluginConfig:r,pluginState:s,appState:i,mapState:o,mapProvider:l,services:d}=a,{dispatch:p}=s,{eventBus:u,symbolRegistry:c,patternRegistry:y}=d,h=Boolean(null==l?void 0:l.isBaseMapReady());e(s).current=s;var m=e(null);return t(()=>{var e,t,a,s,d=null===(e=null===(t=r.includeModes)||void 0===t?void 0:t.includes(i.mode))||void 0===e||e,b=null!==(a=null===(s=r.excludeModes)||void 0===s?void 0:s.includes(i.mode))&&void 0!==a&&a;if(h&&d&&!b&&!m.current){var v=function(){var e=n(function*(){var e=yield se(l,c,y);m.current=te({adapter:e,pluginConfig:r,mapStyle:o.mapStyle,mapProvider:l,events:T,dispatch:p,eventBus:u})});return function(){return e.apply(this,arguments)}}();v()}},[h,i.mode]),t(()=>{R(s.menuState),$.invalidateKeyItems()},[s.menuState]),t(()=>$.attach(s.mappedDatasets,s.orderedDatasets),[s.mappedDatasets,s.orderedDatasets]),t(()=>{$.attachMapStyle(o.mapStyle),null!=re&&re.onMapStyleChange&&re.onMapStyleChange()},[o.mapStyle]),t(()=>{return e=s.globals,void(H=e);var e},[s.globals]),t(()=>{var{actionsArray:e}=s;e.length&&(e.forEach(e=>{var{method:t,parameters:a}=e;return re[t](...a)}),p({type:"REMOVE_ADAPTER_ACTIONS",payload:e}))},[s.actionsArray]),t(()=>()=>{m.current&&(m.current.remove(),m.current=null)},[]),null},reducer:{initialState:{globals:{visible:!0,opacity:1,opacityMode:"dataset"},key:{items:[],hasGroups:!1},mappedDatasets:{},orderedDatasets:[],actionsArray:[],menu:[],menuState:{}},actions:j},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"260px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"280px"},render:e=>{var{pluginState:t}=e,{menu:s=[]}=t,i=e=>{var{value:a,checked:r}=e.target;ie({pluginState:t},r,{datasetId:a})},n=s.some(e=>e.groupLabel),o="im-c-datasets-layers".concat(n?" im-c-datasets-layers--has-groups":"");return a("div",{className:o,children:s.map(e=>{var{type:s}=e;return"checkbox"===s?r(de,{menuGroup:e,children:[" ",e.items.map(e=>a(ne,{menuGroupItem:e,onChange:i},e.id))]},e.id):a(le,{menuGroup:e,pluginState:t},e.id)})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:e=>{var{pluginConfig:{noKeyItemText:t},mapState:{mapStyle:r},services:{symbolRegistry:s,patternRegistry:i}}=e,{items:n,hasGroups:o}=$.keyItems();if(null==n||!n.length)return a(pe,{text:t});var l="im-c-datasets-key".concat(o?" im-c-datasets-key--has-groups":"");return a("div",{className:l,children:n.map(e=>{var t="group"===e.type?e.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"):e.dataset.id;if("sublayers"===e.type||"group"===e.type){var n="sublayers"===e.type?e.sublayers:e.datasets,o="sublayers"===e.type?e.dataset.label:e.groupLabel;return a(Ce,{headingId:"key-heading-".concat(t),label:o,datasets:n,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)}return a(ke,{registryDataset:e.dataset,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.menu&&!t.datasets.some(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.some(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{addDataset:(e,t)=>{var{pluginState:{dispatch:a},mapState:r}=e;a({type:"ADD_DATASET",payload:{dataset:t,mapStyle:r.mapStyle}})},removeDataset:(e,t)=>{var{pluginState:{dispatch:a}}=e;re.removeDataset(t),a({type:"REMOVE_DATASET",payload:{id:t}})},setDatasetVisibility:ie,setFeatureVisibility:function(e,t,a){var{pluginState:{dispatch:r}}=e,{datasetId:s=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(s){var i=$.getDataset(s);!i||i.idProperty||i.generateIds||_.warn('setFeatureVisibility: Dataset "'.concat(s,'" has no idProperty or generateIds configured. Features may not be matched correctly. Add idProperty to match by a feature property, or add generateIds: true to use auto-generated IDs.'))}r({type:t?"SHOW_FEATURES":"HIDE_FEATURES",payload:{datasetId:s,featureIds:a}})},setStyle:function(e,t){var{pluginState:{dispatch:a},mapState:r}=e,{datasetId:s,sublayerId:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};a({type:"SET_DATASET_STYLE",payload:{datasetId:s=i?"".concat(s,"-").concat(i):s,styleChanges:t,mapStyle:r.mapStyle}})},getStyle:function(e){var{_pluginState:t}=e,{datasetId:a,sublayerId:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a=r?"".concat(a,"-").concat(r):a;var s=$.getDataset(a);return s?s.style:(_.warn("getStyle: Dataset with id ".concat(a," not found")),null)},setOpacity:function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_OPACITY",payload:{datasetId:n,opacity:t}}:{type:"SET_GLOBAL_OPACITY",payload:{opacity:t}})},getOpacity:function(e){var t,{pluginState:{globals:a}}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;if(n){var o,l=$.getDataset(n);return l?null!==(o=l.opacity)&&void 0!==o?o:null:(_.warn("getOpacity: Dataset with id ".concat(n," not found")),null)}return null!==(t=a.opacity)&&void 0!==t?t:null},setData:(e,t,a)=>{var{_pluginState:r}=e,{datasetId:s}=a,i=$.getDataset(s);i?null!=i&&i.tiles?_.warn('setData called on vector tile dataset "'.concat(s,'" — has no effect')):re.setData(s,t):_.warn("setData: Dataset with id ".concat(s," not found"))},setGlobals:(e,t)=>{var{pluginState:{dispatch:a}}=e,{opacityMode:r}=t,s={},i=!1;r&&(["dataset","global","multiply"].includes(r)?(i=!0,s.opacityMode=r):_.warn("Ignoring invalid opacityMode: ".concat(r,". Must be one of 'dataset', 'global' or 'multiply'."))),i?a({type:"SET_GLOBAL_STATE",payload:s}):_.warn("setGlobals: requires a valid value for opacityMode to be set")}}},Ne=Object.freeze({__proto__:null,manifest:Le});export{J as D,ue as a,$ as d,Oe as g,B as h,_ as l,Ne as m};
|