@defra/interactive-map 0.0.15-alpha → 0.0.17-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 (263) hide show
  1. package/assets/css/docusaurus.css +104 -0
  2. package/assets/images/favicon.svg +1 -0
  3. package/assets/images/hero.png +0 -0
  4. package/assets/images/slot-map.svg +264 -0
  5. package/dist/css/index.css +1 -1
  6. package/dist/esm/im-core.js +1 -1
  7. package/dist/esm/im-shell.js +1 -1
  8. package/dist/umd/im-core.js +1 -1
  9. package/dist/umd/index.js +1 -1
  10. package/docs/api/slots.md +90 -6
  11. package/docs/api.md +4 -4
  12. package/docs/architecture.md +3 -1
  13. package/docs/{demo.mdx → examples.mdx} +1 -1
  14. package/docs/getting-started.md +5 -4
  15. package/docs/index.mdx +42 -0
  16. package/docs/plugins/datasets.md +561 -0
  17. package/docs/plugins/interact.md +176 -55
  18. package/docs/plugins/map-styles.md +64 -7
  19. package/docs/plugins/search.md +207 -63
  20. package/docs/plugins.md +8 -16
  21. package/docusaurus.config.cjs +34 -34
  22. package/jest.setup.js +1 -1
  23. package/package.json +6 -5
  24. package/plugins/beta/datasets/dist/css/index.css +85 -15
  25. package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -1
  26. package/plugins/beta/datasets/dist/umd/im-datasets-plugin.js +1 -1
  27. package/plugins/beta/datasets/dist/umd/index.js +1 -1
  28. package/plugins/beta/datasets/src/DatasetsInit.jsx +24 -9
  29. package/plugins/beta/datasets/src/adapters/maplibre/index.js +18 -0
  30. package/plugins/beta/datasets/src/adapters/maplibre/layerBuilders.js +113 -0
  31. package/plugins/beta/datasets/src/adapters/maplibre/layerIds.js +69 -0
  32. package/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.js +338 -0
  33. package/plugins/beta/datasets/src/adapters/maplibre/patternRegistry.js +48 -0
  34. package/plugins/beta/datasets/src/api/addDataset.js +3 -9
  35. package/plugins/beta/datasets/src/api/getOpacity.js +17 -0
  36. package/plugins/beta/datasets/src/api/getStyle.js +13 -0
  37. package/plugins/beta/datasets/src/api/removeDataset.js +3 -45
  38. package/plugins/beta/datasets/src/api/setData.js +8 -0
  39. package/plugins/beta/datasets/src/api/setDatasetVisibility.js +37 -0
  40. package/plugins/beta/datasets/src/api/setFeatureVisibility.js +22 -0
  41. package/plugins/beta/datasets/src/api/setOpacity.js +29 -0
  42. package/plugins/beta/datasets/src/api/setStyle.js +22 -0
  43. package/plugins/beta/datasets/src/datasets.js +33 -59
  44. package/plugins/beta/datasets/src/defaults.js +43 -9
  45. package/plugins/beta/datasets/src/fetch/createDynamicSource.js +39 -30
  46. package/plugins/beta/datasets/src/fetch/fetchGeoJSON.js +2 -2
  47. package/plugins/beta/datasets/src/manifest.js +27 -19
  48. package/plugins/beta/datasets/src/panels/Key.jsx +129 -49
  49. package/plugins/beta/datasets/src/panels/Key.module.scss +48 -9
  50. package/plugins/beta/datasets/src/panels/Layers.jsx +131 -29
  51. package/plugins/beta/datasets/src/panels/Layers.module.scss +50 -8
  52. package/plugins/beta/datasets/src/reducer.js +128 -9
  53. package/plugins/beta/datasets/src/styles/patterns.js +157 -0
  54. package/plugins/beta/datasets/src/utils/bbox.js +8 -6
  55. package/plugins/beta/datasets/src/utils/filters.js +5 -2
  56. package/plugins/beta/datasets/src/utils/mergeSublayer.js +78 -0
  57. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
  58. package/plugins/beta/draw-es/src/DrawInit.jsx +16 -16
  59. package/plugins/beta/draw-es/src/api/addFeature.js +3 -3
  60. package/plugins/beta/draw-es/src/api/deleteFeature.js +3 -3
  61. package/plugins/beta/draw-es/src/api/editFeature.js +3 -3
  62. package/plugins/beta/draw-es/src/api/newPolygon.js +3 -3
  63. package/plugins/beta/draw-es/src/events.js +52 -20
  64. package/plugins/beta/draw-es/src/events.test.js +301 -0
  65. package/plugins/beta/draw-es/src/graphic.js +1 -1
  66. package/plugins/beta/draw-es/src/manifest.js +4 -4
  67. package/plugins/beta/draw-es/src/reducer.js +1 -1
  68. package/plugins/beta/draw-es/src/sketchViewModel.js +1 -1
  69. package/plugins/beta/draw-ml/dist/css/index.css +1 -1
  70. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
  71. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  72. package/plugins/beta/draw-ml/src/DrawInit.jsx +49 -52
  73. package/plugins/beta/draw-ml/src/api/deleteFeature.js +1 -1
  74. package/plugins/beta/draw-ml/src/api/editFeature.js +8 -5
  75. package/plugins/beta/draw-ml/src/api/newLine.js +0 -1
  76. package/plugins/beta/draw-ml/src/api/newPolygon.js +0 -1
  77. package/plugins/beta/draw-ml/src/api/split.js +4 -4
  78. package/plugins/beta/draw-ml/src/defaults.js +1 -1
  79. package/plugins/beta/draw-ml/src/draw.scss +0 -7
  80. package/plugins/beta/draw-ml/src/events.js +8 -6
  81. package/plugins/beta/draw-ml/src/manifest.js +29 -29
  82. package/plugins/beta/draw-ml/src/mapboxDraw.js +1 -1
  83. package/plugins/beta/draw-ml/src/mapboxSnap.js +17 -18
  84. package/plugins/beta/draw-ml/src/modes/createDrawMode.js +31 -31
  85. package/plugins/beta/draw-ml/src/modes/disabledMode.js +1 -1
  86. package/plugins/beta/draw-ml/src/modes/editVertex/touchHandlers.js +11 -11
  87. package/plugins/beta/draw-ml/src/modes/editVertex/undoHandlers.js +7 -7
  88. package/plugins/beta/draw-ml/src/modes/editVertex/vertexOperations.js +8 -8
  89. package/plugins/beta/draw-ml/src/modes/editVertex/vertexQueries.js +7 -7
  90. package/plugins/beta/draw-ml/src/modes/editVertexMode.js +32 -24
  91. package/plugins/beta/draw-ml/src/reducer.js +1 -1
  92. package/plugins/beta/draw-ml/src/undoStack.js +4 -4
  93. package/plugins/beta/draw-ml/src/utils/snapHelpers.js +12 -12
  94. package/plugins/beta/draw-ml/src/utils/spatial.js +11 -11
  95. package/plugins/beta/frame/dist/esm/im-frame-plugin.js +1 -1
  96. package/plugins/beta/frame/dist/umd/im-frame-plugin.js +1 -1
  97. package/plugins/beta/frame/src/Frame.jsx +9 -9
  98. package/plugins/beta/frame/src/FrameInit.jsx +4 -4
  99. package/plugins/beta/frame/src/api/addFrame.js +1 -1
  100. package/plugins/beta/frame/src/api/editFeature.js +1 -1
  101. package/plugins/beta/frame/src/config.js +1 -1
  102. package/plugins/beta/frame/src/manifest.js +3 -3
  103. package/plugins/beta/frame/src/reducer.js +1 -1
  104. package/plugins/beta/frame/src/utils.js +1 -1
  105. package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +1 -1
  106. package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
  107. package/plugins/beta/map-styles/src/MapStyles.jsx +18 -18
  108. package/plugins/beta/map-styles/src/manifest.js +1 -1
  109. package/plugins/beta/scale-bar/dist/css/index.css +1 -1
  110. package/plugins/beta/scale-bar/dist/esm/im-scale-bar-plugin.js +1 -1
  111. package/plugins/beta/scale-bar/dist/umd/im-scale-bar-plugin.js +1 -1
  112. package/plugins/beta/scale-bar/src/ScaleBar.jsx +5 -5
  113. package/plugins/beta/scale-bar/src/index.test.js +3 -3
  114. package/plugins/beta/scale-bar/src/manifest.js +3 -3
  115. package/plugins/beta/scale-bar/src/scaleBar.scss +2 -1
  116. package/plugins/beta/use-location/src/UseLocation.jsx +1 -1
  117. package/plugins/beta/use-location/src/defaults.js +1 -1
  118. package/plugins/beta/use-location/src/events.js +3 -3
  119. package/plugins/interact/dist/css/index.css +1 -1
  120. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  121. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  122. package/plugins/interact/src/InteractInit.jsx +1 -2
  123. package/plugins/interact/src/api/enable.js +8 -5
  124. package/plugins/interact/src/api/enable.test.js +2 -2
  125. package/plugins/interact/src/api/selectFeature.js +4 -4
  126. package/plugins/interact/src/api/unselectFeature.js +5 -5
  127. package/plugins/interact/src/defaults.js +0 -1
  128. package/plugins/interact/src/events.test.js +15 -15
  129. package/plugins/interact/src/hooks/useHighlightSync.js +1 -1
  130. package/plugins/interact/src/hooks/useInteractionHandlers.js +2 -2
  131. package/plugins/interact/src/hooks/useInteractionHandlers.test.js +5 -5
  132. package/plugins/interact/src/interact.scss +0 -7
  133. package/plugins/interact/src/manifest.js +15 -19
  134. package/plugins/interact/src/manifest.test.js +6 -5
  135. package/plugins/interact/src/reducer.js +3 -3
  136. package/plugins/interact/src/reducer.test.js +0 -1
  137. package/plugins/interact/src/utils/spatial.js +10 -10
  138. package/plugins/interact/src/utils/spatial.test.js +14 -14
  139. package/plugins/search/dist/css/index.css +1 -1
  140. package/plugins/search/dist/esm/im-search-plugin.js +1 -1
  141. package/plugins/search/dist/esm/index.js +1 -1
  142. package/plugins/search/dist/umd/im-search-plugin.js +1 -1
  143. package/plugins/search/dist/umd/index.js +1 -1
  144. package/plugins/search/src/Search.jsx +7 -6
  145. package/plugins/search/src/Search.test.jsx +23 -23
  146. package/plugins/search/src/components/CloseButton/CloseButton.jsx +15 -15
  147. package/plugins/search/src/components/CloseButton/CloseButton.test.jsx +2 -2
  148. package/plugins/search/src/components/Form/Form.jsx +14 -14
  149. package/plugins/search/src/components/Form/Form.module.scss +2 -1
  150. package/plugins/search/src/components/Form/Form.test.jsx +11 -11
  151. package/plugins/search/src/components/OpenButton/OpenButton.jsx +16 -15
  152. package/plugins/search/src/components/OpenButton/OpenButton.test.jsx +6 -2
  153. package/plugins/search/src/components/SubmitButton/SubmitButton.jsx +15 -15
  154. package/plugins/search/src/components/Suggestions/Suggestions.jsx +6 -6
  155. package/plugins/search/src/components/Suggestions/Suggestions.test.jsx +4 -4
  156. package/plugins/search/src/datasets.js +12 -13
  157. package/plugins/search/src/datasets.test.js +1 -1
  158. package/plugins/search/src/defaults.js +1 -1
  159. package/plugins/search/src/events/fetchSuggestions.js +3 -3
  160. package/plugins/search/src/events/fetchSuggestions.test.js +1 -1
  161. package/plugins/search/src/events/formHandlers.js +3 -3
  162. package/plugins/search/src/events/formHandlers.test.js +1 -1
  163. package/plugins/search/src/events/index.js +2 -2
  164. package/plugins/search/src/events/index.test.js +2 -2
  165. package/plugins/search/src/events/inputHandlers.js +4 -4
  166. package/plugins/search/src/events/inputHandlers.test.js +1 -1
  167. package/plugins/search/src/events/suggestionHandlers.js +2 -2
  168. package/plugins/search/src/events/suggestionHandlers.test.js +1 -1
  169. package/plugins/search/src/index.js +2 -1
  170. package/plugins/search/src/index.test.js +3 -3
  171. package/plugins/search/src/manifest.js +6 -4
  172. package/plugins/search/src/reducer.js +1 -2
  173. package/plugins/search/src/reducer.test.js +2 -2
  174. package/plugins/search/src/search.scss +10 -3
  175. package/plugins/search/src/utils/parseOsNamesResults.js +1 -2
  176. package/plugins/search/src/utils/parseOsNamesResults.test.js +2 -2
  177. package/plugins/search/src/utils/updateMap.js +1 -1
  178. package/plugins/search/src/utils/updateMap.test.js +5 -5
  179. package/providers/beta/esri/dist/esm/im-esri-provider.js +1 -1
  180. package/providers/beta/esri/src/esriProvider.js +5 -5
  181. package/providers/beta/esri/src/utils/coords.js +1 -1
  182. package/providers/beta/esri/src/utils/esriFixes.js +1 -1
  183. package/providers/beta/esri/src/utils/query.js +4 -4
  184. package/providers/beta/esri/src/utils/spatial.js +1 -2
  185. package/providers/beta/esri/src/utils/spatial.test.js +4 -1
  186. package/providers/beta/open-names/src/utils/mapToLocationModel.test.js +1 -1
  187. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
  188. package/providers/maplibre/dist/umd/im-maplibre-framework.js +1 -1
  189. package/providers/maplibre/dist/umd/im-maplibre-framework.js.LICENSE.txt +1 -1
  190. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  191. package/providers/maplibre/src/appEvents.test.js +1 -1
  192. package/providers/maplibre/src/index.js +1 -1
  193. package/providers/maplibre/src/index.test.js +3 -5
  194. package/providers/maplibre/src/mapEvents.test.js +15 -5
  195. package/providers/maplibre/src/maplibreProvider.test.js +6 -2
  196. package/providers/maplibre/src/utils/calculateLinearTextSize.js +4 -4
  197. package/providers/maplibre/src/utils/calculateLinearTextSize.test.js +3 -3
  198. package/providers/maplibre/src/utils/detectWebgl.test.js +1 -1
  199. package/providers/maplibre/src/utils/highlightFeatures.js +3 -2
  200. package/providers/maplibre/src/utils/highlightFeatures.test.js +13 -6
  201. package/providers/maplibre/src/utils/labels.js +19 -20
  202. package/providers/maplibre/src/utils/labels.test.js +15 -13
  203. package/providers/maplibre/src/utils/maplibreFixes.test.js +1 -1
  204. package/providers/maplibre/src/utils/queryFeatures.js +6 -6
  205. package/providers/maplibre/src/utils/queryFeatures.test.js +13 -13
  206. package/providers/maplibre/src/utils/spatial.js +0 -1
  207. package/providers/maplibre/src/utils/spatial.test.js +26 -27
  208. package/src/App/components/Actions/Actions.jsx +2 -2
  209. package/src/App/components/Actions/Actions.module.scss +0 -7
  210. package/src/App/components/Actions/Actions.test.jsx +1 -1
  211. package/src/App/components/Icon/Icon.jsx +3 -2
  212. package/src/App/components/Icon/Icon.module.scss +4 -0
  213. package/src/App/components/Icon/Icon.test.jsx +43 -4
  214. package/src/App/components/MapButton/MapButton.jsx +42 -17
  215. package/src/App/components/MapButton/MapButton.module.scss +4 -13
  216. package/src/App/components/MapButton/MapButton.test.jsx +27 -3
  217. package/src/App/components/PopupMenu/PopupMenu.jsx +51 -274
  218. package/src/App/components/PopupMenu/PopupMenu.module.scss +14 -7
  219. package/src/App/components/PopupMenu/PopupMenu.test.jsx +70 -1
  220. package/src/App/components/PopupMenu/usePopupMenu.js +258 -0
  221. package/src/App/hooks/useButtonStateEvaluator.js +12 -2
  222. package/src/App/hooks/useButtonStateEvaluator.test.js +38 -4
  223. package/src/App/hooks/useInterfaceAPI.js +6 -0
  224. package/src/App/hooks/useLayoutMeasurements.js +84 -18
  225. package/src/App/hooks/useLayoutMeasurements.test.js +124 -17
  226. package/src/App/layout/Layout.jsx +12 -7
  227. package/src/App/layout/Layout.test.jsx +2 -2
  228. package/src/App/layout/layout.module.scss +67 -29
  229. package/src/App/registry/pluginRegistry.js +17 -0
  230. package/src/App/registry/pluginRegistry.test.js +33 -0
  231. package/src/App/renderer/HtmlElementHost.jsx +2 -1
  232. package/src/App/renderer/HtmlElementHost.test.jsx +7 -7
  233. package/src/App/renderer/mapButtons.js +3 -2
  234. package/src/App/renderer/mapPanels.test.js +2 -2
  235. package/src/App/renderer/slotHelpers.js +2 -2
  236. package/src/App/renderer/slotHelpers.test.js +5 -5
  237. package/src/App/renderer/slots.js +9 -5
  238. package/src/App/store/AppProvider.jsx +3 -1
  239. package/src/App/store/AppProvider.test.jsx +1 -1
  240. package/src/App/store/ServiceProvider.jsx +3 -1
  241. package/src/App/store/appActionsMap.js +16 -0
  242. package/src/App/store/appActionsMap.test.js +27 -0
  243. package/src/App/store/appDispatchMiddleware.js +33 -1
  244. package/src/App/store/appDispatchMiddleware.test.js +250 -222
  245. package/src/App/store/appReducer.js +2 -0
  246. package/src/InteractiveMap/InteractiveMap.js +4 -0
  247. package/src/config/appConfig.js +7 -4
  248. package/src/config/events.js +28 -0
  249. package/src/scss/main.scss +1 -0
  250. package/src/scss/settings/_dimensions.scss +0 -1
  251. package/src/services/logger.js +6 -0
  252. package/src/services/logger.test.js +32 -0
  253. package/src/utils/getSafeZoneInset.js +9 -7
  254. package/src/utils/getSafeZoneInset.test.js +10 -10
  255. package/webpack.dev.mjs +23 -19
  256. package/docs/govuk-prototype.md +0 -23
  257. package/docs/index.md +0 -19
  258. package/plugins/beta/datasets/src/api/hideDataset.js +0 -14
  259. package/plugins/beta/datasets/src/api/hideFeatures.js +0 -41
  260. package/plugins/beta/datasets/src/api/showDataset.js +0 -14
  261. package/plugins/beta/datasets/src/api/showFeatures.js +0 -44
  262. package/plugins/beta/datasets/src/handleSetMapStyle.js +0 -54
  263. package/plugins/beta/datasets/src/mapLayers.js +0 -165
@@ -1,25 +1,83 @@
1
- .im-c-datasets-key__item-label {
1
+ .im-c-datasets-key--has-groups > * {
2
+ border-top: 1px solid var(--button-hover-color);
3
+ }
4
+
5
+ .im-c-datasets-key:not(.im-c-datasets-key--has-groups) > *:first-child {
6
+ border-top: 1px solid var(--button-hover-color);
7
+ }
8
+
9
+ .im-c-datasets-key__group:not(:last-child) {
10
+ padding-bottom: 5px;
11
+ }
12
+
13
+ .im-c-datasets-key__group-heading {
14
+ padding-top: 15px;
15
+ padding-bottom: 10px;
16
+ margin: 0;
17
+ font-size: 1rem;
18
+ font-weight: bold;
19
+ color: var(--foreground-color);
20
+ }
21
+
22
+ .im-c-datasets-key__item {
2
23
  display: flex;
3
24
  align-items: start;
4
- padding-top: 12px;
5
- padding-bottom: 12px;
6
- align-self: auto;
25
+ padding-top: 10px;
26
+ padding-bottom: 10px;
7
27
  font-size: 1rem;
8
- line-height: 1.2;
28
+ }
29
+ .im-c-datasets-key--has-groups > .im-c-datasets-key__item {
30
+ padding-top: 15px;
31
+ padding-bottom: 15px;
32
+ }
33
+ .im-c-datasets-key__group .im-c-datasets-key__item:first-child {
34
+ padding-top: 0;
35
+ }
36
+
37
+ .im-c-datasets-key:not(.im-c-datasets-key--has-groups) > .im-c-datasets-key__item:first-child {
38
+ padding-top: 15px;
39
+ }
40
+
41
+ .im-c-datasets-key > .im-c-datasets-key__item:last-child,
42
+ .im-c-datasets-key__group:last-child .im-c-datasets-key__item:last-child {
43
+ padding-bottom: 5px;
9
44
  }
10
45
 
11
- .im-c-datasets-key__item-label svg {
46
+ .im-c-datasets-key__item svg {
12
47
  position: relative;
13
48
  flex-shrink: 0;
14
- margin: 0px 13px 0 2px;
49
+ margin: 0 13px 0 2px;
50
+ }
51
+
52
+ .im-c-datasets-layers--has-groups > * {
53
+ border-top: 1px solid var(--button-hover-color);
54
+ }
55
+
56
+ .im-c-datasets-layers:not(.im-c-datasets-layers--has-groups) > *:first-child {
57
+ border-top: 1px solid var(--button-hover-color);
58
+ padding-top: 10px;
59
+ }
60
+
61
+ .im-c-datasets-layers > *:last-child {
62
+ margin-bottom: -5px;
63
+ }
64
+
65
+ .im-c-datasets-layers-group:not(:last-child) {
66
+ padding-bottom: 5px;
15
67
  }
16
68
 
17
69
  .im-c-datasets-layers__item {
18
- border: 1px solid var(--button-hover-color);
19
- padding-left: 10px;
70
+ padding-bottom: 5px;
71
+ }
72
+ .im-c-datasets-layers--has-groups > .im-c-datasets-layers__item {
73
+ padding-top: 5px;
20
74
  }
21
- .im-c-datasets-layers__item:not(last-child) {
22
- margin-bottom: 5px;
75
+ .im-c-datasets-layers-group .im-c-datasets-layers__item {
76
+ padding-top: 0;
77
+ padding-bottom: 0;
78
+ }
79
+ .im-c-datasets-layers-group .im-c-datasets-layers__item:not(:last-child) {
80
+ margin-bottom: 0;
23
81
  }
24
82
 
25
83
  .im-c-datasets-layers__item-label {
@@ -34,10 +92,6 @@
34
92
  color: var(--foreground-color);
35
93
  }
36
94
 
37
- .im-c-datasets-layers__item--checked {
38
- border-color: var(--app-border-color);
39
- }
40
-
41
95
  .im-c-datasets-layers__item .govuk-checkboxes__item {
42
96
  flex-wrap: nowrap;
43
97
  }
@@ -45,6 +99,22 @@
45
99
  margin-left: -3px;
46
100
  }
47
101
 
102
+ .im-c-datasets-layers-group__fieldset {
103
+ border: none;
104
+ padding: 0;
105
+ margin: 0;
106
+ min-width: 0;
107
+ }
108
+
109
+ .im-c-datasets-layers-group__legend {
110
+ padding-top: 15px;
111
+ padding-bottom: 10px;
112
+ padding-inline: 0;
113
+ font-size: 1rem;
114
+ font-weight: bold;
115
+ color: var(--foreground-color);
116
+ }
117
+
48
118
  .im-c-datasets {
49
119
  display: block;
50
120
  }
@@ -1 +1 @@
1
- import{useRef as e,useEffect as t}from"preact/compat";import{jsx as r,jsxs as a}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/objectWithoutProperties";import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/asyncToGenerator";function n(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var u={SET_DATASETS:(e,t)=>{var{datasets:r,datasetDefaults:a}=t;return d(d({},e),{},{datasets:r.map(e=>d(d({},a),e))})},ADD_DATASET:(e,t)=>{var{dataset:r,datasetDefaults:a}=t;return d(d({},e),{},{datasets:[...e.datasets||[],d(d({},a),r)]})},REMOVE_DATASET:(e,t)=>{var r,{id:a}=t;return d(d({},e),{},{datasets:(null===(r=e.datasets)||void 0===r?void 0:r.filter(e=>e.id!==a))||[]})},SET_DATASET_VISIBILITY:(e,t)=>{var r,{id:a,visibility:i}=t;return d(d({},e),{},{datasets:null===(r=e.datasets)||void 0===r?void 0:r.map(e=>e.id===a?d(d({},e),{},{visibility:i}):e)})},HIDE_FEATURES:(e,t)=>{var{layerId:r,idProperty:a,featureIds:i}=t,o=e.hiddenFeatures[r],s=(null==o?void 0:o.ids)||[],n=[...new Set([...s,...i])];return d(d({},e),{},{hiddenFeatures:d(d({},e.hiddenFeatures),{},{[r]:{idProperty:a,ids:n}})})},SHOW_FEATURES:(e,t)=>{var{layerId:r,featureIds:a}=t,o=e.hiddenFeatures[r];if(!o)return e;var s=o.ids.filter(e=>!a.includes(e));if(0===s.length){var l=e.hiddenFeatures,{[r]:u}=l,c=i(l,[r].map(n));return d(d({},e),{},{hiddenFeatures:c})}return d(d({},e),{},{hiddenFeatures:d(d({},e.hiddenFeatures),{},{[r]:d(d({},o),{},{ids:s})})})}},c={stroke:"#d4351c",strokeWidth:2,fill:"transparent",symbolDescription:"red outline",minZoom:6,maxZoom:24,showInKey:!1,showInLayers:!1,visibility:"visible"},p=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null};function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var f=e=>{var t=0;for(var r of e)t=(t<<5)-t+r.codePointAt(0),t&=t;return Math.abs(t).toString(36)},h=e=>{if(e.tiles){var t=Array.isArray(e.tiles)?e.tiles.join(","):e.tiles;return"tiles-".concat(f(t))}return e.geojson?m(e)?"geojson-dynamic-".concat(e.id):"string"==typeof e.geojson?"geojson-".concat(f(e.geojson)):"geojson-".concat(e.id):"source-".concat(e.id)},m=e=>"string"==typeof e.geojson&&!!e.idProperty&&"function"==typeof e.transformRequest,g=(e,t,r)=>{var a=h(r);if(!e.getSource(a))if(r.tiles)e.addSource(a,{type:"vector",tiles:r.tiles,minzoom:r.minZoom||0,maxzoom:r.maxZoom||22});else if(r.geojson){var i=m(r)?{type:"FeatureCollection",features:[]}:r.geojson;e.addSource(a,{type:"geojson",data:i})}var o=!!r.fill,s=!!r.stroke,n=o?r.id:null,l=s?o?"".concat(r.id,"-stroke"):r.id:null,d="hidden"===r.visibility?"none":"visible";if(o&&!e.getLayer(n)){var u,c=p(r.fill,t);e.addLayer(v({id:n,type:"fill",source:a,"source-layer":null!=r&&null!==(u=r.tiles)&&void 0!==u&&u.length?r.sourceLayer:void 0,layout:{visibility:d},paint:{"fill-color":c,"fill-opacity":r.opacity||1}},r.filter?{filter:r.filter}:{}))}if(s&&!e.getLayer(l)){var y,f=p(r.stroke,t);e.addLayer(v({id:l,type:"line",source:a,"source-layer":null!=r&&null!==(y=r.tiles)&&void 0!==y&&y.length?r.sourceLayer:void 0,layout:{visibility:d},paint:v({"line-color":f,"line-width":r.strokeWidth||1,"line-opacity":r.opacity||1},r.strokeDashArray?{"line-dasharray":r.strokeDashArray}:{})},r.filter?{filter:r.filter}:{}))}},b=(e,t,r,a,i)=>{if(e.getLayer(t)){var o=((e,t,r)=>{if(!r||0===r.length)return e;var a=["!",["in",["to-string",["get",t]],["literal",r.map(e=>String(e))]]];return e?["all",e,a]:a})(r,a,i);e.setFilter(t,o)}},S=function(){var e=s(function*(e,t,r){var a=r(e,t),i="string"==typeof a?{url:a}:a,{url:o,headers:s={}}=i,n=yield fetch(o,{headers:s});if(!n.ok)throw new Error("Failed to fetch GeoJSON: ".concat(n.status," ").concat(n.statusText));var l=yield n.json();if("FeatureCollection"===l.type)return l;if("Feature"===l.type)return{type:"FeatureCollection",features:[l]};if(Array.isArray(l))return{type:"FeatureCollection",features:l};throw new Error("Invalid GeoJSON response")});return function(t,r,a){return e.apply(this,arguments)}}(),k=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),w=e=>{var t=1/0,r=1/0,a=-1/0,i=-1/0,o=(e,s)=>{var n;0===s?(n=e,t=Math.min(t,n[0]),r=Math.min(r,n[1]),a=Math.max(a,n[0]),i=Math.max(i,n[1])):e.forEach(e=>o(e,s-1))};switch(e.type){case"Point":o(e.coordinates,0);break;case"LineString":case"MultiPoint":o(e.coordinates,1);break;case"Polygon":case"MultiLineString":o(e.coordinates,2);break;case"MultiPolygon":o(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var o=w(e);t=Math.min(t,o[0]),r=Math.min(r,o[1]),a=Math.max(a,o[2]),i=Math.max(i,o[3])})}return[t,r,a,i]},O=e=>{var t,r,a,i,{dataset:o,map:n,sourceId:l,onUpdate:d}=e,{geojson:u,idProperty:c,transformRequest:p,maxFeatures:y,minZoom:v=0}=o,f=new Map,h=null,m=!1,g=()=>({type:"FeatureCollection",features:Array.from(f.values()).map(e=>e.feature)}),b=function(){var e=s(function*(){var e=n.getZoom();if(!(e<v)){var t,r,a=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(n);if(!(h&&(t=h,r=a,t&&r&&r[0]>=t[0]&&r[1]>=t[1]&&r[2]<=t[2]&&r[3]<=t[3])))if(!m){m=!0;try{var i={bbox:a,zoom:e,dataset:o},s=yield S(u,i,p),b=Date.now();s.features.forEach(e=>{var t=(e=>{var t,r;return c&&null!==(t=null===(r=e.properties)||void 0===r?void 0:r[c])&&void 0!==t?t:e.id})(e);null!=t?f.set(t,{feature:e,bbox:w(e.geometry),addedAt:f.has(t)?f.get(t).addedAt:b}):console.warn("Feature missing ID, skipping:",e)}),P=a,h=(O=h)?[Math.min(O[0],P[0]),Math.min(O[1],P[1]),Math.max(O[2],P[2]),Math.max(O[3],P[3])]:[...P],(e=>{if(y&&!(f.size<=1.2*y)){var t=y,r=[],a=[];for(var[i,o]of f)k(o.bbox,e)?r.push(i):a.push({id:i,addedAt:o.addedAt});a.sort((e,t)=>e.addedAt-t.addedAt);for(var s=f.size-t,n=0;n<s&&n<a.length;n++)f.delete(a[n].id);if(f.size>t)for(var l=f.size-t,d=r.map(e=>({id:e,addedAt:f.get(e).addedAt})).sort((e,t)=>e.addedAt-t.addedAt),u=0;u<l&&u<d.length;u++)f.delete(d[u].id)}})(a),d(l,g())}catch(e){console.error("Failed to fetch dynamic GeoJSON for ".concat(o.id,":"),e)}finally{m=!1}var O,P}}});return function(){return e.apply(this,arguments)}}(),O=(t=b,r=200,(i=function(){for(var e=arguments.length,i=new Array(e),o=0;o<e;o++)i[o]=arguments[o];clearTimeout(a),a=setTimeout(()=>t(...i),r)}).cancel=()=>{clearTimeout(a),a=null},i),P=()=>{O()};return n.on("moveend",P),b(),{destroy(){n.off("moveend",P),O.cancel()},clear(){f.clear(),h=null,d(l,{type:"FeatureCollection",features:[]})},refresh(){f.clear(),h=null,b()},getFeatureCount:()=>f.size,reapply(){f.size>0&&d(l,g())}}},P=e=>{var{pluginConfig:t,pluginStateRef:r,mapStyleId:a,mapProvider:i,events:o,eventBus:s}=e,{map:n}=i,{datasets:l}=t,d=new Map,u=()=>r.current.datasets||l;l.forEach(e=>{if(g(n,a,e),m(e)){var t=h(e),r=O({dataset:e,map:n,sourceId:t,onUpdate:(e,t)=>((e,t,r)=>{var a=e.getSource(t);a&&"function"==typeof a.setData&&a.setData(r)})(n,e,t)});d.set(e.id,r)}}),n.once("idle",()=>{s.emit("datasets:ready")});var c=(e=>{var{map:t,events:r,eventBus:a,getDatasets:i,getHiddenFeatures:o,getDynamicSources:s}=e,n=e=>{t.once("idle",()=>{var r=e.id,a=i(),n=o(),l=s?s():new Map;a.forEach(e=>{g(t,r,e)}),l.forEach(e=>{e.reapply()}),Object.entries(n).forEach(e=>{var[r,{idProperty:i,ids:o}]=e,s=a.find(e=>e.id===r);if(s){var n=s.filter||null,l=!!s.fill,d=!!s.stroke,u=l?r:null,c=d?l?"".concat(r,"-stroke"):r:null;u&&b(t,u,n,i,o),c&&b(t,c,n,i,o)}})})};return a.on(r.MAP_SET_STYLE,n),n})({map:n,events:o,eventBus:s,getDatasets:u,getHiddenFeatures:()=>r.current.hiddenFeatures||{},getDynamicSources:()=>d});return{remove(){s.off(o.MAP_SET_STYLE,c),d.forEach(e=>e.destroy()),d.clear();var e=u(),t=new Set;e.forEach(e=>{var r=h(e),a=((e,t)=>{var r=e.getStyle();return null!=r&&r.layers?r.layers.filter(e=>e.source===t).map(e=>e.id):[]})(n,r);a.forEach(e=>n.removeLayer(e)),!t.has(r)&&n.getSource(r)&&(n.removeSource(r),t.add(r))})},refreshDataset(e){var t=d.get(e);t&&t.refresh()},clearDatasetCache(e){var t=d.get(e);t&&t.clear()},getFeatureCount(e){var t=d.get(e);return t?t.getFeatureCount():null}}};var j=(e,t)=>{var{mapProvider:r,pluginState:a}=e,i=r.map;i.getLayer(t)&&i.setLayoutProperty(t,"visibility","visible"),i.getLayer("".concat(t,"-stroke"))&&i.setLayoutProperty("".concat(t,"-stroke"),"visibility","visible"),a.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:t,visibility:"visible"}})},E=(e,t)=>{var{mapProvider:r,pluginState:a}=e,i=r.map;i.getLayer(t)&&i.setLayoutProperty(t,"visibility","none"),i.getLayer("".concat(t,"-stroke"))&&i.setLayoutProperty("".concat(t,"-stroke"),"visibility","none"),a.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:t,visibility:"hidden"}})};function D(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function L(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?D(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):D(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var I={InitComponent:function(r){var a,{pluginConfig:i,pluginState:o,appState:s,mapState:n,mapProvider:l,services:d}=r,{dispatch:u}=o,{events:p,eventBus:y}=d,v=!(null===(a=l.map)||void 0===a||!a.getStyle()),f=e(o);f.current=o;var h=e(null);return t(()=>{var e,t,r,a,d=null===(e=null===(t=i.includeModes)||void 0===t?void 0:t.includes(s.mode))||void 0===e||e,m=null!==(r=null===(a=i.excludeModes)||void 0===a?void 0:a.includes(s.mode))&&void 0!==r&&r;v&&d&&!m&&(h.current||(o.datasets||u({type:"SET_DATASETS",payload:{datasets:i.datasets,datasetDefaults:c}}),h.current=P({mapStyleId:n.mapStyle.id,pluginConfig:i,pluginStateRef:f,mapProvider:l,events:p,eventBus:y})))},[v,s.mode]),t(()=>()=>{h.current&&(h.current.remove(),h.current=null)},[]),null},reducer:{initialState:{datasets:null,hiddenFeatures:{}},actions:u},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:e=>{var{pluginState:t,mapProvider:i}=e,o=e=>{var{value:r,checked:a}=e.target;a?j({mapProvider:i,pluginState:t},r):E({mapProvider:i,pluginState:t},r)};return r("div",{className:"im-c-datasets-layers",children:r("div",{className:"govuk-form-group",children:a("fieldset",{className:"govuk-fieldset",children:[r("legend",{className:"govuk-visually-hidden",children:"Layers"}),r("div",{className:"govuk-checkboxes govuk-checkboxes--small","data-module":"govuk-checkboxes",children:(t.datasets||[]).filter(e=>e.showInLayers).map(e=>r("div",{className:"im-c-datasets-layers__item".concat("hidden"!==e.visibility?" im-c-datasets-layers__item--checked":""),children:a("div",{className:"govuk-checkboxes__item",children:[r("input",{className:"govuk-checkboxes__input",id:e.id,name:"layers",type:"checkbox",value:e.id,checked:"hidden"!==e.visibility,onChange:o}),r("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:e.id,children:e.label})]})},e.id))})]})})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"bottom",modal:!0},tablet:{slot:"left-top",width:"300px"},desktop:{slot:"left-top",width:"320px"},render:e=>{var{mapState:t,pluginState:i}=e,{mapStyle:o}=t,s=e=>r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",children:"line"===e.keySymbolShape?r("line",{x1:e.strokeWidth/2,y1:"10",x2:20-e.strokeWidth/2,y2:"10",stroke:p(e.stroke,o.id),strokeWidth:e.strokeWidth,strokeLinecap:"round"}):r("rect",{x:e.strokeWidth/2,y:e.strokeWidth/2,width:20-e.strokeWidth,height:20-e.strokeWidth,rx:e.strokeWidth,ry:e.strokeWidth,fill:p(e.fill,o.id),stroke:p(e.stroke,o.id),strokeWidth:e.strokeWidth,strokeLinejoin:"round"})});return r("div",{className:"im-c-datasets-key",children:(i.datasets||[]).filter(e=>e.showInKey&&"hidden"!==e.visibility).map(e=>r("div",{className:"im-c-datasets-key__item",children:a("div",{className:"im-c-datasets-key__item-label",children:[s(e),e.label,e.symbolDescription&&a("span",{className:"govuk-visually-hidden",children:["(",p(e.symbolDescription,o.id),")"]})]})},e.id))})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.find(e=>e.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:e=>{var{pluginConfig:t}=e;return!t.datasets.find(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="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:j,hideDataset:E,addDataset:(e,t)=>{var{mapProvider:r,mapState:a,pluginState:i}=e,o=r.map;g(o,a.mapStyle.id,L(L({},c),t)),i.dispatch({type:"ADD_DATASET",payload:{dataset:t,datasetDefaults:c}})},removeDataset:(e,t)=>{var r,a,{mapProvider:i,pluginState:o}=e,s=i.map,n=null===(r=o.datasets)||void 0===r?void 0:r.find(e=>e.id===t);if(n){var{fillLayerId:l,strokeLayerId:d}=(e=>{var t=!!e.fill,r=!!e.stroke,a=t?e.id:null,i=null;return r&&(i=t?"".concat(e.id,"-stroke"):e.id),{fillLayerId:a,strokeLayerId:i}})(n),u=h(n);[d,l].forEach(e=>{e&&s.getLayer(e)&&s.removeLayer(e)}),!(null===(a=o.datasets)||void 0===a?void 0:a.some(e=>e.id!==t&&h(e)===u))&&s.getSource(u)&&s.removeSource(u),o.dispatch({type:"REMOVE_DATASET",payload:{id:t}})}},showFeatures:(e,t)=>{var r,{mapProvider:a,pluginState:i}=e,{featureIds:o,idProperty:s,datasetId:n}=t,l=a.map,d=i.hiddenFeatures[n];if(d){var u=null===(r=i.datasets)||void 0===r?void 0:r.find(e=>e.id===n);if(u){var c=u.filter||null,p=!!u.fill,y=!!u.stroke,v=p?n:null,f=null;y&&(f=p?"".concat(n,"-stroke"):n);var h=d.ids.filter(e=>!o.includes(e));i.dispatch({type:"SHOW_FEATURES",payload:{layerId:n,featureIds:o}}),v&&b(l,v,c,s,h),f&&b(l,f,c,s,h)}}},hideFeatures:(e,t)=>{var r,{mapProvider:a,pluginState:i}=e,{featureIds:o,idProperty:s,datasetId:n}=t,l=a.map,d=null===(r=i.datasets)||void 0===r?void 0:r.find(e=>e.id===n);if(d){var u=d.filter||null,c=!!d.fill,p=!!d.stroke,y=c?n:null,v=null;p&&(v=c?"".concat(n,"-stroke"):n);var f=i.hiddenFeatures[n],h=f?[...new Set([...f.ids,...o])]:o;i.dispatch({type:"HIDE_FEATURES",payload:{layerId:n,idProperty:s,featureIds:o}}),y&&b(l,y,u,s,h),v&&b(l,v,u,s,h)}}}};export{I as manifest};
1
+ import{useRef as e,useEffect as t}from"preact/compat";import{jsx as a,jsxs as r}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import l from"@babel/runtime/helpers/asyncToGenerator";function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var n={minZoom:6,maxZoom:24,showInKey:!1,toggleVisibility:!1,visibility:"visible",style:{stroke:"#d4351c",strokeWidth:2,fill:"transparent",symbolDescription:"red outline"}},d=["stroke","strokeWidth","strokeDashArray","fill","fillPattern","fillPatternSvgContent","fillPatternForegroundColor","fillPatternBackgroundColor","opacity","symbolDescription","keySymbolShape"],u=["stroke","fill","fillPattern","fillPatternSvgContent"],c=e=>u.some(t=>t in e),p=(e,t)=>{var a=e.style||{},r=s(s({},t.style),a);!("symbolDescription"in a)&&c(a)&&delete r.symbolDescription;var i=s({},e);delete i.style,d.forEach(e=>delete i[e]);var l=s({},t);return delete l.style,s(s(s({},l),i),r)};function y(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function v(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?y(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):y(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var h=e=>{var t;if(null===(t=e.sublayers)||void 0===t||!t.length)return e;var a={};return e.sublayers.forEach(e=>{a[e.id]="visible"}),v(v({},e),{},{sublayerVisibility:a})},f={SET_DATASETS:(e,t)=>{var{datasets:a,datasetDefaults:r}=t;return v(v({},e),{},{datasets:a.map(e=>h(p(e,r)))})},ADD_DATASET:(e,t)=>{var{dataset:a,datasetDefaults:r}=t;return v(v({},e),{},{datasets:[...e.datasets||[],h(p(a,r))]})},REMOVE_DATASET:(e,t)=>{var a,{id:r}=t;return v(v({},e),{},{datasets:(null===(a=e.datasets)||void 0===a?void 0:a.filter(e=>e.id!==r))||[]})},SET_DATASET_VISIBILITY:(e,t)=>{var a,{id:r,visibility:i}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>e.id===r?v(v({},e),{},{visibility:i}):e)})},SET_GLOBAL_VISIBILITY:(e,t)=>{var a,{visibility:r}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>v(v({},e),{},{visibility:r}))})},SET_SUBLAYER_VISIBILITY:(e,t)=>{var a,{datasetId:r,sublayerId:i,visibility:l}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>e.id!==r?e:v(v({},e),{},{sublayerVisibility:v(v({},e.sublayerVisibility),{},{[i]:l})}))})},SET_DATASET_STYLE:(e,t)=>{var a,{datasetId:r,styleChanges:i}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>e.id===r?v(v({},e),i):e)})},SET_SUBLAYER_STYLE:(e,t)=>{var a,{datasetId:r,sublayerId:i,styleChanges:l}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>{var t;return e.id!==r?e:v(v({},e),{},{sublayers:null===(t=e.sublayers)||void 0===t?void 0:t.map(e=>e.id===i?v(v({},e),{},{style:v(v({},e.style),l)}):e)})})})},SET_OPACITY:(e,t)=>{var a,{datasetId:r,opacity:i}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>e.id===r?v(v({},e),{},{opacity:i}):e)})},SET_GLOBAL_OPACITY:(e,t)=>{var a,{opacity:r}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>v(v({},e),{},{opacity:r}))})},SET_SUBLAYER_OPACITY:(e,t)=>{var a,{datasetId:r,sublayerId:i,opacity:l}=t;return v(v({},e),{},{datasets:null===(a=e.datasets)||void 0===a?void 0:a.map(e=>{var t;return e.id!==r?e:v(v({},e),{},{sublayers:null===(t=e.sublayers)||void 0===t?void 0:t.map(e=>e.id===i?v(v({},e),{},{style:v(v({},e.style),{},{opacity:l})}):e)})})})},HIDE_FEATURES:(e,t)=>{var{layerId:a,idProperty:r,featureIds:i}=t,l=e.hiddenFeatures[a],o=(null==l?void 0:l.ids)||[],s=[...new Set([...o,...i])];return v(v({},e),{},{hiddenFeatures:v(v({},e.hiddenFeatures),{},{[a]:{idProperty:r,ids:s}})})},SHOW_FEATURES:(e,t)=>{var{layerId:a,featureIds:r}=t,i=e.hiddenFeatures[a];if(!i)return e;var l=i.ids.filter(e=>!r.includes(e));if(0===l.length){var o=v({},e.hiddenFeatures);return delete o[a],v(v({},e),{},{hiddenFeatures:o})}return v(v({},e),{},{hiddenFeatures:v(v({},e.hiddenFeatures),{},{[a]:v(v({},i),{},{ids:l})})})},SET_LAYER_ADAPTER:(e,t)=>v(v({},e),{},{layerAdapter:t})},b=function(){var e=l(function*(e,t,a,r){var i=a(e,t),l="string"==typeof i?{url:i}:i,{url:o,headers:s={}}=l,n=yield fetch(o,{headers:s,signal:r});if(!n.ok)throw new Error("Failed to fetch GeoJSON: ".concat(n.status," ").concat(n.statusText));var d=yield n.json();if("FeatureCollection"===d.type)return d;if("Feature"===d.type)return{type:"FeatureCollection",features:[d]};if(Array.isArray(d))return{type:"FeatureCollection",features:d};throw new Error("Invalid GeoJSON response")});return function(t,a,r,i){return e.apply(this,arguments)}}(),g=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),m=e=>{var t=1/0,a=1/0,r=-1/0,i=-1/0,l=(e,o)=>{var s;0===o?(s=e,t=Math.min(t,s[0]),a=Math.min(a,s[1]),r=Math.max(r,s[0]),i=Math.max(i,s[1])):e.forEach(e=>l(e,o-1))};switch(e.type){case"Point":l(e.coordinates,0);break;case"LineString":case"MultiPoint":l(e.coordinates,1);break;case"Polygon":case"MultiLineString":l(e.coordinates,2);break;case"MultiPolygon":l(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var l=m(e);t=Math.min(t,l[0]),a=Math.min(a,l[1]),r=Math.max(r,l[2]),i=Math.max(i,l[3])});break;default:throw new Error("Unsupported geometry type: ".concat(e.type))}return[t,a,r,i]},S=e=>{var t,a,r,i,{dataset:o,map:s,onUpdate:n}=e,{geojson:d,idProperty:u,transformRequest:c,maxFeatures:p,minZoom:y=0}=o,v=new Map,h=null,f=null,S=()=>({type:"FeatureCollection",features:Array.from(v.values()).map(e=>e.feature)}),O=function(){var e=l(function*(){var e=s.getZoom();if(!(e<y)){var t=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(s);if(!(h&&(a=h,r=t,a&&r&&r[0]>=a[0]&&r[1]>=a[1]&&r[2]<=a[2]&&r[3]<=a[3]))){var a,r,i,l;f&&f.abort(),f=new AbortController;try{var O={bbox:t,zoom:e,dataset:o},k=yield b(d,O,c,f.signal),P=Date.now();k.features.forEach(e=>{var t=(e=>{var t,a;return u&&null!==(t=null===(a=e.properties)||void 0===a?void 0:a[u])&&void 0!==t?t:e.id})(e);null!=t?v.set(t,{feature:e,bbox:m(e.geometry),lastSeenAt:P}):console.warn("Feature missing ID, skipping:",e)}),l=t,h=(i=h)?[Math.min(i[0],l[0]),Math.min(i[1],l[1]),Math.max(i[2],l[2]),Math.max(i[3],l[3])]:[...l];var A=v.size;(e=>{if(p&&!(v.size<=1.2*p)){var t=p,a=[],r=[];for(var[i,l]of v)g(l.bbox,e)?a.push(i):r.push({id:i,lastSeenAt:l.lastSeenAt});r.sort((e,t)=>e.lastSeenAt-t.lastSeenAt);for(var o=v.size-t,s=0;s<o&&s<r.length;s++)v.delete(r[s].id);if(v.size>t)for(var n=v.size-t,d=a.map(e=>({id:e,lastSeenAt:v.get(e).lastSeenAt})).sort((e,t)=>e.lastSeenAt-t.lastSeenAt),u=0;u<n&&u<d.length;u++)v.delete(d[u].id)}})(t),v.size<A&&(h=t),n(o.id,S())}catch(e){if("AbortError"===e.name)return;console.error("Failed to fetch dynamic GeoJSON for ".concat(o.id,":"),e)}}}});return function(){return e.apply(this,arguments)}}(),k=(t=O,a=200,(i=function(){for(var e=arguments.length,i=new Array(e),l=0;l<e;l++)i[l]=arguments[l];clearTimeout(r),r=setTimeout(()=>t(...i),a)}).cancel=()=>{clearTimeout(r),r=null},i),P=()=>{k()};return s.on("moveend",P),O(),{destroy(){s.off("moveend",P),k.cancel(),f&&f.abort()},clear(){v.clear(),h=null,n(o.id,{type:"FeatureCollection",features:[]})},refresh(){v.clear(),h=null,O()},getFeatureCount:()=>v.size,reapply(){v.size>0&&n(o.id,S())}}},O=e=>{var{adapter:t,pluginConfig:a,pluginStateRef:r,mapStyleId:i,mapProvider:l,events:o,eventBus:s}=e,{datasets:d}=a,u=new Map,c=()=>r.current.datasets||d,y=d.map(e=>p(e,n));t.init(y,i).then(()=>{y.forEach(e=>{if((e=>"string"==typeof e.geojson&&!!e.idProperty&&"function"==typeof e.transformRequest)(e)){var a=S({dataset:e,map:l.map,onUpdate:(e,a)=>t.setData(e,a)});u.set(e.id,a)}}),s.emit("datasets:ready")});var v=e=>{t.onStyleChange(c(),e.id,r.current.hiddenFeatures||{},u)};return s.on(o.MAP_SET_STYLE,v),{remove(){s.off(o.MAP_SET_STYLE,v),u.forEach(e=>e.destroy()),u.clear(),t.destroy(c())},refreshDataset(e){var t;null===(t=u.get(e))||void 0===t||t.refresh()},clearDatasetCache(e){var t;null===(t=u.get(e))||void 0===t||t.clear()},getFeatureCount(e){var t,a;return null!==(t=null===(a=u.get(e))||void 0===a?void 0:a.getFeatureCount())&&void 0!==t?t:null}}};var k=function(e,t){var a,r,{pluginState:i}=e,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{datasetId:o,sublayerId:s}=l;if(s){var n,d=t?"visible":"hidden";return null===(n=i.layerAdapter)||void 0===n||n[t?"showSublayer":"hideSublayer"](o,s),void i.dispatch({type:"SET_SUBLAYER_VISIBILITY",payload:{datasetId:o,sublayerId:s,visibility:d}})}if(o){if(null===(r=i.layerAdapter)||void 0===r||r[t?"showDataset":"hideDataset"](o),i.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:o,visibility:t?"visible":"hidden"}}),t){var u,c=null===(u=i.datasets)||void 0===u?void 0:u.find(e=>e.id===o);Object.entries((null==c?void 0:c.sublayerVisibility)||{}).forEach(e=>{var t,[a,r]=e;"hidden"===r&&(null===(t=i.layerAdapter)||void 0===t||t.hideSublayer(o,a))})}}else i.dispatch({type:"SET_GLOBAL_VISIBILITY",payload:{visibility:t?"visible":"hidden"}}),null===(a=i.datasets)||void 0===a||a.forEach(e=>{var a;null===(a=i.layerAdapter)||void 0===a||a[t?"showDataset":"hideDataset"](e.id),t&&Object.entries(e.sublayerVisibility||{}).forEach(t=>{var a,[r,l]=t;"hidden"===l&&(null===(a=i.layerAdapter)||void 0===a||a.hideSublayer(e.id,r))})})},P="im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",A=e=>{var t;return null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.toggleVisibility)},E=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var a=Object.values(e)[0];return null!=a?a:null}return null},_={"cross-hatch":'<path d="M0 4.486V3.485h3.5V.001h1v3.484h7.002V.001h1v3.484h3.5v1.001h-3.5v7h3.5v.999h-3.5v3.516h-1v-3.516H4.499v3.516h-1v-3.516H0v-.999h3.5v-7H0zm11.501 0H4.499v7h7.002v-7z" fill="{{foreground}}"/>',"diagonal-cross-hatch":'<path d="M0 8.707V7.293L7.293 0h1.414L16 7.293v1.414L8.707 16H7.293L0 8.707zM.707 8L8 15.293 15.293 8 8 .707.707 8z" fill="{{foreground}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foreground}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foreground}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foreground}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foreground}}"/>',dot:'<path d="M3.999 2A2 2 0 0 1 6 3.999C6 5.103 5.103 6 3.999 6a2 2 0 0 1-1.999-2.001A2 2 0 0 1 3.999 2zm0 7.999C5.103 10 6 10.897 6 12.001A2 2 0 0 1 3.999 14a2 2 0 0 1-1.999-1.999A2 2 0 0 1 3.999 10zM11.999 2A2 2 0 0 1 14 3.999C14 5.103 13.103 6 11.999 6S10 5.103 10 3.999A2 2 0 0 1 11.999 2zm0 7.999c1.104 0 2.001.897 2.001 2.001A2 2 0 0 1 11.999 14 2 2 0 0 1 10 12.001c0-1.104.897-2.001 1.999-2.001z" fill="{{foreground}}"/>',diamond:'<path d="M4 .465L7.535 4 4 7.535.465 4 4 .465zm0 7.999l3.535 3.535L4 15.535.465 11.999 4 8.464zm8-8l3.535 3.535-3.536 3.536L8.464 4 12 .464zm0 8.001L15.536 12 12 15.536 8.465 12 12 8.465z" fill="{{foreground}}"/>'},I=(e,t,a)=>e.replace(/\{\{foreground\}\}/g,t||"black").replace(/\{\{background\}\}/g,a),w=(e,t)=>{var a=(e=>e.fillPatternSvgContent?e.fillPatternSvgContent:e.fillPattern&&_[e.fillPattern]?_[e.fillPattern]:null)(e);if(!a)return null;var r=E(e.fillPatternForegroundColor,t)||"black",i=E(e.fillPatternBackgroundColor,t)||"transparent",l=E(e.stroke,t)||r;return{border:I('<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="{{background}}" stroke="{{foreground}}" stroke-width="2"/>',l,i),content:I(a,r,i)}};function L(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}var D=(e,t)=>"symbolDescription"in t?t.symbolDescription:c(t)?void 0:e.symbolDescription,j=(e,t)=>{var a,r,l,o,s,n,d,u,c,p=t.style||{},y=(u=e.filter,c=t.filter,u&&c?["all",u,c]:c||u||null);return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?L(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):L(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}({id:t.id,label:t.label,stroke:null!==(a=p.stroke)&&void 0!==a?a:e.stroke,strokeWidth:null!==(r=p.strokeWidth)&&void 0!==r?r:e.strokeWidth,strokeDashArray:null!==(l=p.strokeDashArray)&&void 0!==l?l:e.strokeDashArray,opacity:null!==(o=p.opacity)&&void 0!==o?o:e.opacity,keySymbolShape:null!==(s=p.keySymbolShape)&&void 0!==s?s:e.keySymbolShape,symbolDescription:D(e,p),showInKey:null!==(n=t.showInKey)&&void 0!==n?n:e.showInKey,toggleVisibility:null!==(d=t.toggleVisibility)&&void 0!==d&&d,filter:y,minZoom:e.minZoom,maxZoom:e.maxZoom},((e,t)=>{var a,r;return t.fillPattern||t.fillPatternSvgContent?{fillPattern:t.fillPattern,fillPatternSvgContent:t.fillPatternSvgContent,fillPatternForegroundColor:null!==(a=t.fillPatternForegroundColor)&&void 0!==a?a:e.fillPatternForegroundColor,fillPatternBackgroundColor:null!==(r=t.fillPatternBackgroundColor)&&void 0!==r?r:e.fillPatternBackgroundColor}:"fill"in t?{fill:t.fill}:{fill:e.fill,fillPattern:e.fillPattern,fillPatternSvgContent:e.fillPatternSvgContent,fillPatternForegroundColor:e.fillPatternForegroundColor,fillPatternBackgroundColor:e.fillPatternBackgroundColor}})(e,p))};function T(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function C(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?T(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):T(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var x=20;function M(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function F(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?M(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):M(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}function V(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function z(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?V(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):V(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var B={InitComponent:function(a){var r,{pluginConfig:i,pluginState:o,appState:s,mapState:d,mapProvider:u,services:c}=a,{dispatch:p}=o,{events:y,eventBus:v}=c,h=!(null===(r=u.map)||void 0===r||!r.getStyle()),f=e(o);f.current=o;var b=e(null);return t(()=>{var e,t,a,r,c=null===(e=null===(t=i.includeModes)||void 0===t?void 0:t.includes(s.mode))||void 0===e||e,g=null!==(a=null===(r=i.excludeModes)||void 0===r?void 0:r.includes(s.mode))&&void 0!==a&&a;if(h&&c&&!g&&!b.current){o.datasets||p({type:"SET_DATASETS",payload:{datasets:i.datasets,datasetDefaults:n}});var m=function(){var e=l(function*(){if(!i.layerAdapter)throw new Error("datasets plugin: no layerAdapter provided. Import and pass maplibreLayerAdapter or a custom adapter.");var{default:e}=yield i.layerAdapter.load(),t=new e(u.map);p({type:"SET_LAYER_ADAPTER",payload:t}),b.current=O({adapter:t,pluginConfig:i,pluginStateRef:f,mapStyleId:d.mapStyle.id,mapProvider:u,events:y,eventBus:v})});return function(){return e.apply(this,arguments)}}();m()}},[h,s.mode]),t(()=>()=>{b.current&&(b.current.remove(),b.current=null),p({type:"SET_LAYER_ADAPTER",payload:null})},[]),null},reducer:{initialState:{datasets:null,hiddenFeatures:{},layerAdapter:null},actions:f},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",dismissible:!0,exclusive:!0,width:"260px"},desktop:{slot:"left-top",modal:!1,dismissible:!0,exclusive:!0,width:"280px"},render:e=>{var t,i,l,{pluginState:o}=e,s=e=>{var{value:t,checked:a}=e.target;k({pluginState:o},a,{datasetId:t})},n=e=>{var{checked:t}=e.target,a=e.target.dataset.datasetId,r=e.target.dataset.sublayerId;k({pluginState:o},t,{datasetId:a,sublayerId:r})},d=e=>{var t="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat("hidden"===e.visibility?"":" im-c-datasets-layers__item--checked");return a("div",{className:t,"data-module":"govuk-checkboxes",children:r("div",{className:"govuk-checkboxes__item",children:[a("input",{className:"govuk-checkboxes__input",id:e.id,name:"layers",type:"checkbox",value:e.id,checked:"hidden"!==e.visibility,onChange:s}),a("label",{className:P,htmlFor:e.id,children:e.label})]})},e.id)},u=(o.datasets||[]).filter(e=>e.toggleVisibility||A(e)),c=(t=u,i=new Set,l=[],t.forEach(e=>{if(A(e))l.push({type:"sublayers",dataset:e});else{if(e.groupLabel){if(i.has(e.groupLabel))return;return i.add(e.groupLabel),void l.push({type:"group",groupLabel:e.groupLabel,datasets:t.filter(t=>!A(t)&&t.groupLabel===e.groupLabel)})}l.push({type:"flat",dataset:e})}}),l),p=c.some(e=>"sublayers"===e.type||"group"===e.type),y="im-c-datasets-layers".concat(p?" im-c-datasets-layers--has-groups":"");return a("div",{className:y,children:c.map(e=>{if("sublayers"===e.type){var{dataset:t}=e,i=t.sublayers.filter(e=>e.toggleVisibility).some(e=>{var a;return"hidden"!==(null===(a=t.sublayerVisibility)||void 0===a?void 0:a[e.id])}),l="govuk-form-group im-c-datasets-layers-group".concat(i?" im-c-datasets-layers-group--items-checked":"");return a("div",{className:l,children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:t.label}),t.sublayers.filter(e=>e.toggleVisibility).map(e=>{var i,l="hidden"!==(null===(i=t.sublayerVisibility)||void 0===i?void 0:i[e.id]),o="".concat(t.id,"-").concat(e.id),s="im-c-datasets-layers__item govuk-checkboxes govuk-checkboxes--small".concat(l?" im-c-datasets-layers__item--checked":"");return a("div",{className:s,"data-module":"govuk-checkboxes",children:r("div",{className:"govuk-checkboxes__item",children:[a("input",{className:"govuk-checkboxes__input",id:o,type:"checkbox",checked:l,"data-dataset-id":t.id,"data-sublayer-id":e.id,onChange:n}),a("label",{className:P,htmlFor:o,children:e.label})]})},e.id)})]})},t.id)}if("group"===e.type){var o=e.datasets.some(e=>"hidden"!==e.visibility),s="govuk-form-group im-c-datasets-layers-group".concat(o?" im-c-datasets-layers-group--items-checked":"");return a("div",{className:s,children:r("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[a("legend",{className:"im-c-datasets-layers-group__legend",children:e.groupLabel}),e.datasets.map(e=>d(e))]})},e.groupLabel)}return d(e.dataset)})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:e=>{var t,i,l,{mapState:o,pluginState:s}=e,{mapStyle:n}=o,d=e=>{var t,i={xmlns:"http://www.w3.org/2000/svg",width:x,height:x,viewBox:"0 0 ".concat(x," ").concat(x),"aria-hidden":"true",focusable:"false"};if((t=e).fillPattern||t.fillPatternSvgContent){var l=w(e,n.id);return r("svg",C(C({},i),{},{children:[a("g",{dangerouslySetInnerHTML:{__html:l.border}}),a("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:l.content}})]}))}return a("svg",C(C({},i),{},{children:"line"===e.keySymbolShape?a("line",{x1:e.strokeWidth/2,y1:10,x2:x-e.strokeWidth/2,y2:10,stroke:E(e.stroke,n.id),strokeWidth:e.strokeWidth,strokeLinecap:"round"}):a("rect",{x:e.strokeWidth/2,y:e.strokeWidth/2,width:x-e.strokeWidth,height:x-e.strokeWidth,rx:e.strokeWidth,ry:e.strokeWidth,fill:E(e.fill,n.id),stroke:E(e.stroke,n.id),strokeWidth:e.strokeWidth,strokeLinejoin:"round"})}))},u=(e,t)=>r("dl",{className:"im-c-datasets-key__item",children:[a("dt",{className:"im-c-datasets-key__item-symbol",children:d(t)}),r("dd",{className:"im-c-datasets-key__item-label",children:[t.label,t.symbolDescription&&r("span",{className:"govuk-visually-hidden",children:["(",E(t.symbolDescription,n.id),")"]})]})]},e),c=(s.datasets||[]).filter(e=>e.showInKey&&"hidden"!==e.visibility),p=(t=c,i=new Set,l=[],t.forEach(e=>{var a;if(null!==(a=e.sublayers)&&void 0!==a&&a.length)l.push({type:"sublayers",dataset:e});else{if(e.groupLabel){if(i.has(e.groupLabel))return;return i.add(e.groupLabel),void l.push({type:"group",groupLabel:e.groupLabel,datasets:t.filter(t=>{var a;return!(null!==(a=t.sublayers)&&void 0!==a&&a.length)&&t.groupLabel===e.groupLabel})})}l.push({type:"flat",dataset:e})}}),l),y=p.some(e=>"sublayers"===e.type||"group"===e.type),v="im-c-datasets-key".concat(y?" im-c-datasets-key--has-groups":"");return a("div",{className:v,children:p.map(e=>{if("sublayers"===e.type){var t="key-heading-".concat(e.dataset.id);return r("section",{className:"im-c-datasets-key__group","aria-labelledby":t,children:[a("h3",{id:t,className:"im-c-datasets-key__group-heading",children:e.dataset.label}),e.dataset.sublayers.filter(t=>{var a;return"hidden"!==(null===(a=e.dataset.sublayerVisibility)||void 0===a?void 0:a[t.id])}).map(t=>u("".concat(e.dataset.id,"-").concat(t.id),j(e.dataset,t)))]},e.dataset.id)}if("group"===e.type){var i="key-heading-".concat(e.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"));return r("section",{className:"im-c-datasets-key__group","aria-labelledby":i,children:[a("h3",{id:i,className:"im-c-datasets-key__group-heading",children:e.groupLabel}),e.datasets.map(e=>u(e.id,e))]},e.groupLabel)}return u(e.dataset.id,e.dataset)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.some(e=>{var t;return e.toggleVisibility||(null===(t=e.sublayers)||void 0===t?void 0:t.some(e=>e.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:e=>{var{pluginConfig:t}=e;return!t.datasets.some(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="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:{addDataset:(e,t)=>{var a,{pluginState:r,mapState:i}=e;null===(a=r.layerAdapter)||void 0===a||a.addDataset(F(F({},n),t),i.mapStyle.id),r.dispatch({type:"ADD_DATASET",payload:{dataset:t,datasetDefaults:n}})},removeDataset:(e,t)=>{var a,r,{pluginState:i}=e,l=null===(a=i.datasets)||void 0===a?void 0:a.find(e=>e.id===t);l&&(null===(r=i.layerAdapter)||void 0===r||r.removeDataset(l,i.datasets),i.dispatch({type:"REMOVE_DATASET",payload:{id:t}}))},setDatasetVisibility:k,setFeatureVisibility:function(e,t,a){var r,{pluginState:i}=e,{datasetId:l,idProperty:o=null}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=null===(r=i.datasets)||void 0===r?void 0:r.find(e=>e.id===l);if(s)if(t){var n,d=i.hiddenFeatures[l];if(!d)return;var u=d.ids.filter(e=>!a.includes(e));i.dispatch({type:"SHOW_FEATURES",payload:{layerId:l,featureIds:a}}),null===(n=i.layerAdapter)||void 0===n||n.showFeatures(s,o,u)}else{var c,p=i.hiddenFeatures[l],y=(null==p?void 0:p.ids)||[],v=[...new Set([...y,...a])];i.dispatch({type:"HIDE_FEATURES",payload:{layerId:l,idProperty:o,featureIds:a}}),null===(c=i.layerAdapter)||void 0===c||c.hideFeatures(s,o,v)}},setStyle:function(e,t){var a,r,{pluginState:i,mapState:l}=e,{datasetId:o,sublayerId:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=null===(a=i.datasets)||void 0===a?void 0:a.find(e=>e.id===o);if(n)if(s){var d,u;i.dispatch({type:"SET_SUBLAYER_STYLE",payload:{datasetId:o,sublayerId:s,styleChanges:t}});var c=z(z({},n),{},{sublayers:null===(d=n.sublayers)||void 0===d?void 0:d.map(e=>e.id===s?z(z({},e),{},{style:z(z({},e.style),t)}):e)});null===(u=i.layerAdapter)||void 0===u||u.setSublayerStyle(c,s,l.mapStyle.id)}else{i.dispatch({type:"SET_DATASET_STYLE",payload:{datasetId:o,styleChanges:t}});var p=z(z({},n),t);null===(r=i.layerAdapter)||void 0===r||r.setStyle(p,l.mapStyle.id)}},getStyle:function(e){var t,a,{pluginState:r}=e,{datasetId:i,sublayerId:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null===(t=r.datasets)||void 0===t?void 0:t.find(e=>e.id===i);if(!o)return null;if(l){var s,n,d=null===(s=o.sublayers)||void 0===s?void 0:s.find(e=>e.id===l);return null!==(n=null==d?void 0:d.style)&&void 0!==n?n:null}return null!==(a=o.style)&&void 0!==a?a:null},setOpacity:(e,t,a)=>{var r,{pluginState:i}=e,{datasetId:l,sublayerId:o}=a||{};if(o){var s,n;if(!(null===(s=i.datasets)||void 0===s?void 0:s.find(e=>e.id===l)))return;return i.dispatch({type:"SET_SUBLAYER_OPACITY",payload:{datasetId:l,sublayerId:o,opacity:t}}),void(null===(n=i.layerAdapter)||void 0===n||n.setSublayerOpacity(l,o,t))}if(l){var d,u;if(!(null===(d=i.datasets)||void 0===d?void 0:d.find(e=>e.id===l)))return;return i.dispatch({type:"SET_OPACITY",payload:{datasetId:l,opacity:t}}),void(null===(u=i.layerAdapter)||void 0===u||u.setOpacity(l,t))}i.dispatch({type:"SET_GLOBAL_OPACITY",payload:{opacity:t}}),null===(r=i.datasets)||void 0===r||r.forEach(e=>{var a;null===(a=i.layerAdapter)||void 0===a||a.setOpacity(e.id,t)})},getOpacity:(e,t)=>{var a,r,{pluginState:i}=e,{datasetId:l,sublayerId:o}=t||{};if(o){var s,n,d,u,c=null===(s=i.datasets)||void 0===s?void 0:s.find(e=>e.id===l),p=null==c||null===(n=c.sublayers)||void 0===n?void 0:n.find(e=>e.id===o);return null!==(d=null==p||null===(u=p.style)||void 0===u?void 0:u.opacity)&&void 0!==d?d:null}if(l){var y,v,h=null===(y=i.datasets)||void 0===y?void 0:y.find(e=>e.id===l);return null!==(v=null==h?void 0:h.opacity)&&void 0!==v?v:null}return null!==(a=null===(r=i.datasets)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.opacity)&&void 0!==a?a:null},setData:(e,t,a)=>{var r,i,{pluginState:l,services:o}=e,{datasetId:s}=a,n=null===(r=l.datasets)||void 0===r?void 0:r.find(e=>e.id===s);null!=n&&n.tiles?o.logger.warn('setData called on vector tile dataset "'.concat(s,'" — has no effect')):null===(i=l.layerAdapter)||void 0===i||i.setData(s,t)}}};export{B as manifest};
@@ -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],{996(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:()=>bt});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"],s=["stroke","fill","fillPattern","fillPatternSvgContent"],c=function(t){return s.some(function(e){return e in t})},d=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 f(t){return f="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},f(t)}function y(t){return function(t){if(Array.isArray(t))return p(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 p(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)?p(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 p(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 v(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?v(Object(r),!0).forEach(function(e){h(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):v(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"!=f(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=f(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==f(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var m=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"}),b(b({},t),{},{sublayerVisibility:r})},g={SET_DATASETS:function(t,e){var r=e.datasets,n=e.datasetDefaults;return b(b({},t),{},{datasets:r.map(function(t){return m(d(t,n))})})},ADD_DATASET:function(t,e){var r=e.dataset,n=e.datasetDefaults;return b(b({},t),{},{datasets:[].concat(y(t.datasets||[]),[m(d(r,n))])})},REMOVE_DATASET:function(t,e){var r,n=e.id;return b(b({},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 b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?b(b({},t),{},{visibility:o}):t})})},SET_GLOBAL_VISIBILITY:function(t,e){var r,n=e.visibility;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return b(b({},t),{},{visibility:n})})})},SET_SUBLAYER_VISIBILITY:function(t,e){var r,n=e.datasetId,o=e.sublayerId,i=e.visibility;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id!==n?t:b(b({},t),{},{sublayerVisibility:b(b({},t.sublayerVisibility),{},h({},o,i))})})})},SET_DATASET_STYLE:function(t,e){var r,n=e.datasetId,o=e.styleChanges;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?b(b({},t),o):t})})},SET_SUBLAYER_STYLE:function(t,e){var r,n=e.datasetId,o=e.sublayerId,i=e.styleChanges;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){var e;return t.id!==n?t:b(b({},t),{},{sublayers:null===(e=t.sublayers)||void 0===e?void 0:e.map(function(t){return t.id===o?b(b({},t),{},{style:b(b({},t.style),i)}):t})})})})},SET_OPACITY:function(t,e){var r,n=e.datasetId,o=e.opacity;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?b(b({},t),{},{opacity:o}):t})})},SET_GLOBAL_OPACITY:function(t,e){var r,n=e.opacity;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return b(b({},t),{},{opacity:n})})})},SET_SUBLAYER_OPACITY:function(t,e){var r,n=e.datasetId,o=e.sublayerId,i=e.opacity;return b(b({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){var e;return t.id!==n?t:b(b({},t),{},{sublayers:null===(e=t.sublayers)||void 0===e?void 0:e.map(function(t){return t.id===o?b(b({},t),{},{style:b(b({},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=y(new Set([].concat(y(a),y(o))));return b(b({},t),{},{hiddenFeatures:b(b({},t.hiddenFeatures),{},h({},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=b({},t.hiddenFeatures);return delete a[r],b(b({},t),{},{hiddenFeatures:a})}return b(b({},t),{},{hiddenFeatures:b(b({},t.hiddenFeatures),{},h({},r,b(b({},o),{},{ids:i})))})},SET_LAYER_ADAPTER:function(t,e){return b(b({},t),{},{layerAdapter:e})}},S=r(738);function O(){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 j(s,"_invoke",function(r,n,o){var i,l,u,s=0,c=o||[],d=!1,f={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,l=0,u=t,f.n=r,a}};function y(r,n){for(l=r,u=n,e=0;!d&&s&&!o&&e<c.length;e++){var o,i=c[e],y=f.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]<=y&&((o=r<2&&y<i[1])?(l=0,f.v=n,f.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,f.n=p,l=0))}if(o||r>1)return a;throw d=!0,n}return function(o,c,p){if(s>1)throw TypeError("Generator is already running");for(d&&1===c&&y(c,p),l=c,u=p;(e=l<2?t:u)||!d;){i||(l?l<3?(l>1&&(f.n=-1),y(l,u)):f.n=u:f.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=(d=f.n<0)?u:r.call(n,f))!==a)break}catch(e){i=t,l=1,u=e}finally{s=1}}return{value:e,done:d}}}(r,o,i),!0),s}var a={};function l(){}function u(){}function s(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(j(e={},n,function(){return this}),e),d=s.prototype=l.prototype=Object.create(c);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,j(t,o,"GeneratorFunction")),t.prototype=Object.create(d),t}return u.prototype=s,j(d,"constructor",s),j(s,"constructor",u),u.displayName="GeneratorFunction",j(s,o,"GeneratorFunction"),j(d),j(d,o,"Generator"),j(d,n,function(){return this}),j(d,"toString",function(){return"[object Generator]"}),(O=function(){return{w:i,m:f}})()}function j(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}j=function(t,e,r,n){function i(e,r){j(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))},j(t,e,r,n)}function w(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 P=function(){var t,e=(t=O().m(function t(e,r,n,o){var i,a,l,u,s,c,d;return O().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"!==(d=t.v).type){t.n=4;break}return t.a(2,d);case 4:if("Feature"!==d.type){t.n=5;break}return t.a(2,{type:"FeatureCollection",features:[d]});case 5:if(!Array.isArray(d)){t.n=6;break}return t.a(2,{type:"FeatureCollection",features:d});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){w(i,n,o,a,l,"next",t)}function l(t){w(i,n,o,a,l,"throw",t)}a(void 0)})});return function(t,r,n,o){return e.apply(this,arguments)}}();function k(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 A=function(t){var e=t.getBounds();return[e.getWest(),e.getSouth(),e.getEast(),e.getNorth()]},E=function(t,e){return!(!t||!e)&&e[0]>=t[0]&&e[1]>=t[1]&&e[2]<=t[2]&&e[3]<=t[3]},_=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 k(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 k(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)?k(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},I=function(t,e){return!(!t||!e||t[2]<e[0]||t[0]>e[2]||t[3]<e[1]||t[1]>e[3])},T=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=T(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 L(){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 x(s,"_invoke",function(r,n,o){var i,l,u,s=0,c=o||[],d=!1,f={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,l=0,u=t,f.n=r,a}};function y(r,n){for(l=r,u=n,e=0;!d&&s&&!o&&e<c.length;e++){var o,i=c[e],y=f.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]<=y&&((o=r<2&&y<i[1])?(l=0,f.v=n,f.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,f.n=p,l=0))}if(o||r>1)return a;throw d=!0,n}return function(o,c,p){if(s>1)throw TypeError("Generator is already running");for(d&&1===c&&y(c,p),l=c,u=p;(e=l<2?t:u)||!d;){i||(l?l<3?(l>1&&(f.n=-1),y(l,u)):f.n=u:f.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=(d=f.n<0)?u:r.call(n,f))!==a)break}catch(e){i=t,l=1,u=e}finally{s=1}}return{value:e,done:d}}}(r,o,i),!0),s}var a={};function l(){}function u(){}function s(){}e=Object.getPrototypeOf;var c=[][n]?e(e([][n]())):(x(e={},n,function(){return this}),e),d=s.prototype=l.prototype=Object.create(c);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,x(t,o,"GeneratorFunction")),t.prototype=Object.create(d),t}return u.prototype=s,x(d,"constructor",s),x(s,"constructor",u),u.displayName="GeneratorFunction",x(s,o,"GeneratorFunction"),x(d),x(d,o,"Generator"),x(d,n,function(){return this}),x(d,"toString",function(){return"[object Generator]"}),(L=function(){return{w:i,m:f}})()}function x(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}x=function(t,e,r,n){function i(e,r){x(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))},x(t,e,r,n)}function D(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 C(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)||M(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 M(t,e){if(t){if("string"==typeof t)return F(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)?F(t,e):void 0}}function F(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 V=function(t){var e=t.adapter,r=t.pluginConfig,n=t.pluginStateRef,o=t.mapStyleId,i=t.mapProvider,a=t.events,u=t.eventBus,s=r.datasets,c=new Map,f=function(){return n.current.datasets||s},y=s.map(function(t){return d(t,l)});e.init(y,o).then(function(){y.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,d=o.minZoom,f=void 0===d?0:d,y=new Map,p=null,v=null,b=function(){return{type:"FeatureCollection",features:Array.from(y.values()).map(function(t){return t.feature})}},h=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},m=function(t){if(c&&!(y.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=M(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}}}}(y);try{for(i.s();!(e=i.n()).done;){var a=C(e.value,2),l=a[0],u=a[1];I(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=y.size-r,d=0;d<s&&d<o.length;d++)y.delete(o[d].id);if(y.size>r)for(var f=y.size-r,p=n.map(function(t){return{id:t,lastSeenAt:y.get(t).lastSeenAt}}).sort(function(t,e){return t.lastSeenAt-e.lastSeenAt}),v=0;v<f&&v<p.length;v++)y.delete(p[v].id)}},g=function(){var t,e=(t=L().m(function t(){var e,r,n,u,c,d,g;return L().w(function(t){for(;;)switch(t.p=t.n){case 0:if(!((e=i.getZoom())<f)){t.n=1;break}return t.a(2);case 1:if(r=A(i),!p||!E(p,r)){t.n=2;break}return t.a(2);case 2:return v&&v.abort(),v=new AbortController,t.p=3,n={bbox:r,zoom:e,dataset:o},t.n=4,P(l,n,s,v.signal);case 4:u=t.v,c=Date.now(),u.features.forEach(function(t){var e=h(t);null!=e?y.set(e,{feature:t,bbox:T(t.geometry),lastSeenAt:c}):console.warn("Feature missing ID, skipping:",t)}),p=_(p,r),d=y.size,m(r),y.size<d&&(p=r),a(o.id,b()),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){D(i,n,o,a,l,"next",t)}function l(t){D(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(),v&&v.abort()},clear:function(){y.clear(),p=null,a(o.id,{type:"FeatureCollection",features:[]})},refresh:function(){y.clear(),p=null,g()},getFeatureCount:function(){return y.size},reapply:function(){y.size>0&&a(o.id,b())}}}({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=function(t){e.onStyleChange(f(),t.id,n.current.hiddenFeatures||{},c)};return u.on(a.MAP_SET_STYLE,p),{remove:function(){u.off(a.MAP_SET_STYLE,p),c.forEach(function(t){return t.destroy()}),c.clear(),e.destroy(f())},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 z(){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||[],d=!1,f={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,l=0,u=t,f.n=r,a}};function y(r,n){for(l=r,u=n,e=0;!d&&s&&!o&&e<c.length;e++){var o,i=c[e],y=f.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]<=y&&((o=r<2&&y<i[1])?(l=0,f.v=n,f.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,f.n=p,l=0))}if(o||r>1)return a;throw d=!0,n}return function(o,c,p){if(s>1)throw TypeError("Generator is already running");for(d&&1===c&&y(c,p),l=c,u=p;(e=l<2?t:u)||!d;){i||(l?l<3?(l>1&&(f.n=-1),y(l,u)):f.n=u:f.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=(d=f.n<0)?u:r.call(n,f))!==a)break}catch(e){i=t,l=1,u=e}finally{s=1}}return{value:e,done:d}}}(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),d=s.prototype=l.prototype=Object.create(c);function f(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,N(t,o,"GeneratorFunction")),t.prototype=Object.create(d),t}return u.prototype=s,N(d,"constructor",s),N(s,"constructor",u),u.displayName="GeneratorFunction",N(s,o,"GeneratorFunction"),N(d),N(d,o,"Generator"),N(d,n,function(){return this}),N(d,"toString",function(){return"[object Generator]"}),(z=function(){return{w:i,m:f}})()}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 B(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 Y(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 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)||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){(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 R=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,d=null===(c=o.datasets)||void 0===c?void 0:c.find(function(t){return t.id===a});Object.entries((null==d?void 0:d.sublayerVisibility)||{}).forEach(function(t){var e,r=Y(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=Y(e,2),i=n[0];"hidden"===n[1]&&(null===(r=o.layerAdapter)||void 0===r||r.hideSublayer(t.id,i))})})},W=r(287),U="im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",H=function(t){var e;return null===(e=t.sublayers)||void 0===e?void 0:e.some(function(t){return t.toggleVisibility})};function K(t){return K="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},K(t)}var Z=function(t,e){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===K(t)){if(e&&t[e])return t[e];var r=Object.values(t)[0];return null!=r?r:null}return null},$={"cross-hatch":'<path d="M0 4.486V3.485h3.5V.001h1v3.484h7.002V.001h1v3.484h3.5v1.001h-3.5v7h3.5v.999h-3.5v3.516h-1v-3.516H4.499v3.516h-1v-3.516H0v-.999h3.5v-7H0zm11.501 0H4.499v7h7.002v-7z" fill="{{foreground}}"/>',"diagonal-cross-hatch":'<path d="M0 8.707V7.293L7.293 0h1.414L16 7.293v1.414L8.707 16H7.293L0 8.707zM.707 8L8 15.293 15.293 8 8 .707.707 8z" fill="{{foreground}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foreground}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foreground}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foreground}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foreground}}"/>',dot:'<path d="M3.999 2A2 2 0 0 1 6 3.999C6 5.103 5.103 6 3.999 6a2 2 0 0 1-1.999-2.001A2 2 0 0 1 3.999 2zm0 7.999C5.103 10 6 10.897 6 12.001A2 2 0 0 1 3.999 14a2 2 0 0 1-1.999-1.999A2 2 0 0 1 3.999 10zM11.999 2A2 2 0 0 1 14 3.999C14 5.103 13.103 6 11.999 6S10 5.103 10 3.999A2 2 0 0 1 11.999 2zm0 7.999c1.104 0 2.001.897 2.001 2.001A2 2 0 0 1 11.999 14 2 2 0 0 1 10 12.001c0-1.104.897-2.001 1.999-2.001z" fill="{{foreground}}"/>',diamond:'<path d="M4 .465L7.535 4 4 7.535.465 4 4 .465zm0 7.999l3.535 3.535L4 15.535.465 11.999 4 8.464zm8-8l3.535 3.535-3.536 3.536L8.464 4 12 .464zm0 8.001L15.536 12 12 15.536 8.465 12 12 8.465z" fill="{{foreground}}"/>'},J=function(t,e,r){return t.replace(/\{\{foreground\}\}/g,e||"black").replace(/\{\{background\}\}/g,r||"transparent")};function q(t){return q="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},q(t)}function Q(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 X(t,e,r){return(e=function(t){var e=function(t){if("object"!=q(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=q(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==q(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}new Map;var tt=function(t,e){return"symbolDescription"in e?e.symbolDescription:c(e)?void 0:t.symbolDescription};function et(t){return et="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},et(t)}function rt(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?rt(Object(r),!0).forEach(function(e){ot(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):rt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function ot(t,e,r){return(e=function(t){var e=function(t){if("object"!=et(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=et(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==et(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var it=20;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 lt(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 ut(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?lt(Object(r),!0).forEach(function(e){st(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):lt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function st(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}function ct(t){return function(t){if(Array.isArray(t))return dt(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 dt(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)?dt(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 dt(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 ft(t){return ft="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},ft(t)}function yt(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?yt(Object(r),!0).forEach(function(e){vt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):yt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function vt(t,e,r){return(e=function(t){var e=function(t){if("object"!=ft(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=ft(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ft(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var bt={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.events,d=u.eventBus,f=!(null===(e=a.map)||void 0===e||!e.getStyle()),y=(0,S.useRef)(n);y.current=n;var p=(0,S.useRef)(null);return(0,S.useEffect)(function(){var t,e,u,v,b=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(f&&b&&!h&&!p.current){n.datasets||s({type:"SET_DATASETS",payload:{datasets:r.datasets,datasetDefaults:l}});var m=function(){var t,e=(t=z().m(function t(){var e,n,o;return z().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.map),s({type:"SET_LAYER_ADAPTER",payload:o}),p.current=V({adapter:o,pluginConfig:r,pluginStateRef:y,mapStyleId:i.mapStyle.id,mapProvider:a,events:c,eventBus:d});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){B(i,n,o,a,l,"next",t)}function l(t){B(i,n,o,a,l,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}();m()}},[f,o.mode]),(0,S.useEffect)(function(){return function(){p.current&&(p.current.remove(),p.current=null),s({type:"SET_LAYER_ADAPTER",payload:null})}},[]),null},reducer:{initialState:{datasets:null,hiddenFeatures:{},layerAdapter:null},actions:g},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;R({pluginState:o},n,{datasetId:r})},a=function(t){var e=t.target.checked,r=t.target.dataset.datasetId,n=t.target.dataset.sublayerId;R({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,W.jsx)("div",{className:e,"data-module":"govuk-checkboxes",children:(0,W.jsxs)("div",{className:"govuk-checkboxes__item",children:[(0,W.jsx)("input",{className:"govuk-checkboxes__input",id:t.id,name:"layers",type:"checkbox",value:t.id,checked:"hidden"!==t.visibility,onChange:i}),(0,W.jsx)("label",{className:U,htmlFor:t.id,children:t.label})]})},t.id)},u=(o.datasets||[]).filter(function(t){return t.toggleVisibility||H(t)}),s=(e=u,r=new Set,n=[],e.forEach(function(t){if(H(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!H(e)&&e.groupLabel===t.groupLabel})})}n.push({type:"flat",dataset:t})}}),n),c=s.some(function(t){return"sublayers"===t.type||"group"===t.type}),d="im-c-datasets-layers".concat(c?" im-c-datasets-layers--has-groups":"");return(0,W.jsx)("div",{className:d,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,W.jsx)("div",{className:n,children:(0,W.jsxs)("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[(0,W.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,W.jsx)("div",{className:i,"data-module":"govuk-checkboxes",children:(0,W.jsxs)("div",{className:"govuk-checkboxes__item",children:[(0,W.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,W.jsx)("label",{className:U,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,W.jsx)("div",{className:i,children:(0,W.jsxs)("fieldset",{className:"im-c-datasets-layers-group__fieldset",children:[(0,W.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,n,o=t.mapState,i=t.pluginState,a=o.mapStyle,l=function(t){var e,r={xmlns:"http://www.w3.org/2000/svg",width:it,height:it,viewBox:"0 0 ".concat(it," ").concat(it),"aria-hidden":"true",focusable:"false"};if((e=t).fillPattern||e.fillPatternSvgContent){var n=function(t,e){var r=function(t){return t.fillPatternSvgContent?t.fillPatternSvgContent:t.fillPattern&&$[t.fillPattern]?$[t.fillPattern]:null}(t);if(!r)return null;var n=Z(t.fillPatternForegroundColor,e)||"black",o=Z(t.fillPatternBackgroundColor,e)||"transparent",i=Z(t.stroke,e)||n;return{border:J('<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="{{background}}" stroke="{{foreground}}" stroke-width="2"/>',i,o),content:J(r,n,o)}}(t,a.id);return(0,W.jsxs)("svg",nt(nt({},r),{},{children:[(0,W.jsx)("g",{dangerouslySetInnerHTML:{__html:n.border}}),(0,W.jsx)("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:n.content}})]}))}return(0,W.jsx)("svg",nt(nt({},r),{},{children:"line"===t.keySymbolShape?(0,W.jsx)("line",{x1:t.strokeWidth/2,y1:10,x2:it-t.strokeWidth/2,y2:10,stroke:Z(t.stroke,a.id),strokeWidth:t.strokeWidth,strokeLinecap:"round"}):(0,W.jsx)("rect",{x:t.strokeWidth/2,y:t.strokeWidth/2,width:it-t.strokeWidth,height:it-t.strokeWidth,rx:t.strokeWidth,ry:t.strokeWidth,fill:Z(t.fill,a.id),stroke:Z(t.stroke,a.id),strokeWidth:t.strokeWidth,strokeLinejoin:"round"})}))},u=function(t,e){return(0,W.jsxs)("dl",{className:"im-c-datasets-key__item",children:[(0,W.jsx)("dt",{className:"im-c-datasets-key__item-symbol",children:l(e)}),(0,W.jsxs)("dd",{className:"im-c-datasets-key__item-label",children:[e.label,e.symbolDescription&&(0,W.jsxs)("span",{className:"govuk-visually-hidden",children:["(",Z(e.symbolDescription,a.id),")"]})]})]},t)},s=(i.datasets||[]).filter(function(t){return t.showInKey&&"hidden"!==t.visibility}),c=(e=s,r=new Set,n=[],e.forEach(function(t){var o;if(null!==(o=t.sublayers)&&void 0!==o&&o.length)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){var r;return!(null!==(r=e.sublayers)&&void 0!==r&&r.length)&&e.groupLabel===t.groupLabel})})}n.push({type:"flat",dataset:t})}}),n),d=c.some(function(t){return"sublayers"===t.type||"group"===t.type}),f="im-c-datasets-key".concat(d?" im-c-datasets-key--has-groups":"");return(0,W.jsx)("div",{className:f,children:c.map(function(t){if("sublayers"===t.type){var e="key-heading-".concat(t.dataset.id);return(0,W.jsxs)("section",{className:"im-c-datasets-key__group","aria-labelledby":e,children:[(0,W.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 u("".concat(t.dataset.id,"-").concat(e.id),function(t,e){var r,n,o,i,a,l,u,s,c,d=e.style||{},f=(s=t.filter,c=e.filter,s&&c?["all",s,c]:c||s||null);return function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Q(Object(r),!0).forEach(function(e){X(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Q(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}({id:e.id,label:e.label,stroke:null!==(r=d.stroke)&&void 0!==r?r:t.stroke,strokeWidth:null!==(n=d.strokeWidth)&&void 0!==n?n:t.strokeWidth,strokeDashArray:null!==(o=d.strokeDashArray)&&void 0!==o?o:t.strokeDashArray,opacity:null!==(i=d.opacity)&&void 0!==i?i:t.opacity,keySymbolShape:null!==(a=d.keySymbolShape)&&void 0!==a?a:t.keySymbolShape,symbolDescription:tt(t,d),showInKey:null!==(l=e.showInKey)&&void 0!==l?l:t.showInKey,toggleVisibility:null!==(u=e.toggleVisibility)&&void 0!==u&&u,filter:f,minZoom:t.minZoom,maxZoom:t.maxZoom},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,d))}(t.dataset,e))})]},t.dataset.id)}if("group"===t.type){var r="key-heading-".concat(t.groupLabel.toLowerCase().replaceAll(/\s+/g,"-"));return(0,W.jsxs)("section",{className:"im-c-datasets-key__group","aria-labelledby":r,children:[(0,W.jsx)("h3",{id:r,className:"im-c-datasets-key__group-heading",children:t.groupLabel}),t.datasets.map(function(t){return u(t.id,t)})]},t.groupLabel)}return u(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="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:{addDataset:function(t,e){var r,n=t.pluginState,o=t.mapState;null===(r=n.layerAdapter)||void 0===r||r.addDataset(ut(ut({},l),e),o.mapStyle.id),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:R,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,d=o.hiddenFeatures[a];if(!d)return;var f=d.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,f)}else{var y,p=o.hiddenFeatures[a],v=(null==p?void 0:p.ids)||[],b=ct(new Set([].concat(ct(v),ct(r))));o.dispatch({type:"HIDE_FEATURES",payload:{layerId:a,idProperty:u,featureIds:r}}),null===(y=o.layerAdapter)||void 0===y||y.hideFeatures(s,u,b)}},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,d;o.dispatch({type:"SET_SUBLAYER_STYLE",payload:{datasetId:l,sublayerId:u,styleChanges:e}});var f=pt(pt({},s),{},{sublayers:null===(c=s.sublayers)||void 0===c?void 0:c.map(function(t){return t.id===u?pt(pt({},t),{},{style:pt(pt({},t.style),e)}):t})});null===(d=o.layerAdapter)||void 0===d||d.setSublayerStyle(f,u,i.mapStyle.id)}else{o.dispatch({type:"SET_DATASET_STYLE",payload:{datasetId:l,styleChanges:e}});var y=pt(pt({},s),e);null===(n=o.layerAdapter)||void 0===n||n.setStyle(y,i.mapStyle.id)}},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,d;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===(d=o.layerAdapter)||void 0===d||d.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,d,f=null===(u=o.datasets)||void 0===u?void 0:u.find(function(t){return t.id===a}),y=null==f||null===(s=f.sublayers)||void 0===s?void 0:s.find(function(t){return t.id===l});return null!==(c=null==y||null===(d=y.style)||void 0===d?void 0:d.opacity)&&void 0!==c?c:null}if(a){var p,v,b=null===(p=o.datasets)||void 0===p?void 0:p.find(function(t){return t.id===a});return null!==(v=null==b?void 0:b.opacity)&&void 0!==v?v: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=t.services,l=r.datasetId,u=null===(n=i.datasets)||void 0===n?void 0:n.find(function(t){return t.id===l});null!=u&&u.tiles?a.logger.warn('setData called on vector tile dataset "'.concat(l,'" — has no effect')):null===(o=i.layerAdapter)||void 0===o||o.setData(l,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({},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,996));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})());
@@ -31,17 +31,31 @@ export function DatasetsInit ({ pluginConfig, pluginState, appState, mapState, m
31
31
 
32
32
  // Only initialise state if not already set
33
33
  if (!pluginState.datasets) {
34
- dispatch({ type: 'SET_DATASETS', payload: { datasets: pluginConfig.datasets, datasetDefaults }})
34
+ dispatch({ type: 'SET_DATASETS', payload: { datasets: pluginConfig.datasets, datasetDefaults } })
35
35
  }
36
36
 
37
- datasetsInstanceRef.current = createDatasets({
38
- mapStyleId: mapState.mapStyle.id,
39
- pluginConfig,
40
- pluginStateRef,
41
- mapProvider,
42
- events,
43
- eventBus
44
- })
37
+ const initDatasets = async () => {
38
+ if (!pluginConfig.layerAdapter) {
39
+ throw new Error('datasets plugin: no layerAdapter provided. Import and pass maplibreLayerAdapter or a custom adapter.')
40
+ }
41
+
42
+ const { default: LayerAdapter } = await pluginConfig.layerAdapter.load()
43
+ const adapter = new LayerAdapter(mapProvider.map)
44
+
45
+ dispatch({ type: 'SET_LAYER_ADAPTER', payload: adapter })
46
+
47
+ datasetsInstanceRef.current = createDatasets({
48
+ adapter,
49
+ pluginConfig,
50
+ pluginStateRef,
51
+ mapStyleId: mapState.mapStyle.id,
52
+ mapProvider,
53
+ events,
54
+ eventBus
55
+ })
56
+ }
57
+
58
+ initDatasets()
45
59
  }, [isMapStyleReady, appState.mode])
46
60
 
47
61
  // Cleanup only on unmount
@@ -51,6 +65,7 @@ export function DatasetsInit ({ pluginConfig, pluginState, appState, mapState, m
51
65
  datasetsInstanceRef.current.remove()
52
66
  datasetsInstanceRef.current = null
53
67
  }
68
+ dispatch({ type: 'SET_LAYER_ADAPTER', payload: null })
54
69
  }
55
70
  }, [])
56
71
 
@@ -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
+ }