@defra/interactive-map 0.0.42-fmp-3 → 0.0.42-fmp-4

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.
Files changed (25) hide show
  1. package/package.json +1 -1
  2. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
  3. package/plugins/beta/draw-es/src/api/newPolygon.js +1 -0
  4. package/plugins/beta/draw-es/src/events.js +17 -8
  5. package/plugins/beta/draw-es/src/reducer.js +8 -1
  6. package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
  7. package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
  8. package/plugins/datasets/src/registry/dataset.js +12 -0
  9. package/plugins/datasets/src/registry/datasetRegistry.js +4 -2
  10. package/plugins/map-key/dist/css/index.css +1 -1
  11. package/plugins/map-key/dist/esm/im-map-key-plugin.js +1 -1
  12. package/plugins/map-key/dist/umd/im-map-key-plugin.js +1 -1
  13. package/plugins/map-key/dist/umd/index.js +1 -1
  14. package/plugins/map-key/src/components/Key/Key.jsx +1 -0
  15. package/plugins/map-key/src/components/Key/Key.module.scss +60 -13
  16. package/plugins/map-key/src/components/Key/KeyGroupItem.jsx +12 -8
  17. package/plugins/map-key/src/components/Key/KeyGroupItem.test.jsx +10 -0
  18. package/plugins/map-key/src/components/Key/KeyItem.jsx +4 -4
  19. package/plugins/map-key/src/components/Key/KeyItem.test.jsx +3 -3
  20. package/plugins/map-key/src/components/Key/KeySvg.jsx +7 -1
  21. package/plugins/map-key/src/components/Key/KeySvg.test.jsx +9 -0
  22. package/plugins/map-key/src/components/Key/KeySvgRamp.jsx +13 -0
  23. package/plugins/map-key/src/components/Key/KeySvgRamp.test.jsx +43 -0
  24. package/plugins/map-key/src/components/Key/svgProperties.js +2 -2
  25. package/plugins/map-key/src/components/Key/svgProperties.test.js +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/interactive-map",
3
- "version": "0.0.42-fmp-3",
3
+ "version": "0.0.42-fmp-4",
4
4
  "description": "An accessible map component",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +1 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import a from"@arcgis/core/layers/GraphicsLayer.js";import o from"@babel/runtime/helpers/asyncToGenerator";import*as n from"@arcgis/core/geometry/operators/simplifyOperator.js";import i from"@arcgis/core/Graphic.js";function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function l(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?p(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var c={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_FEATURES_SUPPRESSED:"map:setfeaturessuppressed",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"},s="[interactive-map]",u=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.warn(s,...t)},d=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.error(s,...t)};function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function y(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?m(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):m(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function v(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function E(e,t,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{simplify:o=!0,allowHoles:p=!1}=a,l=new i({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:v(r)});return o||!1===p?((e,t)=>{var{simplify:r=!0,allowHoles:a=!1}=t;return!r||n.isSimple(e.geometry)||(u("Feature geometry is not simple, attempting to simplify"),e.geometry=n.execute(e.geometry),n.isSimple(e.geometry))?!1===a&&(null==e?void 0:e.geometry.rings.length)>1?(d("Feature contains multiple polygons, which are not supported."),null):e:(d("Failed to simplify geometry, cannot add feature"),null)})(l,a):l}function f(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var{geometry:t,attributes:r={}}=e;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:y({},r)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:y({},r)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:y({},r)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function g(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?h(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):h(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var P={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},_={reducer:{initialState:{mode:null,feature:null,tempFeature:null},actions:{SET_MODE:(e,t)=>l(l({},e),{},{mode:t}),SET_FEATURE:(e,t)=>l(l({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature})}},InitComponent:e=>{var i,p,l,s,{appState:u,mapState:d,pluginConfig:m,pluginState:y,services:h,mapProvider:g,buttonConfig:P}=e,{eventBus:_}=h,{mapColorScheme:S}=d.mapStyle||{},A=null===(i=null===(p=m.includeModes)||void 0===p?void 0:p.includes(u.mode))||void 0===i||i,O=null!==(l=null===(s=m.excludeModes)||void 0===s?void 0:s.includes(u.mode))&&void 0!==l&&l,b=d.isMapReady&&A&&!O;t(()=>{if(b&&!g.sketchViewModel){var{sketchViewModel:e,sketchLayer:t,emptySketchLayer:o}=(e=>{var{mapProvider:t}=e,{view:o}=t,n=new a({id:"sketchLayer"});o.map.add(n);var i=new a({id:"emptySketchLayer"});return o.map.add(i),{sketchViewModel:new r({view:o,layer:i,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:i,sketchLayer:n}})({mapProvider:g});return g.sketchViewModel=e,g.sketchLayer=t,g.emptySketchLayer=o,_.emit("draw:ready"),()=>{g.sketchViewModel=null,g.sketchLayer=null,g.emptySketchLayer=null}}},[d.isMapReady,u.mode]),t(()=>{if(b&&g.sketchViewModel){var e=function(e){var{pluginState:t,mapProvider:r,events:a,eventBus:i,buttonConfig:p,mapColorScheme:l}=e,{view:c,sketchViewModel:s,sketchLayer:u,emptySketchLayer:d}=r;if(!s)return null;var{drawDone:m,drawCancel:y}=p,{dispatch:h,mode:g,feature:P}=t,_=function(){var e=o(function*(){var e,r=null===(e=t.feature)||void 0===e||null===(e=e.properties)||void 0===e?void 0:e.id,a=null,o="active"===s.state&&!r;if("active"===s.state&&r&&(s.cancel(),yield new Promise(e=>setTimeout(e,50))),s.polygonSymbol=v(l),null==u||u.graphics.items.forEach(e=>{var t=E(e.attributes.id,e.geometry.rings,l);t&&(e.symbol=t.symbol),r===e.attributes.id&&(a=e)}),a&&!o&&s.layer===u)try{yield s.update(a,{tool:"reshape",toggleToolOnClick:!1})}catch(e){"AbortError"!==e.name&&console.error("Error updating sketch:",e)}});return function(){return e.apply(this,arguments)}}(),S=()=>{var e,t,r=null!==(e=null===(t=u.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(()=>s.update(r),0)},A=()=>_(),O=e=>{if(e){var t=f(e);i.emit("draw:updated",t),h({type:"SET_FEATURE",payload:{tempFeature:t}})}},b=function(){var e=o(function*(){g&&((s.updateGraphics||[]).length||S())});return function(){return e.apply(this,arguments)}}(),T=function(){var e=o(function*(e){var{toolEventInfo:t}=e,r=null==e?void 0:e.graphic;if(r&&"vertex-add"===(null==t?void 0:t.type)){var a,o,n=null===(a=r.geometry)||void 0===a?void 0:a.rings;(null==n?void 0:n.length)>1?setTimeout(()=>s.undo(),0):(null==n||null===(o=n[0])||void 0===o?void 0:o.length)>3&&O(r)}});return function(t){return e.apply(this,arguments)}}(),w=function(){var e=o(function*(e){var t,r=null==e||null===(t=e.graphics)||void 0===t?void 0:t[0];O(r)});return function(t){return e.apply(this,arguments)}}();i.on(a.MAP_STYLE_CHANGE,A);var M=s.on("update",e=>{var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,a=e.graphics[0];"move-start"===r&&(s.cancel(),S()),"reshape-stop"===r&&(n.isSimple(a.geometry)&&1===a.geometry.rings.length||s.undo()),"reshape-stop"!==r&&"vertex-remove"!==r||O(a)}),k=c.on("click",b),D=s.on("create",T),L=s.on("undo",w),C=m.onClick,j=y.onClick;return m.onClick=()=>{s.cancel(),s.layer=d,h({type:"SET_MODE",payload:null}),h({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=()=>{if(s.cancel(),u.removeAll(),P){var e=E(P.id||P.properties.id,P.geometry.coordinates,l);e&&u.add(e)}s.layer=d,h({type:"SET_MODE",payload:null}),i.emit("draw:cancelled")},()=>{i.off(a.MAP_STYLE_CHANGE,A),M.remove(),k.remove(),D.remove(),L.remove(),m.onClick=C,y.onClick=j}}({pluginState:y,mapProvider:g,events:c,eventBus:_,buttonConfig:P,mapColorScheme:S});return()=>{e()}}},[b,S,y])},buttons:[g({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode},enableWhen:e=>{var{pluginState:t}=e;return!!t.tempFeature}},P),g({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},P)],api:{newPolygon:(e,t)=>{var{mapState:r,pluginState:a,mapProvider:o,services:n}=e,{dispatch:i}=a,{sketchViewModel:p,sketchLayer:l}=o,{eventBus:c}=n;p.layer=l;var s=p.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},requestAnimationFrame(()=>{p.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=f(e.graphic);c.emit("draw:created",r),i({type:"SET_FEATURE",payload:{tempFeature:r}}),s.remove()}});p.polygonSymbol=v(r.mapStyle.mapColorScheme),p.create("polygon"),i({type:"SET_MODE",payload:"new-polygon"})},editFeature:(e,t)=>{var{pluginState:r,mapProvider:a}=e,{dispatch:o}=r,{sketchViewModel:n,sketchLayer:i}=a,p=i.graphics.items.find(e=>e.attributes.id===t),l=p.geometry.extent,c=[l.xmin,l.ymin,l.xmax,l.ymax];a.fitToBounds(c),n.layer=i,n.update(p,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),o({type:"SET_FEATURE",payload:{feature:f(p)}}),o({type:"SET_MODE",payload:"edit-feature"})},addFeature:function(e,t){var{pluginState:r,mapState:a,mapProvider:o,services:n}=e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:p}=r,{mapStyle:l}=a,{sketchViewModel:c,sketchLayer:s,emptySketchLayer:u}=o,{eventBus:d}=n,m=E(t.id,t.geometry.coordinates,l.mapColorScheme,i),y={success:!0};return m?(s.add(m),c.layer=u,p({type:"SET_FEATURE",payload:{feature:t}}),d.emit("draw:add",t),y):(y.success=!1,y)},deleteFeature:(e,t)=>{var{pluginState:r,mapProvider:a,services:o}=e,{dispatch:n}=r,{sketchViewModel:i,sketchLayer:p,emptySketchLayer:l}=a,{eventBus:c}=o,s=p.graphics.items.find(e=>e.attributes.id===t);i.cancel(),p.remove(s),i.layer=l,n({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),c.emit("draw:delete",{featureId:t}),n({type:"SET_MODE",payload:null})}}};export{_ as manifest};
1
+ import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import a from"@arcgis/core/layers/GraphicsLayer.js";import o from"@babel/runtime/helpers/asyncToGenerator";import*as n from"@arcgis/core/geometry/operators/simplifyOperator.js";import i from"@arcgis/core/Graphic.js";function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function l(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?p(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var c={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_FEATURES_SUPPRESSED:"map:setfeaturessuppressed",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"},s="[interactive-map]",u=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.warn(s,...t)},d=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.error(s,...t)};function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function y(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?m(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):m(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function v(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function E(e,t,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{simplify:o=!0,allowHoles:p=!1}=a,l=new i({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:v(r)});return o||!1===p?((e,t)=>{var{simplify:r=!0,allowHoles:a=!1}=t;return!r||n.isSimple(e.geometry)||(u("Feature geometry is not simple, attempting to simplify"),e.geometry=n.execute(e.geometry),n.isSimple(e.geometry))?!1===a&&(null==e?void 0:e.geometry.rings.length)>1?(d("Feature contains multiple polygons, which are not supported."),null):e:(d("Failed to simplify geometry, cannot add feature"),null)})(l,a):l}function f(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var{geometry:t,attributes:r={}}=e;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:y({},r)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:y({},r)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:y({},r)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function g(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?h(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):h(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var P={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},_={reducer:{initialState:{mode:null,feature:null,featureId:null,tempFeature:null},actions:{SET_MODE:(e,t)=>{var r=t?e.featureId:null;return l(l({},e),{},{featureId:r,mode:t})},SET_FEATURE:(e,t)=>l(l({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature}),SET_FEATURE_ID:(e,t)=>l(l({},e),{},{featureId:t})}},InitComponent:e=>{var i,p,l,s,{appState:u,mapState:d,pluginConfig:m,pluginState:y,services:h,mapProvider:g,buttonConfig:P}=e,{eventBus:_}=h,{mapColorScheme:S}=d.mapStyle||{},A=null===(i=null===(p=m.includeModes)||void 0===p?void 0:p.includes(u.mode))||void 0===i||i,O=null!==(l=null===(s=m.excludeModes)||void 0===s?void 0:s.includes(u.mode))&&void 0!==l&&l,b=d.isMapReady&&A&&!O;t(()=>{if(b&&!g.sketchViewModel){var{sketchViewModel:e,sketchLayer:t,emptySketchLayer:o}=(e=>{var{mapProvider:t}=e,{view:o}=t,n=new a({id:"sketchLayer"});o.map.add(n);var i=new a({id:"emptySketchLayer"});return o.map.add(i),{sketchViewModel:new r({view:o,layer:i,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:i,sketchLayer:n}})({mapProvider:g});return g.sketchViewModel=e,g.sketchLayer=t,g.emptySketchLayer=o,_.emit("draw:ready"),()=>{g.sketchViewModel=null,g.sketchLayer=null,g.emptySketchLayer=null}}},[d.isMapReady,u.mode]),t(()=>{if(b&&g.sketchViewModel){var e=function(e){var{pluginState:t,mapProvider:r,events:a,eventBus:i,buttonConfig:p,mapColorScheme:l}=e,{view:c,sketchViewModel:s,sketchLayer:u,emptySketchLayer:d}=r;if(!s)return null;var{drawDone:m,drawCancel:y}=p,{dispatch:h,mode:g,feature:P}=t,_=function(){var e=o(function*(){var e,r=null===(e=t.feature)||void 0===e||null===(e=e.properties)||void 0===e?void 0:e.id,a=null,o="active"===s.state&&!r;if("active"===s.state&&r&&(s.cancel(),yield new Promise(e=>setTimeout(e,50))),s.polygonSymbol=v(l),null==u||u.graphics.items.forEach(e=>{var t=E(e.attributes.id,e.geometry.rings,l);t&&(e.symbol=t.symbol),r===e.attributes.id&&(a=e)}),a&&!o&&s.layer===u)try{yield s.update(a,{tool:"reshape",toggleToolOnClick:!1})}catch(e){"AbortError"!==e.name&&console.error("Error updating sketch:",e)}});return function(){return e.apply(this,arguments)}}(),S=()=>{var e,t,r=null!==(e=null===(t=u.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(()=>s.update(r),0)},A=()=>_(),O=e=>{if(e){var t=f(e);i.emit("draw:updated",t),h({type:"SET_FEATURE",payload:{tempFeature:t}})}},b=function(){var e=o(function*(){g&&((s.updateGraphics||[]).length||S())});return function(){return e.apply(this,arguments)}}(),T=function(){var e=o(function*(e){var{toolEventInfo:t}=e,r=null==e?void 0:e.graphic;if(r&&"vertex-add"===(null==t?void 0:t.type)){var a,o,n=null===(a=r.geometry)||void 0===a?void 0:a.rings;(null==n?void 0:n.length)>1?setTimeout(()=>s.undo(),0):(null==n||null===(o=n[0])||void 0===o?void 0:o.length)>3&&O(r)}});return function(t){return e.apply(this,arguments)}}(),w=function(){var e=o(function*(e){var t,r=null==e||null===(t=e.graphics)||void 0===t?void 0:t[0];O(r)});return function(t){return e.apply(this,arguments)}}(),M=e=>{var r=E(e.id||e.properties.id||t.featureId,e.geometry.coordinates,l);r&&u.add(r)};i.on(a.MAP_STYLE_CHANGE,A);var k=s.on("update",e=>{var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,a=e.graphics[0];"move-start"===r&&(s.cancel(),S()),"reshape-stop"===r&&(n.isSimple(a.geometry)&&1===a.geometry.rings.length||s.undo()),"reshape-stop"!==r&&"vertex-remove"!==r||O(a)}),D=c.on("click",b),L=s.on("create",T),F=s.on("undo",w),C=m.onClick,R=y.onClick;return m.onClick=()=>{var e;null!=s&&null!==(e=s.layer)&&void 0!==e&&null!==(e=e.graphics)&&void 0!==e&&null!==(e=e.items)&&void 0!==e&&e.length||M(t.tempFeature),s.cancel(),s.layer=d,h({type:"SET_MODE",payload:null}),h({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=()=>{s.cancel(),u.removeAll(),P&&M(P),s.layer=d,h({type:"SET_MODE",payload:null}),i.emit("draw:cancelled")},()=>{i.off(a.MAP_STYLE_CHANGE,A),k.remove(),D.remove(),L.remove(),F.remove(),m.onClick=C,y.onClick=R}}({pluginState:y,mapProvider:g,events:c,eventBus:_,buttonConfig:P,mapColorScheme:S});return()=>{e()}}},[b,S,y])},buttons:[g({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode},enableWhen:e=>{var{pluginState:t}=e;return!!t.tempFeature}},P),g({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},P)],api:{newPolygon:(e,t)=>{var{mapState:r,pluginState:a,mapProvider:o,services:n}=e,{dispatch:i}=a,{sketchViewModel:p,sketchLayer:l}=o,{eventBus:c}=n;p.layer=l;var s=p.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},requestAnimationFrame(()=>{p.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=f(e.graphic);c.emit("draw:created",r),i({type:"SET_FEATURE",payload:{tempFeature:r}}),s.remove()}});p.polygonSymbol=v(r.mapStyle.mapColorScheme),p.create("polygon"),i({type:"SET_MODE",payload:"new-polygon"}),i({type:"SET_FEATURE_ID",payload:t})},editFeature:(e,t)=>{var{pluginState:r,mapProvider:a}=e,{dispatch:o}=r,{sketchViewModel:n,sketchLayer:i}=a,p=i.graphics.items.find(e=>e.attributes.id===t),l=p.geometry.extent,c=[l.xmin,l.ymin,l.xmax,l.ymax];a.fitToBounds(c),n.layer=i,n.update(p,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),o({type:"SET_FEATURE",payload:{feature:f(p)}}),o({type:"SET_MODE",payload:"edit-feature"})},addFeature:function(e,t){var{pluginState:r,mapState:a,mapProvider:o,services:n}=e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:p}=r,{mapStyle:l}=a,{sketchViewModel:c,sketchLayer:s,emptySketchLayer:u}=o,{eventBus:d}=n,m=E(t.id,t.geometry.coordinates,l.mapColorScheme,i),y={success:!0};return m?(s.add(m),c.layer=u,p({type:"SET_FEATURE",payload:{feature:t}}),d.emit("draw:add",t),y):(y.success=!1,y)},deleteFeature:(e,t)=>{var{pluginState:r,mapProvider:a,services:o}=e,{dispatch:n}=r,{sketchViewModel:i,sketchLayer:p,emptySketchLayer:l}=a,{eventBus:c}=o,s=p.graphics.items.find(e=>e.attributes.id===t);i.cancel(),p.remove(s),i.layer=l,n({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),c.emit("draw:delete",{featureId:t}),n({type:"SET_MODE",payload:null})}}};export{_ as manifest};
@@ -34,4 +34,5 @@ export const newPolygon = ({ mapState, pluginState, mapProvider, services }, fea
34
34
  sketchViewModel.create('polygon')
35
35
 
36
36
  dispatch({ type: 'SET_MODE', payload: 'new-polygon' })
37
+ dispatch({ type: 'SET_FEATURE_ID', payload: featureId })
37
38
  }
@@ -140,6 +140,11 @@ export function attachEvents ({ pluginState, mapProvider, events, eventBus, butt
140
140
  }
141
141
 
142
142
  const handleDone = () => {
143
+ if (!sketchViewModel?.layer?.graphics?.items?.length) {
144
+ // Done has been pressed but the graphic hasn't been finalised,
145
+ // so we need to add pluginState.tempFeature
146
+ addFeature(pluginState.tempFeature)
147
+ }
143
148
  sketchViewModel.cancel()
144
149
  sketchViewModel.layer = emptySketchLayer
145
150
  dispatch({ type: 'SET_MODE', payload: null })
@@ -147,6 +152,17 @@ export function attachEvents ({ pluginState, mapProvider, events, eventBus, butt
147
152
  eventBus.emit('draw:done', { newFeature: pluginState.tempFeature })
148
153
  }
149
154
 
155
+ const addFeature = (feature) => {
156
+ const graphic = createGraphic(
157
+ feature.id || feature.properties.id || pluginState.featureId,
158
+ feature.geometry.coordinates,
159
+ mapColorScheme
160
+ )
161
+ if (graphic) {
162
+ sketchLayer.add(graphic)
163
+ }
164
+ }
165
+
150
166
  const handleCancel = () => {
151
167
  sketchViewModel.cancel()
152
168
 
@@ -155,14 +171,7 @@ export function attachEvents ({ pluginState, mapProvider, events, eventBus, butt
155
171
 
156
172
  // Reinstate initial feature
157
173
  if (feature) {
158
- const graphic = createGraphic(
159
- feature.id || feature.properties.id,
160
- feature.geometry.coordinates,
161
- mapColorScheme
162
- )
163
- if (graphic) {
164
- sketchLayer.add(graphic)
165
- }
174
+ addFeature(feature)
166
175
  }
167
176
 
168
177
  // Prevent selection
@@ -1,12 +1,18 @@
1
1
  const initialState = {
2
2
  mode: null,
3
3
  feature: null,
4
+ featureId: null,
4
5
  tempFeature: null
5
6
  }
6
7
 
8
+ const setFeatureId = (state, featureId) => {
9
+ return { ...state, featureId }
10
+ }
7
11
  const setMode = (state, payload) => {
12
+ const featureId = payload ? state.featureId : null
8
13
  return {
9
14
  ...state,
15
+ featureId,
10
16
  mode: payload
11
17
  }
12
18
  }
@@ -21,7 +27,8 @@ const setFeature = (state, payload) => {
21
27
 
22
28
  const actions = {
23
29
  SET_MODE: setMode,
24
- SET_FEATURE: setFeature
30
+ SET_FEATURE: setFeature,
31
+ SET_FEATURE_ID: setFeatureId
25
32
  }
26
33
 
27
34
  export {
@@ -1 +1 @@
1
- import{useEffect as e,useRef as t}from"preact/compat";import{jsx as a,jsxs as r,Fragment as i}from"preact/jsx-runtime";import s 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){s(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))}),i=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 s={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===s.items.length&&(delete s.groupLabel,s.items.push({id:e.id,label:e.label})),a.push(s)}else if(e.groupLabel){var n=i.has(e.groupLabel)?i.get(e.groupLabel):{id:e.groupLabel,groupLabel:e.groupLabel,visibleWhen:!0,type:"checkbox",items:[]};i.has(e.groupLabel)||(i.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},[]);function u(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 c(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?u(Object(a),!0).forEach(function(t){s(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):u(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var y={minZoom:6,maxZoom:24,showInKey:!1,showInMenu:!1,visible:!0,style:{stroke:"#d4351c",strokeWidth:2,symbolDescription:"red outline"}},h=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],v=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],b=e=>v.some(t=>t in e);function m(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?m(Object(a),!0).forEach(function(t){s(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):m(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var g=(e,t)=>{var a,{id:r}=t,i=(e=>{!0!==e.visible&&!1!==e.visible&&(e.visible="hidden"!==e.visibility);var t=c(c(c({},y),e),{},{style:c(c({},y.style),e.style)}),a=e.style||{};return!("symbolDescription"in a)&&b(a)&&delete t.style.symbolDescription,h.forEach(e=>delete t[e]),t})(t);t.parentId&&("showInKey"in t||delete i.showInKey,"showInMenu"in t||delete i.showInMenu),e[r]=i;var{orderedDatasets:s}=e;s.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(g,{orderedDatasets:s});return e[r].sublayerIds=o,delete e[r].sublayers,f(f(f({},e),l),{},{orderedDatasets:s})}return f(f({},e),{},{orderedDatasets:s})},D=e=>{var t=(e.datasets||[]).reduce(g,{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 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 P(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){s(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 E=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,P(P({},a),{},{actionsArray:[...a.actionsArray,{method:e,parameters:t,actionId:A}]})),M={SET_DATASETS:(e,t)=>{var{mappedDatasets:a,orderedDatasets:r}=t;return P(P({},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:i,orderedDatasets:s}=D({datasets:[a]}),n=((e,t)=>{var a=[...e.menu],r=d({datasets:[t]}),i=a.find(e=>e.groupLabel===r[0].groupLabel);return i?i.items.push(...r[0].items):a.push(...r),a})(e,a);return I("addDataset",[a.id,r],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),i),orderedDatasets:[...e.orderedDatasets,...s],menu:n}))},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;if(!E(e,r,"removeDataset"))return e;var i=P({},e.mappedDatasets),s=[r,...(null===(a=i[r])||void 0===a?void 0:a.sublayerIds)||[]];s.forEach(e=>delete i[e]);var n=e.orderedDatasets.filter(e=>!s.includes(e));return P(P({},e),{},{mappedDatasets:i,orderedDatasets:n,menu:p(e.menu,s)})},SET_DATASET_VISIBILITY:(e,t)=>{var{datasetId:a,visible:r}=t;return E(e,a,"setDatasetVisibility")?e.mappedDatasets[a].visible===r?e:I("applyDatasetVisibility",[a,r],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:P(P({},e.mappedDatasets[a]),{},{visible:r})})})):e},SET_GLOBAL_VISIBILITY:(e,t)=>{var{visible:a}=t;return I("applyGlobalVisibility",[a],P(P({},e),{},{globals:P(P({},e.globals),{},{visible:a})}))},SET_DATASET_STYLE:(e,t)=>{var{datasetId:a,styleChanges:r,mapStyle:i}=t;if(!E(e,a,"setDatasetStyle"))return e;var s=P(P({},e.mappedDatasets[a].style),r),n=P(P(P({},e.mappedDatasets[a]),r),{},{style:s});return I("applyStyle",[a,i],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:n})}))},SET_OPACITY:(e,t)=>{var{datasetId:a,opacity:r}=t;if(!E(e,a,"setOpacity"))return e;var i=P(P({},e.mappedDatasets[a].style),{},{opacity:r}),s=P(P({},e.mappedDatasets[a]),{},{style:i});return I("applyDatasetOpacity",[a],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:s})}))},SET_GLOBAL_OPACITY:(e,t)=>{var{opacity:a}=t;return I("applyGlobalOpacity",[],P(P({},e),{},{globals:P(P({},e.globals),{},{opacity:a})}))},HIDE_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!E(e,a,"setFeatureVisibility - hideFeatures"))return e;var i=P({},e.mappedDatasets[a]),s=i.hiddenFeatures||[],n=Array.from(new Set([...s,...r]));return i.hiddenFeatures=n,I("applyFeatureFilter",[a],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:i})}))},SHOW_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!E(e,a,"setFeatureVisibility - showFeatures"))return e;var i=P({},e.mappedDatasets[a]),s=(i.hiddenFeatures||[]).filter(e=>!r.includes(e));return i.hiddenFeatures=s.length?s:[-1],I("applyFeatureFilter",[a],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:i})}))},REMOVE_ADAPTER_ACTIONS:(e,t)=>null!=t&&t.length?P(P({},e),{},{actionsArray:e.actionsArray.filter(e=>!t.includes(e))}):e,SET_GLOBAL_STATE:(e,t)=>I("applyGlobalOpacity",[],P(P({},e),{},{globals:P(P({},e.globals),t)})),SET_MENU:(e,t)=>{var{menu:a}=t;return P(P({},e),{},{menu:a})}},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_FEATURES_SUPPRESSED:"map:setfeaturessuppressed",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"},w=function(){var e=n(function*(e,t,a,r){var i=a(e,t),s="string"==typeof i?{url:i}:i,{url:n,headers:o={}}=s,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,i){return e.apply(this,arguments)}}(),C=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),j=e=>{var t=1/0,a=1/0,r=-1/0,i=-1/0,s=(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]),i=Math.max(i,o[1])):e.forEach(e=>s(e,n-1))};switch(e.type){case"Point":s(e.coordinates,0);break;case"LineString":case"MultiPoint":s(e.coordinates,1);break;case"Polygon":case"MultiLineString":s(e.coordinates,2);break;case"MultiPolygon":s(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var s=j(e);t=Math.min(t,s[0]),a=Math.min(a,s[1]),r=Math.max(r,s[2]),i=Math.max(i,s[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,i]},L=e=>({type:"FeatureCollection",features:Array.from(e.values()).map(e=>e.feature)}),k=function(){var e=n(function*(e,t){var{map:a,dynamicGeoJSON:r,onUpdate:i}=t,{url:s,idProperty:n,transformRequest:o,maxFeatures:l,minZoom:d=0}=r,p=a.getZoom();if(!(p<d)){var u=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(a);if(!(e.fetchedBbox&&(c=e.fetchedBbox,y=u,c&&y&&y[0]>=c[0]&&y[1]>=c[1]&&y[2]<=c[2]&&y[3]<=c[3]))){var c,y,h,v;e.currentController&&e.currentController.abort(),e.currentController=new AbortController;try{var b={bbox:u,zoom:p},m=yield w(s,b,o,e.currentController.signal);((e,t,a)=>{var r=Date.now();t.features.forEach(t=>{var i=((e,t)=>{var a,r;return t&&null!==(a=null===(r=e.properties)||void 0===r?void 0:r[t])&&void 0!==a?a:e.id})(t,a);null!=i?e.set(i,{feature:t,bbox:j(t.geometry),lastSeenAt:r}):console.warn("Feature missing ID, skipping:",t)})})(e.features,m,n),e.fetchedBbox=(h=e.fetchedBbox,v=u,h?[Math.min(h[0],v[0]),Math.min(h[1],v[1]),Math.max(h[2],v[2]),Math.max(h[3],v[3])]:[...v]);var f=e.features.size;((e,t,a)=>{if(a&&!(e.size<=1.2*a)){var r=a,i=[],s=[];for(var[n,o]of e)C(o.bbox,t)?i.push(n):s.push({id:n,lastSeenAt:o.lastSeenAt});s.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var l=e.size-r,d=0;d<l&&d<s.length;d++)e.delete(s[d].id);if(e.size>r)for(var p=e.size-r,u=i.map(t=>({id:t,lastSeenAt:e.get(t).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),c=0;c<p&&c<u.length;c++)e.delete(u[c].id)}})(e.features,u,l),e.features.size<f&&(e.fetchedBbox=u),i(r.id,L(e.features))}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(r.id,":"),e)}}}});return function(t,a){return e.apply(this,arguments)}}(),F=e=>{var t,a,r,i,{dynamicGeoJSON:s,map:n,onUpdate:o}=e,l={features:new Map,fetchedBbox:null,currentController:null},d=()=>k(l,{map:n,dynamicGeoJSON:s,onUpdate:o}),p=(t=d,a=200,(i=function(){for(var e=arguments.length,i=new Array(e),s=0;s<e;s++)i[s]=arguments[s];clearTimeout(r),r=setTimeout(()=>t(...i),a)}).cancel=()=>{clearTimeout(r),r=null},i),u=()=>{p()};return n.on("moveend",u),d(),{destroy(){n.off("moveend",u),p.cancel(),l.currentController&&l.currentController.abort()},clear(){l.features.clear(),l.fetchedBbox=null,o(s.id,{type:"FeatureCollection",features:[]})},refresh(){l.features.clear(),l.fetchedBbox=null,d()},getFeatureCount:()=>l.features.size,reapply(){l.features.size>0&&o(s.id,L(l.features))}}},N={},G=e=>{N=e},x=e=>{var t,a=(null===(t=N)||void 0===t||null===(t=t.current)||void 0===t?void 0:t.menuState)||{};for(var[r,i]of Object.entries(e)){var s=a[r];if(!i.includes(s))return!1}return!0},R=e=>(Array.isArray(e)?e:[e]).includes(B()),B=()=>$.mapStyle.id,V=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 U(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?U(Object(a),!0).forEach(function(t){s(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):U(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={},W=(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){s(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 W(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?(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&&!R(a))return!1;if("menu"===t&&!x(a))return!1}return!0}return!0})(t)?"visible":"none":e?"visible":"none"}get keyVisibility(){return this.showInKey&&"visible"===this.visibility}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 b(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}get keyDefinition(){return{id:this.id,type:"dataset",label:this.label,hasSymbol:this.hasSymbol,hasPattern:this.hasPattern,style:this.style,symbolDescription:this.symbolDescription}}}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){s(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:[]})},_lastMenuState:{},invalidateKeyItemsOnMenuStateChange(e){e!==this._lastMenuState&&(this._lastMenuState=e,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.keyVisibility)if(a.hasSublayers||a.groupLabel){var r=(a=>{if(t.has(a))return t.get(a);var r={type:"group",id:a.toLowerCase().replaceAll(/\s+/g,"-"),groupLabel:a,keyDefinitions:[]};return t.set(a,r),e.push(r),r})(a.groupLabel||a.label);a.hasSublayers||r.keyDefinitions.push(a.keyDefinition)}else e.push({type:"flat",id:a.id,keyDefinition:a.keyDefinition})});var a=e.filter(e=>{var t;return"flat"===e.type||Boolean(null===(t=e.keyDefinitions)||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});var ee,te=e=>{var{adapter:t,pluginConfig:a,mapStyle:r,mapProvider:i,events:s,dispatch:n,eventBus:o}=e,{datasets:l}=a,p=new Map;a.globals&&n({type:"SET_GLOBAL_STATE",payload:a.globals});var u=l.map(e=>((e,t)=>{var a=e.style||{},r=c(c({},t.style),a);!("symbolDescription"in a)&&b(a)&&delete r.symbolDescription;var i=c({},e);delete i.style,h.forEach(e=>delete i[e]);var s=c({},t);return delete s.style,c(c(c({},s),i),r)})(e,y)),{mappedDatasets:v,orderedDatasets:m}=D({datasets:l});t.createDataset&&$.attachCreateDataset(t.createDataset),$.attach(v,m,r);var f=d({datasets:u});o.requestOnce("menu:state",G),n({type:"SET_MENU",payload:{menu:f}}),n({type:"SET_DATASETS",payload:{mappedDatasets:v,orderedDatasets:m}}),t.init().then(()=>{$.forEachDataset(e=>{if(e.hasDynamicGeoJSON){var{dynamicGeoJSON:a}=e,r=F({dynamicGeoJSON:a,map:i.map,onUpdate:(e,a)=>t.setData(e,a)});p.set(e.id,r)}}),t.attachDynamicSources(p),o.emit("datasets:ready")});var g=()=>{t.onMapSizeChange()};o.on(s.MAP_SIZE_CHANGE,g);var S=o.emitWhenRequested("datasets:registry",$);return o.on("menu:changed",e=>{$.invalidateKeyItemsOnMenuStateChange(e),t.applyGlobalVisibility()}),{remove(){o.off(s.MAP_SIZE_CHANGE,g),S(),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={},ie=function(){var e=n(function*(e,t,a){var r,i,s=yield ae(e);return ee=new s(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===(i=ee.onMapSizeChange)||void 0===i?void 0:i.bind(ee),ee});return function(t,a,r){return e.apply(this,arguments)}}();var se=function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:i,sublayerId:s}=r,n=s?"".concat(i,"-").concat(s):i;a(n?{type:"SET_DATASET_VISIBILITY",payload:{datasetId:n,visible:t}}:{type:"SET_GLOBAL_VISIBILITY",payload:{visible:t}})},ne=e=>{var{menuGroupItem:t,onChange:i}=e,s=$.getDataset(t.id);if(!s)return null;var n=s.isSublayer?s.parentId:s.id,o=s.isSublayer?s.id:void 0,l="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(s.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:s.id,"data-dataset-id":n,"data-sublayer-id":o,name:"layers",type:"checkbox",value:s.id,checked:s.isLocallyVisible,onChange:i}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:s.id,children:s.label})]})},s.id)},oe=e=>{var{menuGroup:t,children:s}=e;if(!t.groupLabel)return a(i,{children:s});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})}),s]})},t.id)},le={InitComponent:function(a){var{pluginConfig:r,pluginState:i,appState:s,mapState:o,mapProvider:l,services:d}=a,{dispatch:p}=i,{eventBus:u,symbolRegistry:c,patternRegistry:y}=d,h=Boolean(null==l?void 0:l.isBaseMapReady());e(()=>{var e=!1!==r.hasMenu&&(e=>e.datasets.some(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))}))(r);e||(u.emit(T.APP_REMOVE_PANEL,"datasetsLayers"),u.emit(T.APP_TOGGLE_BUTTON_STATE,{id:"datasetsLayers",prop:"hidden",value:!0}))},[r.hasMenu]),t(i).current=i;var v=t(null);return e(()=>{var e,t,a,i,d=null===(e=null===(t=r.includeModes)||void 0===t?void 0:t.includes(s.mode))||void 0===e||e,b=null!==(a=null===(i=r.excludeModes)||void 0===i?void 0:i.includes(s.mode))&&void 0!==a&&a;if(h&&d&&!b&&!v.current){var m=function(){var e=n(function*(){var e=yield ie(l,c,y);v.current=te({adapter:e,pluginConfig:r,mapStyle:o.mapStyle,mapProvider:l,events:T,dispatch:p,eventBus:u})});return function(){return e.apply(this,arguments)}}();m()}},[h,s.mode]),e(()=>{$.attach(i.mappedDatasets,i.orderedDatasets),u.emit("datasets:changed")},[i.mappedDatasets,i.orderedDatasets]),e(()=>{$.attachMapStyle(o.mapStyle),null!=re&&re.onMapStyleChange&&re.onMapStyleChange()},[o.mapStyle]),e(()=>{return e=i.globals,void(H=e);var e},[i.globals]),e(()=>{var{actionsArray:e}=i;e.length&&(e.forEach(e=>{var{method:t,parameters:a}=e;return re[t](...a)}),p({type:"REMOVE_ADAPTER_ACTIONS",payload:e}))},[i.actionsArray]),e(()=>()=>{v.current&&(v.current.remove(),v.current=null)},[]),null},reducer:{initialState:{globals:{visible:!0,opacity:1,opacityMode:"dataset"},key:{items:[],hasGroups:!1},mappedDatasets:{},orderedDatasets:[],actionsArray:[],menu:[]},actions:M},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:i=[]}=t,s=e=>{var{value:a,checked:r}=e.target;se({pluginState:t},r,{datasetId:a})},n=i.some(e=>e.groupLabel),o="im-c-datasets-layers".concat(n?" im-c-datasets-layers--has-groups":"");return a("div",{className:o,children:i.map(e=>r(oe,{menuGroup:e,children:[" ",e.items.map(e=>a(ne,{menuGroupItem:e,onChange:s},e.id))]},e.id))})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",mobile:{slot:"top-left",showLabel:!0},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:se,setFeatureVisibility:function(e,t,a){var{pluginState:{dispatch:r}}=e,{datasetId:i=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(i){var s=$.getDataset(i);!s||s.idProperty||s.generateIds||_.warn('setFeatureVisibility: Dataset "'.concat(i,'" 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:i,featureIds:a}})},setStyle:function(e,t){var{pluginState:{dispatch:a},mapState:r}=e,{datasetId:i,sublayerId:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};a({type:"SET_DATASET_STYLE",payload:{datasetId:i=s?"".concat(i,"-").concat(s):i,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 i=$.getDataset(a);return i?i.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:i,sublayerId:s}=r,n=s?"".concat(i,"-").concat(s):i;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:i,sublayerId:s}=r,n=s?"".concat(i,"-").concat(s):i;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:i}=a,s=$.getDataset(i);s?null!=s&&s.tiles?_.warn('setData called on vector tile dataset "'.concat(i,'" — has no effect')):re.setData(i,t):_.warn("setData: Dataset with id ".concat(i," not found"))},setGlobals:(e,t)=>{var{pluginState:{dispatch:a}}=e,{opacityMode:r}=t,i={},s=!1;r&&(["dataset","global","multiply"].includes(r)?(s=!0,i.opacityMode=r):_.warn("Ignoring invalid opacityMode: ".concat(r,". Must be one of 'dataset', 'global' or 'multiply'."))),s?a({type:"SET_GLOBAL_STATE",payload:i}):_.warn("setGlobals: requires a valid value for opacityMode to be set")}}},de=Object.freeze({__proto__:null,manifest:le});export{J as D,$ as d,V as h,_ as l,de as m};
1
+ import{useEffect as e,useRef as t}from"preact/compat";import{jsx as a,jsxs as r,Fragment as i}from"preact/jsx-runtime";import s 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){s(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))}),i=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 s={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===s.items.length&&(delete s.groupLabel,s.items.push({id:e.id,label:e.label})),a.push(s)}else if(e.groupLabel){var n=i.has(e.groupLabel)?i.get(e.groupLabel):{id:e.groupLabel,groupLabel:e.groupLabel,visibleWhen:!0,type:"checkbox",items:[]};i.has(e.groupLabel)||(i.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},[]);function u(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 c(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?u(Object(a),!0).forEach(function(t){s(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):u(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var y={minZoom:6,maxZoom:24,showInKey:!1,showInMenu:!1,visible:!0,style:{stroke:"#d4351c",strokeWidth:2,symbolDescription:"red outline"}},h=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],v=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],b=e=>v.some(t=>t in e);function m(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?m(Object(a),!0).forEach(function(t){s(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):m(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var g=(e,t)=>{var a,{id:r}=t,i=(e=>{!0!==e.visible&&!1!==e.visible&&(e.visible="hidden"!==e.visibility);var t=c(c(c({},y),e),{},{style:c(c({},y.style),e.style)}),a=e.style||{};return!("symbolDescription"in a)&&b(a)&&delete t.style.symbolDescription,h.forEach(e=>delete t[e]),t})(t);t.parentId&&("showInKey"in t||delete i.showInKey,"showInMenu"in t||delete i.showInMenu),e[r]=i;var{orderedDatasets:s}=e;s.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(g,{orderedDatasets:s});return e[r].sublayerIds=o,delete e[r].sublayers,f(f(f({},e),l),{},{orderedDatasets:s})}return f(f({},e),{},{orderedDatasets:s})},D=e=>{var t=(e.datasets||[]).reduce(g,{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 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 P(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){s(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 E=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,P(P({},a),{},{actionsArray:[...a.actionsArray,{method:e,parameters:t,actionId:A}]})),M={SET_DATASETS:(e,t)=>{var{mappedDatasets:a,orderedDatasets:r}=t;return P(P({},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:i,orderedDatasets:s}=D({datasets:[a]}),n=((e,t)=>{var a=[...e.menu],r=d({datasets:[t]}),i=a.find(e=>e.groupLabel===r[0].groupLabel);return i?i.items.push(...r[0].items):a.push(...r),a})(e,a);return I("addDataset",[a.id,r],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),i),orderedDatasets:[...e.orderedDatasets,...s],menu:n}))},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;if(!E(e,r,"removeDataset"))return e;var i=P({},e.mappedDatasets),s=[r,...(null===(a=i[r])||void 0===a?void 0:a.sublayerIds)||[]];s.forEach(e=>delete i[e]);var n=e.orderedDatasets.filter(e=>!s.includes(e));return P(P({},e),{},{mappedDatasets:i,orderedDatasets:n,menu:p(e.menu,s)})},SET_DATASET_VISIBILITY:(e,t)=>{var{datasetId:a,visible:r}=t;return E(e,a,"setDatasetVisibility")?e.mappedDatasets[a].visible===r?e:I("applyDatasetVisibility",[a,r],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:P(P({},e.mappedDatasets[a]),{},{visible:r})})})):e},SET_GLOBAL_VISIBILITY:(e,t)=>{var{visible:a}=t;return I("applyGlobalVisibility",[a],P(P({},e),{},{globals:P(P({},e.globals),{},{visible:a})}))},SET_DATASET_STYLE:(e,t)=>{var{datasetId:a,styleChanges:r,mapStyle:i}=t;if(!E(e,a,"setDatasetStyle"))return e;var s=P(P({},e.mappedDatasets[a].style),r),n=P(P(P({},e.mappedDatasets[a]),r),{},{style:s});return I("applyStyle",[a,i],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:n})}))},SET_OPACITY:(e,t)=>{var{datasetId:a,opacity:r}=t;if(!E(e,a,"setOpacity"))return e;var i=P(P({},e.mappedDatasets[a].style),{},{opacity:r}),s=P(P({},e.mappedDatasets[a]),{},{style:i});return I("applyDatasetOpacity",[a],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:s})}))},SET_GLOBAL_OPACITY:(e,t)=>{var{opacity:a}=t;return I("applyGlobalOpacity",[],P(P({},e),{},{globals:P(P({},e.globals),{},{opacity:a})}))},HIDE_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!E(e,a,"setFeatureVisibility - hideFeatures"))return e;var i=P({},e.mappedDatasets[a]),s=i.hiddenFeatures||[],n=Array.from(new Set([...s,...r]));return i.hiddenFeatures=n,I("applyFeatureFilter",[a],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:i})}))},SHOW_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!E(e,a,"setFeatureVisibility - showFeatures"))return e;var i=P({},e.mappedDatasets[a]),s=(i.hiddenFeatures||[]).filter(e=>!r.includes(e));return i.hiddenFeatures=s.length?s:[-1],I("applyFeatureFilter",[a],P(P({},e),{},{mappedDatasets:P(P({},e.mappedDatasets),{},{[a]:i})}))},REMOVE_ADAPTER_ACTIONS:(e,t)=>null!=t&&t.length?P(P({},e),{},{actionsArray:e.actionsArray.filter(e=>!t.includes(e))}):e,SET_GLOBAL_STATE:(e,t)=>I("applyGlobalOpacity",[],P(P({},e),{},{globals:P(P({},e.globals),t)})),SET_MENU:(e,t)=>{var{menu:a}=t;return P(P({},e),{},{menu:a})}},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_FEATURES_SUPPRESSED:"map:setfeaturessuppressed",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"},w=function(){var e=n(function*(e,t,a,r){var i=a(e,t),s="string"==typeof i?{url:i}:i,{url:n,headers:o={}}=s,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,i){return e.apply(this,arguments)}}(),C=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),j=e=>{var t=1/0,a=1/0,r=-1/0,i=-1/0,s=(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]),i=Math.max(i,o[1])):e.forEach(e=>s(e,n-1))};switch(e.type){case"Point":s(e.coordinates,0);break;case"LineString":case"MultiPoint":s(e.coordinates,1);break;case"Polygon":case"MultiLineString":s(e.coordinates,2);break;case"MultiPolygon":s(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var s=j(e);t=Math.min(t,s[0]),a=Math.min(a,s[1]),r=Math.max(r,s[2]),i=Math.max(i,s[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,i]},L=e=>({type:"FeatureCollection",features:Array.from(e.values()).map(e=>e.feature)}),k=function(){var e=n(function*(e,t){var{map:a,dynamicGeoJSON:r,onUpdate:i}=t,{url:s,idProperty:n,transformRequest:o,maxFeatures:l,minZoom:d=0}=r,p=a.getZoom();if(!(p<d)){var u=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(a);if(!(e.fetchedBbox&&(c=e.fetchedBbox,y=u,c&&y&&y[0]>=c[0]&&y[1]>=c[1]&&y[2]<=c[2]&&y[3]<=c[3]))){var c,y,h,v;e.currentController&&e.currentController.abort(),e.currentController=new AbortController;try{var b={bbox:u,zoom:p},m=yield w(s,b,o,e.currentController.signal);((e,t,a)=>{var r=Date.now();t.features.forEach(t=>{var i=((e,t)=>{var a,r;return t&&null!==(a=null===(r=e.properties)||void 0===r?void 0:r[t])&&void 0!==a?a:e.id})(t,a);null!=i?e.set(i,{feature:t,bbox:j(t.geometry),lastSeenAt:r}):console.warn("Feature missing ID, skipping:",t)})})(e.features,m,n),e.fetchedBbox=(h=e.fetchedBbox,v=u,h?[Math.min(h[0],v[0]),Math.min(h[1],v[1]),Math.max(h[2],v[2]),Math.max(h[3],v[3])]:[...v]);var f=e.features.size;((e,t,a)=>{if(a&&!(e.size<=1.2*a)){var r=a,i=[],s=[];for(var[n,o]of e)C(o.bbox,t)?i.push(n):s.push({id:n,lastSeenAt:o.lastSeenAt});s.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var l=e.size-r,d=0;d<l&&d<s.length;d++)e.delete(s[d].id);if(e.size>r)for(var p=e.size-r,u=i.map(t=>({id:t,lastSeenAt:e.get(t).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),c=0;c<p&&c<u.length;c++)e.delete(u[c].id)}})(e.features,u,l),e.features.size<f&&(e.fetchedBbox=u),i(r.id,L(e.features))}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(r.id,":"),e)}}}});return function(t,a){return e.apply(this,arguments)}}(),F=e=>{var t,a,r,i,{dynamicGeoJSON:s,map:n,onUpdate:o}=e,l={features:new Map,fetchedBbox:null,currentController:null},d=()=>k(l,{map:n,dynamicGeoJSON:s,onUpdate:o}),p=(t=d,a=200,(i=function(){for(var e=arguments.length,i=new Array(e),s=0;s<e;s++)i[s]=arguments[s];clearTimeout(r),r=setTimeout(()=>t(...i),a)}).cancel=()=>{clearTimeout(r),r=null},i),u=()=>{p()};return n.on("moveend",u),d(),{destroy(){n.off("moveend",u),p.cancel(),l.currentController&&l.currentController.abort()},clear(){l.features.clear(),l.fetchedBbox=null,o(s.id,{type:"FeatureCollection",features:[]})},refresh(){l.features.clear(),l.fetchedBbox=null,d()},getFeatureCount:()=>l.features.size,reapply(){l.features.size>0&&o(s.id,L(l.features))}}},N={},G=e=>{N=e},x=e=>{var t,a=(null===(t=N)||void 0===t||null===(t=t.current)||void 0===t?void 0:t.menuState)||{};for(var[r,i]of Object.entries(e)){var s=a[r];if(!i.includes(s))return!1}return!0},R=e=>(Array.isArray(e)?e:[e]).includes(B()),B=()=>$.mapStyle.id,V=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 K(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 U{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?K(Object(a),!0).forEach(function(t){s(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):K(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={},W=(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){s(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 W(a,r)}get hasDynamicGeoJSON(){return Boolean(this._datasetDefinition.dynamicGeoJSON)}get dynamicGeoJSON(){return new U(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?(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&&!R(a))return!1;if("menu"===t&&!x(a))return!1}return!0}return!0})(t)?"visible":"none":e?"visible":"none"}get keyVisibility(){return this.showInKey&&"visible"===this.visibility}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 b(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}get groupStyle(){var e;return this._datasetDefinition.groupStyle?this._datasetDefinition.groupStyle:null===(e=this.parent)||void 0===e?void 0:e.groupStyle}get hasRampStyleKey(){return"ramp"===this.groupStyle}get keyDefinition(){return{id:this.id,type:"dataset",label:this.label,hasSymbol:this.hasSymbol,hasPattern:this.hasPattern,hasRampStyleKey:this.hasRampStyleKey,style:this.style,symbolDescription:this.symbolDescription}}}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){s(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:[]})},_lastMenuState:{},invalidateKeyItemsOnMenuStateChange(e){e!==this._lastMenuState&&(this._lastMenuState=e,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.keyVisibility)if(a.hasSublayers||a.groupLabel){var r=((a,r)=>{if(t.has(a))return t.get(a);var i={type:"group",id:a.toLowerCase().replaceAll(/\s+/g,"-"),groupLabel:a,groupStyle:r,keyDefinitions:[]};return t.set(a,i),e.push(i),i})(a.groupLabel||a.label,a.groupStyle);a.hasSublayers||r.keyDefinitions.push(a.keyDefinition)}else e.push({type:"flat",id:a.id,keyDefinition:a.keyDefinition})});var a=e.filter(e=>{var t;return"flat"===e.type||Boolean(null===(t=e.keyDefinitions)||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});var ee,te=e=>{var{adapter:t,pluginConfig:a,mapStyle:r,mapProvider:i,events:s,dispatch:n,eventBus:o}=e,{datasets:l}=a,p=new Map;a.globals&&n({type:"SET_GLOBAL_STATE",payload:a.globals});var u=l.map(e=>((e,t)=>{var a=e.style||{},r=c(c({},t.style),a);!("symbolDescription"in a)&&b(a)&&delete r.symbolDescription;var i=c({},e);delete i.style,h.forEach(e=>delete i[e]);var s=c({},t);return delete s.style,c(c(c({},s),i),r)})(e,y)),{mappedDatasets:v,orderedDatasets:m}=D({datasets:l});t.createDataset&&$.attachCreateDataset(t.createDataset),$.attach(v,m,r);var f=d({datasets:u});o.requestOnce("menu:state",G),n({type:"SET_MENU",payload:{menu:f}}),n({type:"SET_DATASETS",payload:{mappedDatasets:v,orderedDatasets:m}}),t.init().then(()=>{$.forEachDataset(e=>{if(e.hasDynamicGeoJSON){var{dynamicGeoJSON:a}=e,r=F({dynamicGeoJSON:a,map:i.map,onUpdate:(e,a)=>t.setData(e,a)});p.set(e.id,r)}}),t.attachDynamicSources(p),o.emit("datasets:ready")});var g=()=>{t.onMapSizeChange()};o.on(s.MAP_SIZE_CHANGE,g);var S=o.emitWhenRequested("datasets:registry",$);return o.on("menu:changed",e=>{$.invalidateKeyItemsOnMenuStateChange(e),t.applyGlobalVisibility()}),{remove(){o.off(s.MAP_SIZE_CHANGE,g),S(),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={},ie=function(){var e=n(function*(e,t,a){var r,i,s=yield ae(e);return ee=new s(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===(i=ee.onMapSizeChange)||void 0===i?void 0:i.bind(ee),ee});return function(t,a,r){return e.apply(this,arguments)}}();var se=function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:i,sublayerId:s}=r,n=s?"".concat(i,"-").concat(s):i;a(n?{type:"SET_DATASET_VISIBILITY",payload:{datasetId:n,visible:t}}:{type:"SET_GLOBAL_VISIBILITY",payload:{visible:t}})},ne=e=>{var{menuGroupItem:t,onChange:i}=e,s=$.getDataset(t.id);if(!s)return null;var n=s.isSublayer?s.parentId:s.id,o=s.isSublayer?s.id:void 0,l="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(s.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:s.id,"data-dataset-id":n,"data-sublayer-id":o,name:"layers",type:"checkbox",value:s.id,checked:s.isLocallyVisible,onChange:i}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:s.id,children:s.label})]})},s.id)},oe=e=>{var{menuGroup:t,children:s}=e;if(!t.groupLabel)return a(i,{children:s});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})}),s]})},t.id)},le={InitComponent:function(a){var{pluginConfig:r,pluginState:i,appState:s,mapState:o,mapProvider:l,services:d}=a,{dispatch:p}=i,{eventBus:u,symbolRegistry:c,patternRegistry:y}=d,h=Boolean(null==l?void 0:l.isBaseMapReady());e(()=>{var e=!1!==r.hasMenu&&(e=>e.datasets.some(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))}))(r);e||(u.emit(T.APP_REMOVE_PANEL,"datasetsLayers"),u.emit(T.APP_TOGGLE_BUTTON_STATE,{id:"datasetsLayers",prop:"hidden",value:!0}))},[r.hasMenu]),t(i).current=i;var v=t(null);return e(()=>{var e,t,a,i,d=null===(e=null===(t=r.includeModes)||void 0===t?void 0:t.includes(s.mode))||void 0===e||e,b=null!==(a=null===(i=r.excludeModes)||void 0===i?void 0:i.includes(s.mode))&&void 0!==a&&a;if(h&&d&&!b&&!v.current){var m=function(){var e=n(function*(){var e=yield ie(l,c,y);v.current=te({adapter:e,pluginConfig:r,mapStyle:o.mapStyle,mapProvider:l,events:T,dispatch:p,eventBus:u})});return function(){return e.apply(this,arguments)}}();m()}},[h,s.mode]),e(()=>{$.attach(i.mappedDatasets,i.orderedDatasets),u.emit("datasets:changed")},[i.mappedDatasets,i.orderedDatasets]),e(()=>{$.attachMapStyle(o.mapStyle),null!=re&&re.onMapStyleChange&&re.onMapStyleChange()},[o.mapStyle]),e(()=>{return e=i.globals,void(H=e);var e},[i.globals]),e(()=>{var{actionsArray:e}=i;e.length&&(e.forEach(e=>{var{method:t,parameters:a}=e;return re[t](...a)}),p({type:"REMOVE_ADAPTER_ACTIONS",payload:e}))},[i.actionsArray]),e(()=>()=>{v.current&&(v.current.remove(),v.current=null)},[]),null},reducer:{initialState:{globals:{visible:!0,opacity:1,opacityMode:"dataset"},key:{items:[],hasGroups:!1},mappedDatasets:{},orderedDatasets:[],actionsArray:[],menu:[]},actions:M},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:i=[]}=t,s=e=>{var{value:a,checked:r}=e.target;se({pluginState:t},r,{datasetId:a})},n=i.some(e=>e.groupLabel),o="im-c-datasets-layers".concat(n?" im-c-datasets-layers--has-groups":"");return a("div",{className:o,children:i.map(e=>r(oe,{menuGroup:e,children:[" ",e.items.map(e=>a(ne,{menuGroupItem:e,onChange:s},e.id))]},e.id))})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",mobile:{slot:"top-left",showLabel:!0},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:se,setFeatureVisibility:function(e,t,a){var{pluginState:{dispatch:r}}=e,{datasetId:i=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(i){var s=$.getDataset(i);!s||s.idProperty||s.generateIds||_.warn('setFeatureVisibility: Dataset "'.concat(i,'" 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:i,featureIds:a}})},setStyle:function(e,t){var{pluginState:{dispatch:a},mapState:r}=e,{datasetId:i,sublayerId:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};a({type:"SET_DATASET_STYLE",payload:{datasetId:i=s?"".concat(i,"-").concat(s):i,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 i=$.getDataset(a);return i?i.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:i,sublayerId:s}=r,n=s?"".concat(i,"-").concat(s):i;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:i,sublayerId:s}=r,n=s?"".concat(i,"-").concat(s):i;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:i}=a,s=$.getDataset(i);s?null!=s&&s.tiles?_.warn('setData called on vector tile dataset "'.concat(i,'" — has no effect')):re.setData(i,t):_.warn("setData: Dataset with id ".concat(i," not found"))},setGlobals:(e,t)=>{var{pluginState:{dispatch:a}}=e,{opacityMode:r}=t,i={},s=!1;r&&(["dataset","global","multiply"].includes(r)?(s=!0,i.opacityMode=r):_.warn("Ignoring invalid opacityMode: ".concat(r,". Must be one of 'dataset', 'global' or 'multiply'."))),s?a({type:"SET_GLOBAL_STATE",payload:i}):_.warn("setGlobals: requires a valid value for opacityMode to be set")}}},de=Object.freeze({__proto__:null,manifest:le});export{J as D,$ as d,V as h,_ as l,de as m};