@defra/interactive-map 0.0.35-alpha → 0.0.36-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/index.css +1 -1
- package/dist/esm/im-core.js +1 -1
- package/dist/esm/im-shell.js +1 -1
- package/dist/umd/im-core.js +1 -1
- package/dist/umd/index.js +1 -1
- package/docs/api.md +15 -1
- package/package.json +1 -1
- package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +1 -1
- package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
- package/plugins/beta/map-styles/dist/umd/index.js +1 -1
- package/plugins/datasets/dist/css/index.css +1 -1
- package/plugins/datasets/dist/esm/esriLayerAdapter.js +1 -1
- package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-esri-adapter.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
- package/plugins/datasets/src/adapters/esri/esriLayerAdapter.js +7 -1
- package/plugins/datasets/src/adapters/esri/esriLayerAdapter.test.js +1 -0
- package/plugins/datasets/src/components/LayersMenu/Layers.module.scss +3 -0
- package/plugins/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx +3 -1
- package/plugins/datasets/src/components/LayersMenu/LayersRadioGroupWrapper.jsx +3 -1
- package/plugins/datasets/src/initialise/initialiseDatasets.js +2 -2
- package/plugins/datasets/src/reducers/pluginState.js +2 -0
- package/plugins/datasets/src/registry/datasetRegistry.js +1 -1
- package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/index.js +1 -1
- package/plugins/interact/src/hooks/useMapItemList.js +2 -2
- package/providers/beta/openlayers/src/utils/tileLayers.test.js +1 -1
- package/providers/maplibre/src/utils/queryFeatures.test.js +6 -6
- package/src/App/components/Actions/Actions.jsx +2 -2
- package/src/App/components/MoveControl/MoveControl.jsx +113 -0
- package/src/App/components/MoveControl/MoveControl.module.scss +121 -0
- package/src/App/components/MoveControl/MoveControl.test.jsx +196 -0
- package/src/App/components/Tabs/Tabs.jsx +1 -0
- package/src/App/components/Tabs/Tabs.test.jsx +11 -34
- package/src/App/controls/keyboardActions.js +4 -2
- package/src/App/hooks/useMarkersAPI.test.js +1 -1
- package/src/App/registry/pluginRegistry.test.js +2 -2
- package/src/App/renderer/mapButtons.test.js +8 -8
- package/src/App/renderer/mapControls.js +6 -1
- package/src/App/renderer/mapControls.test.js +24 -0
- package/src/App/renderer/slots.js +1 -0
- package/src/App/store/appActionsMap.js +8 -0
- package/src/App/store/appActionsMap.test.js +12 -0
- package/src/App/store/appReducer.js +1 -0
- package/src/App/store/appReducer.test.js +1 -0
- package/src/config/appConfig.js +41 -2
- package/src/config/appConfig.test.js +45 -4
- package/src/config/defaults.js +1 -0
- package/src/scss/main.scss +1 -0
- package/src/types.js +9 -1
- package/src/utils/resolveNudgeStep.js +2 -0
- package/src/utils/resolveNudgeStep.test.js +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useRef as e,useEffect as t}from"preact/compat";import{jsx as a,jsxs as r,Fragment as s}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var d=e=>{var{datasets:t=[]}=e,a=[],r=t.filter(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))}),s=new Map;return r.forEach(e=>{var t;if(null!==(t=e.sublayers)&&void 0!==t&&t.length){var r=e.sublayers.filter(t=>e.showInMenu?!1!==t.showInMenu:t.showInMenu);if(!1===e.showInMenu&&!r.length)return;var i={id:e.id,groupLabel:e.label,visibleWhen:!0,type:"checkbox",items:r.map(t=>({id:"".concat(e.id,"-").concat(t.id),label:t.label}))};0===i.items.length&&(delete i.groupLabel,i.items.push({id:e.id,label:e.label})),a.push(i)}else if(e.groupLabel){var n=s.has(e.groupLabel)?s.get(e.groupLabel):{id:e.groupLabel,groupLabel:e.groupLabel,visibleWhen:!0,type:"checkbox",items:[]};s.has(e.groupLabel)||(s.set(e.groupLabel,n),a.push(n)),n.items.push({id:e.id,label:e.label})}else a.push({visibleWhen:!0,type:"checkbox",id:e.id,items:[{id:e.id,label:e.label}]})}),a},p=(e,t)=>e.reduce((e,a)=>{var r=a.items.filter(e=>!t.includes(e.id));return r.length&&e.push(l(l({},a),{},{items:r})),e},[]),u=e=>{var t={};return e.forEach(e=>{var a;"radio"===e.type&&(t[e.id]=e.value||(null===(a=e.items)||void 0===a?void 0:a[0].value))}),t};function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var h={minZoom:6,maxZoom:24,showInKey:!1,showInMenu:!1,visible:!0,style:{stroke:"#d4351c",strokeWidth:2,symbolDescription:"red outline"}},b=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],m=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],v=e=>m.some(t=>t in e);function g(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?g(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):g(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var D=(e,t)=>{var a,{id:r}=t,s=(e=>{!0!==e.visible&&!1!==e.visible&&(e.visible="hidden"!==e.visibility);var t=y(y(y({},h),e),{},{style:y(y({},h.style),e.style)}),a=e.style||{};return!("symbolDescription"in a)&&v(a)&&delete t.style.symbolDescription,b.forEach(e=>delete t[e]),t})(t);t.parentId&&("showInKey"in t||delete s.showInKey,"showInMenu"in t||delete s.showInMenu),e[r]=s;var{orderedDatasets:i}=e;i.push(r);var n=null===(a=t.sublayers)||void 0===a?void 0:a.map(e=>((e,t)=>{var a="".concat(e,"-").concat(t.id),r=t.id;return"hidden"!==t.visibility&&(t.visibility="visible"),f(f({},t),{},{id:a,parentId:e,sublayerId:r})})(r,e));if(null!=n&&n.length){var o=null==n?void 0:n.map(e=>e.id),l=null==n?void 0:n.reduce(D,{orderedDatasets:i});return e[r].sublayerIds=o,delete e[r].sublayers,f(f(f({},e),l),{},{orderedDatasets:i})}return f(f({},e),{},{orderedDatasets:i})},O=e=>{var t=(e.datasets||[]).reduce(D,{orderedDatasets:[]}),{orderedDatasets:a}=t;return delete t.orderedDatasets,f(f({},e),{},{mappedDatasets:t,orderedDatasets:a})},S="[interactive-map]",_={warn:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.warn(S,...t)},error:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.error(S,...t)}};function P(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function E(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?P(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):P(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var w=function(e,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"not found";return!!e.mappedDatasets[t]||(_.error("".concat(a,": Dataset with id '").concat(t,"' ").concat(r)),!1)},A=0,I=(e,t,a)=>(A=a.actionsArray.length?A+1:0,E(E({},a),{},{actionsArray:[...a.actionsArray,{method:e,parameters:t,actionId:A}]})),j={SET_DATASETS:(e,t)=>{var{mappedDatasets:a,orderedDatasets:r}=t;return E(E({},e),{},{mappedDatasets:a,orderedDatasets:r})},ADD_DATASET:(e,t)=>{var{dataset:a,mapStyle:r}=t;if(e.mappedDatasets[a.id])return _.error("addDataset: Dataset with id '".concat(a.id,"' already exists")),e;var{mappedDatasets:s,orderedDatasets:i}=O({datasets:[a]}),n=((e,t)=>{var a=[...e.menu],r=d({datasets:[t]}),s=a.find(e=>e.groupLabel===r[0].groupLabel);return s?s.items.push(...r[0].items):a.push(...r),a})(e,a);return I("addDataset",[a.id,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),s),orderedDatasets:[...e.orderedDatasets,...i],menu:n}))},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;if(!w(e,r,"removeDataset"))return e;var s=E({},e.mappedDatasets),i=[r,...(null===(a=s[r])||void 0===a?void 0:a.sublayerIds)||[]];i.forEach(e=>delete s[e]);var n=e.orderedDatasets.filter(e=>!i.includes(e));return E(E({},e),{},{mappedDatasets:s,orderedDatasets:n,menu:p(e.menu,i)})},SET_DATASET_VISIBILITY:(e,t)=>{var{datasetId:a,visible:r}=t;return w(e,a,"setDatasetVisibility")?e.mappedDatasets[a].visible===r?e:I("applyDatasetVisibility",[a,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:E(E({},e.mappedDatasets[a]),{},{visible:r})})})):e},SET_GLOBAL_VISIBILITY:(e,t)=>{var{visible:a}=t;return I("applyGlobalVisibility",[a],E(E({},e),{},{globals:E(E({},e.globals),{},{visible:a})}))},SET_DATASET_STYLE:(e,t)=>{var{datasetId:a,styleChanges:r,mapStyle:s}=t;if(!w(e,a,"setDatasetStyle"))return e;var i=E(E({},e.mappedDatasets[a].style),r),n=E(E(E({},e.mappedDatasets[a]),r),{},{style:i});return I("applyStyle",[a,s],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:n})}))},SET_OPACITY:(e,t)=>{var{datasetId:a,opacity:r}=t;if(!w(e,a,"setOpacity"))return e;var s=E(E({},e.mappedDatasets[a].style),{},{opacity:r}),i=E(E({},e.mappedDatasets[a]),{},{style:s});return I("applyDatasetOpacity",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:i})}))},SET_GLOBAL_OPACITY:(e,t)=>{var{opacity:a}=t;return I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),{},{opacity:a})}))},HIDE_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!w(e,a,"setFeatureVisibility - hideFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=s.hiddenFeatures||[],n=Array.from(new Set([...i,...r]));return s.hiddenFeatures=n,I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},SHOW_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!w(e,a,"setFeatureVisibility - showFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=(s.hiddenFeatures||[]).filter(e=>!r.includes(e));return s.hiddenFeatures=i.length?i:[-1],I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},REMOVE_ADAPTER_ACTIONS:(e,t)=>null!=t&&t.length?E(E({},e),{},{actionsArray:e.actionsArray.filter(e=>!t.includes(e))}):e,SET_GLOBAL_STATE:(e,t)=>I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),t)})),SET_MENU:(e,t)=>{var{menu:a}=t,r=u(a);return E(E({},e),{},{menu:a,menuState:r})},UPDATE_MENU_STATE:(e,t)=>I("applyGlobalVisibility",[],E(E({},e),{},{menuState:E(E({},e.menuState),t)}))},T={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},M=function(){var e=n(function*(e,t,a,r){var s=a(e,t),i="string"==typeof s?{url:s}:s,{url:n,headers:o={}}=i,l=yield fetch(n,{headers:o,signal:r});if(!l.ok)throw new Error("Failed to fetch GeoJSON: ".concat(l.status," ").concat(l.statusText));var d=yield l.json();if("FeatureCollection"===d.type)return d;if("Feature"===d.type)return{type:"FeatureCollection",features:[d]};if(Array.isArray(d))return{type:"FeatureCollection",features:d};throw new Error("Invalid GeoJSON response")});return function(t,a,r,s){return e.apply(this,arguments)}}(),k=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),C=e=>{var t=1/0,a=1/0,r=-1/0,s=-1/0,i=(e,n)=>{var o;0===n?(o=e,t=Math.min(t,o[0]),a=Math.min(a,o[1]),r=Math.max(r,o[0]),s=Math.max(s,o[1])):e.forEach(e=>i(e,n-1))};switch(e.type){case"Point":i(e.coordinates,0);break;case"LineString":case"MultiPoint":i(e.coordinates,1);break;case"Polygon":case"MultiLineString":i(e.coordinates,2);break;case"MultiPolygon":i(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var i=C(e);t=Math.min(t,i[0]),a=Math.min(a,i[1]),r=Math.max(r,i[2]),s=Math.max(s,i[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,s]},L=e=>{var t,a,r,s,{dynamicGeoJSON:i,map:o,onUpdate:l}=e,{url:d,idProperty:p,transformRequest:u,maxFeatures:c,minZoom:y=0}=i,h=new Map,b=null,m=null,v=()=>({type:"FeatureCollection",features:Array.from(h.values()).map(e=>e.feature)}),g=function(){var e=n(function*(){var e=o.getZoom();if(!(e<y)){var t=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(o);if(!(b&&(a=b,r=t,a&&r&&r[0]>=a[0]&&r[1]>=a[1]&&r[2]<=a[2]&&r[3]<=a[3]))){var a,r,s,n;m&&m.abort(),m=new AbortController;try{var g={bbox:t,zoom:e},f=yield M(d,g,u,m.signal),D=Date.now();f.features.forEach(e=>{var t=(e=>{var t,a;return p&&null!==(t=null===(a=e.properties)||void 0===a?void 0:a[p])&&void 0!==t?t:e.id})(e);null!=t?h.set(t,{feature:e,bbox:C(e.geometry),lastSeenAt:D}):console.warn("Feature missing ID, skipping:",e)}),n=t,b=(s=b)?[Math.min(s[0],n[0]),Math.min(s[1],n[1]),Math.max(s[2],n[2]),Math.max(s[3],n[3])]:[...n];var O=h.size;(e=>{if(c&&!(h.size<=1.2*c)){var t=c,a=[],r=[];for(var[s,i]of h)k(i.bbox,e)?a.push(s):r.push({id:s,lastSeenAt:i.lastSeenAt});r.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var n=h.size-t,o=0;o<n&&o<r.length;o++)h.delete(r[o].id);if(h.size>t)for(var l=h.size-t,d=a.map(e=>({id:e,lastSeenAt:h.get(e).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),p=0;p<l&&p<d.length;p++)h.delete(d[p].id)}})(t),h.size<O&&(b=t),l(i.id,v())}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(i.id,":"),e)}}}});return function(){return e.apply(this,arguments)}}(),f=(t=g,a=200,(s=function(){for(var e=arguments.length,s=new Array(e),i=0;i<e;i++)s[i]=arguments[i];clearTimeout(r),r=setTimeout(()=>t(...s),a)}).cancel=()=>{clearTimeout(r),r=null},s),D=()=>{f()};return o.on("moveend",D),g(),{destroy(){o.off("moveend",D),f.cancel(),m&&m.abort()},clear(){h.clear(),b=null,l(i.id,{type:"FeatureCollection",features:[]})},refresh(){h.clear(),b=null,g()},getFeatureCount:()=>h.size,reapply(){h.size>0&&l(i.id,v())}}},N={},R=e=>{N=e},F=e=>{for(var[t,a]of Object.entries(e)){var r=N[t];if(!a.includes(r))return!1}return!0},x=e=>(Array.isArray(e)?e:[e]).includes(G()),G=()=>$.mapStyle.id,V=e=>{if(null==e)return!0;if("boolean"==typeof e)return e;if("object"==typeof e){for(var[t,a]of Object.entries(e)){if("mapStyleId"===t&&!x(a))return!1;if("menu"===t&&!F(a))return!1}return!0}return!0},B=e=>{var t=0;for(var a of e)t=Math.trunc((t<<5)-t+a.codePointAt(0));return Math.abs(t).toString(36)};function W(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}class K{constructor(e){this.id=e.id,this.url=e.url,this.transformRequest=e.transformRequest,this.maxFeatures=e.maxFeatures,this.minZoom=e.minZoom,this.idProperty=e.idProperty,this.hiddenFeaturesIdExpression=["to-string",["get",this.idProperty]],this.sourceId="geojson-dynamic-".concat(this.id),this.source=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?W(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):W(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}({type:"geojson",data:{type:"FeatureCollection",features:[]}},this.idProperty?{promoteId:this.idProperty}:{generateId:!0})}}var U={};window.getGlobalState=()=>Object.freeze(U);var H=(e,t)=>{switch(U.opacityMode){case"global":return U.opacity;case"multiply":return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Math.round(100*(e*t*U.opacity+Number.EPSILON))/100}(e,t);default:return((e,t)=>void 0===e?void 0===t?U.opacity:t:e)(e,t)}},Z=()=>U.visible;function z(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?z(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):z(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}class J{constructor(e){this._datasetDefinition=e}get id(){return this._datasetDefinition.id}get label(){return this._datasetDefinition.label}get hasSymbol(){var e;return!this.hasSublayers&&Boolean(null===(e=this.style)||void 0===e?void 0:e.symbol)}get hasPattern(){return!(this.hasSublayers||this.hasSymbol||(e=this.style,!e.fillPattern&&!e.fillPatternSvgContent));var e}get hasFill(){var e,t;return!this.hasSublayers&&!this.hasSymbol&&(this.hasPattern||(null===(e=this.style)||void 0===e?void 0:e.fill)&&"transparent"!==(null===(t=this.style)||void 0===t?void 0:t.fill))}get hasStroke(){var e;return!this.hasSublayers&&!this.hasSymbol&&Boolean(null===(e=this.style)||void 0===e?void 0:e.stroke)}get tiles(){return this._datasetDefinition.tiles}get geojson(){return this._datasetDefinition.geojson}get idProperty(){return this._datasetDefinition.idProperty}get generateIds(){return this._datasetDefinition.generateIds}get parentId(){return this._datasetDefinition.parentId}get minZoom(){var e;return this._datasetDefinition.minZoom||(null===(e=this.parent)||void 0===e?void 0:e.minZoom)}get maxZoom(){var e;return this._datasetDefinition.maxZoom||(null===(e=this.parent)||void 0===e?void 0:e.maxZoom)}get type(){var e;return this._datasetDefinition.type||(null===(e=this.parent)||void 0===e?void 0:e.type)}get showInKey(){var e,t,a=this._datasetDefinition.showInKey;return void 0!==a?a:null!==(e=null===(t=this.parent)||void 0===t?void 0:t.showInKey)&&void 0!==e&&e}get visibleWhen(){var e;return void 0===this._datasetDefinition.visibleWhen?null===(e=this.parent)||void 0===e?void 0:e.visibleWhen:this._datasetDefinition.visibleWhen}get groupLabel(){return this._datasetDefinition.groupLabel}get opacity(){var e,t,a=null===(e=this.style)||void 0===e?void 0:e.opacity,r=null===(t=this.parent)||void 0===t||null===(t=t.style)||void 0===t?void 0:t.opacity;return H(a,r)}get hasDynamicGeoJSON(){return Boolean(this._datasetDefinition.dynamicGeoJSON)}get dynamicGeoJSON(){return new K(Y(Y({},this._datasetDefinition.dynamicGeoJSON),{},{id:this.id,minZoom:this.minZoom}))}get hiddenFeatures(){return this._datasetDefinition.hiddenFeatures}get hasHiddenFeatures(){var e,t;return Boolean((null===(e=this.hiddenFeatures)||void 0===e?void 0:e.length)>0||(null===(t=this.parent)||void 0===t?void 0:t.hasHiddenFeatures))}get filter(){return null}get isHiddenByInheritance(){var e;return this.isSublayer?!(null!==(e=this.parent)&&void 0!==e&&e.visible):!Z()}get isLocallyVisible(){return!!this.isVisible||this._datasetDefinition.visible}get visible(){var e;return this.isSublayer?this._datasetDefinition.visible&&(null===(e=this.parent)||void 0===e?void 0:e.visible):this._datasetDefinition.visible&&Z()}get esriStyleLayerId(){return this._datasetDefinition.esriStyleLayerId}get visibility(){var{visible:e,visibleWhen:t}=this;return e&&t?V(t)?"visible":"none":e?"visible":"none"}get keyVisibility(){return"visible"===this.visibility&&this.showInKey}get symbolAnchor(){var e,t;return null!==(e=this.style)&&void 0!==e&&e.symbolAnchor?this.style.symbolAnchor:null===(t=this.parent)||void 0===t?void 0:t.symbolAnchor}get sourceLayer(){return this.isSublayer?this.parent.sourceLayer:this.tiles?this._datasetDefinition.sourceLayer:void 0}get isSublayer(){return Boolean(this._datasetDefinition.parentId)}get hasSublayers(){var e;return(null===(e=this._datasetDefinition.sublayerIds)||void 0===e?void 0:e.length)>0}get sublayerIds(){return this._datasetDefinition.sublayerIds}get sublayers(){var{sublayerIds:e}=this;return e?e.map(e=>$.getDataset(e)):[]}get parent(){if(this._datasetDefinition.parentId)return $.getDataset(this._datasetDefinition.parentId)}get style(){var e,t=null===(e=this.parent)||void 0===e?void 0:e.style;return t?Y(Y(Y({},t),{},{opacity:void 0},this._datasetDefinition.style),{},{symbolDescription:this.symbolDescription}):this._datasetDefinition.style||{}}get hasCustomVisualStyle(){return v(this._datasetDefinition.style||{})}get symbolDescription(){var e,t;return null!==(e=this._datasetDefinition.style)&&void 0!==e&&e.symbolDescription?this._datasetDefinition.style.symbolDescription:this.hasCustomVisualStyle||null===(t=this.parent)||void 0===t?void 0:t.symbolDescription}get patternConfigs(){var e=this.hasPattern?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.patternConfigs)]:e}get symbolConfigs(){var e=this.hasSymbol?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.symbolConfigs)]:e}}class q{constructor(){this.idToDefinitionMap=new Map,this.definitionToInstanceMap=new Map}add(e){this.idToDefinitionMap.set(e.id,e._datasetDefinition),this.definitionToInstanceMap.set(e._datasetDefinition,e)}invalidateDataset(e){var t=this.idToDefinitionMap.get(e.id);[t.id,...(null==t?void 0:t.sublayerIds)||[]].forEach(e=>{var t=this.idToDefinitionMap.get(e);this.definitionToInstanceMap.delete(t),this.idToDefinitionMap.delete(e)})}invalidateChangedDatasets(e){e.forEach(e=>{var t=this.idToDefinitionMap.get(e.id);if(t&&t!==e){var a=this.definitionToInstanceMap.get(t);this.invalidateDataset(a.isSublayer&&a.parent?a.parent:a)}})}getByDefinition(e){return this.definitionToInstanceMap.get(e)}}function X(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Q(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?X(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):X(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var $={attach(e,t,a){this._datasets=e,this._orderedDatasets=t,this.attachMapStyle(a),this._invalidateChangedDatasets()},_definitionCache:new q,_invalidateCache(){this._definitionCache=new q},_invalidateChangedDatasets(){this._datasets?this._definitionCache.invalidateChangedDatasets(Object.values(this._datasets)):this._invalidateCache()},attachCreateDataset(e){this._createDataset=e},_createDataset:e=>(e=>new J(e))(e),attachMapStyle(e){e&&(this._mapStyle=e)},get mapStyle(){return this._mapStyle},getDataset(e){var t=this.datasets[e];if(t){var a=this._definitionCache.getByDefinition(t);if(a)return a;var r=this._createDataset(t);return this._definitionCache.add(r),r.isSublayer&&this.getDataset(r.parentId),r}},forEach(e){this._orderedDatasets.forEach(t=>e(this.getDataset(t)))},forEachDataset(e){Object.values(this.datasets).filter(e=>!e.parentId).forEach(t=>e(this.getDataset(t.id)))},topLevelDatasets(){return Object.values(this.datasets).filter(e=>!e.parentId).map(e=>this.getDataset(e.id))},getPatternAndSymbolConfigs(){return this.topLevelDatasets().reduce((e,t)=>Q(Q({},e),{},{patternConfigs:[...e.patternConfigs,...t.patternConfigs],symbolConfigs:[...e.symbolConfigs,...t.symbolConfigs]}),{patternConfigs:[],symbolConfigs:[]})},invalidateKeyItems(){this._lastKeyItemsDatasets=null},_lastKeyItems:{},keyItems(){if(this.datasets===this._lastKeyItemsDatasets)return this._lastKeyItems;this._lastKeyItemsDatasets=this.datasets;var e=[],t=new Set,a=!1;return this.forEachDataset(r=>{if(r.showInKey&&r.keyVisibility)if(r.hasSublayers){var s=r.sublayers.filter(e=>e.keyVisibility);s.length&&(a=!0,e.push({type:"sublayers",dataset:r,sublayers:s}))}else if(r.groupLabel){if(t.has(r.groupLabel))return;t.add(r.groupLabel),a=!0,e.push({type:"group",groupLabel:r.groupLabel,datasets:this.topLevelDatasets().filter(e=>e.groupLabel===r.groupLabel&&!e.hasSublayers&&e.showInKey)})}else e.push({type:"flat",dataset:r})}),this._lastKeyItems={items:e,hasGroups:a},this._lastKeyItems}};Object.defineProperty($,"datasets",{get:()=>$._datasets}),window.datasetRegistry=$;var ee,te=e=>{var{adapter:t,pluginConfig:a,mapStyle:r,mapProvider:s,events:i,dispatch:n,eventBus:o}=e,{datasets:l}=a,p=new Map;a.globals&&n({type:"SET_GLOBAL_STATE",payload:a.globals});var c=l.map(e=>((e,t)=>{var a=e.style||{},r=y(y({},t.style),a);!("symbolDescription"in a)&&v(a)&&delete r.symbolDescription;var s=y({},e);delete s.style,b.forEach(e=>delete s[e]);var i=y({},t);return delete i.style,y(y(y({},i),s),r)})(e,h)),{mappedDatasets:m,orderedDatasets:g}=O({datasets:l});t.createDataset&&$.attachCreateDataset(t.createDataset),$.attach(m,g,r);var f=a.menu||d({datasets:c});R(u(f)),t.init().then(()=>{$.forEachDataset(e=>{if(e.hasDynamicGeoJSON){var{dynamicGeoJSON:a}=e,r=L({dynamicGeoJSON:a,map:s.map,onUpdate:(e,a)=>t.setData(e,a)});p.set(e.id,r)}}),t.attachDynamicSources(p),n({type:"SET_MENU",payload:{menu:f}}),n({type:"SET_DATASETS",payload:{datasets:c,mappedDatasets:m,orderedDatasets:g}}),o.emit("datasets:ready")});var D=()=>{t.onMapSizeChange()};return o.on(i.MAP_SIZE_CHANGE,D),{remove(){o.off(i.MAP_SIZE_CHANGE,D),p.forEach(e=>e.destroy()),p.clear(),t.destroy()},refreshDataset(e){var t;null===(t=p.get(e))||void 0===t||t.refresh()},clearDatasetCache(e){var t;null===(t=p.get(e))||void 0===t||t.clear()},getFeatureCount(e){var t,a;return null!==(t=null===(a=p.get(e))||void 0===a?void 0:a.getFeatureCount())&&void 0!==t?t:null}}},ae=function(){var e=n(function*(e){switch(e.name){case"MapLibreProvider":var{default:t}=yield import(/* webpackChunkName: "im-datasets-ml-adapter" */ "./im-datasets-ml-adapter.js").then(function(e){return e.m});return t;case"EsriProvider":var{default:a}=yield import(/* webpackChunkName: "esriLayerAdapter" */ "./esriLayerAdapter.js");return a;default:throw new Error("No layer adapter available for map provider ".concat(e.name,". Please provide a compatible layer adapter."))}});return function(t){return e.apply(this,arguments)}}(),re={},se=function(){var e=n(function*(e,t,a){var r,s,i=yield ae(e);return ee=new i(e,t,a),re.removeDataset=ee.removeDataset.bind(ee),re.setData=ee.setData.bind(ee),re.applyStyle=ee.applyStyle.bind(ee),re.applyDatasetVisibility=ee.applyDatasetVisibility.bind(ee),re.applyGlobalVisibility=ee.applyGlobalVisibility.bind(ee),re.applyDatasetOpacity=ee.applyDatasetOpacity.bind(ee),re.applyGlobalOpacity=ee.applyGlobalOpacity.bind(ee),re.addDataset=ee.addDataset.bind(ee),re.applyFeatureFilter=ee.applyFeatureFilter.bind(ee),re.onMapStyleChange=null===(r=ee.onMapStyleChange)||void 0===r?void 0:r.bind(ee),re.onMapSizeChange=null===(s=ee.onMapSizeChange)||void 0===s?void 0:s.bind(ee),ee});return function(t,a,r){return e.apply(this,arguments)}}();var ie=function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_DATASET_VISIBILITY",payload:{datasetId:n,visible:t}}:{type:"SET_GLOBAL_VISIBILITY",payload:{visible:t}})},ne=e=>{var{menuGroupItem:t,onChange:s}=e,i=$.getDataset(t.id);if(!i)return null;var n=i.isSublayer?i.parentId:i.id,o=i.isSublayer?i.id:void 0,l="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(i.visible?"":" im-c-datasets-layers__item--checked");return a("div",{className:l,"data-module":"govuk-checkboxes",children:r("div",{className:"govuk-checkboxes__item",children:[a("input",{className:"govuk-checkboxes__input",id:i.id,"data-dataset-id":n,"data-sublayer-id":o,name:"layers",type:"checkbox",value:i.id,checked:i.isLocallyVisible,onChange:s}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:i.id,children:i.label})]})},i.id)},oe=e=>{var{menuGroupItem:t,name:s,checked:i,onChange:n}=e,{visibleWhen:o}=t;return!o||V(o)?a("div",{className:'im-c-datasets-layers__item govuk-radios govuk-radios--small"',"data-module":"govuk-radios",children:r("div",{className:"govuk-radios__item",children:[a("input",{id:t.id,className:"govuk-radios__input",type:"radio",name:s,value:t.id,checked:i,onChange:n}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-radios__label",htmlFor:t.id,children:t.label})]})}):null},le=e=>{var{pluginState:t,menuGroup:s}=e,{id:i,items:n,visibleWhen:o}=s;if(!(!o||V(o)))return null;var{menuState:l,dispatch:d}=t,p=l[i],u=e=>{d({type:"UPDATE_MENU_STATE",payload:{[i]:e.target.value}})};return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:s.label}),a("div",{className:"govuk-radios govuk-radios--small","data-module":"govuk-radios",children:n.map(e=>a(oe,{menuGroupItem:e,name:i,checked:e.id===p,onChange:u},e.id))})]})},s.id)},de=e=>{var{menuGroup:t,children:i}=e;if(!t.groupLabel)return a(s,{children:i});return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:t.groupLabel}),i]})},t.id)},pe=e=>{var{text:t}=e;return a("div",{className:"im-c-datasets-key",children:a("p",{className:"im-c-datasets-key__empty-message",children:t})})},ue=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var a=Object.values(e)[0];return null!=a?a:null}return null};function ce(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ye(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ce(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var he=20,be={xmlns:"http://www.w3.org/2000/svg",width:he,height:he,viewBox:"0 0 ".concat(he," ").concat(he),className:"am-c-datasets-key-symbol","aria-hidden":"true",focusable:"false"},me=ye(ye({},be),{},{width:44,height:44,className:"am-c-datasets-key-symbol am-c-datasets-key-symbol--point"});function ve(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ge(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ve(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var fe=e=>{var{patternRegistry:t,registryDataset:s,mapStyle:i}=e,{style:n}=s,o=t.getKeyPatternPaths(n,i.id);return r("svg",ge(ge({},be),{},{children:[a("g",{dangerouslySetInnerHTML:{__html:o.border}}),a("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]}))},De=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),Oe=(e,t)=>{var a;return e.symbolAnchor?e.symbolAnchor:null!==(a=null==t?void 0:t.anchor)&&void 0!==a?a:[.5,.5]};function Se(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function _e(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Se(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Pe=e=>{var t,{symbolRegistry:r,registryDataset:s,mapStyle:i,symbolDef:n}=e,{style:o}=s,l=null!==(t=null==i?void 0:i.appColorScheme)&&void 0!==t?t:"light",d=_e(_e({},i),{},{mapColorScheme:l}),p=r.resolve(n,(e=>{if(!(e=>!(!e.symbol&&!e.symbolSvgContent))(e))return{};var t={};return De.forEach(a=>{if(null!=e[a]){var r=a.charAt(6).toLowerCase()+a.slice(7);t[r]=e[a]}}),t})(o),d),u=((e,t)=>{var a;return e.symbolViewBox?e.symbolViewBox:null!==(a=null==t?void 0:t.viewBox)&&void 0!==a?a:"0 0 38 38"})(o,n);return a("svg",_e(_e({},me),{},{viewBox:u,children:a("g",{dangerouslySetInnerHTML:{__html:p}})}))};function Ee(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function we(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ee(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Ae=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",we(we({},be),{},{children:a("line",{x1:s.strokeWidth/2,y1:10,x2:he-s.strokeWidth/2,y2:10,stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinecap:"round"})}))};function Ie(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function je(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ie(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Te=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",je(je({},be),{},{children:a("rect",{x:s.strokeWidth/2,y:s.strokeWidth/2,width:he-s.strokeWidth,height:he-s.strokeWidth,rx:s.strokeWidth,ry:s.strokeWidth,fill:ue(s.fill,t.id),stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinejoin:"round"})}))},Me=e=>{var{symbolRegistry:t,registryDataset:r,mapStyle:s,patternRegistry:i}=e,{hasSymbol:n,hasPattern:o,style:l}=r,d=n&&t.getSymbolDef(l);return d?a(Pe,{mapStyle:s,registryDataset:r,symbolRegistry:t,symbolDef:d}):o?a(fe,{mapStyle:s,registryDataset:r,patternRegistry:i}):"line"===l.keySymbolShape?a(Ae,{mapStyle:s,registryDataset:r}):a(Te,{mapStyle:s,registryDataset:r})},ke=e=>{var{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n}=e;return t.showInKey?r("dl",{className:"im-c-datasets-key__item",children:[a("dt",{className:"im-c-datasets-key__item-symbol",children:a(Me,{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n})}),r("dd",{className:"im-c-datasets-key__item-label",children:[t.label,t.symbolDescription&&r("span",{className:"govuk-visually-hidden",children:["(",ue(t.symbolDescription,n.id),")"]})]})]}):null},Ce=e=>{var{headingId:t,label:s,datasets:i,symbolRegistry:n,patternRegistry:o,mapStyle:l}=e;return r("section",{className:"im-c-datasets-key__group","aria-labelledby":t,children:[a("h3",{id:t,className:"im-c-datasets-key__group-heading",children:s}),i.map(e=>a(ke,{registryDataset:e,symbolRegistry:n,patternRegistry:o,mapStyle:l},"".concat(e.id)))]})},Le={InitComponent:function(a){var{pluginConfig:r,pluginState:s,appState:i,mapState:o,mapProvider:l,services:d}=a,{dispatch:p}=s,{eventBus:u,symbolRegistry:c,patternRegistry:y}=d,h=Boolean(null==l?void 0:l.isBaseMapReady());e(s).current=s;var b=e(null);return t(()=>{var e,t,a,s,d=null===(e=null===(t=r.includeModes)||void 0===t?void 0:t.includes(i.mode))||void 0===e||e,m=null!==(a=null===(s=r.excludeModes)||void 0===s?void 0:s.includes(i.mode))&&void 0!==a&&a;if(h&&d&&!m&&!b.current){var v=function(){var e=n(function*(){var e=yield se(l,c,y);b.current=te({adapter:e,pluginConfig:r,mapStyle:o.mapStyle,mapProvider:l,events:T,dispatch:p,eventBus:u})});return function(){return e.apply(this,arguments)}}();v()}},[h,i.mode]),t(()=>{R(s.menuState),$.invalidateKeyItems()},[s.menuState]),t(()=>$.attach(s.mappedDatasets,s.orderedDatasets),[s.mappedDatasets,s.orderedDatasets]),t(()=>{$.attachMapStyle(o.mapStyle),null!=re&&re.onMapStyleChange&&re.onMapStyleChange()},[o.mapStyle]),t(()=>{return e=s.globals,void(U=e);var e},[s.globals]),t(()=>{var{actionsArray:e}=s;e.length&&(e.forEach(e=>{var{method:t,parameters:a}=e;return re[t](...a)}),p({type:"REMOVE_ADAPTER_ACTIONS",payload:e}))},[s.actionsArray]),t(()=>()=>{b.current&&(b.current.remove(),b.current=null)},[]),null},reducer:{initialState:{globals:{visible:!0,opacity:1,opacityMode:"dataset"},key:{items:[],hasGroups:!1},actionsArray:[],menu:[],menuState:{}},actions:j},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"260px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"280px"},render:e=>{var{pluginState:t}=e,{menu:s=[]}=t,i=e=>{var{value:a,checked:r}=e.target;ie({pluginState:t},r,{datasetId:a})},n=s.some(e=>e.groupLabel),o="im-c-datasets-layers".concat(n?" im-c-datasets-layers--has-groups":"");return a("div",{className:o,children:s.map(e=>{var{type:s}=e;return"checkbox"===s?r(de,{menuGroup:e,children:[" ",e.items.map(e=>a(ne,{menuGroupItem:e,onChange:i},e.id))]},e.id):a(le,{menuGroup:e,pluginState:t},e.id)})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:e=>{var{pluginConfig:{noKeyItemText:t},mapState:{mapStyle:r},services:{symbolRegistry:s,patternRegistry:i}}=e,{items:n,hasGroups:o}=$.keyItems();if(null==n||!n.length)return a(pe,{text:t});var l="im-c-datasets-key".concat(o?" im-c-datasets-key--has-groups":"");return a("div",{className:l,children:n.map(e=>{var t="group"===e.type?e.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"):e.dataset.id;if("sublayers"===e.type||"group"===e.type){var n="sublayers"===e.type?e.sublayers:e.datasets,o="sublayers"===e.type?e.dataset.label:e.groupLabel;return a(Ce,{headingId:"key-heading-".concat(t),label:o,datasets:n,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)}return a(ke,{registryDataset:e.dataset,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.menu&&!t.datasets.some(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.some(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{addDataset:(e,t)=>{var{pluginState:{dispatch:a},mapState:r}=e;a({type:"ADD_DATASET",payload:{dataset:t,mapStyle:r.mapStyle}})},removeDataset:(e,t)=>{var{pluginState:{dispatch:a}}=e;re.removeDataset(t),a({type:"REMOVE_DATASET",payload:{id:t}})},setDatasetVisibility:ie,setFeatureVisibility:function(e,t,a){var{pluginState:{dispatch:r}}=e,{datasetId:s=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(s){var i=$.getDataset(s);!i||i.idProperty||i.generateIds||_.warn('setFeatureVisibility: Dataset "'.concat(s,'" has no idProperty or generateIds configured. Features may not be matched correctly. Add idProperty to match by a feature property, or add generateIds: true to use auto-generated IDs.'))}r({type:t?"SHOW_FEATURES":"HIDE_FEATURES",payload:{datasetId:s,featureIds:a}})},setStyle:function(e,t){var{pluginState:{dispatch:a},mapState:r}=e,{datasetId:s,sublayerId:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};a({type:"SET_DATASET_STYLE",payload:{datasetId:s=i?"".concat(s,"-").concat(i):s,styleChanges:t,mapStyle:r.mapStyle}})},getStyle:function(e){var{_pluginState:t}=e,{datasetId:a,sublayerId:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a=r?"".concat(a,"-").concat(r):a;var s=$.getDataset(a);return s?s.style:(_.warn("getStyle: Dataset with id ".concat(a," not found")),null)},setOpacity:function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_OPACITY",payload:{datasetId:n,opacity:t}}:{type:"SET_GLOBAL_OPACITY",payload:{opacity:t}})},getOpacity:function(e){var t,{pluginState:{globals:a}}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;if(n){var o,l=$.getDataset(n);return l?null!==(o=l.opacity)&&void 0!==o?o:null:(_.warn("getOpacity: Dataset with id ".concat(n," not found")),null)}return null!==(t=a.opacity)&&void 0!==t?t:null},setData:(e,t,a)=>{var{_pluginState:r}=e,{datasetId:s}=a,i=$.getDataset(s);i?null!=i&&i.tiles?_.warn('setData called on vector tile dataset "'.concat(s,'" — has no effect')):re.setData(s,t):_.warn("setData: Dataset with id ".concat(s," not found"))},setGlobals:(e,t)=>{var{pluginState:{dispatch:a}}=e,{opacityMode:r}=t,s={},i=!1;r&&(["dataset","global","multiply"].includes(r)?(i=!0,s.opacityMode=r):_.warn("Ignoring invalid opacityMode: ".concat(r,". Must be one of 'dataset', 'global' or 'multiply'."))),i?a({type:"SET_GLOBAL_STATE",payload:s}):_.warn("setGlobals: requires a valid value for opacityMode to be set")}}},Ne=Object.freeze({__proto__:null,manifest:Le});export{J as D,ue as a,$ as d,Oe as g,B as h,_ as l,Ne as m};
|
|
1
|
+
import{useRef as e,useEffect as t}from"preact/compat";import{jsx as a,jsxs as r,Fragment as s}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var d=e=>{var{datasets:t=[]}=e,a=[],r=t.filter(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))}),s=new Map;return r.forEach(e=>{var t;if(null!==(t=e.sublayers)&&void 0!==t&&t.length){var r=e.sublayers.filter(t=>e.showInMenu?!1!==t.showInMenu:t.showInMenu);if(!1===e.showInMenu&&!r.length)return;var i={id:e.id,groupLabel:e.label,visibleWhen:!0,type:"checkbox",items:r.map(t=>({id:"".concat(e.id,"-").concat(t.id),label:t.label}))};0===i.items.length&&(delete i.groupLabel,i.items.push({id:e.id,label:e.label})),a.push(i)}else if(e.groupLabel){var n=s.has(e.groupLabel)?s.get(e.groupLabel):{id:e.groupLabel,groupLabel:e.groupLabel,visibleWhen:!0,type:"checkbox",items:[]};s.has(e.groupLabel)||(s.set(e.groupLabel,n),a.push(n)),n.items.push({id:e.id,label:e.label})}else a.push({visibleWhen:!0,type:"checkbox",id:e.id,items:[{id:e.id,label:e.label}]})}),a},p=(e,t)=>e.reduce((e,a)=>{var r=a.items.filter(e=>!t.includes(e.id));return r.length&&e.push(l(l({},a),{},{items:r})),e},[]),u=e=>{var t={};return e.forEach(e=>{var a;"radio"===e.type&&(t[e.id]=e.value||(null===(a=e.items)||void 0===a?void 0:a[0].value))}),t};function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?c(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):c(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var h={minZoom:6,maxZoom:24,showInKey:!1,showInMenu:!1,visible:!0,style:{stroke:"#d4351c",strokeWidth:2,symbolDescription:"red outline"}},b=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],m=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],v=e=>m.some(t=>t in e);function g(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?g(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):g(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var D=(e,t)=>{var a,{id:r}=t,s=(e=>{!0!==e.visible&&!1!==e.visible&&(e.visible="hidden"!==e.visibility);var t=y(y(y({},h),e),{},{style:y(y({},h.style),e.style)}),a=e.style||{};return!("symbolDescription"in a)&&v(a)&&delete t.style.symbolDescription,b.forEach(e=>delete t[e]),t})(t);t.parentId&&("showInKey"in t||delete s.showInKey,"showInMenu"in t||delete s.showInMenu),e[r]=s;var{orderedDatasets:i}=e;i.push(r);var n=null===(a=t.sublayers)||void 0===a?void 0:a.map(e=>((e,t)=>{var a="".concat(e,"-").concat(t.id),r=t.id;return"hidden"!==t.visibility&&(t.visibility="visible"),f(f({},t),{},{id:a,parentId:e,sublayerId:r})})(r,e));if(null!=n&&n.length){var o=null==n?void 0:n.map(e=>e.id),l=null==n?void 0:n.reduce(D,{orderedDatasets:i});return e[r].sublayerIds=o,delete e[r].sublayers,f(f(f({},e),l),{},{orderedDatasets:i})}return f(f({},e),{},{orderedDatasets:i})},O=e=>{var t=(e.datasets||[]).reduce(D,{orderedDatasets:[]}),{orderedDatasets:a}=t;return delete t.orderedDatasets,f(f({},e),{},{mappedDatasets:t,orderedDatasets:a})},S="[interactive-map]",_={warn:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.warn(S,...t)},error:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return console.error(S,...t)}};function P(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function E(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?P(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):P(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var w=function(e,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"not found";return!!e.mappedDatasets[t]||(_.error("".concat(a,": Dataset with id '").concat(t,"' ").concat(r)),!1)},A=0,I=(e,t,a)=>(A=a.actionsArray.length?A+1:0,E(E({},a),{},{actionsArray:[...a.actionsArray,{method:e,parameters:t,actionId:A}]})),j={SET_DATASETS:(e,t)=>{var{mappedDatasets:a,orderedDatasets:r}=t;return E(E({},e),{},{mappedDatasets:a,orderedDatasets:r})},ADD_DATASET:(e,t)=>{var{dataset:a,mapStyle:r}=t;if(e.mappedDatasets[a.id])return _.error("addDataset: Dataset with id '".concat(a.id,"' already exists")),e;var{mappedDatasets:s,orderedDatasets:i}=O({datasets:[a]}),n=((e,t)=>{var a=[...e.menu],r=d({datasets:[t]}),s=a.find(e=>e.groupLabel===r[0].groupLabel);return s?s.items.push(...r[0].items):a.push(...r),a})(e,a);return I("addDataset",[a.id,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),s),orderedDatasets:[...e.orderedDatasets,...i],menu:n}))},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;if(!w(e,r,"removeDataset"))return e;var s=E({},e.mappedDatasets),i=[r,...(null===(a=s[r])||void 0===a?void 0:a.sublayerIds)||[]];i.forEach(e=>delete s[e]);var n=e.orderedDatasets.filter(e=>!i.includes(e));return E(E({},e),{},{mappedDatasets:s,orderedDatasets:n,menu:p(e.menu,i)})},SET_DATASET_VISIBILITY:(e,t)=>{var{datasetId:a,visible:r}=t;return w(e,a,"setDatasetVisibility")?e.mappedDatasets[a].visible===r?e:I("applyDatasetVisibility",[a,r],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:E(E({},e.mappedDatasets[a]),{},{visible:r})})})):e},SET_GLOBAL_VISIBILITY:(e,t)=>{var{visible:a}=t;return I("applyGlobalVisibility",[a],E(E({},e),{},{globals:E(E({},e.globals),{},{visible:a})}))},SET_DATASET_STYLE:(e,t)=>{var{datasetId:a,styleChanges:r,mapStyle:s}=t;if(!w(e,a,"setDatasetStyle"))return e;var i=E(E({},e.mappedDatasets[a].style),r),n=E(E(E({},e.mappedDatasets[a]),r),{},{style:i});return I("applyStyle",[a,s],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:n})}))},SET_OPACITY:(e,t)=>{var{datasetId:a,opacity:r}=t;if(!w(e,a,"setOpacity"))return e;var s=E(E({},e.mappedDatasets[a].style),{},{opacity:r}),i=E(E({},e.mappedDatasets[a]),{},{style:s});return I("applyDatasetOpacity",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:i})}))},SET_GLOBAL_OPACITY:(e,t)=>{var{opacity:a}=t;return I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),{},{opacity:a})}))},HIDE_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!w(e,a,"setFeatureVisibility - hideFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=s.hiddenFeatures||[],n=Array.from(new Set([...i,...r]));return s.hiddenFeatures=n,I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},SHOW_FEATURES:(e,t)=>{var{datasetId:a,featureIds:r}=t;if(!w(e,a,"setFeatureVisibility - showFeatures"))return e;var s=E({},e.mappedDatasets[a]),i=(s.hiddenFeatures||[]).filter(e=>!r.includes(e));return s.hiddenFeatures=i.length?i:[-1],I("applyFeatureFilter",[a],E(E({},e),{},{mappedDatasets:E(E({},e.mappedDatasets),{},{[a]:s})}))},REMOVE_ADAPTER_ACTIONS:(e,t)=>null!=t&&t.length?E(E({},e),{},{actionsArray:e.actionsArray.filter(e=>!t.includes(e))}):e,SET_GLOBAL_STATE:(e,t)=>I("applyGlobalOpacity",[],E(E({},e),{},{globals:E(E({},e.globals),t)})),SET_MENU:(e,t)=>{var{menu:a}=t,r=u(a);return E(E({},e),{},{menu:a,menuState:r})},UPDATE_MENU_STATE:(e,t)=>I("applyGlobalVisibility",[],E(E({},e),{},{menuState:E(E({},e.menuState),t)}))},T={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},M=function(){var e=n(function*(e,t,a,r){var s=a(e,t),i="string"==typeof s?{url:s}:s,{url:n,headers:o={}}=i,l=yield fetch(n,{headers:o,signal:r});if(!l.ok)throw new Error("Failed to fetch GeoJSON: ".concat(l.status," ").concat(l.statusText));var d=yield l.json();if("FeatureCollection"===d.type)return d;if("Feature"===d.type)return{type:"FeatureCollection",features:[d]};if(Array.isArray(d))return{type:"FeatureCollection",features:d};throw new Error("Invalid GeoJSON response")});return function(t,a,r,s){return e.apply(this,arguments)}}(),k=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),C=e=>{var t=1/0,a=1/0,r=-1/0,s=-1/0,i=(e,n)=>{var o;0===n?(o=e,t=Math.min(t,o[0]),a=Math.min(a,o[1]),r=Math.max(r,o[0]),s=Math.max(s,o[1])):e.forEach(e=>i(e,n-1))};switch(e.type){case"Point":i(e.coordinates,0);break;case"LineString":case"MultiPoint":i(e.coordinates,1);break;case"Polygon":case"MultiLineString":i(e.coordinates,2);break;case"MultiPolygon":i(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var i=C(e);t=Math.min(t,i[0]),a=Math.min(a,i[1]),r=Math.max(r,i[2]),s=Math.max(s,i[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,s]},L=e=>{var t,a,r,s,{dynamicGeoJSON:i,map:o,onUpdate:l}=e,{url:d,idProperty:p,transformRequest:u,maxFeatures:c,minZoom:y=0}=i,h=new Map,b=null,m=null,v=()=>({type:"FeatureCollection",features:Array.from(h.values()).map(e=>e.feature)}),g=function(){var e=n(function*(){var e=o.getZoom();if(!(e<y)){var t=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(o);if(!(b&&(a=b,r=t,a&&r&&r[0]>=a[0]&&r[1]>=a[1]&&r[2]<=a[2]&&r[3]<=a[3]))){var a,r,s,n;m&&m.abort(),m=new AbortController;try{var g={bbox:t,zoom:e},f=yield M(d,g,u,m.signal),D=Date.now();f.features.forEach(e=>{var t=(e=>{var t,a;return p&&null!==(t=null===(a=e.properties)||void 0===a?void 0:a[p])&&void 0!==t?t:e.id})(e);null!=t?h.set(t,{feature:e,bbox:C(e.geometry),lastSeenAt:D}):console.warn("Feature missing ID, skipping:",e)}),n=t,b=(s=b)?[Math.min(s[0],n[0]),Math.min(s[1],n[1]),Math.max(s[2],n[2]),Math.max(s[3],n[3])]:[...n];var O=h.size;(e=>{if(c&&!(h.size<=1.2*c)){var t=c,a=[],r=[];for(var[s,i]of h)k(i.bbox,e)?a.push(s):r.push({id:s,lastSeenAt:i.lastSeenAt});r.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var n=h.size-t,o=0;o<n&&o<r.length;o++)h.delete(r[o].id);if(h.size>t)for(var l=h.size-t,d=a.map(e=>({id:e,lastSeenAt:h.get(e).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),p=0;p<l&&p<d.length;p++)h.delete(d[p].id)}})(t),h.size<O&&(b=t),l(i.id,v())}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(i.id,":"),e)}}}});return function(){return e.apply(this,arguments)}}(),f=(t=g,a=200,(s=function(){for(var e=arguments.length,s=new Array(e),i=0;i<e;i++)s[i]=arguments[i];clearTimeout(r),r=setTimeout(()=>t(...s),a)}).cancel=()=>{clearTimeout(r),r=null},s),D=()=>{f()};return o.on("moveend",D),g(),{destroy(){o.off("moveend",D),f.cancel(),m&&m.abort()},clear(){h.clear(),b=null,l(i.id,{type:"FeatureCollection",features:[]})},refresh(){h.clear(),b=null,g()},getFeatureCount:()=>h.size,reapply(){h.size>0&&l(i.id,v())}}},N={},R=e=>{N=e},F=e=>{for(var[t,a]of Object.entries(e)){var r=N[t];if(!a.includes(r))return!1}return!0},x=e=>(Array.isArray(e)?e:[e]).includes(G()),G=()=>$.mapStyle.id,V=e=>{if(null==e)return!0;if("boolean"==typeof e)return e;if("object"==typeof e){for(var[t,a]of Object.entries(e)){if("mapStyleId"===t&&!x(a))return!1;if("menu"===t&&!F(a))return!1}return!0}return!0},B=e=>{var t=0;for(var a of e)t=Math.trunc((t<<5)-t+a.codePointAt(0));return Math.abs(t).toString(36)};function W(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}class K{constructor(e){this.id=e.id,this.url=e.url,this.transformRequest=e.transformRequest,this.maxFeatures=e.maxFeatures,this.minZoom=e.minZoom,this.idProperty=e.idProperty,this.hiddenFeaturesIdExpression=["to-string",["get",this.idProperty]],this.sourceId="geojson-dynamic-".concat(this.id),this.source=function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?W(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):W(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}({type:"geojson",data:{type:"FeatureCollection",features:[]}},this.idProperty?{promoteId:this.idProperty}:{generateId:!0})}}var U={};window.getGlobalState=()=>Object.freeze(U);var H=(e,t)=>{switch(U.opacityMode){case"global":return U.opacity;case"multiply":return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Math.round(100*(e*t*U.opacity+Number.EPSILON))/100}(e,t);default:return((e,t)=>void 0===e?void 0===t?U.opacity:t:e)(e,t)}},Z=()=>U.visible;function z(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Y(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?z(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):z(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}class J{constructor(e){this._datasetDefinition=e}get id(){return this._datasetDefinition.id}get label(){return this._datasetDefinition.label}get hasSymbol(){var e;return!this.hasSublayers&&Boolean(null===(e=this.style)||void 0===e?void 0:e.symbol)}get hasPattern(){return!(this.hasSublayers||this.hasSymbol||(e=this.style,!e.fillPattern&&!e.fillPatternSvgContent));var e}get hasFill(){var e,t;return!this.hasSublayers&&!this.hasSymbol&&(this.hasPattern||(null===(e=this.style)||void 0===e?void 0:e.fill)&&"transparent"!==(null===(t=this.style)||void 0===t?void 0:t.fill))}get hasStroke(){var e;return!this.hasSublayers&&!this.hasSymbol&&Boolean(null===(e=this.style)||void 0===e?void 0:e.stroke)}get tiles(){return this._datasetDefinition.tiles}get geojson(){return this._datasetDefinition.geojson}get idProperty(){return this._datasetDefinition.idProperty}get generateIds(){return this._datasetDefinition.generateIds}get parentId(){return this._datasetDefinition.parentId}get minZoom(){var e;return this._datasetDefinition.minZoom||(null===(e=this.parent)||void 0===e?void 0:e.minZoom)}get maxZoom(){var e;return this._datasetDefinition.maxZoom||(null===(e=this.parent)||void 0===e?void 0:e.maxZoom)}get type(){var e;return this._datasetDefinition.type||(null===(e=this.parent)||void 0===e?void 0:e.type)}get showInKey(){var e,t,a=this._datasetDefinition.showInKey;return void 0!==a?a:null!==(e=null===(t=this.parent)||void 0===t?void 0:t.showInKey)&&void 0!==e&&e}get visibleWhen(){var e;return void 0===this._datasetDefinition.visibleWhen?null===(e=this.parent)||void 0===e?void 0:e.visibleWhen:this._datasetDefinition.visibleWhen}get groupLabel(){return this._datasetDefinition.groupLabel}get opacity(){var e,t,a=null===(e=this.style)||void 0===e?void 0:e.opacity,r=null===(t=this.parent)||void 0===t||null===(t=t.style)||void 0===t?void 0:t.opacity;return H(a,r)}get hasDynamicGeoJSON(){return Boolean(this._datasetDefinition.dynamicGeoJSON)}get dynamicGeoJSON(){return new K(Y(Y({},this._datasetDefinition.dynamicGeoJSON),{},{id:this.id,minZoom:this.minZoom}))}get hiddenFeatures(){return this._datasetDefinition.hiddenFeatures}get hasHiddenFeatures(){var e,t;return Boolean((null===(e=this.hiddenFeatures)||void 0===e?void 0:e.length)>0||(null===(t=this.parent)||void 0===t?void 0:t.hasHiddenFeatures))}get filter(){return null}get isHiddenByInheritance(){var e;return this.isSublayer?!(null!==(e=this.parent)&&void 0!==e&&e.visible):!Z()}get isLocallyVisible(){return!!this.isVisible||this._datasetDefinition.visible}get visible(){var e;return this.isSublayer?this._datasetDefinition.visible&&(null===(e=this.parent)||void 0===e?void 0:e.visible):this._datasetDefinition.visible&&Z()}get esriStyleLayerId(){return this._datasetDefinition.esriStyleLayerId}get visibility(){var{visible:e,visibleWhen:t}=this;return e&&t?V(t)?"visible":"none":e?"visible":"none"}get keyVisibility(){return"visible"===this.visibility&&this.showInKey}get symbolAnchor(){var e,t;return null!==(e=this.style)&&void 0!==e&&e.symbolAnchor?this.style.symbolAnchor:null===(t=this.parent)||void 0===t?void 0:t.symbolAnchor}get sourceLayer(){return this.isSublayer?this.parent.sourceLayer:this.tiles?this._datasetDefinition.sourceLayer:void 0}get isSublayer(){return Boolean(this._datasetDefinition.parentId)}get hasSublayers(){var e;return(null===(e=this._datasetDefinition.sublayerIds)||void 0===e?void 0:e.length)>0}get sublayerIds(){return this._datasetDefinition.sublayerIds}get sublayers(){var{sublayerIds:e}=this;return e?e.map(e=>$.getDataset(e)):[]}get parent(){if(this._datasetDefinition.parentId)return $.getDataset(this._datasetDefinition.parentId)}get style(){var e,t=null===(e=this.parent)||void 0===e?void 0:e.style;return t?Y(Y(Y({},t),{},{opacity:void 0},this._datasetDefinition.style),{},{symbolDescription:this.symbolDescription}):this._datasetDefinition.style||{}}get hasCustomVisualStyle(){return v(this._datasetDefinition.style||{})}get symbolDescription(){var e,t;return null!==(e=this._datasetDefinition.style)&&void 0!==e&&e.symbolDescription?this._datasetDefinition.style.symbolDescription:this.hasCustomVisualStyle||null===(t=this.parent)||void 0===t?void 0:t.symbolDescription}get patternConfigs(){var e=this.hasPattern?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.patternConfigs)]:e}get symbolConfigs(){var e=this.hasSymbol?[this.style]:[];return this.hasSublayers?[...e,...this.sublayers.flatMap(e=>e.symbolConfigs)]:e}}class q{constructor(){this.idToDefinitionMap=new Map,this.definitionToInstanceMap=new Map}add(e){this.idToDefinitionMap.set(e.id,e._datasetDefinition),this.definitionToInstanceMap.set(e._datasetDefinition,e)}invalidateDataset(e){var t=this.idToDefinitionMap.get(e.id);[t.id,...(null==t?void 0:t.sublayerIds)||[]].forEach(e=>{var t=this.idToDefinitionMap.get(e);this.definitionToInstanceMap.delete(t),this.idToDefinitionMap.delete(e)})}invalidateChangedDatasets(e){e.forEach(e=>{var t=this.idToDefinitionMap.get(e.id);if(t&&t!==e){var a=this.definitionToInstanceMap.get(t);this.invalidateDataset(a.isSublayer&&a.parent?a.parent:a)}})}getByDefinition(e){return this.definitionToInstanceMap.get(e)}}function X(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function Q(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?X(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):X(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var $={attach(e,t,a){this._datasets=e,this._orderedDatasets=t,this.attachMapStyle(a),this._invalidateChangedDatasets()},_definitionCache:new q,_invalidateCache(){this._definitionCache=new q},_invalidateChangedDatasets(){this._datasets?this._definitionCache.invalidateChangedDatasets(Object.values(this._datasets)):this._invalidateCache()},attachCreateDataset(e){this._createDataset=e},_createDataset:e=>(e=>new J(e))(e),attachMapStyle(e){e&&(this._mapStyle=e)},get mapStyle(){return this._mapStyle},getDataset(e){var t=this.datasets[e];if(t){var a=this._definitionCache.getByDefinition(t);if(a)return a;var r=this._createDataset(t);return this._definitionCache.add(r),r.isSublayer&&this.getDataset(r.parentId),r}},forEach(e){this._orderedDatasets.forEach(t=>e(this.getDataset(t)))},forEachDataset(e){Object.values(this.datasets).filter(e=>!e.parentId).forEach(t=>e(this.getDataset(t.id)))},topLevelDatasets(){return Object.values(this.datasets).filter(e=>!e.parentId).map(e=>this.getDataset(e.id))},getPatternAndSymbolConfigs(){return this.topLevelDatasets().reduce((e,t)=>Q(Q({},e),{},{patternConfigs:[...e.patternConfigs,...t.patternConfigs],symbolConfigs:[...e.symbolConfigs,...t.symbolConfigs]}),{patternConfigs:[],symbolConfigs:[]})},invalidateKeyItems(){this._lastKeyItemsDatasets=null},_lastKeyItems:{},keyItems(){if(this.datasets===this._lastKeyItemsDatasets)return this._lastKeyItems;this._lastKeyItemsDatasets=this.datasets;var e=[],t=new Set,a=!1;return this.forEachDataset(r=>{if(r.showInKey&&r.keyVisibility)if(r.hasSublayers){var s=r.sublayers.filter(e=>e.keyVisibility);s.length&&(a=!0,e.push({type:"sublayers",dataset:r,sublayers:s}))}else if(r.groupLabel){if(t.has(r.groupLabel))return;t.add(r.groupLabel),a=!0,e.push({type:"group",groupLabel:r.groupLabel,datasets:this.topLevelDatasets().filter(e=>e.groupLabel===r.groupLabel&&!e.hasSublayers&&e.keyVisibility)})}else e.push({type:"flat",dataset:r})}),this._lastKeyItems={items:e,hasGroups:a},this._lastKeyItems}};Object.defineProperty($,"datasets",{get:()=>$._datasets}),window.datasetRegistry=$;var ee,te=e=>{var{adapter:t,pluginConfig:a,mapStyle:r,mapProvider:s,events:i,dispatch:n,eventBus:o}=e,{datasets:l}=a,p=new Map;a.globals&&n({type:"SET_GLOBAL_STATE",payload:a.globals});var c=l.map(e=>((e,t)=>{var a=e.style||{},r=y(y({},t.style),a);!("symbolDescription"in a)&&v(a)&&delete r.symbolDescription;var s=y({},e);delete s.style,b.forEach(e=>delete s[e]);var i=y({},t);return delete i.style,y(y(y({},i),s),r)})(e,h)),{mappedDatasets:m,orderedDatasets:g}=O({datasets:l});t.createDataset&&$.attachCreateDataset(t.createDataset),$.attach(m,g,r);var f=a.menu||d({datasets:c});R(u(f)),n({type:"SET_MENU",payload:{menu:f}}),n({type:"SET_DATASETS",payload:{mappedDatasets:m,orderedDatasets:g}}),t.init().then(()=>{$.forEachDataset(e=>{if(e.hasDynamicGeoJSON){var{dynamicGeoJSON:a}=e,r=L({dynamicGeoJSON:a,map:s.map,onUpdate:(e,a)=>t.setData(e,a)});p.set(e.id,r)}}),t.attachDynamicSources(p),o.emit("datasets:ready")});var D=()=>{t.onMapSizeChange()};return o.on(i.MAP_SIZE_CHANGE,D),{remove(){o.off(i.MAP_SIZE_CHANGE,D),p.forEach(e=>e.destroy()),p.clear(),t.destroy()},refreshDataset(e){var t;null===(t=p.get(e))||void 0===t||t.refresh()},clearDatasetCache(e){var t;null===(t=p.get(e))||void 0===t||t.clear()},getFeatureCount(e){var t,a;return null!==(t=null===(a=p.get(e))||void 0===a?void 0:a.getFeatureCount())&&void 0!==t?t:null}}},ae=function(){var e=n(function*(e){switch(e.name){case"MapLibreProvider":var{default:t}=yield import(/* webpackChunkName: "im-datasets-ml-adapter" */ "./im-datasets-ml-adapter.js").then(function(e){return e.m});return t;case"EsriProvider":var{default:a}=yield import(/* webpackChunkName: "esriLayerAdapter" */ "./esriLayerAdapter.js");return a;default:throw new Error("No layer adapter available for map provider ".concat(e.name,". Please provide a compatible layer adapter."))}});return function(t){return e.apply(this,arguments)}}(),re={},se=function(){var e=n(function*(e,t,a){var r,s,i=yield ae(e);return ee=new i(e,t,a),re.removeDataset=ee.removeDataset.bind(ee),re.setData=ee.setData.bind(ee),re.applyStyle=ee.applyStyle.bind(ee),re.applyDatasetVisibility=ee.applyDatasetVisibility.bind(ee),re.applyGlobalVisibility=ee.applyGlobalVisibility.bind(ee),re.applyDatasetOpacity=ee.applyDatasetOpacity.bind(ee),re.applyGlobalOpacity=ee.applyGlobalOpacity.bind(ee),re.addDataset=ee.addDataset.bind(ee),re.applyFeatureFilter=ee.applyFeatureFilter.bind(ee),re.onMapStyleChange=null===(r=ee.onMapStyleChange)||void 0===r?void 0:r.bind(ee),re.onMapSizeChange=null===(s=ee.onMapSizeChange)||void 0===s?void 0:s.bind(ee),ee});return function(t,a,r){return e.apply(this,arguments)}}();var ie=function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_DATASET_VISIBILITY",payload:{datasetId:n,visible:t}}:{type:"SET_GLOBAL_VISIBILITY",payload:{visible:t}})},ne=e=>{var{menuGroupItem:t,onChange:s}=e,i=$.getDataset(t.id);if(!i)return null;var n=i.isSublayer?i.parentId:i.id,o=i.isSublayer?i.id:void 0,l="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(i.visible?"":" im-c-datasets-layers__item--checked");return a("div",{className:l,"data-module":"govuk-checkboxes",children:r("div",{className:"govuk-checkboxes__item",children:[a("input",{className:"govuk-checkboxes__input",id:i.id,"data-dataset-id":n,"data-sublayer-id":o,name:"layers",type:"checkbox",value:i.id,checked:i.isLocallyVisible,onChange:s}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:i.id,children:i.label})]})},i.id)},oe=e=>{var{menuGroupItem:t,name:s,checked:i,onChange:n}=e,{visibleWhen:o}=t;return!o||V(o)?a("div",{className:'im-c-datasets-layers__item govuk-radios govuk-radios--small"',"data-module":"govuk-radios",children:r("div",{className:"govuk-radios__item",children:[a("input",{id:t.id,className:"govuk-radios__input",type:"radio",name:s,value:t.id,checked:i,onChange:n}),a("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-radios__label",htmlFor:t.id,children:t.label})]})}):null},le=e=>{var{pluginState:t,menuGroup:s}=e,{id:i,items:n,visibleWhen:o}=s;if(!(!o||V(o)))return null;var{menuState:l,dispatch:d}=t,p=l[i],u=e=>{d({type:"UPDATE_MENU_STATE",payload:{[i]:e.target.value}})};return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:a("h3",{children:s.label})}),a("div",{className:"govuk-radios govuk-radios--small","data-module":"govuk-radios",children:n.map(e=>a(oe,{menuGroupItem:e,name:i,checked:e.id===p,onChange:u},e.id))})]})},s.id)},de=e=>{var{menuGroup:t,children:i}=e;if(!t.groupLabel)return a(s,{children:i});return a("div",{className:"govuk-form-group im-c-datasets-layers-group",children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:a("h3",{children:t.groupLabel})}),i]})},t.id)},pe=e=>{var{text:t}=e;return a("div",{className:"im-c-datasets-key",children:a("p",{className:"im-c-datasets-key__empty-message",children:t})})},ue=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var a=Object.values(e)[0];return null!=a?a:null}return null};function ce(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ye(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ce(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var he=20,be={xmlns:"http://www.w3.org/2000/svg",width:he,height:he,viewBox:"0 0 ".concat(he," ").concat(he),className:"am-c-datasets-key-symbol","aria-hidden":"true",focusable:"false"},me=ye(ye({},be),{},{width:44,height:44,className:"am-c-datasets-key-symbol am-c-datasets-key-symbol--point"});function ve(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function ge(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ve(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var fe=e=>{var{patternRegistry:t,registryDataset:s,mapStyle:i}=e,{style:n}=s,o=t.getKeyPatternPaths(n,i.id);return r("svg",ge(ge({},be),{},{children:[a("g",{dangerouslySetInnerHTML:{__html:o.border}}),a("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]}))},De=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),Oe=(e,t)=>{var a;return e.symbolAnchor?e.symbolAnchor:null!==(a=null==t?void 0:t.anchor)&&void 0!==a?a:[.5,.5]};function Se(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function _e(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Se(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Pe=e=>{var t,{symbolRegistry:r,registryDataset:s,mapStyle:i,symbolDef:n}=e,{style:o}=s,l=null!==(t=null==i?void 0:i.appColorScheme)&&void 0!==t?t:"light",d=_e(_e({},i),{},{mapColorScheme:l}),p=r.resolve(n,(e=>{if(!(e=>!(!e.symbol&&!e.symbolSvgContent))(e))return{};var t={};return De.forEach(a=>{if(null!=e[a]){var r=a.charAt(6).toLowerCase()+a.slice(7);t[r]=e[a]}}),t})(o),d),u=((e,t)=>{var a;return e.symbolViewBox?e.symbolViewBox:null!==(a=null==t?void 0:t.viewBox)&&void 0!==a?a:"0 0 38 38"})(o,n);return a("svg",_e(_e({},me),{},{viewBox:u,children:a("g",{dangerouslySetInnerHTML:{__html:p}})}))};function Ee(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function we(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ee(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Ae=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",we(we({},be),{},{children:a("line",{x1:s.strokeWidth/2,y1:10,x2:he-s.strokeWidth/2,y2:10,stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinecap:"round"})}))};function Ie(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function je(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ie(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Te=e=>{var{mapStyle:t,registryDataset:r}=e,{style:s}=r;return a("svg",je(je({},be),{},{children:a("rect",{x:s.strokeWidth/2,y:s.strokeWidth/2,width:he-s.strokeWidth,height:he-s.strokeWidth,rx:s.strokeWidth,ry:s.strokeWidth,fill:ue(s.fill,t.id),stroke:ue(s.stroke,t.id),strokeWidth:s.strokeWidth,strokeLinejoin:"round"})}))},Me=e=>{var{symbolRegistry:t,registryDataset:r,mapStyle:s,patternRegistry:i}=e,{hasSymbol:n,hasPattern:o,style:l}=r,d=n&&t.getSymbolDef(l);return d?a(Pe,{mapStyle:s,registryDataset:r,symbolRegistry:t,symbolDef:d}):o?a(fe,{mapStyle:s,registryDataset:r,patternRegistry:i}):"line"===l.keySymbolShape?a(Ae,{mapStyle:s,registryDataset:r}):a(Te,{mapStyle:s,registryDataset:r})},ke=e=>{var{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n}=e;return t.showInKey?r("dl",{className:"im-c-datasets-key__item",children:[a("dt",{className:"im-c-datasets-key__item-symbol",children:a(Me,{registryDataset:t,symbolRegistry:s,patternRegistry:i,mapStyle:n})}),r("dd",{className:"im-c-datasets-key__item-label",children:[t.label,t.symbolDescription&&r("span",{className:"govuk-visually-hidden",children:["(",ue(t.symbolDescription,n.id),")"]})]})]}):null},Ce=e=>{var{headingId:t,label:s,datasets:i,symbolRegistry:n,patternRegistry:o,mapStyle:l}=e;return r("section",{className:"im-c-datasets-key__group","aria-labelledby":t,children:[a("h3",{id:t,className:"im-c-datasets-key__group-heading",children:s}),i.map(e=>a(ke,{registryDataset:e,symbolRegistry:n,patternRegistry:o,mapStyle:l},"".concat(e.id)))]})},Le={InitComponent:function(a){var{pluginConfig:r,pluginState:s,appState:i,mapState:o,mapProvider:l,services:d}=a,{dispatch:p}=s,{eventBus:u,symbolRegistry:c,patternRegistry:y}=d,h=Boolean(null==l?void 0:l.isBaseMapReady());e(s).current=s;var b=e(null);return t(()=>{var e,t,a,s,d=null===(e=null===(t=r.includeModes)||void 0===t?void 0:t.includes(i.mode))||void 0===e||e,m=null!==(a=null===(s=r.excludeModes)||void 0===s?void 0:s.includes(i.mode))&&void 0!==a&&a;if(h&&d&&!m&&!b.current){var v=function(){var e=n(function*(){var e=yield se(l,c,y);b.current=te({adapter:e,pluginConfig:r,mapStyle:o.mapStyle,mapProvider:l,events:T,dispatch:p,eventBus:u})});return function(){return e.apply(this,arguments)}}();v()}},[h,i.mode]),t(()=>{R(s.menuState),$.invalidateKeyItems()},[s.menuState]),t(()=>$.attach(s.mappedDatasets,s.orderedDatasets),[s.mappedDatasets,s.orderedDatasets]),t(()=>{$.attachMapStyle(o.mapStyle),null!=re&&re.onMapStyleChange&&re.onMapStyleChange()},[o.mapStyle]),t(()=>{return e=s.globals,void(U=e);var e},[s.globals]),t(()=>{var{actionsArray:e}=s;e.length&&(e.forEach(e=>{var{method:t,parameters:a}=e;return re[t](...a)}),p({type:"REMOVE_ADAPTER_ACTIONS",payload:e}))},[s.actionsArray]),t(()=>()=>{b.current&&(b.current.remove(),b.current=null)},[]),null},reducer:{initialState:{globals:{visible:!0,opacity:1,opacityMode:"dataset"},key:{items:[],hasGroups:!1},mappedDatasets:{},orderedDatasets:[],actionsArray:[],menu:[],menuState:{}},actions:j},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"260px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"280px"},render:e=>{var{pluginState:t}=e,{menu:s=[]}=t,i=e=>{var{value:a,checked:r}=e.target;ie({pluginState:t},r,{datasetId:a})},n=s.some(e=>e.groupLabel),o="im-c-datasets-layers".concat(n?" im-c-datasets-layers--has-groups":"");return a("div",{className:o,children:s.map(e=>{var{type:s}=e;return"checkbox"===s?r(de,{menuGroup:e,children:[" ",e.items.map(e=>a(ne,{menuGroupItem:e,onChange:i},e.id))]},e.id):a(le,{menuGroup:e,pluginState:t},e.id)})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:e=>{var{pluginConfig:{noKeyItemText:t},mapState:{mapStyle:r},services:{symbolRegistry:s,patternRegistry:i}}=e,{items:n,hasGroups:o}=$.keyItems();if(null==n||!n.length)return a(pe,{text:t});var l="im-c-datasets-key".concat(o?" im-c-datasets-key--has-groups":"");return a("div",{className:l,children:n.map(e=>{var t="group"===e.type?e.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"):e.dataset.id;if("sublayers"===e.type||"group"===e.type){var n="sublayers"===e.type?e.sublayers:e.datasets,o="sublayers"===e.type?e.dataset.label:e.groupLabel;return a(Ce,{headingId:"key-heading-".concat(t),label:o,datasets:n,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)}return a(ke,{registryDataset:e.dataset,symbolRegistry:s,patternRegistry:i,mapStyle:r},t)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.menu&&!t.datasets.some(e=>{var t;return e.showInMenu||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.showInMenu))})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.some(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{addDataset:(e,t)=>{var{pluginState:{dispatch:a},mapState:r}=e;a({type:"ADD_DATASET",payload:{dataset:t,mapStyle:r.mapStyle}})},removeDataset:(e,t)=>{var{pluginState:{dispatch:a}}=e;re.removeDataset(t),a({type:"REMOVE_DATASET",payload:{id:t}})},setDatasetVisibility:ie,setFeatureVisibility:function(e,t,a){var{pluginState:{dispatch:r}}=e,{datasetId:s=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(s){var i=$.getDataset(s);!i||i.idProperty||i.generateIds||_.warn('setFeatureVisibility: Dataset "'.concat(s,'" has no idProperty or generateIds configured. Features may not be matched correctly. Add idProperty to match by a feature property, or add generateIds: true to use auto-generated IDs.'))}r({type:t?"SHOW_FEATURES":"HIDE_FEATURES",payload:{datasetId:s,featureIds:a}})},setStyle:function(e,t){var{pluginState:{dispatch:a},mapState:r}=e,{datasetId:s,sublayerId:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};a({type:"SET_DATASET_STYLE",payload:{datasetId:s=i?"".concat(s,"-").concat(i):s,styleChanges:t,mapStyle:r.mapStyle}})},getStyle:function(e){var{_pluginState:t}=e,{datasetId:a,sublayerId:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a=r?"".concat(a,"-").concat(r):a;var s=$.getDataset(a);return s?s.style:(_.warn("getStyle: Dataset with id ".concat(a," not found")),null)},setOpacity:function(e,t){var{pluginState:{dispatch:a}}=e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;a(n?{type:"SET_OPACITY",payload:{datasetId:n,opacity:t}}:{type:"SET_GLOBAL_OPACITY",payload:{opacity:t}})},getOpacity:function(e){var t,{pluginState:{globals:a}}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{datasetId:s,sublayerId:i}=r,n=i?"".concat(s,"-").concat(i):s;if(n){var o,l=$.getDataset(n);return l?null!==(o=l.opacity)&&void 0!==o?o:null:(_.warn("getOpacity: Dataset with id ".concat(n," not found")),null)}return null!==(t=a.opacity)&&void 0!==t?t:null},setData:(e,t,a)=>{var{_pluginState:r}=e,{datasetId:s}=a,i=$.getDataset(s);i?null!=i&&i.tiles?_.warn('setData called on vector tile dataset "'.concat(s,'" — has no effect')):re.setData(s,t):_.warn("setData: Dataset with id ".concat(s," not found"))},setGlobals:(e,t)=>{var{pluginState:{dispatch:a}}=e,{opacityMode:r}=t,s={},i=!1;r&&(["dataset","global","multiply"].includes(r)?(i=!0,s.opacityMode=r):_.warn("Ignoring invalid opacityMode: ".concat(r,". Must be one of 'dataset', 'global' or 'multiply'."))),i?a({type:"SET_GLOBAL_STATE",payload:s}):_.warn("setGlobals: requires a valid value for opacityMode to be set")}}},Ne=Object.freeze({__proto__:null,manifest:Le});export{J as D,ue as a,$ as d,Oe as g,B as h,_ as l,Ne as m};
|