@defra/interactive-map 0.0.16-alpha → 0.0.18-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/assets/images/slot-map.svg +264 -0
  2. package/dist/css/index.css +1 -1
  3. package/dist/esm/im-core.js +1 -1
  4. package/dist/esm/im-shell.js +1 -1
  5. package/dist/umd/im-core.js +1 -1
  6. package/dist/umd/index.js +1 -1
  7. package/docs/api/context.md +53 -7
  8. package/docs/api/map-style-config.md +41 -2
  9. package/docs/api/marker-config.md +53 -11
  10. package/docs/api/slots.md +16 -15
  11. package/docs/api/symbol-config.md +160 -0
  12. package/docs/api/symbol-registry.md +115 -0
  13. package/docs/api.md +25 -22
  14. package/docs/getting-started.md +4 -1
  15. package/docs/plugins/datasets.md +657 -0
  16. package/docs/plugins/interact.md +68 -43
  17. package/docs/plugins/search.md +15 -3
  18. package/docs/plugins.md +1 -1
  19. package/package.json +2 -2
  20. package/plugins/beta/datasets/dist/css/index.css +103 -15
  21. package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -1
  22. package/plugins/beta/datasets/dist/esm/index.js +1 -1
  23. package/plugins/beta/datasets/dist/umd/im-datasets-plugin.js +1 -1
  24. package/plugins/beta/datasets/dist/umd/index.js +1 -1
  25. package/plugins/beta/datasets/src/DatasetsInit.jsx +29 -9
  26. package/plugins/beta/datasets/src/adapters/maplibre/index.js +18 -0
  27. package/plugins/beta/datasets/src/adapters/maplibre/layerBuilders.js +159 -0
  28. package/plugins/beta/datasets/src/adapters/maplibre/layerIds.js +75 -0
  29. package/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.js +440 -0
  30. package/plugins/beta/datasets/src/adapters/maplibre/patternImages.js +27 -0
  31. package/plugins/beta/datasets/src/adapters/maplibre/symbolImages.js +31 -0
  32. package/plugins/beta/datasets/src/api/addDataset.js +2 -8
  33. package/plugins/beta/datasets/src/api/getOpacity.js +17 -0
  34. package/plugins/beta/datasets/src/api/getStyle.js +13 -0
  35. package/plugins/beta/datasets/src/api/removeDataset.js +2 -44
  36. package/plugins/beta/datasets/src/api/setData.js +10 -0
  37. package/plugins/beta/datasets/src/api/setDatasetVisibility.js +37 -0
  38. package/plugins/beta/datasets/src/api/setFeatureVisibility.js +22 -0
  39. package/plugins/beta/datasets/src/api/setOpacity.js +29 -0
  40. package/plugins/beta/datasets/src/api/setStyle.js +22 -0
  41. package/plugins/beta/datasets/src/components/EmptyKey.jsx +7 -0
  42. package/plugins/beta/datasets/src/components/EmptyKey.test.jsx +21 -0
  43. package/plugins/beta/datasets/src/components/KeySvg.jsx +24 -0
  44. package/plugins/beta/datasets/src/components/KeySvgLine.jsx +19 -0
  45. package/plugins/beta/datasets/src/components/KeySvgPattern.jsx +15 -0
  46. package/plugins/beta/datasets/src/components/KeySvgRect.jsx +22 -0
  47. package/plugins/beta/datasets/src/components/KeySvgSymbol.jsx +16 -0
  48. package/plugins/beta/datasets/src/components/svgProperties.js +20 -0
  49. package/plugins/beta/datasets/src/datasets.js +39 -56
  50. package/plugins/beta/datasets/src/defaults.js +44 -8
  51. package/plugins/beta/datasets/src/fetch/createDynamicSource.js +34 -25
  52. package/plugins/beta/datasets/src/fetch/fetchGeoJSON.js +2 -2
  53. package/plugins/beta/datasets/src/index.js +2 -1
  54. package/plugins/beta/datasets/src/manifest.js +25 -17
  55. package/plugins/beta/datasets/src/panels/Key.jsx +51 -51
  56. package/plugins/beta/datasets/src/panels/Key.module.scss +59 -9
  57. package/plugins/beta/datasets/src/panels/Layers.jsx +132 -29
  58. package/plugins/beta/datasets/src/panels/Layers.module.scss +56 -8
  59. package/plugins/beta/datasets/src/reducer.js +134 -9
  60. package/plugins/beta/datasets/src/reducers/keyReducer.js +34 -0
  61. package/plugins/beta/datasets/src/utils/bbox.js +7 -5
  62. package/plugins/beta/datasets/src/utils/filters.js +5 -2
  63. package/plugins/beta/datasets/src/utils/mergeSublayer.js +86 -0
  64. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
  65. package/plugins/beta/draw-es/src/DrawInit.jsx +3 -2
  66. package/plugins/beta/draw-ml/dist/css/index.css +21 -1
  67. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
  68. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  69. package/plugins/beta/draw-ml/dist/umd/index.js +1 -1
  70. package/plugins/beta/draw-ml/src/DrawInit.jsx +4 -3
  71. package/plugins/beta/draw-ml/src/draw.scss +0 -7
  72. package/plugins/beta/draw-ml/src/manifest.js +16 -16
  73. package/plugins/beta/frame/dist/esm/im-frame-plugin.js +1 -1
  74. package/plugins/beta/frame/dist/umd/im-frame-plugin.js +1 -1
  75. package/plugins/beta/frame/src/Frame.jsx +5 -5
  76. package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +1 -1
  77. package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
  78. package/plugins/beta/map-styles/dist/umd/index.js +1 -1
  79. package/plugins/beta/map-styles/src/MapStyles.jsx +5 -4
  80. package/plugins/beta/map-styles/src/MapStylesInit.jsx +5 -4
  81. package/plugins/beta/map-styles/src/manifest.js +1 -1
  82. package/plugins/beta/scale-bar/dist/css/index.css +1 -1
  83. package/plugins/beta/scale-bar/dist/esm/im-scale-bar-plugin.js +1 -1
  84. package/plugins/beta/scale-bar/dist/umd/im-scale-bar-plugin.js +1 -1
  85. package/plugins/beta/scale-bar/src/index.test.js +3 -3
  86. package/plugins/beta/scale-bar/src/manifest.js +3 -3
  87. package/plugins/beta/scale-bar/src/scaleBar.scss +2 -1
  88. package/plugins/interact/dist/css/index.css +1 -1
  89. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  90. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  91. package/plugins/interact/dist/umd/index.js +1 -1
  92. package/plugins/interact/src/InteractInit.jsx +14 -5
  93. package/plugins/interact/src/InteractInit.test.js +26 -6
  94. package/plugins/interact/src/api/enable.test.js +7 -7
  95. package/plugins/interact/src/defaults.js +4 -6
  96. package/plugins/interact/src/events.js +9 -6
  97. package/plugins/interact/src/events.test.js +28 -4
  98. package/plugins/interact/src/hooks/useHighlightSync.js +3 -3
  99. package/plugins/interact/src/hooks/useHighlightSync.test.js +6 -6
  100. package/plugins/interact/src/hooks/useHoverCursor.js +10 -0
  101. package/plugins/interact/src/hooks/useHoverCursor.test.js +44 -0
  102. package/plugins/interact/src/hooks/useInteractionHandlers.js +111 -69
  103. package/plugins/interact/src/hooks/useInteractionHandlers.test.js +147 -32
  104. package/plugins/interact/src/interact.scss +0 -7
  105. package/plugins/interact/src/manifest.js +14 -18
  106. package/plugins/interact/src/manifest.test.js +3 -1
  107. package/plugins/interact/src/reducer.js +23 -4
  108. package/plugins/interact/src/reducer.test.js +60 -11
  109. package/plugins/interact/src/utils/buildStylesMap.js +17 -4
  110. package/plugins/interact/src/utils/buildStylesMap.test.js +16 -2
  111. package/plugins/interact/src/utils/featureQueries.js +11 -6
  112. package/plugins/interact/src/utils/featureQueries.test.js +8 -1
  113. package/plugins/search/dist/css/index.css +1 -1
  114. package/plugins/search/dist/esm/im-search-plugin.js +1 -1
  115. package/plugins/search/dist/umd/im-search-plugin.js +1 -1
  116. package/plugins/search/src/Search.jsx +3 -1
  117. package/plugins/search/src/components/Form/Form.module.scss +2 -1
  118. package/plugins/search/src/events/fetchSuggestions.js +6 -4
  119. package/plugins/search/src/events/fetchSuggestions.test.js +26 -4
  120. package/plugins/search/src/events/formHandlers.js +3 -3
  121. package/plugins/search/src/events/formHandlers.test.js +1 -1
  122. package/plugins/search/src/events/suggestionHandlers.js +2 -2
  123. package/plugins/search/src/events/suggestionHandlers.test.js +1 -1
  124. package/plugins/search/src/utils/updateMap.js +3 -3
  125. package/plugins/search/src/utils/updateMap.test.js +3 -3
  126. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
  127. package/providers/maplibre/dist/umd/im-maplibre-framework.js +1 -1
  128. package/providers/maplibre/dist/umd/im-maplibre-framework.js.LICENSE.txt +1 -1
  129. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  130. package/providers/maplibre/dist/umd/index.js +1 -1
  131. package/providers/maplibre/src/appEvents.js +7 -0
  132. package/providers/maplibre/src/appEvents.test.js +18 -4
  133. package/providers/maplibre/src/maplibreProvider.js +52 -0
  134. package/providers/maplibre/src/maplibreProvider.test.js +105 -1
  135. package/providers/maplibre/src/utils/highlightFeatures.js +37 -7
  136. package/providers/maplibre/src/utils/highlightFeatures.test.js +153 -95
  137. package/providers/maplibre/src/utils/hoverCursor.js +61 -0
  138. package/providers/maplibre/src/utils/hoverCursor.test.js +130 -0
  139. package/providers/maplibre/src/utils/patternImages.js +70 -0
  140. package/providers/maplibre/src/utils/patternImages.test.js +180 -0
  141. package/providers/maplibre/src/utils/queryFeatures.js +38 -16
  142. package/providers/maplibre/src/utils/queryFeatures.test.js +20 -3
  143. package/providers/maplibre/src/utils/rasteriseToImageData.js +30 -0
  144. package/providers/maplibre/src/utils/rasteriseToImageData.test.js +69 -0
  145. package/providers/maplibre/src/utils/symbolImages.js +147 -0
  146. package/providers/maplibre/src/utils/symbolImages.test.js +248 -0
  147. package/src/App/components/Actions/Actions.jsx +2 -2
  148. package/src/App/components/Actions/Actions.module.scss +0 -7
  149. package/src/App/components/Actions/Actions.test.jsx +1 -1
  150. package/src/App/components/Icon/Icon.jsx +3 -2
  151. package/src/App/components/Icon/Icon.module.scss +4 -0
  152. package/src/App/components/Icon/Icon.test.jsx +43 -4
  153. package/src/App/components/MapButton/MapButton.jsx +42 -17
  154. package/src/App/components/MapButton/MapButton.module.scss +4 -13
  155. package/src/App/components/MapButton/MapButton.test.jsx +27 -3
  156. package/src/App/components/Markers/Markers.jsx +122 -27
  157. package/src/App/components/Markers/Markers.module.scss +0 -10
  158. package/src/App/components/Markers/Markers.test.jsx +246 -0
  159. package/src/App/components/PopupMenu/PopupMenu.jsx +51 -274
  160. package/src/App/components/PopupMenu/PopupMenu.module.scss +14 -7
  161. package/src/App/components/PopupMenu/PopupMenu.test.jsx +70 -1
  162. package/src/App/components/PopupMenu/usePopupMenu.js +258 -0
  163. package/src/App/hooks/useButtonStateEvaluator.js +12 -2
  164. package/src/App/hooks/useButtonStateEvaluator.test.js +38 -4
  165. package/src/App/hooks/useInterfaceAPI.js +6 -0
  166. package/src/App/hooks/useInterfaceAPI.test.js +156 -0
  167. package/src/App/hooks/useLayoutMeasurements.js +84 -18
  168. package/src/App/hooks/useLayoutMeasurements.test.js +124 -17
  169. package/src/App/hooks/useMarkersAPI.js +2 -5
  170. package/src/App/hooks/useMarkersAPI.test.js +4 -4
  171. package/src/App/layout/Layout.jsx +14 -9
  172. package/src/App/layout/Layout.test.jsx +6 -4
  173. package/src/App/layout/layout.module.scss +67 -29
  174. package/src/App/registry/pluginRegistry.js +1 -1
  175. package/src/App/renderer/HtmlElementHost.jsx +2 -1
  176. package/src/App/renderer/HtmlElementHost.test.jsx +7 -7
  177. package/src/App/renderer/mapButtons.js +1 -1
  178. package/src/App/renderer/mapPanels.test.js +2 -2
  179. package/src/App/renderer/slotHelpers.js +2 -2
  180. package/src/App/renderer/slotHelpers.test.js +5 -5
  181. package/src/App/renderer/slots.js +9 -5
  182. package/src/App/store/AppProvider.jsx +3 -1
  183. package/src/App/store/AppProvider.test.jsx +1 -1
  184. package/src/App/store/ServiceProvider.jsx +8 -4
  185. package/src/App/store/appActionsMap.js +16 -0
  186. package/src/App/store/appActionsMap.test.js +27 -0
  187. package/src/App/store/appDispatchMiddleware.js +1 -1
  188. package/src/App/store/appDispatchMiddleware.test.js +2 -2
  189. package/src/App/store/appReducer.js +2 -0
  190. package/src/App/store/mapActionsMap.js +4 -6
  191. package/src/App/store/mapActionsMap.test.js +3 -2
  192. package/src/App/store/mapReducer.js +2 -1
  193. package/src/InteractiveMap/InteractiveMap.js +4 -0
  194. package/src/config/appConfig.js +5 -8
  195. package/src/config/appConfig.test.js +1 -2
  196. package/src/config/defaults.js +0 -2
  197. package/src/config/events.js +28 -0
  198. package/src/config/mapTheme.js +56 -0
  199. package/src/config/patternConfig.js +16 -0
  200. package/src/config/symbolConfig.js +80 -0
  201. package/src/scss/main.scss +1 -0
  202. package/src/scss/settings/_colors.scss +0 -9
  203. package/src/scss/settings/_dimensions.scss +0 -1
  204. package/src/services/patternRegistry.js +40 -0
  205. package/src/services/patternRegistry.test.js +48 -0
  206. package/src/services/symbolRegistry.js +113 -0
  207. package/src/services/symbolRegistry.test.js +262 -0
  208. package/src/types.js +93 -11
  209. package/src/utils/getSafeZoneInset.js +9 -7
  210. package/src/utils/getSafeZoneInset.test.js +10 -10
  211. package/src/utils/patternUtils.js +94 -0
  212. package/src/utils/patternUtils.test.js +160 -0
  213. package/src/utils/symbolUtils.js +85 -0
  214. package/src/utils/symbolUtils.test.js +156 -0
  215. package/webpack.dev.mjs +1 -1
  216. package/docs/api/slot-map.svg +0 -1
  217. package/plugins/beta/datasets/src/api/hideDataset.js +0 -14
  218. package/plugins/beta/datasets/src/api/hideFeatures.js +0 -41
  219. package/plugins/beta/datasets/src/api/showDataset.js +0 -14
  220. package/plugins/beta/datasets/src/api/showFeatures.js +0 -44
  221. package/plugins/beta/datasets/src/handleSetMapStyle.js +0 -54
  222. package/plugins/beta/datasets/src/mapLayers.js +0 -164
  223. /package/src/{utils → services}/logger.js +0 -0
  224. /package/src/{utils → services}/logger.test.js +0 -0
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see im-datasets-plugin.js.LICENSE.txt */
2
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[447],{802(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function u(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?a(Object(r),!0).forEach(function(e){l(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function l(t,e,r){return(e=c(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function c(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r.r(e),r.d(e,{manifest:()=>Q});var s={SET_DATASETS:function(t,e){var r=e.datasets,n=e.datasetDefaults;return u(u({},t),{},{datasets:r.map(function(t){return u(u({},n),t)})})},ADD_DATASET:function(t,e){var r=e.dataset,n=e.datasetDefaults;return u(u({},t),{},{datasets:[].concat(o(t.datasets||[]),[u(u({},n),r)])})},REMOVE_DATASET:function(t,e){var r,n=e.id;return u(u({},t),{},{datasets:(null===(r=t.datasets)||void 0===r?void 0:r.filter(function(t){return t.id!==n}))||[]})},SET_DATASET_VISIBILITY:function(t,e){var r,n=e.id,o=e.visibility;return u(u({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?u(u({},t),{},{visibility:o}):t})})},HIDE_FEATURES:function(t,e){var r=e.layerId,n=e.idProperty,i=e.featureIds,a=t.hiddenFeatures[r],c=(null==a?void 0:a.ids)||[],s=o(new Set([].concat(o(c),o(i))));return u(u({},t),{},{hiddenFeatures:u(u({},t.hiddenFeatures),{},l({},r,{idProperty:n,ids:s}))})},SHOW_FEATURES:function(t,e){var r=e.layerId,n=e.featureIds,o=t.hiddenFeatures[r];if(!o)return t;var i=o.ids.filter(function(t){return!n.includes(t)});if(0===i.length){var a=t.hiddenFeatures,s=(a[r],function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(a,[r].map(c)));return u(u({},t),{},{hiddenFeatures:s})}return u(u({},t),{},{hiddenFeatures:u(u({},t.hiddenFeatures),{},l({},r,u(u({},o),{},{ids:i})))})}},f=r(738),d={stroke:"#d4351c",strokeWidth:2,fill:"transparent",symbolDescription:"red outline",minZoom:6,maxZoom:24,showInKey:!1,showInLayers:!1,visibility:"visible"};function y(t){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},y(t)}var p=function(t,e){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===y(t)){if(e&&t[e])return t[e];var r=Object.values(t)[0];return null!=r?r:null}return null};function v(t){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},v(t)}function m(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function b(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?m(Object(r),!0).forEach(function(e){h(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function h(t,e,r){return(e=function(t){var e=function(t){if("object"!=v(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=v(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==v(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var S=function(t){var e,r=0,n=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return g(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(t);try{for(n.s();!(e=n.n()).done;)r=(r<<5)-r+e.value.codePointAt(0),r&=r}catch(t){n.e(t)}finally{n.f()}return Math.abs(r).toString(36)},j=function(t){if(t.tiles){var e=Array.isArray(t.tiles)?t.tiles.join(","):t.tiles;return"tiles-".concat(S(e))}return t.geojson?w(t)?"geojson-dynamic-".concat(t.id):"string"==typeof t.geojson?"geojson-".concat(S(t.geojson)):"geojson-".concat(t.id):"source-".concat(t.id)},w=function(t){return"string"==typeof t.geojson&&!!t.idProperty&&"function"==typeof t.transformRequest},O=function(t,e,r){var n=j(r);if(!t.getSource(n))if(r.tiles)t.addSource(n,{type:"vector",tiles:r.tiles,minzoom:r.minZoom||0,maxzoom:r.maxZoom||22});else if(r.geojson){var o=w(r)?{type:"FeatureCollection",features:[]}:r.geojson;t.addSource(n,{type:"geojson",data:o})}var i=!!r.fill,a=!!r.stroke,u=i?r.id:null,l=a?i?"".concat(r.id,"-stroke"):r.id:null,c="hidden"===r.visibility?"none":"visible";if(i&&!t.getLayer(u)){var s,f=p(r.fill,e);t.addLayer(b({id:u,type:"fill",source:n,"source-layer":null!=r&&null!==(s=r.tiles)&&void 0!==s&&s.length?r.sourceLayer:void 0,layout:{visibility:c},paint:{"fill-color":f,"fill-opacity":r.opacity||1}},r.filter?{filter:r.filter}:{}))}if(a&&!t.getLayer(l)){var d,y=p(r.stroke,e);t.addLayer(b({id:l,type:"line",source:n,"source-layer":null!=r&&null!==(d=r.tiles)&&void 0!==d&&d.length?r.sourceLayer:void 0,layout:{visibility:c},paint:b({"line-color":y,"line-width":r.strokeWidth||1,"line-opacity":r.opacity||1},r.strokeDashArray?{"line-dasharray":r.strokeDashArray}:{})},r.filter?{filter:r.filter}:{}))}},k=function(t,e,r,n,o){if(t.getLayer(e)){var i=function(t,e,r){if(!r||0===r.length)return t;var n=["!",["in",["to-string",["get",e]],["literal",r.map(function(t){return String(t)})]]];return t?["all",t,n]:n}(r,n,o);t.setFilter(e,i)}};function A(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function P(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var l=n&&n.prototype instanceof u?n:u,c=Object.create(l.prototype);return E(c,"_invoke",function(r,n,o){var i,u,l,c=0,s=o||[],f=!1,d={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,u=0,l=t,d.n=r,a}};function y(r,n){for(u=r,l=n,e=0;!f&&c&&!o&&e<s.length;e++){var o,i=s[e],y=d.p,p=i[2];r>3?(o=p===n)&&(l=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=r<2&&y<i[1])?(u=0,d.v=n,d.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,d.n=p,u=0))}if(o||r>1)return a;throw f=!0,n}return function(o,s,p){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&y(s,p),u=s,l=p;(e=u<2?t:l)||!f;){i||(u?u<3?(u>1&&(d.n=-1),y(u,l)):d.n=l:d.v=l);try{if(c=2,i){if(u||(o="next"),e=i[o]){if(!(e=e.call(i,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,u<2&&(u=0)}else 1===u&&(e=i.return)&&e.call(i),u<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((e=(f=d.n<0)?l:r.call(n,d))!==a)break}catch(e){i=t,u=1,l=e}finally{c=1}}return{value:e,done:f}}}(r,o,i),!0),c}var a={};function u(){}function l(){}function c(){}e=Object.getPrototypeOf;var s=[][n]?e(e([][n]())):(E(e={},n,function(){return this}),e),f=c.prototype=u.prototype=Object.create(s);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,c):(t.__proto__=c,E(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return l.prototype=c,E(f,"constructor",c),E(c,"constructor",l),l.displayName="GeneratorFunction",E(c,o,"GeneratorFunction"),E(f),E(f,o,"Generator"),E(f,n,function(){return this}),E(f,"toString",function(){return"[object Generator]"}),(P=function(){return{w:i,m:d}})()}function E(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}E=function(t,e,r,n){function i(e,r){E(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},E(t,e,r,n)}function I(t,e,r,n,o,i,a){try{var u=t[i](a),l=u.value}catch(t){return void r(t)}u.done?e(l):Promise.resolve(l).then(n,o)}var x=function(){var t,e=(t=P().m(function t(e,r,n){var o,i,a,u,l,c,s;return P().w(function(t){for(;;)switch(t.n){case 0:return o=n(e,r),a=(i="string"==typeof o?{url:o}:o).url,u=i.headers,l=void 0===u?{}:u,t.n=1,fetch(a,{headers:l});case 1:if((c=t.v).ok){t.n=2;break}throw new Error("Failed to fetch GeoJSON: ".concat(c.status," ").concat(c.statusText));case 2:return t.n=3,c.json();case 3:if("FeatureCollection"!==(s=t.v).type){t.n=4;break}return t.a(2,s);case 4:if("Feature"!==s.type){t.n=5;break}return t.a(2,{type:"FeatureCollection",features:[s]});case 5:if(!Array.isArray(s)){t.n=6;break}return t.a(2,{type:"FeatureCollection",features:s});case 6:throw new Error("Invalid GeoJSON response");case 7:return t.a(2)}},t)}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){I(i,n,o,a,u,"next",t)}function u(t){I(i,n,o,a,u,"throw",t)}a(void 0)})});return function(t,r,n){return e.apply(this,arguments)}}();function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var D=function(t){var e=t.getBounds();return[e.getWest(),e.getSouth(),e.getEast(),e.getNorth()]},_=function(t,e){return!(!t||!e)&&e[0]>=t[0]&&e[1]>=t[1]&&e[2]<=t[2]&&e[3]<=t[3]},L=function(t,e){return t?[Math.min(t[0],e[0]),Math.min(t[1],e[1]),Math.max(t[2],e[2]),Math.max(t[3],e[3])]:function(t){if(Array.isArray(t))return T(t)}(r=e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(t,e){if(t){if("string"==typeof t)return T(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?T(t,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var r},F=function(t,e){return!(!t||!e||t[2]<e[0]||t[0]>e[2]||t[3]<e[1]||t[1]>e[3])},M=function(t){var e=1/0,r=1/0,n=-1/0,o=-1/0,i=function(t,a){var u;0===a?(u=t,e=Math.min(e,u[0]),r=Math.min(r,u[1]),n=Math.max(n,u[0]),o=Math.max(o,u[1])):t.forEach(function(t){return i(t,a-1)})};switch(t.type){case"Point":i(t.coordinates,0);break;case"LineString":case"MultiPoint":i(t.coordinates,1);break;case"Polygon":case"MultiLineString":i(t.coordinates,2);break;case"MultiPolygon":i(t.coordinates,3);break;case"GeometryCollection":t.geometries.forEach(function(t){var i=M(t);e=Math.min(e,i[0]),r=Math.min(r,i[1]),n=Math.max(n,i[2]),o=Math.max(o,i[3])})}return[e,r,n,o]};function C(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var l=n&&n.prototype instanceof u?n:u,c=Object.create(l.prototype);return N(c,"_invoke",function(r,n,o){var i,u,l,c=0,s=o||[],f=!1,d={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,u=0,l=t,d.n=r,a}};function y(r,n){for(u=r,l=n,e=0;!f&&c&&!o&&e<s.length;e++){var o,i=s[e],y=d.p,p=i[2];r>3?(o=p===n)&&(l=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=r<2&&y<i[1])?(u=0,d.v=n,d.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,d.n=p,u=0))}if(o||r>1)return a;throw f=!0,n}return function(o,s,p){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&y(s,p),u=s,l=p;(e=u<2?t:l)||!f;){i||(u?u<3?(u>1&&(d.n=-1),y(u,l)):d.n=l:d.v=l);try{if(c=2,i){if(u||(o="next"),e=i[o]){if(!(e=e.call(i,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,u<2&&(u=0)}else 1===u&&(e=i.return)&&e.call(i),u<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((e=(f=d.n<0)?l:r.call(n,d))!==a)break}catch(e){i=t,u=1,l=e}finally{c=1}}return{value:e,done:f}}}(r,o,i),!0),c}var a={};function u(){}function l(){}function c(){}e=Object.getPrototypeOf;var s=[][n]?e(e([][n]())):(N(e={},n,function(){return this}),e),f=c.prototype=u.prototype=Object.create(s);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,c):(t.__proto__=c,N(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return l.prototype=c,N(f,"constructor",c),N(c,"constructor",l),l.displayName="GeneratorFunction",N(c,o,"GeneratorFunction"),N(f),N(f,o,"Generator"),N(f,n,function(){return this}),N(f,"toString",function(){return"[object Generator]"}),(C=function(){return{w:i,m:d}})()}function N(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}N=function(t,e,r,n){function i(e,r){N(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},N(t,e,r,n)}function W(t,e,r,n,o,i,a){try{var u=t[i](a),l=u.value}catch(t){return void r(t)}u.done?e(l):Promise.resolve(l).then(n,o)}function G(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||R(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(t,e){if(t){if("string"==typeof t)return U(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?U(t,e):void 0}}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var z=function(t){var e=t.pluginConfig,r=t.pluginStateRef,n=t.mapStyleId,o=t.mapProvider,i=t.events,a=t.eventBus,u=o.map,l=e.datasets,c=new Map,s=function(){return r.current.datasets||l};l.forEach(function(t){if(O(u,n,t),w(t)){var e=j(t),r=function(t){var e,r,n,o=t.dataset,i=t.map,a=t.sourceId,u=t.onUpdate,l=o.geojson,c=o.idProperty,s=o.transformRequest,f=o.maxFeatures,d=o.minZoom,y=void 0===d?0:d,p=new Map,v=null,m=!1,b=function(){return{type:"FeatureCollection",features:Array.from(p.values()).map(function(t){return t.feature})}},h=function(t){var e,r;return c&&null!==(e=null===(r=t.properties)||void 0===r?void 0:r[c])&&void 0!==e?e:t.id},g=function(t){if(f&&!(p.size<=1.2*f)){var e,r=f,n=[],o=[],i=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=R(t))){e&&(t=e);var r=0,n=function(){};return{s:n,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(p);try{for(i.s();!(e=i.n()).done;){var a=G(e.value,2),u=a[0],l=a[1];F(l.bbox,t)?n.push(u):o.push({id:u,addedAt:l.addedAt})}}catch(t){i.e(t)}finally{i.f()}o.sort(function(t,e){return t.addedAt-e.addedAt});for(var c=p.size-r,s=0;s<c&&s<o.length;s++)p.delete(o[s].id);if(p.size>r)for(var d=p.size-r,y=n.map(function(t){return{id:t,addedAt:p.get(t).addedAt}}).sort(function(t,e){return t.addedAt-e.addedAt}),v=0;v<d&&v<y.length;v++)p.delete(y[v].id)}},S=function(){var t,e=(t=C().m(function t(){var e,r,n,c,f,d;return C().w(function(t){for(;;)switch(t.p=t.n){case 0:if(!((e=i.getZoom())<y)){t.n=1;break}return t.a(2);case 1:if(r=D(i),!v||!_(v,r)){t.n=2;break}return t.a(2);case 2:if(!m){t.n=3;break}return t.a(2);case 3:return m=!0,t.p=4,n={bbox:r,zoom:e,dataset:o},t.n=5,x(l,n,s);case 5:c=t.v,f=Date.now(),c.features.forEach(function(t){var e=h(t);null!=e?p.set(e,{feature:t,bbox:M(t.geometry),addedAt:p.has(e)?p.get(e).addedAt:f}):console.warn("Feature missing ID, skipping:",t)}),v=L(v,r),g(r),u(a,b()),t.n=7;break;case 6:t.p=6,d=t.v,console.error("Failed to fetch dynamic GeoJSON for ".concat(o.id,":"),d);case 7:return t.p=7,m=!1,t.f(7);case 8:return t.a(2)}},t,null,[[4,6,7,8]])}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){W(i,n,o,a,u,"next",t)}function u(t){W(i,n,o,a,u,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}(),j=(e=S,n=function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];clearTimeout(r),r=setTimeout(function(){return e.apply(void 0,n)},200)},n.cancel=function(){clearTimeout(r),r=null},n),w=function(){j()};return i.on("moveend",w),S(),{destroy:function(){i.off("moveend",w),j.cancel()},clear:function(){p.clear(),v=null,u(a,{type:"FeatureCollection",features:[]})},refresh:function(){p.clear(),v=null,S()},getFeatureCount:function(){return p.size},reapply:function(){p.size>0&&u(a,b())}}}({dataset:t,map:u,sourceId:e,onUpdate:function(t,e){return function(t,e,r){var n=t.getSource(e);n&&"function"==typeof n.setData&&n.setData(r)}(u,t,e)}});c.set(t.id,r)}}),u.once("idle",function(){a.emit("datasets:ready")});var f=function(t){var e=t.map,r=t.events,n=t.getDatasets,o=t.getHiddenFeatures,i=t.getDynamicSources,a=function(t){e.once("idle",function(){var r=t.id,a=n(),u=o(),l=i?i():new Map;a.forEach(function(t){O(e,r,t)}),l.forEach(function(t){t.reapply()}),Object.entries(u).forEach(function(t){var r=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return A(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?A(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t,2),n=r[0],o=r[1],i=o.idProperty,u=o.ids,l=a.find(function(t){return t.id===n});if(l){var c=l.filter||null,s=!!l.fill,f=!!l.stroke,d=s?n:null,y=f?s?"".concat(n,"-stroke"):n:null;d&&k(e,d,c,i,u),y&&k(e,y,c,i,u)}})})};return t.eventBus.on(r.MAP_SET_STYLE,a),a}({map:u,events:i,eventBus:a,getDatasets:s,getHiddenFeatures:function(){return r.current.hiddenFeatures||{}},getDynamicSources:function(){return c}});return{remove:function(){a.off(i.MAP_SET_STYLE,f),c.forEach(function(t){return t.destroy()}),c.clear();var t=s(),e=new Set;t.forEach(function(t){var r=j(t),n=function(t,e){var r=t.getStyle();return null!=r&&r.layers?r.layers.filter(function(t){return t.source===e}).map(function(t){return t.id}):[]}(u,r);n.forEach(function(t){return u.removeLayer(t)}),!e.has(r)&&u.getSource(r)&&(u.removeSource(r),e.add(r))})},refreshDataset:function(t){var e=c.get(t);e&&e.refresh()},clearDatasetCache:function(t){var e=c.get(t);e&&e.clear()},getFeatureCount:function(t){var e=c.get(t);return e?e.getFeatureCount():null}}},B=function(t,e){var r=t.mapProvider,n=t.pluginState,o=r.map;o.getLayer(e)&&o.setLayoutProperty(e,"visibility","visible"),o.getLayer("".concat(e,"-stroke"))&&o.setLayoutProperty("".concat(e,"-stroke"),"visibility","visible"),n.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:e,visibility:"visible"}})},K=function(t,e){var r=t.mapProvider,n=t.pluginState,o=r.map;o.getLayer(e)&&o.setLayoutProperty(e,"visibility","none"),o.getLayer("".concat(e,"-stroke"))&&o.setLayoutProperty("".concat(e,"-stroke"),"visibility","none"),n.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:e,visibility:"hidden"}})},H=r(287);function Z(t){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Z(t)}function $(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function V(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?$(Object(r),!0).forEach(function(e){Y(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function Y(t,e,r){return(e=function(t){var e=function(t){if("object"!=Z(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Z(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Z(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function J(t){return function(t){if(Array.isArray(t))return q(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return q(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?q(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Q={InitComponent:function(t){var e,r=t.pluginConfig,n=t.pluginState,o=t.appState,i=t.mapState,a=t.mapProvider,u=t.services,l=n.dispatch,c=u.events,s=u.eventBus,y=!(null===(e=a.map)||void 0===e||!e.getStyle()),p=(0,f.useRef)(n);p.current=n;var v=(0,f.useRef)(null);return(0,f.useEffect)(function(){var t,e,u,f,m=null===(t=null===(e=r.includeModes)||void 0===e?void 0:e.includes(o.mode))||void 0===t||t,b=null!==(u=null===(f=r.excludeModes)||void 0===f?void 0:f.includes(o.mode))&&void 0!==u&&u;y&&m&&!b&&(v.current||(n.datasets||l({type:"SET_DATASETS",payload:{datasets:r.datasets,datasetDefaults:d}}),v.current=z({mapStyleId:i.mapStyle.id,pluginConfig:r,pluginStateRef:p,mapProvider:a,events:c,eventBus:s})))},[y,o.mode]),(0,f.useEffect)(function(){return function(){v.current&&(v.current.remove(),v.current=null)}},[]),null},reducer:{initialState:{datasets:null,hiddenFeatures:{}},actions:s},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"bottom",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"300px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"320px"},render:function(t){var e=t.pluginState,r=t.mapProvider,n=function(t){var n=t.target,o=n.value;n.checked?B({mapProvider:r,pluginState:e},o):K({mapProvider:r,pluginState:e},o)};return(0,H.jsx)("div",{className:"im-c-datasets-layers",children:(0,H.jsx)("div",{className:"govuk-form-group",children:(0,H.jsxs)("fieldset",{className:"govuk-fieldset",children:[(0,H.jsx)("legend",{className:"govuk-visually-hidden",children:"Layers"}),(0,H.jsx)("div",{className:"govuk-checkboxes govuk-checkboxes--small","data-module":"govuk-checkboxes",children:(e.datasets||[]).filter(function(t){return t.showInLayers}).map(function(t){return(0,H.jsx)("div",{className:"im-c-datasets-layers__item".concat("hidden"!==t.visibility?" im-c-datasets-layers__item--checked":""),children:(0,H.jsxs)("div",{className:"govuk-checkboxes__item",children:[(0,H.jsx)("input",{className:"govuk-checkboxes__input",id:t.id,name:"layers",type:"checkbox",value:t.id,checked:"hidden"!==t.visibility,onChange:n}),(0,H.jsx)("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:t.id,children:t.label})]})},t.id)})})]})})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"bottom",modal:!0},tablet:{slot:"left-top",width:"300px"},desktop:{slot:"left-top",width:"320px"},render:function(t){var e=t.mapState,r=t.pluginState,n=e.mapStyle,o=function(t){return(0,H.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",children:"line"===t.keySymbolShape?(0,H.jsx)("line",{x1:t.strokeWidth/2,y1:"10",x2:20-t.strokeWidth/2,y2:"10",stroke:p(t.stroke,n.id),strokeWidth:t.strokeWidth,strokeLinecap:"round"}):(0,H.jsx)("rect",{x:t.strokeWidth/2,y:t.strokeWidth/2,width:20-t.strokeWidth,height:20-t.strokeWidth,rx:t.strokeWidth,ry:t.strokeWidth,fill:p(t.fill,n.id),stroke:p(t.stroke,n.id),strokeWidth:t.strokeWidth,strokeLinejoin:"round"})})};return(0,H.jsx)("div",{className:"im-c-datasets-key",children:(r.datasets||[]).filter(function(t){return t.showInKey&&"hidden"!==t.visibility}).map(function(t){return(0,H.jsx)("div",{className:"im-c-datasets-key__item",children:(0,H.jsxs)("div",{className:"im-c-datasets-key__item-label",children:[o(t),t.label,t.symbolDescription&&(0,H.jsxs)("span",{className:"govuk-visually-hidden",children:["(",p(t.symbolDescription,n.id),")"]})]})},t.id)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:function(t){return!t.pluginConfig.datasets.find(function(t){return t.showInLayers})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:function(t){return!t.pluginConfig.datasets.find(function(t){return t.showInKey})},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z"></path><path d="m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845"></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:{showDataset:B,hideDataset:K,addDataset:function(t,e){var r=t.mapProvider,n=t.mapState,o=t.pluginState,i=r.map;O(i,n.mapStyle.id,V(V({},d),e)),o.dispatch({type:"ADD_DATASET",payload:{dataset:e,datasetDefaults:d}})},removeDataset:function(t,e){var r,n,o=t.mapProvider,i=t.pluginState,a=o.map,u=null===(r=i.datasets)||void 0===r?void 0:r.find(function(t){return t.id===e});if(u){var l=function(t){var e=!!t.fill,r=!!t.stroke,n=e?t.id:null,o=null;return r&&(o=e?"".concat(t.id,"-stroke"):t.id),{fillLayerId:n,strokeLayerId:o}}(u),c=l.fillLayerId,s=l.strokeLayerId,f=j(u);[s,c].forEach(function(t){t&&a.getLayer(t)&&a.removeLayer(t)}),!(null===(n=i.datasets)||void 0===n?void 0:n.some(function(t){return t.id!==e&&j(t)===f}))&&a.getSource(f)&&a.removeSource(f),i.dispatch({type:"REMOVE_DATASET",payload:{id:e}})}},showFeatures:function(t,e){var r,n=t.mapProvider,o=t.pluginState,i=e.featureIds,a=e.idProperty,u=e.datasetId,l=n.map,c=o.hiddenFeatures[u];if(c){var s=null===(r=o.datasets)||void 0===r?void 0:r.find(function(t){return t.id===u});if(s){var f=s.filter||null,d=!!s.fill,y=!!s.stroke,p=d?u:null,v=null;y&&(v=d?"".concat(u,"-stroke"):u);var m=c.ids.filter(function(t){return!i.includes(t)});o.dispatch({type:"SHOW_FEATURES",payload:{layerId:u,featureIds:i}}),p&&k(l,p,f,a,m),v&&k(l,v,f,a,m)}}},hideFeatures:function(t,e){var r,n=t.mapProvider,o=t.pluginState,i=e.featureIds,a=e.idProperty,u=e.datasetId,l=n.map,c=null===(r=o.datasets)||void 0===r?void 0:r.find(function(t){return t.id===u});if(c){var s=c.filter||null,f=!!c.fill,d=!!c.stroke,y=f?u:null,p=null;d&&(p=f?"".concat(u,"-stroke"):u);var v=o.hiddenFeatures[u],m=v?J(new Set([].concat(J(v.ids),J(i)))):i;o.dispatch({type:"HIDE_FEATURES",payload:{layerId:u,idProperty:a,featureIds:i}}),y&&k(l,y,s,a,m),p&&k(l,p,s,a,m)}}}}}}]);
2
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[447],{495(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?o(Object(r),!0).forEach(function(e){a(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function a(t,e,r){return(e=function(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r.r(e),r.d(e,{manifest:()=>ee});var l={minZoom:6,maxZoom:24,showInKey:!1,toggleVisibility:!1,visibility:"visible",style:{stroke:"#d4351c",strokeWidth:2,fill:"transparent",symbolDescription:"red outline"}},u=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape","symbol","symbolSvgContent","symbolViewBox","symbolAnchor","symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"],s=["stroke","fill","fillPattern","fillPatternSvgContent","symbol","symbolSvgContent"],c=function(t){return s.some(function(e){return e in t})},f=function(t,e){var r=t.style||{},n=i(i({},e.style),r);!("symbolDescription"in r)&&c(r)&&delete n.symbolDescription;var o=i({},t);delete o.style,u.forEach(function(t){return delete o[t]});var a=i({},e);return delete a.style,i(i(i({},a),o),n)};function y(t){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},y(t)}function d(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function p(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?d(Object(r),!0).forEach(function(e){b(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function b(t,e,r){return(e=function(t){var e=function(t){if("object"!=y(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==y(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function v(t){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},v(t)}function m(t){return function(t){if(Array.isArray(t))return h(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return h(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function g(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function S(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?g(Object(r),!0).forEach(function(e){O(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function O(t,e,r){return(e=function(t){var e=function(t){if("object"!=v(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=v(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==v(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var P=function(t){var e;if(null===(e=t.sublayers)||void 0===e||!e.length)return t;var r={};return t.sublayers.forEach(function(t){r[t.id]="visible"}),S(S({},t),{},{sublayerVisibility:r})},j={BUILD_KEY_GROUPS:function(t){var e=t.datasets||[],r=new Set,n=[],o=!1;return e.forEach(function(t){var i;if(t.showInKey&&"hidden"!==t.visibility)if(null!==(i=t.sublayers)&&void 0!==i&&i.length){var a=t.sublayerVisibility,l=void 0===a?[]:a;Object.values(l).some(function(t){return"hidden"!==t})&&(o=!0,n.push({type:"sublayers",dataset:t}))}else{if(t.groupLabel){if(r.has(t.groupLabel))return;return r.add(t.groupLabel),o=!0,void n.push({type:"group",groupLabel:t.groupLabel,datasets:e.filter(function(e){var r;return!(null!==(r=e.sublayers)&&void 0!==r&&r.length)&&e.groupLabel===t.groupLabel})})}n.push({type:"flat",dataset:t})}}),p(p({},t),{},{key:{items:n,hasGroups:o}})},SET_DATASETS:function(t,e){var r=e.datasets,n=e.datasetDefaults;return S(S({},t),{},{datasets:r.map(function(t){return P(f(t,n))})})},ADD_DATASET:function(t,e){var r=e.dataset,n=e.datasetDefaults;return S(S({},t),{},{datasets:[].concat(m(t.datasets||[]),[P(f(r,n))])})},REMOVE_DATASET:function(t,e){var r,n=e.id;return S(S({},t),{},{datasets:(null===(r=t.datasets)||void 0===r?void 0:r.filter(function(t){return t.id!==n}))||[]})},SET_DATASET_VISIBILITY:function(t,e){var r,n=e.id,o=e.visibility;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?S(S({},t),{},{visibility:o}):t})})},SET_GLOBAL_VISIBILITY:function(t,e){var r,n=e.visibility;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return S(S({},t),{},{visibility:n})})})},SET_SUBLAYER_VISIBILITY:function(t,e){var r,n=e.datasetId,o=e.sublayerId,i=e.visibility;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id!==n?t:S(S({},t),{},{sublayerVisibility:S(S({},t.sublayerVisibility),{},O({},o,i))})})})},SET_DATASET_STYLE:function(t,e){var r,n=e.datasetId,o=e.styleChanges;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?S(S({},t),o):t})})},SET_SUBLAYER_STYLE:function(t,e){var r,n=e.datasetId,o=e.sublayerId,i=e.styleChanges;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){var e;return t.id!==n?t:S(S({},t),{},{sublayers:null===(e=t.sublayers)||void 0===e?void 0:e.map(function(t){return t.id===o?S(S({},t),{},{style:S(S({},t.style),i)}):t})})})})},SET_OPACITY:function(t,e){var r,n=e.datasetId,o=e.opacity;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?S(S({},t),{},{opacity:o}):t})})},SET_GLOBAL_OPACITY:function(t,e){var r,n=e.opacity;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return S(S({},t),{},{opacity:n})})})},SET_SUBLAYER_OPACITY:function(t,e){var r,n=e.datasetId,o=e.sublayerId,i=e.opacity;return S(S({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){var e;return t.id!==n?t:S(S({},t),{},{sublayers:null===(e=t.sublayers)||void 0===e?void 0:e.map(function(t){return t.id===o?S(S({},t),{},{style:S(S({},t.style),{},{opacity:i})}):t})})})})},HIDE_FEATURES:function(t,e){var r=e.layerId,n=e.idProperty,o=e.featureIds,i=t.hiddenFeatures[r],a=(null==i?void 0:i.ids)||[],l=m(new Set([].concat(m(a),m(o))));return S(S({},t),{},{hiddenFeatures:S(S({},t.hiddenFeatures),{},O({},r,{idProperty:n,ids:l}))})},SHOW_FEATURES:function(t,e){var r=e.layerId,n=e.featureIds,o=t.hiddenFeatures[r];if(!o)return t;var i=o.ids.filter(function(t){return!n.includes(t)});if(0===i.length){var a=S({},t.hiddenFeatures);return delete a[r],S(S({},t),{},{hiddenFeatures:a})}return S(S({},t),{},{hiddenFeatures:S(S({},t.hiddenFeatures),{},O({},r,S(S({},o),{},{ids:i})))})},SET_LAYER_ADAPTER:function(t,e){return S(S({},t),{},{layerAdapter:e})}},w=r(738),A={APP_ADD_MARKER:"app:addmarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_VISIBLE:"app:visible",APP_HIDDEN:"app:hidden",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",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_EXIT:"map:exit",MAP_DESTROY:"map:destroy"};function E(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof l?n:l,s=Object.create(u.prototype);return _(s,"_invoke",function(r,n,o){var i,l,u,s=0,c=o||[],f=!1,y={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return i=e,l=0,u=t,y.n=r,a}};function d(r,n){for(l=r,u=n,e=0;!f&&s&&!o&&e<c.length;e++){var o,i=c[e],d=y.p,p=i[2];r>3?(o=p===n)&&(u=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&d<i[1])?(l=0,y.v=n,y.n=i[1]):d<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,y.n=p,l=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,p){if(s>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,p),l=c,u=p;(e=l<2?t:u)||!f;){i||(l?l<3?(l>1&&(y.n=-1),d(l,u)):y.n=u:y.v=u);try{if(s=2,i){if(l||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,l<2&&(l=0)}else 1===l&&(e=i.return)&&e.call(i),l<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((e=(f=y.n<0)?u:r.call(n,y))!==a)break}catch(e){i=t,l=1,u=e}finally{s=1}}return{value:e,done:f}}}(r,o,i),!0),s}var a={};function l(){}function u(){}function s(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(_(e={},n,function(){return this}),e),f=s.prototype=l.prototype=Object.create(c);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,_(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=s,_(f,"constructor",s),_(s,"constructor",u),u.displayName="GeneratorFunction",_(s,o,"GeneratorFunction"),_(f),_(f,o,"Generator"),_(f,n,function(){return this}),_(f,"toString",function(){return"[object Generator]"}),(E=function(){return{w:i,m:y}})()}function _(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}_=function(t,e,r,n){function i(e,r){_(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},_(t,e,r,n)}function k(t,e,r,n,o,i,a){try{var l=t[i](a),u=l.value}catch(t){return void r(t)}l.done?e(u):Promise.resolve(u).then(n,o)}var T=function(){var t,e=(t=E().m(function t(e,r,n,o){var i,a,l,u,s,c,f;return E().w(function(t){for(;;)switch(t.n){case 0:return i=n(e,r),l=(a="string"==typeof i?{url:i}:i).url,u=a.headers,s=void 0===u?{}:u,t.n=1,fetch(l,{headers:s,signal:o});case 1:if((c=t.v).ok){t.n=2;break}throw new Error("Failed to fetch GeoJSON: ".concat(c.status," ").concat(c.statusText));case 2:return t.n=3,c.json();case 3:if("FeatureCollection"!==(f=t.v).type){t.n=4;break}return t.a(2,f);case 4:if("Feature"!==f.type){t.n=5;break}return t.a(2,{type:"FeatureCollection",features:[f]});case 5:if(!Array.isArray(f)){t.n=6;break}return t.a(2,{type:"FeatureCollection",features:f});case 6:throw new Error("Invalid GeoJSON response");case 7:return t.a(2)}},t)}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){k(i,n,o,a,l,"next",t)}function l(t){k(i,n,o,a,l,"throw",t)}a(void 0)})});return function(t,r,n,o){return e.apply(this,arguments)}}();function D(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var I=function(t){var e=t.getBounds();return[e.getWest(),e.getSouth(),e.getEast(),e.getNorth()]},x=function(t,e){return!(!t||!e)&&e[0]>=t[0]&&e[1]>=t[1]&&e[2]<=t[2]&&e[3]<=t[3]},C=function(t,e){return t?[Math.min(t[0],e[0]),Math.min(t[1],e[1]),Math.max(t[2],e[2]),Math.max(t[3],e[3])]:function(t){if(Array.isArray(t))return D(t)}(r=e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(t,e){if(t){if("string"==typeof t)return D(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(t,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var r},L=function(t,e){return!(!t||!e||t[2]<e[0]||t[0]>e[2]||t[3]<e[1]||t[1]>e[3])},M=function(t){var e=1/0,r=1/0,n=-1/0,o=-1/0,i=function(t,a){var l;0===a?(l=t,e=Math.min(e,l[0]),r=Math.min(r,l[1]),n=Math.max(n,l[0]),o=Math.max(o,l[1])):t.forEach(function(t){return i(t,a-1)})};switch(t.type){case"Point":i(t.coordinates,0);break;case"LineString":case"MultiPoint":i(t.coordinates,1);break;case"Polygon":case"MultiLineString":i(t.coordinates,2);break;case"MultiPolygon":i(t.coordinates,3);break;case"GeometryCollection":t.geometries.forEach(function(t){var i=M(t);e=Math.min(e,i[0]),r=Math.min(r,i[1]),n=Math.max(n,i[2]),o=Math.max(o,i[3])});break;default:throw new Error("Unsupported geometry type: ".concat(t.type))}return[e,r,n,o]};function F(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof l?n:l,s=Object.create(u.prototype);return N(s,"_invoke",function(r,n,o){var i,l,u,s=0,c=o||[],f=!1,y={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return i=e,l=0,u=t,y.n=r,a}};function d(r,n){for(l=r,u=n,e=0;!f&&s&&!o&&e<c.length;e++){var o,i=c[e],d=y.p,p=i[2];r>3?(o=p===n)&&(u=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&d<i[1])?(l=0,y.v=n,y.n=i[1]):d<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,y.n=p,l=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,p){if(s>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,p),l=c,u=p;(e=l<2?t:u)||!f;){i||(l?l<3?(l>1&&(y.n=-1),d(l,u)):y.n=u:y.v=u);try{if(s=2,i){if(l||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,l<2&&(l=0)}else 1===l&&(e=i.return)&&e.call(i),l<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((e=(f=y.n<0)?u:r.call(n,y))!==a)break}catch(e){i=t,l=1,u=e}finally{s=1}}return{value:e,done:f}}}(r,o,i),!0),s}var a={};function l(){}function u(){}function s(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(N(e={},n,function(){return this}),e),f=s.prototype=l.prototype=Object.create(c);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,N(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=s,N(f,"constructor",s),N(s,"constructor",u),u.displayName="GeneratorFunction",N(s,o,"GeneratorFunction"),N(f),N(f,o,"Generator"),N(f,n,function(){return this}),N(f,"toString",function(){return"[object Generator]"}),(F=function(){return{w:i,m:y}})()}function N(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}N=function(t,e,r,n){function i(e,r){N(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},N(t,e,r,n)}function R(t,e,r,n,o,i,a){try{var l=t[i](a),u=l.value}catch(t){return void r(t)}l.done?e(u):Promise.resolve(u).then(n,o)}function B(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,l=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(t,e)||G(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(t,e){if(t){if("string"==typeof t)return V(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?V(t,e):void 0}}function V(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Y=function(t){var e=t.adapter,r=t.pluginConfig,n=t.pluginStateRef,o=t.mapStyle,i=t.mapProvider,a=t.events,u=t.eventBus,s=r.datasets,c=new Map,y=function(){return n.current.datasets||s},d=s.map(function(t){return f(t,l)});e.init(d,o).then(function(){d.forEach(function(t){if(function(t){return"string"==typeof t.geojson&&!!t.idProperty&&"function"==typeof t.transformRequest}(t)){var r=function(t){var e,r,n,o=t.dataset,i=t.map,a=t.onUpdate,l=o.geojson,u=o.idProperty,s=o.transformRequest,c=o.maxFeatures,f=o.minZoom,y=void 0===f?0:f,d=new Map,p=null,b=null,v=function(){return{type:"FeatureCollection",features:Array.from(d.values()).map(function(t){return t.feature})}},m=function(t){var e,r;return u&&null!==(e=null===(r=t.properties)||void 0===r?void 0:r[u])&&void 0!==e?e:t.id},h=function(t){if(c&&!(d.size<=1.2*c)){var e,r=c,n=[],o=[],i=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=G(t))){e&&(t=e);var r=0,n=function(){};return{s:n,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(d);try{for(i.s();!(e=i.n()).done;){var a=B(e.value,2),l=a[0],u=a[1];L(u.bbox,t)?n.push(l):o.push({id:l,lastSeenAt:u.lastSeenAt})}}catch(t){i.e(t)}finally{i.f()}o.sort(function(t,e){return t.lastSeenAt-e.lastSeenAt});for(var s=d.size-r,f=0;f<s&&f<o.length;f++)d.delete(o[f].id);if(d.size>r)for(var y=d.size-r,p=n.map(function(t){return{id:t,lastSeenAt:d.get(t).lastSeenAt}}).sort(function(t,e){return t.lastSeenAt-e.lastSeenAt}),b=0;b<y&&b<p.length;b++)d.delete(p[b].id)}},g=function(){var t,e=(t=F().m(function t(){var e,r,n,u,c,f,g;return F().w(function(t){for(;;)switch(t.p=t.n){case 0:if(!((e=i.getZoom())<y)){t.n=1;break}return t.a(2);case 1:if(r=I(i),!p||!x(p,r)){t.n=2;break}return t.a(2);case 2:return b&&b.abort(),b=new AbortController,t.p=3,n={bbox:r,zoom:e,dataset:o},t.n=4,T(l,n,s,b.signal);case 4:u=t.v,c=Date.now(),u.features.forEach(function(t){var e=m(t);null!=e?d.set(e,{feature:t,bbox:M(t.geometry),lastSeenAt:c}):console.warn("Feature missing ID, skipping:",t)}),p=C(p,r),f=d.size,h(r),d.size<f&&(p=r),a(o.id,v()),t.n=7;break;case 5:if(t.p=5,"AbortError"!==(g=t.v).name){t.n=6;break}return t.a(2);case 6:console.error("Failed to fetch dynamic GeoJSON for ".concat(o.id,":"),g);case 7:return t.a(2)}},t,null,[[3,5]])}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){R(i,n,o,a,l,"next",t)}function l(t){R(i,n,o,a,l,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}(),S=(e=g,n=function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];clearTimeout(r),r=setTimeout(function(){return e.apply(void 0,n)},200)},n.cancel=function(){clearTimeout(r),r=null},n),O=function(){S()};return i.on("moveend",O),g(),{destroy:function(){i.off("moveend",O),S.cancel(),b&&b.abort()},clear:function(){d.clear(),p=null,a(o.id,{type:"FeatureCollection",features:[]})},refresh:function(){d.clear(),p=null,g()},getFeatureCount:function(){return d.size},reapply:function(){d.size>0&&a(o.id,v())}}}({dataset:t,map:i.map,onUpdate:function(t,r){return e.setData(t,r)}});c.set(t.id,r)}}),u.emit("datasets:ready")});var p=o,b=function(t){p=t,e.onStyleChange(y(),t,n.current.hiddenFeatures||{},c)},v=function(){e.onSizeChange(y(),p)};return u.on(a.MAP_SET_STYLE,b),u.on(a.MAP_SIZE_CHANGE,v),{remove:function(){u.off(a.MAP_SET_STYLE,b),u.off(a.MAP_SIZE_CHANGE,v),c.forEach(function(t){return t.destroy()}),c.clear(),e.destroy(y())},refreshDataset:function(t){var e;null===(e=c.get(t))||void 0===e||e.refresh()},clearDatasetCache:function(t){var e;null===(e=c.get(t))||void 0===e||e.clear()},getFeatureCount:function(t){var e,r;return null!==(e=null===(r=c.get(t))||void 0===r?void 0:r.getFeatureCount())&&void 0!==e?e:null}}};function W(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof l?n:l,s=Object.create(u.prototype);return U(s,"_invoke",function(r,n,o){var i,l,u,s=0,c=o||[],f=!1,y={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return i=e,l=0,u=t,y.n=r,a}};function d(r,n){for(l=r,u=n,e=0;!f&&s&&!o&&e<c.length;e++){var o,i=c[e],d=y.p,p=i[2];r>3?(o=p===n)&&(u=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=r<2&&d<i[1])?(l=0,y.v=n,y.n=i[1]):d<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,y.n=p,l=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,p){if(s>1)throw TypeError("Generator is already running");for(f&&1===c&&d(c,p),l=c,u=p;(e=l<2?t:u)||!f;){i||(l?l<3?(l>1&&(y.n=-1),d(l,u)):y.n=u:y.v=u);try{if(s=2,i){if(l||(o="next"),e=i[o]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,l<2&&(l=0)}else 1===l&&(e=i.return)&&e.call(i),l<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((e=(f=y.n<0)?u:r.call(n,y))!==a)break}catch(e){i=t,l=1,u=e}finally{s=1}}return{value:e,done:f}}}(r,o,i),!0),s}var a={};function l(){}function u(){}function s(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(U(e={},n,function(){return this}),e),f=s.prototype=l.prototype=Object.create(c);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,U(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return u.prototype=s,U(f,"constructor",s),U(s,"constructor",u),u.displayName="GeneratorFunction",U(s,o,"GeneratorFunction"),U(f),U(f,o,"Generator"),U(f,n,function(){return this}),U(f,"toString",function(){return"[object Generator]"}),(W=function(){return{w:i,m:y}})()}function U(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}U=function(t,e,r,n){function i(e,r){U(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},U(t,e,r,n)}function H(t,e,r,n,o,i,a){try{var l=t[i](a),u=l.value}catch(t){return void r(t)}l.done?e(u):Promise.resolve(u).then(n,o)}function K(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,l=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return z(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Z=function(t,e){var r,n,o=t.pluginState,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.datasetId,l=i.sublayerId;if(l){var u,s=e?"visible":"hidden";return null===(u=o.layerAdapter)||void 0===u||u[e?"showSublayer":"hideSublayer"](a,l),void o.dispatch({type:"SET_SUBLAYER_VISIBILITY",payload:{datasetId:a,sublayerId:l,visibility:s}})}if(a){if(null===(n=o.layerAdapter)||void 0===n||n[e?"showDataset":"hideDataset"](a),o.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:a,visibility:e?"visible":"hidden"}}),e){var c,f=null===(c=o.datasets)||void 0===c?void 0:c.find(function(t){return t.id===a});Object.entries((null==f?void 0:f.sublayerVisibility)||{}).forEach(function(t){var e,r=K(t,2),n=r[0];"hidden"===r[1]&&(null===(e=o.layerAdapter)||void 0===e||e.hideSublayer(a,n))})}}else o.dispatch({type:"SET_GLOBAL_VISIBILITY",payload:{visibility:e?"visible":"hidden"}}),null===(r=o.datasets)||void 0===r||r.forEach(function(t){var r;null===(r=o.layerAdapter)||void 0===r||r[e?"showDataset":"hideDataset"](t.id),e&&Object.entries(t.sublayerVisibility||{}).forEach(function(e){var r,n=K(e,2),i=n[0];"hidden"===n[1]&&(null===(r=o.layerAdapter)||void 0===r||r.hideSublayer(t.id,i))})})},$=r(287),J="im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",q=function(t){var e;return null===(e=t.sublayers)||void 0===e?void 0:e.some(function(t){return t.toggleVisibility})};function X(t){return X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},X(t)}var Q=function(t,e){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===X(t)){if(e&&t[e])return t[e];var r=Object.values(t)[0];return null!=r?r:null}return null};function tt(t){return tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tt(t)}function et(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function rt(t,e,r){return(e=function(t){var e=function(t){if("object"!=tt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=tt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==tt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var nt=function(t,e){return"symbolDescription"in e?e.symbolDescription:c(e)?void 0:t.symbolDescription},ot=function(t){var e=t.text;return(0,$.jsx)("div",{className:"im-c-datasets-key",children:(0,$.jsx)("p",{className:"im-c-datasets-key__empty-message",children:e})})},it=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),at=function(t){return!(!t.symbol&&!t.symbolSvgContent)},lt=function(t,e,r){return t.replace(/\{\{foregroundColor\}\}/g,e||"black").replace(/\{\{backgroundColor\}\}/g,r||"transparent")};function ut(t){return ut="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ut(t)}function st(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function ct(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?st(Object(r),!0).forEach(function(e){ft(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):st(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function ft(t,e,r){return(e=function(t){var e=function(t){if("object"!=ut(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=ut(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ut(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var yt=20,dt={xmlns:"http://www.w3.org/2000/svg",width:yt,height:yt,viewBox:"0 0 ".concat(yt," ").concat(yt),className:"am-c-datasets-key-symbol","aria-hidden":"true",focusable:"false"},pt=ct(ct({},dt),{},{width:38,height:38,className:"am-c-datasets-key-symbol am-c-datasets-key-symbol--point"});function bt(t){return bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bt(t)}function vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function mt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?vt(Object(r),!0).forEach(function(e){ht(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):vt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function ht(t,e,r){return(e=function(t){var e=function(t){if("object"!=bt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=bt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==bt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var gt=function(t){var e=t.patternRegistry,r=function(t,e,r){var n=function(t,e){return t.fillPatternSvgContent?t.fillPatternSvgContent:t.fillPattern&&null!==(r=null==e||null===(n=e.get(t.fillPattern))||void 0===n?void 0:n.svgContent)&&void 0!==r?r:null;var r,n}(t,r);if(!n)return null;var o=Q(t.fillPatternForegroundColor,e)||"black",i=Q(t.fillPatternBackgroundColor,e)||"transparent",a=Q(t.stroke,e)||o;return{border:lt('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',a,i),content:lt(n,o,i)}}(t,t.mapStyle.id,e);return(0,$.jsxs)("svg",mt(mt({},dt),{},{children:[(0,$.jsx)("g",{dangerouslySetInnerHTML:{__html:r.border}}),(0,$.jsx)("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:r.content}})]}))};function St(t){return St="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},St(t)}function Ot(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Pt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Ot(Object(r),!0).forEach(function(e){jt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ot(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function jt(t,e,r){return(e=function(t){var e=function(t){if("object"!=St(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=St(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==St(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var wt=function(t){var e,r=t.symbolRegistry,n=t.mapStyle,o=t.symbolDef,i=null!==(e=null==n?void 0:n.appColorScheme)&&void 0!==e?e:"light",a=Pt(Pt({},n),{},{mapColorScheme:i}),l=r.resolve(o,function(t){if(!at(t))return{};var e={};return it.forEach(function(r){if(null!=t[r]){var n=r.charAt(6).toLowerCase()+r.slice(7);e[n]=t[r]}}),e}(t),a),u=function(t,e){var r;return t.symbolViewBox?t.symbolViewBox:null!==(r=null==e?void 0:e.viewBox)&&void 0!==r?r:"0 0 38 38"}(t,o);return(0,$.jsx)("svg",Pt(Pt({},pt),{},{viewBox:u,children:(0,$.jsx)("g",{dangerouslySetInnerHTML:{__html:l}})}))};function At(t){return At="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},At(t)}function Et(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _t(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Et(Object(r),!0).forEach(function(e){kt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Et(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function kt(t,e,r){return(e=function(t){var e=function(t){if("object"!=At(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=At(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==At(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Tt=function(t){var e=t.mapStyle;return(0,$.jsx)("svg",_t(_t({},dt),{},{children:(0,$.jsx)("line",{x1:t.strokeWidth/2,y1:10,x2:yt-t.strokeWidth/2,y2:10,stroke:Q(t.stroke,e.id),strokeWidth:t.strokeWidth,strokeLinecap:"round"})}))};function Dt(t){return Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Dt(t)}function It(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function xt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?It(Object(r),!0).forEach(function(e){Ct(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):It(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function Ct(t,e,r){return(e=function(t){var e=function(t){if("object"!=Dt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Dt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Dt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Lt=function(t){var e=t.mapStyle;return(0,$.jsx)("svg",xt(xt({},dt),{},{children:(0,$.jsx)("rect",{x:t.strokeWidth/2,y:t.strokeWidth/2,width:yt-t.strokeWidth,height:yt-t.strokeWidth,rx:t.strokeWidth,ry:t.strokeWidth,fill:Q(t.fill,e.id),stroke:Q(t.stroke,e.id),strokeWidth:t.strokeWidth,strokeLinejoin:"round"})}))};function Mt(t){return Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mt(t)}function Ft(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Nt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Ft(Object(r),!0).forEach(function(e){Rt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ft(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function Rt(t,e,r){return(e=function(t){var e=function(t){if("object"!=Mt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Mt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Mt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Bt=function(t){var e,r=t.symbolRegistry,n=at(t)&&function(t,e){return t.symbolSvgContent?{svg:t.symbolSvgContent}:t.symbol?e.get(t.symbol):void 0}(t,r);return n?(0,$.jsx)(wt,Nt(Nt({},t),{},{symbolDef:n})):(e=t).fillPattern||e.fillPatternSvgContent?(0,$.jsx)(gt,Nt({},t)):"line"===t.keySymbolShape?(0,$.jsx)(Tt,Nt({},t)):(0,$.jsx)(Lt,Nt({},t))};function Gt(t){return Gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gt(t)}function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Yt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Vt(Object(r),!0).forEach(function(e){Wt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Vt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function Wt(t,e,r){return(e=function(t){var e=function(t){if("object"!=Gt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Gt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Gt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ut(t){return Ut="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ut(t)}function Ht(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Kt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Ht(Object(r),!0).forEach(function(e){zt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ht(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function zt(t,e,r){return(e=function(t){var e=function(t){if("object"!=Ut(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Ut(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ut(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Zt(t){return function(t){if(Array.isArray(t))return $t(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return $t(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?$t(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $t(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Jt(t){return Jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jt(t)}function qt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function Xt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?qt(Object(r),!0).forEach(function(e){Qt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):qt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function Qt(t,e,r){return(e=function(t){var e=function(t){if("object"!=Jt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=Jt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Jt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var te="[interactive-map]",ee={InitComponent:function(t){var e,r=t.pluginConfig,n=t.pluginState,o=t.appState,i=t.mapState,a=t.mapProvider,u=t.services,s=n.dispatch,c=u.eventBus,f=u.symbolRegistry,y=u.patternRegistry,d=!(null===(e=a.map)||void 0===e||!e.getStyle()),p=(0,w.useRef)(n);p.current=n;var b=(0,w.useRef)(null);return(0,w.useEffect)(function(){var t,e,u,v,m=null===(t=null===(e=r.includeModes)||void 0===e?void 0:e.includes(o.mode))||void 0===t||t,h=null!==(u=null===(v=r.excludeModes)||void 0===v?void 0:v.includes(o.mode))&&void 0!==u&&u;if(d&&m&&!h&&!b.current){n.datasets||s({type:"SET_DATASETS",payload:{datasets:r.datasets,datasetDefaults:l}});var g=function(){var t,e=(t=W().m(function t(){var e,n,o;return W().w(function(t){for(;;)switch(t.n){case 0:if(r.layerAdapter){t.n=1;break}throw new Error("datasets plugin: no layerAdapter provided. Import and pass maplibreLayerAdapter or a custom adapter.");case 1:return t.n=2,r.layerAdapter.load();case 2:e=t.v,n=e.default,o=new n(a,f,y),s({type:"SET_LAYER_ADAPTER",payload:o}),b.current=Y({adapter:o,pluginConfig:r,pluginStateRef:p,mapStyle:i.mapStyle,mapProvider:a,events:A,eventBus:c});case 3:return t.a(2)}},t)}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){H(i,n,o,a,l,"next",t)}function l(t){H(i,n,o,a,l,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}();g()}},[d,o.mode]),(0,w.useEffect)(function(){s({type:"BUILD_KEY_GROUPS",payload:null})},[n.datasets]),(0,w.useEffect)(function(){return function(){b.current&&(b.current.remove(),b.current=null),s({type:"SET_LAYER_ADAPTER",payload:null})}},[]),null},reducer:{initialState:{datasets:null,key:{items:[],hasGroups:!1},hiddenFeatures:{},layerAdapter:null},actions:j},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"260px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"280px"},render:function(t){var e,r,n,o=t.pluginState,i=function(t){var e=t.target,r=e.value,n=e.checked;Z({pluginState:o},n,{datasetId:r})},a=function(t){var e=t.target.checked,r=t.target.dataset.datasetId,n=t.target.dataset.sublayerId;Z({pluginState:o},e,{datasetId:r,sublayerId:n})},l=function(t){var e="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat("hidden"===t.visibility?"":" im-c-datasets-layers__item--checked");return(0,$.jsx)("div",{className:e,"data-module":"govuk-checkboxes",children:(0,$.jsxs)("div",{className:"govuk-checkboxes__item",children:[(0,$.jsx)("input",{className:"govuk-checkboxes__input",id:t.id,name:"layers",type:"checkbox",value:t.id,checked:"hidden"!==t.visibility,onChange:i}),(0,$.jsx)("label",{className:J,htmlFor:t.id,children:t.label})]})},t.id)},u=(o.datasets||[]).filter(function(t){return t.toggleVisibility||q(t)}),s=(e=u,r=new Set,n=[],e.forEach(function(t){if(q(t))n.push({type:"sublayers",dataset:t});else{if(t.groupLabel){if(r.has(t.groupLabel))return;return r.add(t.groupLabel),void n.push({type:"group",groupLabel:t.groupLabel,datasets:e.filter(function(e){return!q(e)&&e.groupLabel===t.groupLabel})})}n.push({type:"flat",dataset:t})}}),n),c=s.some(function(t){return"sublayers"===t.type||"group"===t.type}),f="im-c-datasets-layers".concat(c?" im-c-datasets-layers--has-groups":"");return(0,$.jsx)("div",{className:f,children:s.map(function(t){if("sublayers"===t.type){var e=t.dataset,r=e.sublayers.filter(function(t){return t.toggleVisibility}).some(function(t){var r;return"hidden"!==(null===(r=e.sublayerVisibility)||void 0===r?void 0:r[t.id])}),n="govuk-form-group im-c-datasets-layers-group".concat(r?" im-c-datasets-layers-group--items-checked":"");return(0,$.jsx)("div",{className:n,children:(0,$.jsxs)("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[(0,$.jsx)("legend",{className:"im-c-datasets-layers-group__legend",children:e.label}),e.sublayers.filter(function(t){return t.toggleVisibility}).map(function(t){var r,n="hidden"!==(null===(r=e.sublayerVisibility)||void 0===r?void 0:r[t.id]),o="".concat(e.id,"-").concat(t.id),i="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(n?" im-c-datasets-layers__item--checked":"");return(0,$.jsx)("div",{className:i,"data-module":"govuk-checkboxes",children:(0,$.jsxs)("div",{className:"govuk-checkboxes__item",children:[(0,$.jsx)("input",{className:"govuk-checkboxes__input",id:o,type:"checkbox",checked:n,"data-dataset-id":e.id,"data-sublayer-id":t.id,onChange:a}),(0,$.jsx)("label",{className:J,htmlFor:o,children:t.label})]})},t.id)})]})},e.id)}if("group"===t.type){var o=t.datasets.some(function(t){return"hidden"!==t.visibility}),i="govuk-form-group im-c-datasets-layers-group".concat(o?" im-c-datasets-layers-group--items-checked":"");return(0,$.jsx)("div",{className:i,children:(0,$.jsxs)("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[(0,$.jsx)("legend",{className:"im-c-datasets-layers-group__legend",children:t.groupLabel}),t.datasets.map(function(t){return l(t)})]})},t.groupLabel)}return l(t.dataset)})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(t){var e,r=t.pluginConfig,n=t.mapState,o=t.pluginState,i=t.services;if(null==o||null===(e=o.key)||void 0===e||null===(e=e.items)||void 0===e||!e.length)return(0,$.jsx)(ot,{text:r.noKeyItemText});var a=n.mapStyle,l=i.symbolRegistry,u=i.patternRegistry,s=function(t,e){return(0,$.jsxs)("dl",{className:"im-c-datasets-key__item",children:[(0,$.jsx)("dt",{className:"im-c-datasets-key__item-symbol",children:(0,$.jsx)(Bt,Yt(Yt({},e),{},{symbolRegistry:l,patternRegistry:u,mapStyle:a}))}),(0,$.jsxs)("dd",{className:"im-c-datasets-key__item-label",children:[e.label,e.symbolDescription&&(0,$.jsxs)("span",{className:"govuk-visually-hidden",children:["(",Q(e.symbolDescription,a.id),")"]})]})]},t)},c=o.key,f=c.items,y=c.hasGroups,d="im-c-datasets-key".concat(y?" im-c-datasets-key--has-groups":"");return(0,$.jsx)("div",{className:d,children:f.map(function(t){if("sublayers"===t.type){var e="key-heading-".concat(t.dataset.id);return(0,$.jsxs)("section",{className:"im-c-datasets-key__group","aria-labelledby":e,children:[(0,$.jsx)("h3",{id:e,className:"im-c-datasets-key__group-heading",children:t.dataset.label}),t.dataset.sublayers.filter(function(e){var r;return"hidden"!==(null===(r=t.dataset.sublayerVisibility)||void 0===r?void 0:r[e.id])}).map(function(e){return s("".concat(t.dataset.id,"-").concat(e.id),function(t,e){var r,n,o,i,a,l,u,s,c,f,y,d,p,b,v,m,h,g=e.style||{},S=(m=t.filter,h=e.filter,m&&h?["all",m,h]:h||m||null);return function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?et(Object(r),!0).forEach(function(e){rt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}({id:e.id,label:e.label,stroke:null!==(r=g.stroke)&&void 0!==r?r:t.stroke,strokeWidth:null!==(n=g.strokeWidth)&&void 0!==n?n:t.strokeWidth,strokeDashArray:null!==(o=g.strokeDashArray)&&void 0!==o?o:t.strokeDashArray,opacity:null!==(i=g.opacity)&&void 0!==i?i:t.opacity,keySymbolShape:null!==(a=g.keySymbolShape)&&void 0!==a?a:t.keySymbolShape,symbolDescription:nt(t,g),showInKey:null!==(l=e.showInKey)&&void 0!==l?l:t.showInKey,toggleVisibility:null!==(u=e.toggleVisibility)&&void 0!==u&&u,filter:S,minZoom:t.minZoom,maxZoom:t.maxZoom,symbol:null!==(s=g.symbol)&&void 0!==s?s:t.symbol,symbolSvgContent:null!==(c=g.symbolSvgContent)&&void 0!==c?c:t.symbolSvgContent,symbolViewBox:null!==(f=g.symbolViewBox)&&void 0!==f?f:t.symbolViewBox,symbolAnchor:null!==(y=g.symbolAnchor)&&void 0!==y?y:t.symbolAnchor,symbolBackgroundColor:null!==(d=g.symbolBackgroundColor)&&void 0!==d?d:t.symbolBackgroundColor,symbolForegroundColor:null!==(p=g.symbolForegroundColor)&&void 0!==p?p:t.symbolForegroundColor,symbolHaloWidth:null!==(b=g.symbolHaloWidth)&&void 0!==b?b:t.symbolHaloWidth,symbolGraphic:null!==(v=g.symbolGraphic)&&void 0!==v?v:t.symbolGraphic},function(t,e){var r,n;return e.fillPattern||e.fillPatternSvgContent?{fillPattern:e.fillPattern,fillPatternSvgContent:e.fillPatternSvgContent,fillPatternForegroundColor:null!==(r=e.fillPatternForegroundColor)&&void 0!==r?r:t.fillPatternForegroundColor,fillPatternBackgroundColor:null!==(n=e.fillPatternBackgroundColor)&&void 0!==n?n:t.fillPatternBackgroundColor}:"fill"in e?{fill:e.fill}:{fill:t.fill,fillPattern:t.fillPattern,fillPatternSvgContent:t.fillPatternSvgContent,fillPatternForegroundColor:t.fillPatternForegroundColor,fillPatternBackgroundColor:t.fillPatternBackgroundColor}}(t,g))}(t.dataset,e))})]},t.dataset.id)}if("group"===t.type){var r="key-heading-".concat(t.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"));return(0,$.jsxs)("section",{className:"im-c-datasets-key__group","aria-labelledby":r,children:[(0,$.jsx)("h3",{id:r,className:"im-c-datasets-key__group-heading",children:t.groupLabel}),t.datasets.map(function(t){return s(t.id,t)})]},t.groupLabel)}return s(t.dataset.id,t.dataset)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:function(t){return!t.pluginConfig.datasets.some(function(t){var e;return t.toggleVisibility||(null===(e=t.sublayers)||void 0===e?void 0:e.some(function(t){return t.toggleVisibility}))})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:function(t){return!t.pluginConfig.datasets.some(function(t){return t.showInKey})},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{addDataset:function(t,e){var r,n=t.pluginState,o=t.mapState;null===(r=n.layerAdapter)||void 0===r||r.addDataset(Kt(Kt({},l),e),o.mapStyle),n.dispatch({type:"ADD_DATASET",payload:{dataset:e,datasetDefaults:l}})},removeDataset:function(t,e){var r,n,o=t.pluginState,i=null===(r=o.datasets)||void 0===r?void 0:r.find(function(t){return t.id===e});i&&(null===(n=o.layerAdapter)||void 0===n||n.removeDataset(i,o.datasets),o.dispatch({type:"REMOVE_DATASET",payload:{id:e}}))},setDatasetVisibility:Z,setFeatureVisibility:function(t,e,r){var n,o=t.pluginState,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=i.datasetId,l=i.idProperty,u=void 0===l?null:l,s=null===(n=o.datasets)||void 0===n?void 0:n.find(function(t){return t.id===a});if(s)if(e){var c,f=o.hiddenFeatures[a];if(!f)return;var y=f.ids.filter(function(t){return!r.includes(t)});o.dispatch({type:"SHOW_FEATURES",payload:{layerId:a,featureIds:r}}),null===(c=o.layerAdapter)||void 0===c||c.showFeatures(s,u,y)}else{var d,p=o.hiddenFeatures[a],b=(null==p?void 0:p.ids)||[],v=Zt(new Set([].concat(Zt(b),Zt(r))));o.dispatch({type:"HIDE_FEATURES",payload:{layerId:a,idProperty:u,featureIds:r}}),null===(d=o.layerAdapter)||void 0===d||d.hideFeatures(s,u,v)}},setStyle:function(t,e){var r,n,o=t.pluginState,i=t.mapState,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},l=a.datasetId,u=a.sublayerId,s=null===(r=o.datasets)||void 0===r?void 0:r.find(function(t){return t.id===l});if(s)if(u){var c,f;o.dispatch({type:"SET_SUBLAYER_STYLE",payload:{datasetId:l,sublayerId:u,styleChanges:e}});var y=Xt(Xt({},s),{},{sublayers:null===(c=s.sublayers)||void 0===c?void 0:c.map(function(t){return t.id===u?Xt(Xt({},t),{},{style:Xt(Xt({},t.style),e)}):t})});null===(f=o.layerAdapter)||void 0===f||f.setSublayerStyle(y,u,i.mapStyle)}else{o.dispatch({type:"SET_DATASET_STYLE",payload:{datasetId:l,styleChanges:e}});var d=Xt(Xt({},s),e);null===(n=o.layerAdapter)||void 0===n||n.setStyle(d,i.mapStyle)}},getStyle:function(t){var e,r,n=t.pluginState,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.datasetId,a=o.sublayerId,l=null===(e=n.datasets)||void 0===e?void 0:e.find(function(t){return t.id===i});if(!l)return null;if(a){var u,s,c=null===(u=l.sublayers)||void 0===u?void 0:u.find(function(t){return t.id===a});return null!==(s=null==c?void 0:c.style)&&void 0!==s?s:null}return null!==(r=l.style)&&void 0!==r?r:null},setOpacity:function(t,e,r){var n,o=t.pluginState,i=r||{},a=i.datasetId,l=i.sublayerId;if(l){var u,s;if(!(null===(u=o.datasets)||void 0===u?void 0:u.find(function(t){return t.id===a})))return;return o.dispatch({type:"SET_SUBLAYER_OPACITY",payload:{datasetId:a,sublayerId:l,opacity:e}}),void(null===(s=o.layerAdapter)||void 0===s||s.setSublayerOpacity(a,l,e))}if(a){var c,f;if(!(null===(c=o.datasets)||void 0===c?void 0:c.find(function(t){return t.id===a})))return;return o.dispatch({type:"SET_OPACITY",payload:{datasetId:a,opacity:e}}),void(null===(f=o.layerAdapter)||void 0===f||f.setOpacity(a,e))}o.dispatch({type:"SET_GLOBAL_OPACITY",payload:{opacity:e}}),null===(n=o.datasets)||void 0===n||n.forEach(function(t){var r;null===(r=o.layerAdapter)||void 0===r||r.setOpacity(t.id,e)})},getOpacity:function(t,e){var r,n,o=t.pluginState,i=e||{},a=i.datasetId,l=i.sublayerId;if(l){var u,s,c,f,y=null===(u=o.datasets)||void 0===u?void 0:u.find(function(t){return t.id===a}),d=null==y||null===(s=y.sublayers)||void 0===s?void 0:s.find(function(t){return t.id===l});return null!==(c=null==d||null===(f=d.style)||void 0===f?void 0:f.opacity)&&void 0!==c?c:null}if(a){var p,b,v=null===(p=o.datasets)||void 0===p?void 0:p.find(function(t){return t.id===a});return null!==(b=null==v?void 0:v.opacity)&&void 0!==b?b:null}return null!==(r=null===(n=o.datasets)||void 0===n||null===(n=n[0])||void 0===n?void 0:n.opacity)&&void 0!==r?r:null},setData:function(t,e,r){var n,o,i=t.pluginState,a=r.datasetId,l=null===(n=i.datasets)||void 0===n?void 0:n.find(function(t){return t.id===a});null!=l&&l.tiles?function(){for(var t,e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];(t=console).warn.apply(t,[te].concat(r))}('setData called on vector tile dataset "'.concat(a,'" — has no effect')):null===(o=i.layerAdapter)||void 0===o||o.setData(a,e)}}}}}]);
@@ -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.datasetsPlugin=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 i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,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-datasets-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.datasetsPlugin:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==i)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+i){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+i),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 i=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=i);var a=o.p+o.u(t),u=new Error;o.l(a,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,u,c]=r,f=0;if(a.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<a.length;f++)i=a[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i={};function a(e){return a="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},a(e)}function u(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof f?n:f,p=Object.create(u.prototype);return c(p,"_invoke",function(r,n,o){var i,u,c,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 i=t,u=0,c=e,s.n=r,a}};function d(r,n){for(u=r,c=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],d=s.p,b=i[2];r>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(u=0,s.v=n,s.n=i[1]):d<b&&(o=r<3||i[0]>n||n>b)&&(i[4]=r,i[5]=n,s.n=b,u=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,b){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,b),u=p,c=b;(t=u<2?e:c)||!l;){i||(u?u<3?(u>1&&(s.n=-1),d(u,c)):s.n=c:s.v=c);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=s.n<0)?c:r.call(n,s))!==a)break}catch(t){i=e,u=1,c=t}finally{f=1}}return{value:t,done:l}}}(r,o,i),!0),p}var a={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(c(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function b(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,c(d,"constructor",l),c(l,"constructor",p),p.displayName="GeneratorFunction",c(l,o,"GeneratorFunction"),c(d),c(d,o,"Generator"),c(d,n,function(){return this}),c(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:b}})()}function c(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}c=function(e,t,r,n){function i(t,r){c(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:(i("next",0),i("throw",1),i("return",2))},c(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(){var e,t,r=l(l({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"datasets",load:(e=u().m(function e(){var t;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(447).then(o.bind(o,802));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 i=e.apply(t,r);function a(e){f(i,n,o,a,u,"next",e)}function u(e){f(i,n,o,a,u,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})});return r}return o.d(i,{default:()=>d}),i.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.datasetsPlugin=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 i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,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-datasets-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.datasetsPlugin:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==i)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+i){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+i),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 i=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=i);var a=o.p+o.u(t),u=new Error;o.l(a,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,u,c]=r,f=0;if(a.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<a.length;f++)i=a[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i={};function a(e){return a="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},a(e)}function u(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof f?n:f,p=Object.create(u.prototype);return c(p,"_invoke",function(r,n,o){var i,u,c,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 i=t,u=0,c=e,s.n=r,a}};function d(r,n){for(u=r,c=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],d=s.p,b=i[2];r>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(u=0,s.v=n,s.n=i[1]):d<b&&(o=r<3||i[0]>n||n>b)&&(i[4]=r,i[5]=n,s.n=b,u=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,b){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,b),u=p,c=b;(t=u<2?e:c)||!l;){i||(u?u<3?(u>1&&(s.n=-1),d(u,c)):s.n=c:s.v=c);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=s.n<0)?c:r.call(n,s))!==a)break}catch(t){i=e,u=1,c=t}finally{f=1}}return{value:t,done:l}}}(r,o,i),!0),p}var a={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(c(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function b(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,c(d,"constructor",l),c(l,"constructor",p),p.displayName="GeneratorFunction",c(l,o,"GeneratorFunction"),c(d),c(d,o,"Generator"),c(d,n,function(){return this}),c(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:b}})()}function c(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}c=function(e,t,r,n){function i(t,r){c(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:(i("next",0),i("throw",1),i("return",2))},c(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(){var e,t,r=l(l({noKeyItemText:"No features displayed"},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"datasets",load:(e=u().m(function e(){var t;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(447).then(o.bind(o,495));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 i=e.apply(t,r);function a(e){f(i,n,o,a,u,"next",e)}function u(e){f(i,n,o,a,u,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})});return r}return o.d(i,{default:()=>d}),i.default})());
@@ -1,11 +1,12 @@
1
1
  // src/plugins/datasets/datasetsInit.jsx
2
2
  import { useEffect, useRef } from 'react'
3
+ import { EVENTS } from '../../../../src/config/events.js'
3
4
  import { datasetDefaults } from './defaults.js'
4
5
  import { createDatasets } from './datasets.js'
5
6
 
6
7
  export function DatasetsInit ({ pluginConfig, pluginState, appState, mapState, mapProvider, services }) {
7
8
  const { dispatch } = pluginState
8
- const { events, eventBus } = services
9
+ const { eventBus, symbolRegistry, patternRegistry } = services
9
10
 
10
11
  const isMapStyleReady = !!mapProvider.map?.getStyle()
11
12
 
@@ -34,16 +35,34 @@ export function DatasetsInit ({ pluginConfig, pluginState, appState, mapState, m
34
35
  dispatch({ type: 'SET_DATASETS', payload: { datasets: pluginConfig.datasets, datasetDefaults } })
35
36
  }
36
37
 
37
- datasetsInstanceRef.current = createDatasets({
38
- mapStyleId: mapState.mapStyle.id,
39
- pluginConfig,
40
- pluginStateRef,
41
- mapProvider,
42
- events,
43
- eventBus
44
- })
38
+ const initDatasets = async () => {
39
+ if (!pluginConfig.layerAdapter) {
40
+ throw new Error('datasets plugin: no layerAdapter provided. Import and pass maplibreLayerAdapter or a custom adapter.')
41
+ }
42
+
43
+ const { default: LayerAdapter } = await pluginConfig.layerAdapter.load()
44
+ const adapter = new LayerAdapter(mapProvider, symbolRegistry, patternRegistry)
45
+
46
+ dispatch({ type: 'SET_LAYER_ADAPTER', payload: adapter })
47
+
48
+ datasetsInstanceRef.current = createDatasets({
49
+ adapter,
50
+ pluginConfig,
51
+ pluginStateRef,
52
+ mapStyle: mapState.mapStyle,
53
+ mapProvider,
54
+ events: EVENTS,
55
+ eventBus
56
+ })
57
+ }
58
+
59
+ initDatasets()
45
60
  }, [isMapStyleReady, appState.mode])
46
61
 
62
+ useEffect(() => {
63
+ dispatch({ type: 'BUILD_KEY_GROUPS', payload: null })
64
+ }, [pluginState.datasets])
65
+
47
66
  // Cleanup only on unmount
48
67
  useEffect(() => {
49
68
  return () => {
@@ -51,6 +70,7 @@ export function DatasetsInit ({ pluginConfig, pluginState, appState, mapState, m
51
70
  datasetsInstanceRef.current.remove()
52
71
  datasetsInstanceRef.current = null
53
72
  }
73
+ dispatch({ type: 'SET_LAYER_ADAPTER', payload: null })
54
74
  }
55
75
  }, [])
56
76
 
@@ -0,0 +1,18 @@
1
+ /**
2
+ * MapLibre layer adapter descriptor for the datasets plugin.
3
+ *
4
+ * Import this and pass it as `layerAdapter` in the datasets plugin config.
5
+ * The adapter implementation is loaded lazily — it is only bundled and fetched
6
+ * when the datasets plugin initialises, keeping the initial bundle lean.
7
+ *
8
+ * @example
9
+ * import { maplibreLayerAdapter } from './plugins/beta/datasets/adapters/maplibre'
10
+ *
11
+ * datasetsPlugin({
12
+ * layerAdapter: maplibreLayerAdapter,
13
+ * datasets: [...]
14
+ * })
15
+ */
16
+ export const maplibreLayerAdapter = {
17
+ load: () => import(/* webpackChunkName: "im-datasets-ml-adapter" */ './maplibreLayerAdapter.js')
18
+ }
@@ -0,0 +1,159 @@
1
+ import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle.js'
2
+ import { hasPattern, getPatternImageId } from './patternImages.js'
3
+ import { mergeSublayer } from '../../utils/mergeSublayer.js'
4
+ import { getSourceId, getLayerIds, getSublayerLayerIds, isDynamicSource, MAX_TILE_ZOOM } from './layerIds.js'
5
+ import { hasSymbol, getSymbolDef, getSymbolAnchor, anchorToMaplibre, getSymbolImageId } from './symbolImages.js'
6
+
7
+ // ─── Source ───────────────────────────────────────────────────────────────────
8
+
9
+ export const addSource = (map, dataset, sourceId) => {
10
+ if (map.getSource(sourceId)) {
11
+ return
12
+ }
13
+ if (dataset.tiles) {
14
+ map.addSource(sourceId, {
15
+ type: 'vector',
16
+ tiles: dataset.tiles,
17
+ minzoom: dataset.minZoom || 0,
18
+ maxzoom: dataset.maxZoom || MAX_TILE_ZOOM
19
+ })
20
+ return
21
+ }
22
+ if (dataset.geojson) {
23
+ const initialData = isDynamicSource(dataset)
24
+ ? { type: 'FeatureCollection', features: [] }
25
+ : dataset.geojson
26
+ map.addSource(sourceId, { type: 'geojson', data: initialData, generateId: true })
27
+ }
28
+ }
29
+
30
+ // ─── Fill layer ───────────────────────────────────────────────────────────────
31
+
32
+ export const addFillLayer = (map, config, layerId, sourceId, sourceLayer, visibility, { mapStyleId, patternRegistry }) => {
33
+ if (!layerId || map.getLayer(layerId)) {
34
+ return
35
+ }
36
+ if (!config.fill && !hasPattern(config)) {
37
+ return
38
+ }
39
+ const patternImageId = hasPattern(config) ? getPatternImageId(config, mapStyleId, patternRegistry) : null
40
+ const paint = patternImageId
41
+ ? { 'fill-pattern': patternImageId, 'fill-opacity': config.opacity || 1 }
42
+ : { 'fill-color': getValueForStyle(config.fill, mapStyleId), 'fill-opacity': config.opacity || 1 }
43
+ map.addLayer({
44
+ id: layerId,
45
+ type: 'fill',
46
+ source: sourceId,
47
+ 'source-layer': sourceLayer,
48
+ minzoom: config.minZoom,
49
+ maxzoom: config.maxZoom,
50
+ layout: { visibility },
51
+ paint,
52
+ ...(config.filter ? { filter: config.filter } : {})
53
+ })
54
+ }
55
+
56
+ // ─── Stroke layer ─────────────────────────────────────────────────────────────
57
+
58
+ export const addStrokeLayer = (map, config, layerId, sourceId, sourceLayer, visibility, mapStyleId) => {
59
+ if (!layerId || !config.stroke || map.getLayer(layerId)) {
60
+ return
61
+ }
62
+ map.addLayer({
63
+ id: layerId,
64
+ type: 'line',
65
+ source: sourceId,
66
+ 'source-layer': sourceLayer,
67
+ minzoom: config.minZoom,
68
+ maxzoom: config.maxZoom,
69
+ layout: { visibility },
70
+ paint: {
71
+ 'line-color': getValueForStyle(config.stroke, mapStyleId),
72
+ 'line-width': config.strokeWidth || 1,
73
+ 'line-opacity': config.opacity || 1,
74
+ ...(config.strokeDashArray ? { 'line-dasharray': config.strokeDashArray } : {})
75
+ },
76
+ ...(config.filter ? { filter: config.filter } : {})
77
+ })
78
+ }
79
+
80
+ // ─── Symbol layer ─────────────────────────────────────────────────────────────
81
+
82
+ export const addSymbolLayer = (map, dataset, layerId, sourceId, sourceLayer, visibility, { mapStyle, symbolRegistry, pixelRatio }) => {
83
+ if (!layerId || map.getLayer(layerId)) { return }
84
+ const symbolDef = getSymbolDef(dataset, symbolRegistry)
85
+ if (!symbolDef) { return }
86
+ const imageId = getSymbolImageId(dataset, mapStyle, symbolRegistry, false, pixelRatio)
87
+ if (!imageId) { return }
88
+ const anchor = getSymbolAnchor(dataset, symbolDef)
89
+ map.addLayer({
90
+ id: layerId,
91
+ type: 'symbol',
92
+ source: sourceId,
93
+ 'source-layer': sourceLayer,
94
+ minzoom: dataset.minZoom,
95
+ maxzoom: dataset.maxZoom,
96
+ layout: {
97
+ visibility,
98
+ 'icon-image': imageId,
99
+ 'icon-anchor': anchorToMaplibre(anchor),
100
+ 'icon-allow-overlap': true
101
+ },
102
+ ...(dataset.filter ? { filter: dataset.filter } : {})
103
+ })
104
+ }
105
+
106
+ // ─── Dataset layers ───────────────────────────────────────────────────────────
107
+
108
+ export const addSublayerLayers = (map, dataset, sublayer, sourceId, sourceLayer, { mapStyle, symbolRegistry, patternRegistry, pixelRatio }) => {
109
+ const mapStyleId = mapStyle.id
110
+ const merged = mergeSublayer(dataset, sublayer)
111
+ const { fillLayerId, strokeLayerId, symbolLayerId } = getSublayerLayerIds(dataset.id, sublayer.id)
112
+ const parentHidden = dataset.visibility === 'hidden'
113
+ const sublayerHidden = dataset.sublayerVisibility?.[sublayer.id] === 'hidden'
114
+ const visibility = (parentHidden || sublayerHidden) ? 'none' : 'visible'
115
+ if (hasSymbol(merged) && symbolRegistry) {
116
+ addSymbolLayer(map, merged, symbolLayerId, sourceId, sourceLayer, visibility, { mapStyle, symbolRegistry, pixelRatio })
117
+ return
118
+ }
119
+ addFillLayer(map, merged, fillLayerId, sourceId, sourceLayer, visibility, { mapStyleId, patternRegistry })
120
+ addStrokeLayer(map, merged, strokeLayerId, sourceId, sourceLayer, visibility, mapStyleId)
121
+ }
122
+
123
+ /**
124
+ * Add all layers (and source if needed) for a dataset.
125
+ * Returns the sourceId so the caller can track the datasetId → sourceId mapping.
126
+ * @param {Object} map - MapLibre map instance
127
+ * @param {Object} dataset
128
+ * @param {Object} mapStyle - Current map style config (provides id, selectedColor, haloColor)
129
+ * @param {Object} [symbolRegistry]
130
+ * @param {Object} [patternRegistry]
131
+ * @param {number} [pixelRatio] - Device pixel ratio × map size scale factor
132
+ * @returns {string} sourceId
133
+ */
134
+ export const addDatasetLayers = (map, dataset, mapStyle, symbolRegistry, patternRegistry, pixelRatio) => {
135
+ const mapStyleId = mapStyle.id
136
+ const sourceId = getSourceId(dataset)
137
+ addSource(map, dataset, sourceId)
138
+
139
+ const sourceLayer = dataset.tiles?.length ? dataset.sourceLayer : undefined
140
+
141
+ if (dataset.sublayers?.length) {
142
+ dataset.sublayers.forEach(sublayer => {
143
+ addSublayerLayers(map, dataset, sublayer, sourceId, sourceLayer, { mapStyle, symbolRegistry, patternRegistry, pixelRatio })
144
+ })
145
+ return sourceId
146
+ }
147
+
148
+ const { fillLayerId, strokeLayerId, symbolLayerId } = getLayerIds(dataset)
149
+ const visibility = dataset.visibility === 'hidden' ? 'none' : 'visible'
150
+
151
+ if (hasSymbol(dataset) && symbolRegistry) {
152
+ addSymbolLayer(map, dataset, symbolLayerId, sourceId, sourceLayer, visibility, { mapStyle, symbolRegistry, pixelRatio })
153
+ return sourceId
154
+ }
155
+
156
+ addFillLayer(map, dataset, fillLayerId, sourceId, sourceLayer, visibility, { mapStyleId, patternRegistry })
157
+ addStrokeLayer(map, dataset, strokeLayerId, sourceId, sourceLayer, visibility, mapStyleId)
158
+ return sourceId
159
+ }
@@ -0,0 +1,75 @@
1
+ import { hasPattern } from '../../../../../../src/utils/patternUtils.js'
2
+
3
+ // ─── Internal helpers ─────────────────────────────────────────────────────────
4
+
5
+ const hasSymbol = (dataset) => !!dataset.symbol
6
+
7
+ export const isDynamicSource = (dataset) =>
8
+ typeof dataset.geojson === 'string' &&
9
+ !!dataset.idProperty &&
10
+ typeof dataset.transformRequest === 'function'
11
+
12
+ const HASH_BASE = 36
13
+ const MAX_TILE_ZOOM = 22
14
+
15
+ export { MAX_TILE_ZOOM }
16
+
17
+ export const hashString = (str) => {
18
+ let hash = 0
19
+ for (const ch of str) {
20
+ hash = Math.trunc(((hash << 5) - hash) + ch.codePointAt(0))
21
+ }
22
+ return Math.abs(hash).toString(HASH_BASE)
23
+ }
24
+
25
+ // ─── Source ID ────────────────────────────────────────────────────────────────
26
+
27
+ export const getSourceId = (dataset) => {
28
+ if (dataset.tiles) {
29
+ const tilesKey = Array.isArray(dataset.tiles) ? dataset.tiles.join(',') : dataset.tiles
30
+ return `tiles-${hashString(tilesKey)}`
31
+ }
32
+ if (dataset.geojson) {
33
+ if (isDynamicSource(dataset)) {
34
+ return `geojson-dynamic-${dataset.id}`
35
+ }
36
+ if (typeof dataset.geojson === 'string') {
37
+ return `geojson-${hashString(dataset.geojson)}`
38
+ }
39
+ return `geojson-${dataset.id}`
40
+ }
41
+ return `source-${dataset.id}`
42
+ }
43
+
44
+ // ─── Layer IDs ────────────────────────────────────────────────────────────────
45
+
46
+ export const getLayerIds = (dataset) => {
47
+ if (hasSymbol(dataset)) {
48
+ return { fillLayerId: null, strokeLayerId: null, symbolLayerId: dataset.id }
49
+ }
50
+ const hasFill = (!!dataset.fill && dataset.fill !== 'transparent') || hasPattern(dataset)
51
+ const hasStroke = !!dataset.stroke
52
+ const fillLayerId = hasFill ? dataset.id : null
53
+ let strokeLayerId = null
54
+ if (hasStroke) {
55
+ strokeLayerId = hasFill ? `${dataset.id}-stroke` : dataset.id
56
+ }
57
+ return { fillLayerId, strokeLayerId, symbolLayerId: null }
58
+ }
59
+
60
+ export const getSublayerLayerIds = (datasetId, sublayerId) => ({
61
+ fillLayerId: `${datasetId}-${sublayerId}`,
62
+ strokeLayerId: `${datasetId}-${sublayerId}-stroke`,
63
+ symbolLayerId: `${datasetId}-${sublayerId}-symbol`
64
+ })
65
+
66
+ export const getAllLayerIds = (dataset) => {
67
+ if (dataset.sublayers?.length) {
68
+ return dataset.sublayers.flatMap(sublayer => {
69
+ const { fillLayerId, strokeLayerId, symbolLayerId } = getSublayerLayerIds(dataset.id, sublayer.id)
70
+ return [strokeLayerId, fillLayerId, symbolLayerId]
71
+ })
72
+ }
73
+ const { fillLayerId, strokeLayerId, symbolLayerId } = getLayerIds(dataset)
74
+ return [strokeLayerId, fillLayerId, symbolLayerId].filter(Boolean)
75
+ }