@defra/interactive-map 0.0.41-alpha → 0.0.43-fmp-experimental

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 (79) hide show
  1. package/dist/css/index.css +1 -1
  2. package/dist/esm/im-core.js +1 -1
  3. package/dist/umd/im-core.js +1 -1
  4. package/dist/umd/index.js +1 -1
  5. package/docs/api/button-definition.md +7 -8
  6. package/docs/api/control-definition.md +8 -0
  7. package/docs/api/panel-definition.md +5 -0
  8. package/docs/api/slots.md +24 -1
  9. package/docs/examples/add-polygons.mdx +8 -2
  10. package/docs/examples/add-symbols.mdx +8 -2
  11. package/docs/plugins/datasets.md +23 -15
  12. package/docs/plugins/map-key.md +147 -0
  13. package/docs/plugins.md +5 -1
  14. package/package.json +1 -1
  15. package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
  16. package/plugins/beta/map-styles/dist/umd/index.js +1 -1
  17. package/plugins/beta/scale-bar/dist/css/index.css +2 -25
  18. package/plugins/beta/use-location/dist/esm/im-use-location-plugin.js +1 -1
  19. package/plugins/beta/use-location/dist/umd/im-use-location-plugin.js +1 -1
  20. package/plugins/beta/use-location/src/manifest.js +1 -1
  21. package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
  22. package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
  23. package/plugins/datasets/src/registry/dataset.js +12 -0
  24. package/plugins/datasets/src/registry/datasetRegistry.js +4 -2
  25. package/plugins/draw/dist/esm/im-draw-plugin.js +1 -1
  26. package/plugins/draw/dist/umd/im-draw-plugin.js +1 -1
  27. package/plugins/draw/dist/umd/index.js +1 -1
  28. package/plugins/draw/src/api/createNewShape.js +41 -0
  29. package/plugins/draw/src/api/createNewShape.test.js +63 -0
  30. package/plugins/draw/src/api/newLine.js +2 -40
  31. package/plugins/draw/src/api/newPolygon.js +2 -40
  32. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  33. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  34. package/plugins/interact/dist/umd/index.js +1 -1
  35. package/plugins/interact/src/manifest.js +1 -1
  36. package/plugins/map-key/dist/css/index.css +55 -11
  37. package/plugins/map-key/dist/esm/im-map-key-plugin.js +1 -1
  38. package/plugins/map-key/dist/umd/im-map-key-plugin.js +1 -1
  39. package/plugins/map-key/dist/umd/index.js +1 -1
  40. package/plugins/map-key/src/components/Key/Key.jsx +6 -3
  41. package/plugins/map-key/src/components/Key/Key.module.scss +66 -13
  42. package/plugins/map-key/src/components/Key/KeyGroupItem.jsx +12 -8
  43. package/plugins/map-key/src/components/Key/KeyGroupItem.test.jsx +10 -0
  44. package/plugins/map-key/src/components/Key/KeyItem.jsx +9 -12
  45. package/plugins/map-key/src/components/Key/KeyItem.test.jsx +3 -3
  46. package/plugins/map-key/src/components/Key/KeySvg.jsx +27 -22
  47. package/plugins/map-key/src/components/Key/KeySvg.test.jsx +9 -0
  48. package/plugins/map-key/src/components/Key/KeySvgLine.jsx +3 -9
  49. package/plugins/map-key/src/components/Key/KeySvgPattern.jsx +2 -7
  50. package/plugins/map-key/src/components/Key/KeySvgPattern.test.jsx +6 -0
  51. package/plugins/map-key/src/components/Key/KeySvgRamp.jsx +13 -0
  52. package/plugins/map-key/src/components/Key/KeySvgRamp.test.jsx +43 -0
  53. package/plugins/map-key/src/components/Key/KeySvgRect.jsx +4 -11
  54. package/plugins/map-key/src/components/Key/KeySvgSymbol.jsx +5 -11
  55. package/plugins/map-key/src/components/Key/KeySvgSymbol.test.jsx +12 -0
  56. package/plugins/map-key/src/components/Key/MapKey.jsx +5 -2
  57. package/plugins/map-key/src/components/Key/MapKey.test.jsx +28 -11
  58. package/plugins/map-key/src/components/Key/svgProperties.js +2 -2
  59. package/plugins/map-key/src/components/Key/svgProperties.test.js +2 -2
  60. package/src/App/components/KeyboardHelp/KeyboardHelp.jsx +25 -23
  61. package/src/App/components/KeyboardHelp/KeyboardHelp.test.jsx +22 -5
  62. package/src/App/components/Panel/Panel.jsx +50 -8
  63. package/src/App/components/Panel/Panel.module.scss +31 -7
  64. package/src/App/components/Panel/Panel.test.jsx +81 -2
  65. package/src/App/components/Tabs/Tabs.jsx +43 -17
  66. package/src/App/components/Tabs/Tabs.module.scss +32 -5
  67. package/src/App/components/Tabs/Tabs.test.jsx +40 -10
  68. package/src/App/renderer/groupByKey.js +28 -0
  69. package/src/App/renderer/groupByKey.test.js +39 -0
  70. package/src/App/renderer/groupIntoTabs.js +42 -0
  71. package/src/App/renderer/groupIntoTabs.test.js +95 -0
  72. package/src/App/renderer/mapButtons.js +74 -122
  73. package/src/App/renderer/mapButtons.test.js +51 -80
  74. package/src/App/renderer/mapControls.js +1 -0
  75. package/src/App/renderer/mapControls.test.js +16 -0
  76. package/src/App/renderer/mapPanels.js +26 -19
  77. package/src/App/renderer/mapPanels.test.js +44 -0
  78. package/src/config/appConfig.js +2 -2
  79. package/src/types.js +20 -2
@@ -0,0 +1,147 @@
1
+ # Map Key Plugin
2
+
3
+ Renders a key of symbols present on the map, in a key panel.
4
+
5
+ Today, the [Datasets](./datasets.md) plugin is wired up to it via a dedicated hook — datasets and sublayers configured with `showInKey: true` feed their styled symbols into the key panel automatically. Other plugins may hook into the key panel in future, but that isn't built yet; Datasets is currently the only integration.
6
+
7
+ The plugin holds no dataset-specific config itself — when paired with the Datasets plugin, it reads dataset styling from that plugin's registry at runtime via that hook. There's nothing to configure to make that connection; both plugins just need to be present in `plugins`.
8
+
9
+ > [!NOTE]
10
+ > Buttons render in the shared `top-left` slot in the order their plugins appear in the `plugins` array — list `datasetsPlugin` before `mapKeyPlugin` to get Layers before Key.
11
+
12
+ ## ESM usage
13
+
14
+ ```js
15
+ import createDatasetsPlugin from '@defra/interactive-map/plugins/datasets'
16
+ import createMapKeyPlugin from '@defra/interactive-map/plugins/map-key'
17
+
18
+ const datasetsPlugin = createDatasetsPlugin({
19
+ datasets: [
20
+ {
21
+ id: 'my-parcels',
22
+ label: 'My parcels',
23
+ geojson: 'https://example.com/api/parcels',
24
+ showInKey: true,
25
+ showInMenu: true,
26
+ style: {
27
+ stroke: '#d4351c',
28
+ strokeWidth: 2,
29
+ fill: 'transparent'
30
+ }
31
+ }
32
+ ]
33
+ })
34
+
35
+ const mapKeyPlugin = createMapKeyPlugin()
36
+
37
+ const interactiveMap = new InteractiveMap({
38
+ plugins: [datasetsPlugin, mapKeyPlugin]
39
+ })
40
+ ```
41
+
42
+ ## UMD usage
43
+
44
+ Copy the entire `plugins/map-key/dist/umd/` directory to `/your-assets-path/plugins/map-key/umd/`. The plugin uses dynamic imports, so all files in the directory must be served from the same location. Then add the script tag alongside the Datasets plugin's:
45
+
46
+ ```html
47
+ <script defer src="/your-assets-path/plugins/datasets/umd/index.js"></script>
48
+ <script defer src="/your-assets-path/plugins/map-key/umd/index.js"></script>
49
+ ```
50
+
51
+ ```js
52
+ const datasetsPlugin = defra.datasetsPlugin({
53
+ datasets: [
54
+ {
55
+ id: 'my-parcels',
56
+ label: 'My parcels',
57
+ geojson: 'https://example.com/api/parcels',
58
+ showInKey: true,
59
+ showInMenu: true,
60
+ style: {
61
+ stroke: '#d4351c',
62
+ strokeWidth: 2,
63
+ fill: 'transparent'
64
+ }
65
+ }
66
+ ]
67
+ })
68
+
69
+ const mapKeyPlugin = defra.mapKeyPlugin()
70
+
71
+ const interactiveMap = new defra.InteractiveMap('map', {
72
+ mapProvider: defra.maplibreProvider(),
73
+ plugins: [datasetsPlugin, mapKeyPlugin]
74
+ })
75
+ ```
76
+
77
+ > [!NOTE]
78
+ > **GOV.UK Prototype Kit** — skip the copy step. All files are served automatically. Use this path instead:
79
+ > ```html
80
+ > <script defer src="/plugin-assets/%40defra%2Finteractive-map/plugins/map-key/dist/umd/index.js"></script>
81
+ > ```
82
+
83
+ ## Options
84
+
85
+ Options are passed to the factory function when creating the plugin.
86
+
87
+ ---
88
+
89
+ ### `noKeyItemText`
90
+
91
+ **Type:** `string`
92
+ **Default:** `'No features displayed'`
93
+
94
+ Text shown in the key panel when it has no visible entries to display — for example, no datasets or sublayers configured with `showInKey: true` currently have visible features on the map.
95
+
96
+ ```js
97
+ createMapKeyPlugin({ noKeyItemText: 'No layers to show' })
98
+ ```
99
+
100
+ ---
101
+
102
+ ### `includeModes`
103
+
104
+ **Type:** `string[]`
105
+
106
+ When set, the plugin only initialises when the app is in one of the specified modes.
107
+
108
+ ---
109
+
110
+ ### `excludeModes`
111
+
112
+ **Type:** `string[]`
113
+
114
+ When set, the plugin does not initialise when the app is in one of the specified modes.
115
+
116
+ ---
117
+
118
+ ## Key display properties
119
+
120
+ These properties control how an entry looks in the key panel — they have no effect on how a feature renders on the map itself. Today the only way to set them is via a dataset's [`style`](./datasets.md#style) object, since Datasets is the only plugin feeding this key panel.
121
+
122
+ ---
123
+
124
+ ### `keySymbolShape`
125
+
126
+ **Type:** `'polygon' | 'line'`
127
+ **Default:** `'polygon'`
128
+
129
+ Overrides the shape used to render a polygon/line entry's symbol in the key.
130
+
131
+ ---
132
+
133
+ ### `symbolDescription`
134
+
135
+ **Type:** `string | Record<string, string>`
136
+
137
+ Accessible description of the symbol shown alongside its key entry.
138
+
139
+ ---
140
+
141
+ ## Methods
142
+
143
+ This plugin does not expose any public methods.
144
+
145
+ ## Events
146
+
147
+ This plugin does not emit any custom events.
package/docs/plugins.md CHANGED
@@ -30,7 +30,11 @@ The following plugins are in early development. APIs and features may change.
30
30
 
31
31
  ### [Datasets](./plugins/datasets.md)
32
32
 
33
- Add datasets to your map, configure the display, layer toggling and render a key of symbology.
33
+ Render GeoJSON and vector tile datasets on the map, with a menu for toggling layer visibility. Pair with the [Map Key](./plugins/map-key.md) plugin to render a key of symbols.
34
+
35
+ ### [Map Key](./plugins/map-key.md)
36
+
37
+ Renders a key of symbols in a panel. Currently sourced from the Datasets plugin.
34
38
 
35
39
  ### [Draw](./plugins/draw.md)
36
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/interactive-map",
3
- "version": "0.0.41-alpha",
3
+ "version": "0.0.43-fmp-experimental",
4
4
  "description": "An accessible map component",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[657],{346(e,t,i){i.r(t),i.d(t,{manifest:()=>u});var s=i(738),r="app:ready",a=i(287);new Map;var l=Object.freeze({SIDE:"side",HEADER:"header",BANNER:"banner",TOP_LEFT:"top-left",TOP_MIDDLE:"top-middle",TOP_RIGHT:"top-right",LEFT_TOP:"left-top",LEFT_BOTTOM:"left-bottom",MIDDLE:"middle",RIGHT_TOP:"right-top",RIGHT_BOTTOM:"right-bottom",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",DRAWER:"drawer",ACTIONS:"actions",MODAL:"modal"});function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function m(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?o(Object(i),!0).forEach(function(t){c(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}function c(e,t,i){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.freeze({control:[l.HEADER,l.BANNER,l.TOP_LEFT,l.TOP_RIGHT,l.MIDDLE,l.RIGHT_TOP,l.RIGHT_BOTTOM,l.BOTTOM_RIGHT,l.DRAWER,l.ACTIONS],panel:[l.SIDE,l.HEADER,l.BANNER,l.LEFT_TOP,l.LEFT_BOTTOM,l.MIDDLE,l.RIGHT_TOP,l.RIGHT_BOTTOM,l.DRAWER,l.MODAL],button:[l.TOP_LEFT,l.TOP_MIDDLE,l.TOP_RIGHT,l.LEFT_TOP,l.LEFT_BOTTOM,l.RIGHT_TOP,l.RIGHT_BOTTOM,l.BOTTOM_LEFT,l.BOTTOM_RIGHT,l.ACTIONS]});var p={slot:"middle",open:!1,dismissible:!0,modal:!0},d=(m({},p),m(m({},p),{},{width:"500px"}),m(m({},p),{},{width:"500px"}),{small:1,medium:1.5,large:2}),u={InitComponent:function(e){var t=e.pluginConfig,i=e.services.eventBus,l=function(){i.emit("map:initmapstyles",t.mapStyles)};return(0,s.useEffect)(function(){return i.on(r,l),function(){return i.off(r,l)}},[]),(0,a.jsx)(a.Fragment,{})},panels:[{id:"mapStyles",label:"Map styles",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},desktop:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},render:function(e){var t=e.mapState,i=e.pluginConfig,s=e.services,r=e.mapProvider,l=t.mapStyle,n=t.mapSize,o=i.mapStyles,m=s.eventBus,c=r.capabilities.supportsMapSizes;return(0,a.jsxs)("div",{className:"im-c-map-styles",children:[(0,a.jsx)("div",{className:"im-c-map-styles__group",children:(0,a.jsx)("div",{className:"im-c-map-styles__inner",children:o.filter(function(e){return e.url}).map(function(e){return(0,a.jsx)("div",{className:"im-c-map-styles__item",children:(0,a.jsxs)("button",{className:"im-c-map-styles__button","aria-pressed":e.id===l.id,onClick:function(){return t=e,void m.emit("map:setstyle",t);var t},children:[(0,a.jsx)("div",{className:"im-c-map-styles__image",children:(0,a.jsx)("img",{src:e.thumbnail||void 0,alt:"",height:"60",width:"60"})}),e.label]})},e.id)})})}),c&&(0,a.jsxs)("div",{className:"im-c-map-styles__group",children:[(0,a.jsx)("h3",{className:"im-c-map-styles__heading",id:"map-text-sizes",children:"Map size"}),(0,a.jsx)("div",{className:"im-c-map-styles__inner",children:["small","medium","large"].map(function(e){return(0,a.jsx)("div",{className:"im-c-map-styles__item",children:(0,a.jsxs)("button",{className:"im-c-map-styles__button",onClick:function(){return t=e,m.emit("map:setsize",t),void m.emit("map:setpixelratio",window.devicePixelRatio*d[t]);var t},"aria-pressed":e===n,children:[(0,a.jsx)("div",{className:"im-c-map-styles__image",children:(0,a.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fillRule:"evenodd",children:[(0,a.jsx)("rect",{className:"im-c-map-styles__image-bg",width:"100%",height:"100%"}),(0,a.jsx)("g",{style:{transform:"scale(".concat(d[e],")"),transformOrigin:"8px 52px"},children:(0,a.jsx)("path",{d:"M8 51.785L12.948 38.9h1.837l5.274 12.885h-1.943l-1.503-3.903h-5.387l-1.415 3.903H8zm3.718-5.291h4.368l-1.345-3.569-.914-2.671c-.164.826-.395 1.646-.694 2.46l-1.415 3.78zm15.592 4.139c-3.698 3.143-7.836.271-6.315-2.562.963-1.794 5.529-1.982 6.183-2.21.022-.825.052-2.27-2.241-2.312-1.751-.031-2.242 1.025-2.435 1.776l-1.547-.211c.234-1.102.963-2.856 4.21-2.874 4.037-.022 3.612 2.962 3.612 3.524v2.11c0 .315 0 3.012.501 3.911h-1.652c-.164-.328-.27-.712-.316-1.152zm-.132-3.533c-.907.37-3.444.694-3.964.914-1.293.548-.911 2.399.225 2.637.639.134 3.739.476 3.739-2.971v-.58z"})})]})}),e[0].toUpperCase()+e.slice(1)]})},e)})})]})]})}}],buttons:[{id:"mapStyles",label:"Styles",panelId:"mapStyles",iconId:"map",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"map",svgContent:'<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/>'}]}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[657],{47(e,t,i){i.r(t),i.d(t,{manifest:()=>u});var s=i(738),r="app:ready",a=i(287);new Map;var l=Object.freeze({SIDE:"side",HEADER:"header",BANNER:"banner",TOP_LEFT:"top-left",TOP_MIDDLE:"top-middle",TOP_RIGHT:"top-right",LEFT_TOP:"left-top",LEFT_BOTTOM:"left-bottom",MIDDLE:"middle",RIGHT_TOP:"right-top",RIGHT_BOTTOM:"right-bottom",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",DRAWER:"drawer",ACTIONS:"actions",MODAL:"modal"});function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function m(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?o(Object(i),!0).forEach(function(t){c(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}function c(e,t,i){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.freeze({control:[l.HEADER,l.BANNER,l.TOP_LEFT,l.TOP_RIGHT,l.MIDDLE,l.RIGHT_TOP,l.RIGHT_BOTTOM,l.BOTTOM_RIGHT,l.DRAWER,l.ACTIONS],panel:[l.SIDE,l.HEADER,l.BANNER,l.LEFT_TOP,l.LEFT_BOTTOM,l.MIDDLE,l.RIGHT_TOP,l.RIGHT_BOTTOM,l.DRAWER,l.MODAL],button:[l.TOP_LEFT,l.TOP_MIDDLE,l.TOP_RIGHT,l.LEFT_TOP,l.LEFT_BOTTOM,l.RIGHT_TOP,l.RIGHT_BOTTOM,l.BOTTOM_LEFT,l.BOTTOM_RIGHT,l.ACTIONS]});var p={slot:"middle",open:!1,dismissible:!0,modal:!0},d=(m({},p),m(m({},p),{},{width:"500px"}),m(m({},p),{},{width:"500px"}),{small:1,medium:1.5,large:2}),u={InitComponent:function(e){var t=e.pluginConfig,i=e.services.eventBus,l=function(){i.emit("map:initmapstyles",t.mapStyles)};return(0,s.useEffect)(function(){return i.on(r,l),function(){return i.off(r,l)}},[]),(0,a.jsx)(a.Fragment,{})},panels:[{id:"mapStyles",label:"Map styles",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},desktop:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},render:function(e){var t=e.mapState,i=e.pluginConfig,s=e.services,r=e.mapProvider,l=t.mapStyle,n=t.mapSize,o=i.mapStyles,m=s.eventBus,c=r.capabilities.supportsMapSizes;return(0,a.jsxs)("div",{className:"im-c-map-styles",children:[(0,a.jsx)("div",{className:"im-c-map-styles__group",children:(0,a.jsx)("div",{className:"im-c-map-styles__inner",children:o.filter(function(e){return e.url}).map(function(e){return(0,a.jsx)("div",{className:"im-c-map-styles__item",children:(0,a.jsxs)("button",{className:"im-c-map-styles__button","aria-pressed":e.id===l.id,onClick:function(){return t=e,void m.emit("map:setstyle",t);var t},children:[(0,a.jsx)("div",{className:"im-c-map-styles__image",children:(0,a.jsx)("img",{src:e.thumbnail||void 0,alt:"",height:"60",width:"60"})}),e.label]})},e.id)})})}),c&&(0,a.jsxs)("div",{className:"im-c-map-styles__group",children:[(0,a.jsx)("h3",{className:"im-c-map-styles__heading",id:"map-text-sizes",children:"Map size"}),(0,a.jsx)("div",{className:"im-c-map-styles__inner",children:["small","medium","large"].map(function(e){return(0,a.jsx)("div",{className:"im-c-map-styles__item",children:(0,a.jsxs)("button",{className:"im-c-map-styles__button",onClick:function(){return t=e,m.emit("map:setsize",t),void m.emit("map:setpixelratio",window.devicePixelRatio*d[t]);var t},"aria-pressed":e===n,children:[(0,a.jsx)("div",{className:"im-c-map-styles__image",children:(0,a.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fillRule:"evenodd",children:[(0,a.jsx)("rect",{className:"im-c-map-styles__image-bg",width:"100%",height:"100%"}),(0,a.jsx)("g",{style:{transform:"scale(".concat(d[e],")"),transformOrigin:"8px 52px"},children:(0,a.jsx)("path",{d:"M8 51.785L12.948 38.9h1.837l5.274 12.885h-1.943l-1.503-3.903h-5.387l-1.415 3.903H8zm3.718-5.291h4.368l-1.345-3.569-.914-2.671c-.164.826-.395 1.646-.694 2.46l-1.415 3.78zm15.592 4.139c-3.698 3.143-7.836.271-6.315-2.562.963-1.794 5.529-1.982 6.183-2.21.022-.825.052-2.27-2.241-2.312-1.751-.031-2.242 1.025-2.435 1.776l-1.547-.211c.234-1.102.963-2.856 4.21-2.874 4.037-.022 3.612 2.962 3.612 3.524v2.11c0 .315 0 3.012.501 3.911h-1.652c-.164-.328-.27-.712-.316-1.152zm-.132-3.533c-.907.37-3.444.694-3.964.914-1.293.548-.911 2.399.225 2.637.639.134 3.739.476 3.739-2.971v-.58z"})})]})}),e[0].toUpperCase()+e.slice(1)]})},e)})})]})]})}}],buttons:[{id:"mapStyles",label:"Styles",panelId:"mapStyles",iconId:"map",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"map",svgContent:'<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/>'}]}}}]);
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.mapStylesPlugin=t())}(this,()=>(()=>{"use strict";var e,t,r={738(e){e.exports=preactCompat},287(e){e.exports=preactJsxRuntime}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,r)=>(o.f[r](e,t),t),[])),o.u=e=>"im-map-styles-plugin.js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="defra.mapStylesPlugin:",o.l=(r,n,a,i)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==a)for(var f=document.getElementsByTagName("script"),p=0;p<f.length;p++){var l=f[p];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+a){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",o.nc&&u.setAttribute("nonce",o.nc),u.setAttribute("data-webpack",t+a),u.src=r),e[r]=[n];var s=(t,n)=>{u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach(e=>e(n)),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=a);var i=o.p+o.u(t),u=new Error;o.l(i,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,a,[i,u,c]=r,f=0;if(i.some(t=>0!==e[t])){for(n in u)o.o(u,n)&&(o.m[n]=u[n]);c&&c(o)}for(t&&t(r);f<i.length;f++)a=i[f],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var a={};function i(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function a(r,n,o,a){var i=n&&n.prototype instanceof f?n:f,p=Object.create(i.prototype);return u(p,"_invoke",function(r,n,o){var a,i,u,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return a=t,i=0,u=e,s.n=r,c}};function d(r,n){for(i=r,u=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,a=p[t],d=s.p,v=a[2];r>3?(o=v===n)&&(u=a[(i=a[4])?5:(i=3,3)],a[4]=a[5]=e):a[0]<=d&&((o=r<2&&d<a[1])?(i=0,s.v=n,s.n=a[1]):d<v&&(o=r<3||a[0]>n||n>v)&&(a[4]=r,a[5]=n,s.n=v,i=0))}if(o||r>1)return c;throw l=!0,n}return function(o,p,v){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,v),i=p,u=v;(t=i<2?e:u)||!l;){a||(i?i<3?(i>1&&(s.n=-1),d(i,u)):s.n=u:s.v=u);try{if(f=2,a){if(i||(o="next"),t=a[o]){if(!(t=t.call(a,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=a.return)&&t.call(a),i<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),i=1);a=e}else if((t=(l=s.n<0)?u:r.call(n,s))!==c)break}catch(t){a=e,i=1,u=t}finally{f=1}}return{value:t,done:l}}}(r,o,a),!0),p}var c={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(u(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,u(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,u(d,"constructor",l),u(l,"constructor",p),p.displayName="GeneratorFunction",u(l,o,"GeneratorFunction"),u(d),u(d,o,"Generator"),u(d,n,function(){return this}),u(d,"toString",function(){return"[object Generator]"}),(i=function(){return{w:a,m:v}})()}function u(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}u=function(e,t,r,n){function a(t,r){u(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(a("next",0),a("throw",1),a("return",2))},u(e,t,r,n)}function c(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function f(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:"mapStyles",manifest:r.manifest,mapStyles:r.mapStyles,load:(e=i().m(function e(){var t;return i().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(657).then(o.bind(o,346));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function i(e){c(a,n,o,i,u,"next",e)}function u(e){c(a,n,o,i,u,"throw",e)}i(void 0)})},function(){return t.apply(this,arguments)}),handlesMapStyle:!0,api:{}}}return o.d(a,{default:()=>f}),a.default})());
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.mapStylesPlugin=t())}(this,()=>(()=>{"use strict";var e,t,r={738(e){e.exports=preactCompat},287(e){e.exports=preactJsxRuntime}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,r)=>(o.f[r](e,t),t),[])),o.u=e=>"im-map-styles-plugin.js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="defra.mapStylesPlugin:",o.l=(r,n,a,i)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==a)for(var f=document.getElementsByTagName("script"),p=0;p<f.length;p++){var l=f[p];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+a){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",o.nc&&u.setAttribute("nonce",o.nc),u.setAttribute("data-webpack",t+a),u.src=r),e[r]=[n];var s=(t,n)=>{u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach(e=>e(n)),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=a);var i=o.p+o.u(t),u=new Error;o.l(i,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,a,[i,u,c]=r,f=0;if(i.some(t=>0!==e[t])){for(n in u)o.o(u,n)&&(o.m[n]=u[n]);c&&c(o)}for(t&&t(r);f<i.length;f++)a=i[f],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var a={};function i(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function a(r,n,o,a){var i=n&&n.prototype instanceof f?n:f,p=Object.create(i.prototype);return u(p,"_invoke",function(r,n,o){var a,i,u,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return a=t,i=0,u=e,s.n=r,c}};function d(r,n){for(i=r,u=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,a=p[t],d=s.p,v=a[2];r>3?(o=v===n)&&(u=a[(i=a[4])?5:(i=3,3)],a[4]=a[5]=e):a[0]<=d&&((o=r<2&&d<a[1])?(i=0,s.v=n,s.n=a[1]):d<v&&(o=r<3||a[0]>n||n>v)&&(a[4]=r,a[5]=n,s.n=v,i=0))}if(o||r>1)return c;throw l=!0,n}return function(o,p,v){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,v),i=p,u=v;(t=i<2?e:u)||!l;){a||(i?i<3?(i>1&&(s.n=-1),d(i,u)):s.n=u:s.v=u);try{if(f=2,a){if(i||(o="next"),t=a[o]){if(!(t=t.call(a,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=a.return)&&t.call(a),i<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),i=1);a=e}else if((t=(l=s.n<0)?u:r.call(n,s))!==c)break}catch(t){a=e,i=1,u=t}finally{f=1}}return{value:t,done:l}}}(r,o,a),!0),p}var c={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(u(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,u(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,u(d,"constructor",l),u(l,"constructor",p),p.displayName="GeneratorFunction",u(l,o,"GeneratorFunction"),u(d),u(d,o,"Generator"),u(d,n,function(){return this}),u(d,"toString",function(){return"[object Generator]"}),(i=function(){return{w:a,m:v}})()}function u(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}u=function(e,t,r,n){function a(t,r){u(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(a("next",0),a("throw",1),a("return",2))},u(e,t,r,n)}function c(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function f(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{id:"mapStyles",manifest:r.manifest,mapStyles:r.mapStyles,load:(e=i().m(function e(){var t;return i().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(657).then(o.bind(o,47));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function i(e){c(a,n,o,i,u,"next",e)}function u(e){c(a,n,o,i,u,"throw",e)}i(void 0)})},function(){return t.apply(this,arguments)}),handlesMapStyle:!0,api:{}}}return o.d(a,{default:()=>f}),a.default})());
@@ -1,28 +1,5 @@
1
- .im-c-scale-bar {
2
- position: relative;
3
- margin-left: auto;
4
- margin-bottom: 1px;
5
- text-align: right;
6
- padding-bottom: 5px;
7
- color: var(--map-overlay-foreground-color);
8
- user-select: none;
9
- height: 25px;
10
- width: 100px;
11
- }
12
-
13
- .im-c-scale-bar__label {
14
- text-shadow: -1px -1px 0 var(--map-overlay-halo-color), 1px -1px 0 var(--map-overlay-halo-color), -1px 1px 0 var(--map-overlay-halo-color), 1px 1px 0 var(--map-overlay-halo-color);
15
- }
16
-
17
- .im-c-scale-bar::after {
18
- content: "";
19
- position: absolute;
20
- bottom: 0;
21
- left: 0;
22
- height: 4px;
23
- width: 100%;
24
- background-color: var(--map-overlay-foreground-color);
25
- box-shadow: -1px -1px 0 var(--map-overlay-halo-color), 1px -1px 0 var(--map-overlay-halo-color), -1px 1px 0 var(--map-overlay-halo-color), 1px 1px 0 var(--map-overlay-halo-color);
1
+ .im-c-scale-bar{position:relative;margin-left:auto;margin-bottom:1px;text-align:right;padding-bottom:5px;color:var(--map-overlay-foreground-color);user-select:none;height:25px;width:100px}.im-c-scale-bar__label{text-shadow:-1px -1px 0 var(--map-overlay-halo-color),1px -1px 0 var(--map-overlay-halo-color),-1px 1px 0 var(--map-overlay-halo-color),1px 1px 0 var(--map-overlay-halo-color)}.im-c-scale-bar::after{content:"";position:absolute;bottom:0;left:0;height:4px;width:100%;background-color:var(--map-overlay-foreground-color);box-shadow:-1px -1px 0 var(--map-overlay-halo-color),1px -1px 0 var(--map-overlay-halo-color),-1px 1px 0 var(--map-overlay-halo-color),1px 1px 0 var(--map-overlay-halo-color)}@media(forced-colors: active){.im-c-scale-bar::after{background-color:Canvas}}
2
+ lo-color);
26
3
  }
27
4
  @media (forced-colors: active) {
28
5
  .im-c-scale-bar::after {
@@ -1 +1 @@
1
- import{useEffect as e}from"preact/compat";import{jsx as t}from"preact/jsx-runtime";import o from"@babel/runtime/helpers/defineProperty";function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,r)}return o}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var i={PERMISSION_DENIED:"Location permission denied. Please enable it in your browser settings.",POSITION_UNAVAILABLE:"Location information is unavailable.",TIMEOUT:"The location request timed out. Please try again.",FALLBACK:"Unable to get your location."};var a={slot:"right-top",showLabel:!1},l={InitComponent:function(t){var{appConfig:o,appState:r,pluginState:n,mapState:a,mapProvider:l,buttonConfig:c}=t,{useLocation:s}=c;return e(()=>{if(a.isMapReady)return function(e){var{appState:t,pluginState:o,mapProvider:r,useLocationButton:n}=e,{dispatch:a,buttonRefs:l}=t,{dispatch:c}=o,s=e=>e&&"number"==typeof e.code&&i[e.code]||i.FALLBACK;n.onClick=()=>{navigator.geolocation.getCurrentPosition(e=>{var{latitude:t,longitude:o}=e.coords;try{r.setView({center:[o,t],zoom:12})}catch(e){console.log("Map provider failed to pan:",e)}},e=>{var t=s(e),o=l.current[n.id];c({type:"SET_ERROR_MESSAGE",payload:t}),a({type:"OPEN_PANEL",payload:{panelId:"useLocation",props:{triggeringElement:o}}})},{enableHighAccuracy:!0,maximumAge:0,timeout:1e4})};var p=null}({appState:r,pluginState:n,mapProvider:l,useLocationButton:s}),()=>{s.onClick=null}},[a.isMapReady]),null},reducer:{initialState:{errorMessage:null},actions:{SET_ERROR_MESSAGE:(e,t)=>n(n({},e),{},{errorMessage:t})}},buttons:[{id:"useLocation",group:{name:"location",label:"Location",order:0},label:"Use your location",iconId:"locateFixed",keepFocus:!0,hiddenWhen:()=>!navigator.geolocation,mobile:a,tablet:a,desktop:a}],panels:[{id:"useLocation",label:"Problem getting your location",mobile:{slot:"banner",open:!1,dismissible:!0,modal:!0},tablet:{slot:"banner",open:!1,dismissible:!0,modal:!0},desktop:{slot:"banner",open:!1,dismissible:!0,modal:!0},render:e=>{var{pluginState:o}=e,{errorMessage:r}=o;return t("div",{className:"im-c-use-location",children:t("p",{children:r})})}}],icons:[{id:"locateFixed",svgContent:'<line x1="2" x2="5" y1="12" y2="12"/><line x1="19" x2="22" y1="12" y2="12"/><line x1="12" x2="12" y1="2" y2="5"/><line x1="12" x2="12" y1="19" y2="22"/><circle cx="12" cy="12" r="7"/><circle cx="12" cy="12" r="3"/>'}]};export{l as manifest};
1
+ import{useEffect as e}from"preact/compat";import{jsx as t}from"preact/jsx-runtime";import o from"@babel/runtime/helpers/defineProperty";function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,r)}return o}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var i={PERMISSION_DENIED:"Location permission denied. Please enable it in your browser settings.",POSITION_UNAVAILABLE:"Location information is unavailable.",TIMEOUT:"The location request timed out. Please try again.",FALLBACK:"Unable to get your location."};var a={slot:"right-top",showLabel:!1},l={InitComponent:function(t){var{appConfig:o,appState:r,pluginState:n,mapState:a,mapProvider:l,buttonConfig:c}=t,{useLocation:s}=c;return e(()=>{if(a.isMapReady)return function(e){var{appState:t,pluginState:o,mapProvider:r,useLocationButton:n}=e,{dispatch:a,buttonRefs:l}=t,{dispatch:c}=o,s=e=>e&&"number"==typeof e.code&&i[e.code]||i.FALLBACK;n.onClick=()=>{navigator.geolocation.getCurrentPosition(e=>{var{latitude:t,longitude:o}=e.coords;try{r.setView({center:[o,t],zoom:12})}catch(e){console.log("Map provider failed to pan:",e)}},e=>{var t=s(e),o=l.current[n.id];c({type:"SET_ERROR_MESSAGE",payload:t}),a({type:"OPEN_PANEL",payload:{panelId:"useLocation",props:{triggeringElement:o}}})},{enableHighAccuracy:!0,maximumAge:0,timeout:1e4})};var p=null}({appState:r,pluginState:n,mapProvider:l,useLocationButton:s}),()=>{s.onClick=null}},[a.isMapReady]),null},reducer:{initialState:{errorMessage:null},actions:{SET_ERROR_MESSAGE:(e,t)=>n(n({},e),{},{errorMessage:t})}},buttons:[{id:"useLocation",group:{label:"Location",slotOrder:0},label:"Use your location",iconId:"locateFixed",keepFocus:!0,hiddenWhen:()=>!navigator.geolocation,mobile:a,tablet:a,desktop:a}],panels:[{id:"useLocation",label:"Problem getting your location",mobile:{slot:"banner",open:!1,dismissible:!0,modal:!0},tablet:{slot:"banner",open:!1,dismissible:!0,modal:!0},desktop:{slot:"banner",open:!1,dismissible:!0,modal:!0},render:e=>{var{pluginState:o}=e,{errorMessage:r}=o;return t("div",{className:"im-c-use-location",children:t("p",{children:r})})}}],icons:[{id:"locateFixed",svgContent:'<line x1="2" x2="5" y1="12" y2="12"/><line x1="19" x2="22" y1="12" y2="12"/><line x1="12" x2="12" y1="2" y2="5"/><line x1="12" x2="12" y1="19" y2="22"/><circle cx="12" cy="12" r="7"/><circle cx="12" cy="12" r="3"/>'}]};export{l as manifest};
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[419],{528(e,t,o){function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach(function(t){a(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))})}return e}function a(e,t,o){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}o.r(t),o.d(t,{manifest:()=>b});var c={SET_ERROR_MESSAGE:function(e,t){return i(i({},e),{},{errorMessage:t})}},l=o(738),u={PERMISSION_DENIED:"Location permission denied. Please enable it in your browser settings.",POSITION_UNAVAILABLE:"Location information is unavailable.",TIMEOUT:"The location request timed out. Please try again.",FALLBACK:"Unable to get your location."},s=o(287),p={slot:"right-top",showLabel:!1},b={InitComponent:function(e){e.appConfig;var t=e.appState,o=e.pluginState,n=e.mapState,r=e.mapProvider,i=e.buttonConfig.useLocation;return(0,l.useEffect)(function(){if(n.isMapReady)return function(e){var t=e.appState,o=e.pluginState,n=e.mapProvider,r=e.useLocationButton,i=t.dispatch,a=t.buttonRefs,c=o.dispatch;r.onClick=function(){navigator.geolocation.getCurrentPosition(function(e){var t=e.coords,o=t.latitude,r=t.longitude;try{n.setView({center:[r,o],zoom:12})}catch(e){console.log("Map provider failed to pan:",e)}},function(e){var t=function(e){return e&&"number"==typeof e.code&&u[e.code]||u.FALLBACK}(e),o=a.current[r.id];c({type:"SET_ERROR_MESSAGE",payload:t}),i({type:"OPEN_PANEL",payload:{panelId:"useLocation",props:{triggeringElement:o}}})},{enableHighAccuracy:!0,maximumAge:0,timeout:1e4})}}({appState:t,pluginState:o,mapProvider:r,useLocationButton:i}),function(){i.onClick=null}},[n.isMapReady]),null},reducer:{initialState:{errorMessage:null},actions:c},buttons:[{id:"useLocation",group:{name:"location",label:"Location",order:0},label:"Use your location",iconId:"locateFixed",keepFocus:!0,hiddenWhen:function(){return!navigator.geolocation},mobile:p,tablet:p,desktop:p}],panels:[{id:"useLocation",label:"Problem getting your location",mobile:{slot:"banner",open:!1,dismissible:!0,modal:!0},tablet:{slot:"banner",open:!1,dismissible:!0,modal:!0},desktop:{slot:"banner",open:!1,dismissible:!0,modal:!0},render:function(e){var t=e.pluginState.errorMessage;return(0,s.jsx)("div",{className:"im-c-use-location",children:(0,s.jsx)("p",{children:t})})}}],icons:[{id:"locateFixed",svgContent:'<line x1="2" x2="5" y1="12" y2="12"/><line x1="19" x2="22" y1="12" y2="12"/><line x1="12" x2="12" y1="2" y2="5"/><line x1="12" x2="12" y1="19" y2="22"/><circle cx="12" cy="12" r="7"/><circle cx="12" cy="12" r="3"/>'}]}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[419],{528(e,t,o){function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach(function(t){a(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))})}return e}function a(e,t,o){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}o.r(t),o.d(t,{manifest:()=>b});var c={SET_ERROR_MESSAGE:function(e,t){return i(i({},e),{},{errorMessage:t})}},l=o(738),u={PERMISSION_DENIED:"Location permission denied. Please enable it in your browser settings.",POSITION_UNAVAILABLE:"Location information is unavailable.",TIMEOUT:"The location request timed out. Please try again.",FALLBACK:"Unable to get your location."},s=o(287),p={slot:"right-top",showLabel:!1},b={InitComponent:function(e){e.appConfig;var t=e.appState,o=e.pluginState,n=e.mapState,r=e.mapProvider,i=e.buttonConfig.useLocation;return(0,l.useEffect)(function(){if(n.isMapReady)return function(e){var t=e.appState,o=e.pluginState,n=e.mapProvider,r=e.useLocationButton,i=t.dispatch,a=t.buttonRefs,c=o.dispatch;r.onClick=function(){navigator.geolocation.getCurrentPosition(function(e){var t=e.coords,o=t.latitude,r=t.longitude;try{n.setView({center:[r,o],zoom:12})}catch(e){console.log("Map provider failed to pan:",e)}},function(e){var t=function(e){return e&&"number"==typeof e.code&&u[e.code]||u.FALLBACK}(e),o=a.current[r.id];c({type:"SET_ERROR_MESSAGE",payload:t}),i({type:"OPEN_PANEL",payload:{panelId:"useLocation",props:{triggeringElement:o}}})},{enableHighAccuracy:!0,maximumAge:0,timeout:1e4})}}({appState:t,pluginState:o,mapProvider:r,useLocationButton:i}),function(){i.onClick=null}},[n.isMapReady]),null},reducer:{initialState:{errorMessage:null},actions:c},buttons:[{id:"useLocation",group:{label:"Location",slotOrder:0},label:"Use your location",iconId:"locateFixed",keepFocus:!0,hiddenWhen:function(){return!navigator.geolocation},mobile:p,tablet:p,desktop:p}],panels:[{id:"useLocation",label:"Problem getting your location",mobile:{slot:"banner",open:!1,dismissible:!0,modal:!0},tablet:{slot:"banner",open:!1,dismissible:!0,modal:!0},desktop:{slot:"banner",open:!1,dismissible:!0,modal:!0},render:function(e){var t=e.pluginState.errorMessage;return(0,s.jsx)("div",{className:"im-c-use-location",children:(0,s.jsx)("p",{children:t})})}}],icons:[{id:"locateFixed",svgContent:'<line x1="2" x2="5" y1="12" y2="12"/><line x1="19" x2="22" y1="12" y2="12"/><line x1="12" x2="12" y1="2" y2="5"/><line x1="12" x2="12" y1="19" y2="22"/><circle cx="12" cy="12" r="7"/><circle cx="12" cy="12" r="3"/>'}]}}}]);
@@ -18,7 +18,7 @@ export const manifest = {
18
18
 
19
19
  buttons: [{
20
20
  id: 'useLocation',
21
- group: { name: 'location', label: 'Location', order: 0 },
21
+ group: { label: 'Location', slotOrder: 0 },
22
22
  label: 'Use your location',
23
23
  iconId: 'locateFixed',
24
24
  keepFocus: true,
@@ -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};