@defra/interactive-map 0.0.48-fmp-1 → 0.0.49-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 (32) hide show
  1. package/dist/css/index.css +1 -1
  2. package/dist/esm/im-core.js +1 -1
  3. package/dist/umd/im-core.js +1 -1
  4. package/package.json +1 -1
  5. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
  6. package/plugins/beta/draw-es/src/graphic.js +1 -0
  7. package/plugins/datasets/dist/esm/esriLayerAdapter.js +1 -1
  8. package/plugins/datasets/dist/umd/im-datasets-esri-adapter.js +1 -1
  9. package/plugins/datasets/src/adapters/esri/esriLayerAdapter.js +60 -9
  10. package/plugins/datasets/src/adapters/esri/esriLayerAdapter.test.js +90 -4
  11. package/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js +8 -8
  12. package/plugins/datasets/src/reducers/__data__/demoDatasets.js +3 -3
  13. package/plugins/map-key/dist/esm/im-map-key-plugin.js +1 -1
  14. package/plugins/map-key/dist/umd/im-map-key-plugin.js +1 -1
  15. package/plugins/map-key/dist/umd/index.js +1 -1
  16. package/plugins/map-key/src/api/addSymbol.js +3 -0
  17. package/plugins/map-key/src/api/addSymbol.test.js +14 -0
  18. package/plugins/map-key/src/api/index.js +4 -4
  19. package/plugins/map-key/src/api/index.test.js +6 -6
  20. package/plugins/map-key/src/api/removeSymbol.js +3 -0
  21. package/plugins/map-key/src/api/removeSymbol.test.js +14 -0
  22. package/plugins/map-key/src/initialise/MapKeyInit.jsx +1 -0
  23. package/plugins/map-key/src/initialise/MapKeyInit.test.jsx +1 -1
  24. package/plugins/map-key/src/reducers/pluginState.js +4 -4
  25. package/plugins/map-key/src/reducers/pluginState.test.js +5 -5
  26. package/src/App/hooks/useLayoutMeasurements.js +28 -14
  27. package/src/App/hooks/useLayoutMeasurements.test.js +57 -10
  28. package/src/App/layout/layout.module.scss +10 -2
  29. package/plugins/map-key/src/api/addKeyItem.js +0 -3
  30. package/plugins/map-key/src/api/addKeyItem.test.js +0 -14
  31. package/plugins/map-key/src/api/removeKeyItem.js +0 -3
  32. package/plugins/map-key/src/api/removeKeyItem.test.js +0 -14
@@ -6,6 +6,17 @@ import { datasetRegistry } from '../../registry/datasetRegistry.js'
6
6
  import { EsriDataset } from './registry/esriDataset.js'
7
7
  import { logger } from '../../../../../src/services/logger.js'
8
8
 
9
+ const getLayerSortOrder = (layer) => {
10
+ if (layer.id === 'baseLayer') {
11
+ return -Infinity
12
+ }
13
+ if (layer.id.includes('ketchLayer')) {
14
+ return Infinity
15
+ }
16
+ const layerId = layer.type === 'group' ? layer.layers?.items?.[0]?.id : layer.id
17
+ return datasetRegistry._orderedDatasets.indexOf(layerId)
18
+ }
19
+
9
20
  export default class EsriLayerAdapter extends LayerAdapter {
10
21
  constructor (mapProvider) {
11
22
  super()
@@ -36,8 +47,31 @@ export default class EsriLayerAdapter extends LayerAdapter {
36
47
  async init () {
37
48
  const topLevelDatasets = datasetRegistry.topLevelDatasets()
38
49
  // ensure the datasets are added in order
50
+ const _add = async (registryDataset) => {
51
+ return this._addLayers(registryDataset).then(() => {
52
+ const mapLayer = this._mapVisibilityLayers[registryDataset.id]
53
+ registryDataset.sublayers?.forEach(sublayer => {
54
+ if (sublayer.visibility === 'visible') {
55
+ this._applyStyleLayerPaintProperties(sublayer, mapLayer)
56
+ }
57
+ })
58
+ this.applyDatasetVisibility(registryDataset.id)
59
+ })
60
+ }
61
+
62
+ // Add the visible datasets first - to speed up rendering
39
63
  for (const registryDataset of topLevelDatasets) {
40
- await this._addLayers(registryDataset)
64
+ if (registryDataset.visibility === 'visible') {
65
+ await _add(registryDataset)
66
+ }
67
+ }
68
+ // Reorder layers after adding the initially visible datasets
69
+ this._reorderLayers()
70
+ // Add the non-visible datasets next
71
+ for (const registryDataset of topLevelDatasets) {
72
+ if (registryDataset.visibility !== 'visible') {
73
+ await _add(registryDataset)
74
+ }
41
75
  }
42
76
 
43
77
  // onMapStyleChange: handles showing and hiding sublayers based on the current mapStyle
@@ -54,14 +88,29 @@ export default class EsriLayerAdapter extends LayerAdapter {
54
88
  }
55
89
 
56
90
  _reorderLayers () {
57
- // Ensure that all sketch layers are on top of the map, so that they are not obscured by other layers
58
- // Only applicable when the draw plugin is in use, but safe to call regardless
59
- const layersLength = this._map?.allLayers?.items?.length
60
- if (layersLength) {
61
- this._map.allLayers.items
62
- .filter((layer) => layer.id.includes('ketchLayer'))
63
- .forEach((layer) => this._map.reorder(layer, layersLength))
91
+ // Order: baseLayer first, then datasets by their registry order, then sketch layers last
92
+ const allLayers = this._map?.allLayers?.items
93
+ if (!allLayers?.length) {
94
+ return
64
95
  }
96
+
97
+ const topLevelLayers = allLayers.filter(layer => layer.parent?.type !== 'group')
98
+ const orderedLayers = [...topLevelLayers].sort((a, b) => getLayerSortOrder(a) - getLayerSortOrder(b))
99
+ orderedLayers.forEach((layer, index) => this._map.reorder(layer, index))
100
+ // Finally reorder the items within the group layers
101
+ this._reorderGroupLayers()
102
+ }
103
+
104
+ _reorderGroupLayers () {
105
+ const groupLayers = Object.values(this._groupLayers)
106
+ groupLayers.forEach((groupLayer) => {
107
+ const children = groupLayer?.allLayers?.items || []
108
+ const orderedChildren = [...children]
109
+ .filter(Boolean)
110
+ .sort((a, b) => getLayerSortOrder(a) - getLayerSortOrder(b))
111
+
112
+ orderedChildren.forEach((layer, index) => groupLayer?.reorder?.(layer, index))
113
+ })
65
114
  }
66
115
 
67
116
  _addGroupLayer (esriGroupId) {
@@ -228,7 +277,6 @@ export default class EsriLayerAdapter extends LayerAdapter {
228
277
  }
229
278
  const layerPaintProperties = vectorTileLayer.getPaintProperties(esriStyleLayerId)
230
279
  if (layerPaintProperties) {
231
- registryDataset.applyLayerPaintProperties(layerPaintProperties)
232
280
  vectorTileLayer.setPaintProperties(esriStyleLayerId, registryDataset.applyLayerPaintProperties(layerPaintProperties))
233
281
  }
234
282
  }
@@ -239,6 +287,9 @@ export default class EsriLayerAdapter extends LayerAdapter {
239
287
 
240
288
  // mapLayer could be a VectorTileLayer or a FeatureLayer, depending on the dataset type
241
289
  const mapLayer = this._mapVisibilityLayers[isSublayer ? parent.id : id]
290
+ if (!mapLayer) {
291
+ return
292
+ }
242
293
  if (registryDataset.type === 'FeatureService') {
243
294
  // FeatureLayers don't have style layers, so we don't need to apply style layer visibility or paint properties
244
295
  mapLayer.renderer = registryDataset.renderer
@@ -21,10 +21,18 @@ jest.mock('@arcgis/core/layers/GroupLayer.js', () =>
21
21
  return {
22
22
  ...opts,
23
23
  layers,
24
+ allLayers: { items: layers },
24
25
  add: jest.fn(layer => layers.push(layer)),
25
26
  remove: jest.fn(layer => {
26
27
  const idx = layers.indexOf(layer)
27
28
  if (idx !== -1) layers.splice(idx, 1)
29
+ }),
30
+ reorder: jest.fn((layer, index) => {
31
+ const current = layers.indexOf(layer)
32
+ if (current !== -1) {
33
+ layers.splice(current, 1)
34
+ }
35
+ layers.splice(index, 0, layer)
28
36
  })
29
37
  }
30
38
  })
@@ -300,16 +308,94 @@ describe('esriLayerAdapter', () => {
300
308
  // ─── _reorderLayers with sketch layers ───────────────────────────────────────
301
309
 
302
310
  describe('_reorderLayers', () => {
303
- it('reorders sketch layers to the top when allLayers is present', () => {
311
+ it('does nothing when allLayers is empty', () => {
312
+ map.allLayers = { items: [] }
313
+ map.reorder = jest.fn()
314
+
315
+ adapter._reorderLayers()
316
+
317
+ expect(map.reorder).not.toHaveBeenCalled()
318
+ })
319
+
320
+ it('orders baseLayer first, then registry order, then sketch layers last', () => {
321
+ datasetRegistry._orderedDatasets = ['roads']
304
322
  const sketchLayer = { id: 'ketchLayer-0' }
305
323
  const normalLayer = { id: 'roads' }
306
- map.allLayers = { items: [normalLayer, sketchLayer] }
324
+ const baseLayer = { id: 'baseLayer' }
325
+ map.allLayers = { items: [normalLayer, sketchLayer, baseLayer] }
326
+ map.reorder = jest.fn()
327
+
328
+ adapter._reorderLayers()
329
+
330
+ expect(map.reorder).toHaveBeenNthCalledWith(1, baseLayer, 0)
331
+ expect(map.reorder).toHaveBeenNthCalledWith(2, normalLayer, 1)
332
+ expect(map.reorder).toHaveBeenNthCalledWith(3, sketchLayer, 2)
333
+ })
334
+
335
+ it('excludes child layers of a group from reordering', () => {
336
+ const baseLayer = { id: 'baseLayer' }
337
+ const groupLayer = { id: 'group-1', type: 'group', layers: { items: [{ id: 'roads' }] } }
338
+ const childLayer = { id: 'roads', parent: { type: 'group' } }
339
+ map.allLayers = { items: [groupLayer, childLayer, baseLayer] }
340
+ map.reorder = jest.fn()
341
+
342
+ adapter._reorderLayers()
343
+
344
+ expect(map.reorder).toHaveBeenCalledTimes(2)
345
+ expect(map.reorder).toHaveBeenCalledWith(baseLayer, 0)
346
+ expect(map.reorder).toHaveBeenCalledWith(groupLayer, 1)
347
+ })
348
+
349
+ it('handles a group layer with no child layers without throwing', () => {
350
+ const baseLayer = { id: 'baseLayer' }
351
+ const emptyGroupLayer = { id: 'empty-group', type: 'group' }
352
+ map.allLayers = { items: [emptyGroupLayer, baseLayer] }
353
+ map.reorder = jest.fn()
354
+
355
+ adapter._reorderLayers()
356
+
357
+ expect(map.reorder).toHaveBeenCalledWith(baseLayer, 0)
358
+ expect(map.reorder).toHaveBeenCalledWith(emptyGroupLayer, 1)
359
+ })
360
+
361
+ it('reorders the child layers within a group by registry order', () => {
362
+ datasetRegistry._orderedDatasets = ['roads', 'schools']
363
+ const roads = { id: 'roads' }
364
+ const schools = { id: 'schools' }
365
+ const sketch = { id: 'ketchLayer-0' }
366
+ const baseLayer = { id: 'baseLayer' }
367
+ const groupLayer = {
368
+ id: 'group-1',
369
+ type: 'group',
370
+ allLayers: { items: [schools, sketch, roads] },
371
+ reorder: jest.fn()
372
+ }
373
+ adapter._groupLayers[groupLayer.id] = groupLayer
374
+ map.allLayers = { items: [groupLayer, baseLayer] }
375
+ map.reorder = jest.fn()
376
+
377
+ adapter._reorderLayers()
378
+
379
+ expect(groupLayer.reorder).toHaveBeenNthCalledWith(1, roads, 0)
380
+ expect(groupLayer.reorder).toHaveBeenNthCalledWith(2, schools, 1)
381
+ expect(groupLayer.reorder).toHaveBeenNthCalledWith(3, sketch, 2)
382
+ })
383
+
384
+ it('Copes when a groupLayer has no items', () => {
385
+ datasetRegistry._orderedDatasets = ['roads', 'schools']
386
+ const baseLayer = { id: 'baseLayer' }
387
+ const groupLayer = {
388
+ id: 'group-1',
389
+ type: 'group',
390
+ reorder: jest.fn()
391
+ }
392
+ adapter._groupLayers[groupLayer.id] = groupLayer
393
+ map.allLayers = { items: [groupLayer, baseLayer] }
307
394
  map.reorder = jest.fn()
308
395
 
309
396
  adapter._reorderLayers()
310
397
 
311
- expect(map.reorder).toHaveBeenCalledWith(sketchLayer, 2)
312
- expect(map.reorder).not.toHaveBeenCalledWith(normalLayer, expect.anything())
398
+ expect(groupLayer.reorder).not.toHaveBeenCalled()
313
399
  })
314
400
  })
315
401
 
@@ -212,12 +212,12 @@ describe('MapLibreDataset', () => {
212
212
 
213
213
  it('returns a tiles-based id for a tile dataset (array tiles)', () => {
214
214
  const dataset = datasetRegistry.getDataset('existing-fields')
215
- expect(dataset.sourceId).toBe('tiles-3delfuv')
215
+ expect(dataset.sourceId).toBe('tiles-35m5lrb')
216
216
  })
217
217
 
218
218
  it('returns a tiles-based id when tiles is a plain string (line 76 non-array branch)', () => {
219
219
  const dataset = datasetRegistry.getDataset('existing-fields')
220
- expect(dataset.sourceId).toBe('tiles-3delfuv')
220
+ expect(dataset.sourceId).toBe('tiles-35m5lrb')
221
221
  })
222
222
 
223
223
  it('returns geojson-dynamic-{id} for a dynamic geojson source', () => {
@@ -242,7 +242,7 @@ describe('MapLibreDataset', () => {
242
242
  it('returns a vector source for a tile dataset', () => {
243
243
  expect(datasetRegistry.getDataset('existing-fields').source).toEqual({
244
244
  type: 'vector',
245
- tiles: 'https://farming-tiles-702a60f45633.herokuapp.com/field_parcels_with_hedges/{z}/{x}/{y}',
245
+ tiles: 'https://farming-tiles-702a60f45633.herokuapp.com/field_parcels_with_hedges_wgs84/{z}/{x}/{y}',
246
246
  minzoom: 10,
247
247
  maxzoom: 24
248
248
  })
@@ -395,8 +395,8 @@ describe('MapLibreDataset', () => {
395
395
  expect(datasetRegistry.getDataset('existing-fields').getFillSource({})).toEqual({
396
396
  id: 'existing-fields',
397
397
  type: 'fill',
398
- source: 'tiles-3delfuv',
399
- 'source-layer': 'field_parcels_filtered',
398
+ source: 'tiles-35m5lrb',
399
+ 'source-layer': 'field_parcels_wgs84',
400
400
  minzoom: 10,
401
401
  maxzoom: 24,
402
402
  layout: { visibility: 'visible' },
@@ -413,7 +413,7 @@ describe('MapLibreDataset', () => {
413
413
  .toEqual({
414
414
  id: 'hedge-control',
415
415
  type: 'line',
416
- source: 'tiles-3delfuv',
416
+ source: 'tiles-35m5lrb',
417
417
  'source-layer': 'hedge_control',
418
418
  minzoom: 10,
419
419
  maxzoom: 24,
@@ -428,8 +428,8 @@ describe('MapLibreDataset', () => {
428
428
  .toEqual({
429
429
  id: 'existing-fields-stroke',
430
430
  type: 'line',
431
- source: 'tiles-3delfuv',
432
- 'source-layer': 'field_parcels_filtered',
431
+ source: 'tiles-35m5lrb',
432
+ 'source-layer': 'field_parcels_wgs84',
433
433
  minzoom: 10,
434
434
  maxzoom: 24,
435
435
  layout: { visibility: 'visible' },
@@ -101,8 +101,8 @@ export const datasets = [
101
101
  id: 'existing-fields', // NOSONAR
102
102
  label: 'Existing fields',
103
103
  filter: ['all', ['==', ['get', 'sbi'], '106223377'], ['==', ['get', 'is_dominant_land_cover'], true]],
104
- tiles: 'https://farming-tiles-702a60f45633.herokuapp.com/field_parcels_with_hedges/{z}/{x}/{y}',
105
- sourceLayer: 'field_parcels_filtered',
104
+ tiles: 'https://farming-tiles-702a60f45633.herokuapp.com/field_parcels_with_hedges_wgs84/{z}/{x}/{y}',
105
+ sourceLayer: 'field_parcels_wgs84',
106
106
  minZoom: 10,
107
107
  maxZoom: 24,
108
108
  showInKey: true,
@@ -158,7 +158,7 @@ export const datasets = [
158
158
  }, {
159
159
  id: 'hedge-control', // NOSONAR
160
160
  label: 'Hedge control',
161
- tiles: ['https://farming-tiles-702a60f45633.herokuapp.com/field_parcels_with_hedges/{z}/{x}/{y}'],
161
+ tiles: ['https://farming-tiles-702a60f45633.herokuapp.com/field_parcels_with_hedges_wgs84/{z}/{x}/{y}'],
162
162
  sourceLayer: 'hedge_control',
163
163
  minZoom: 10,
164
164
  maxZoom: 24,
@@ -1 +1 @@
1
- import{useState as e,useEffect as t,useRef as r}from"preact/compat";import{jsx as o,jsxs as n}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import l from"@babel/runtime/helpers/asyncToGenerator";var a=null,c=e=>a=e,s={"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="{{foregroundColor}}"/>',"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="{{foregroundColor}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foregroundColor}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foregroundColor}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foregroundColor}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>'},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},u=(e,t,r)=>e.replace(/\{\{foregroundColor\}\}/g,t||"black").replace(/\{\{backgroundColor\}\}/g,r),f=new Map,y={register(e,t){f.set(e,{id:e,svgContent:t})},get:e=>f.get(e),list:()=>[...f.values()],clear(){f.clear()},initialise(){Object.entries(s).forEach(e=>{var[t,r]=e;this.register(t,r)})},getPatternInnerContent(e){return e.fillPatternSvgContent?e.fillPatternSvgContent:e.fillPattern&&null!==(t=null===(r=this.get(e.fillPattern))||void 0===r?void 0:r.svgContent)&&void 0!==t?t:null;var t,r},getKeyPatternPaths(e,t){var r=this.getPatternInnerContent(e);if(!r)return null;var o=p(e.fillPatternForegroundColor,t)||"black",n=p(e.fillPatternBackgroundColor,t)||"transparent",i=p(e.stroke,t)||o;return{border:u('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',i,n),content:u(r,o,n)}},getPatternImageId(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=this.getPatternInnerContent(e);if(!o)return null;var n=p(e.fillPatternForegroundColor,t)||"black",i=p(e.fillPatternBackgroundColor,t)||"transparent",l=(e=>Math.max(2,2*e))(r);return"pattern-".concat((e=>{var t=0;for(var r of e)t=Math.trunc((t<<5)-t+r.codePointAt(0));return Math.abs(t).toString(36)})(o+n+i),"-").concat(l,"x")}};y.initialise();var d={symbol:"pin",backgroundColor:"#ca3535",foregroundColor:"#ffffff"},g={dot:"M8 3c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z",cross:"M6 3H10V6H13V10H10V13H6V10H3V6H6Z",diamond:"M8 2L14 8L8 14L2 8Z",triangle:"M8 2L14 14H2Z",square:"M3 3H13V13H3Z"},h={id:"pin",viewBox:"0 0 44 44",anchor:[.5,.9],graphic:g.dot,svg:'<path d="M22 40.999c-3.621 0-8.306-5.864-10.258-8.3C9.02 29.302 6 23.66 6 19.002a16.01 16.01 0 0 1 16-16 16.01 16.01 0 0 1 16 16c0 4.658-3.02 10.3-5.742 13.697-1.952 2.437-6.637 8.3-10.258 8.3z" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M22 7.001a12.01 12.01 0 0 1 12 12c0 7.623-10.377 17.998-12 17.998S10 26.624 10 19.001a12.01 12.01 0 0 1 12-12z" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 19) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},v={id:"circle",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:g.dot,svg:'<circle cx="22" cy="22" r="16" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <circle cx="22" cy="22" r="12" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},m={id:"square",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:g.dot,svg:'<path d="M13 6h18c3.863 0 7 3.137 7 7v18c0 3.863-3.137 7-7 7H13c-3.863 0-7-3.137-7-7V13c0-3.863 3.137-7 7-7" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M13 34a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3v18a3 3 0 0 1-3 3H13z" fill-rule="nonzero" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},b=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),O=e=>{if(!(e=>!(!e.symbol&&!e.symbolSvgContent))(e))return{};var t={};return b.forEach(r=>{if(null!=e[r]){var o=r.charAt(6).toLowerCase()+r.slice(7);t[o]=e[r]}}),t},j=(e,t)=>{var r;return e.symbolViewBox?e.symbolViewBox:null!==(r=null==t?void 0:t.viewBox)&&void 0!==r?r:"0 0 38 38"},k={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}};function w(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?w(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var S=new Map,D=new Map,C={},M=e=>{var t=0;for(var r of e)t=Math.trunc((t<<5)-t+r.codePointAt(0));return Math.abs(t).toString(36)},E=new Set(["id","svg","viewBox","anchor","symbol","symbolSvgContent"]);function I(e,t,r){var o,n,i,l,a=null==r?void 0:r.id,c=Object.fromEntries(Object.entries(e||{}).filter(e=>{var[t]=e;return!E.has(t)})),s=Object.fromEntries(Object.entries(C).filter(e=>{var[t]=e;return!E.has(t)})),u=Object.fromEntries(Object.entries(t).filter(e=>{var[,t]=e;return null!=t})),f=P(P(P(P({},d),s),c),u),y=null!==(o=k[null==r?void 0:r.mapColorScheme])&&void 0!==o?o:k.light;return f.haloColor=null!==(n=null==r?void 0:r.haloColor)&&void 0!==n?n:y.haloColor,f.selectedColor=null!==(i=null==r?void 0:r.selectedColor)&&void 0!==i?i:y.selectedColor,f.activeColor=null!==(l=null==r?void 0:r.activeColor)&&void 0!==l?l:y.activeColor,"string"==typeof f.graphic&&g[f.graphic]&&(f.graphic=g[f.graphic]),Object.fromEntries(Object.entries(f).map(e=>{var[t,r]=e;return[t,p(r,a)||""]}))}function x(e,t){return Object.entries(t).reduce((e,t)=>{var[r,o]=t;return e.replaceAll("{{".concat(r,"}}"),o)},e)}var L={setDefaults(e){C=e||{}},getDefaults:()=>P(P({},d),C),register(e){S.set(e.id,e)},get:e=>S.get(e),list:()=>[...S.values()],clear(){S.clear()},initialise(){this.register(h),this.register(v),this.register(m)},resolve(e,t,r){var o=I(e,t||{},r);return e?(o.selectedColor="none",o.activeColor="none",x(e.svg,o)):""},resolveActive(e,t,r){var o=I(e,t||{},r);return e?x(e.svg,o):""},resolveSelected(e,t,r){var o=I(e,t||{},r);return e?(o.activeColor="none",x(e.svg,o)):""},getSymbolImageId(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,n=this.getSymbolDef(e);if(!n)return null;var i=O(e),l=r?this.resolveActive(n,i,t):this.resolve(n,i,t);return"symbol-".concat(r?"act-":"").concat(M(l),"-").concat(o,"x")},getSymbolDef(e){return e.symbolSvgContent?{svg:e.symbolSvgContent}:e.symbol?this.get(e.symbol):void 0},rasteriseSymbolImage(e,t,r,o){var n=this;return l(function*(){var i=n.getSymbolDef(e);if(!i)return null;var l,a,c=O(e);"active"===r?(l=n.resolveActive(i,c,t),a="act-"):"selected"===r?(l=n.resolveSelected(i,c,t),a="sel-"):(l=n.resolve(i,c,t),a="");var s="symbol-".concat(a).concat(M(l),"-").concat(o,"x"),p=D.get(s);if(!p){var u=j(e,i),[,,f,y]=u.split(" ").map(Number),d='<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(f*o,'" height="').concat(y*o,'" viewBox="').concat(u,'">').concat(l,"</svg>");p=yield((e,t,r)=>new Promise((o,n)=>{var i="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(e)),l=new Image(t,r);l.onload=()=>{var e=document.createElement("canvas");e.width=t,e.height=r;var n=e.getContext("2d");n.drawImage(l,0,0,t,r),o(n.getImageData(0,0,t,r))},l.onerror=()=>{n(new Error("Failed to rasterise SVG: ".concat(e.slice(0,80))))},l.src=i}))(d,f*o,y*o),D.set(s,p)}return{imageId:s,imageData:p}})()}};function _(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}L.initialise();var H={},V=null,A=[],K=()=>{var e;if(null===(e=H)||void 0===e||!e.current)return[];if(V===H.current)return A;V=H.current;var{groups:t=[],keyDefinitions:r=[]}=H.current;return A=t.map(e=>"flat"===e.type?z(z({},e),{},{keyDefinition:r.find(t=>t.id===e.id)}):z(z({},e),{},{keyDefinitions:r.filter(t=>t.groupId===e.id)}))},B=e=>{var{text:t}=e;return o("div",{className:"im-c-map-key",children:o("p",{className:"im-c-map-key__empty-message",children:t})})};function N(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function G(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?N(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var T=20,R={xmlns:"http://www.w3.org/2000/svg",width:T,height:T,viewBox:"0 0 ".concat(T," ").concat(T),className:"im-c-map-key-symbol","aria-hidden":"true",focusable:"false"},W=G(G({},R),{},{width:44,height:44,className:"im-c-map-key-symbol im-c-map-key-symbol--point"});function Y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function q(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){i(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{keyDefinition:t,mapStyle:r}=e,{style:i}=t,l=y.getKeyPatternPaths(i,r.id);return l?n("svg",q(q({},R),{},{children:[o("g",{dangerouslySetInnerHTML:{__html:l.border}}),o("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:l.content}})]})):null};function Z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Z(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var J=e=>{var t,{keyDefinition:r,mapStyle:n,symbolDef:i}=e,{style:l}=r,a=null!==(t=null==n?void 0:n.appColorScheme)&&void 0!==t?t:"light",c=U(U({},n),{},{mapColorScheme:a}),s=L.resolve(i,O(l),c),p=j(l,i);return s&&p?o("svg",U(U({},W),{},{viewBox:p,children:o("g",{dangerouslySetInnerHTML:{__html:s}})})):null};function Q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function X(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Q(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var $=e=>{var{mapStyle:t,keyDefinition:r}=e,{style:n}=r,i=n.strokeWidth,l=p(n.stroke,t.id);return o("svg",X(X({},R),{},{children:o("line",{x1:i/2,y1:10,x2:T-i/2,y2:10,stroke:l,strokeWidth:i,strokeLinecap:"round"})}))};function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function te(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var re=e=>{var{mapStyle:t,keyDefinition:r}=e,{style:n}=r,i=n.strokeWidth,l=p(n.fill,t.id),a=p(n.stroke,t.id);return o("svg",te(te({},R),{},{children:o("rect",{x:i/2,y:i/2,width:T-i,height:T-i,rx:i,ry:i,fill:l,stroke:a,strokeWidth:i,strokeLinejoin:"round"})}))},oe=e=>{var{mapStyle:t,keyDefinition:r}=e,{style:n}=r,i=p(n.fill,t.id),l=p(n.fill,t.id);return o("svg",{viewBox:"0 0 5 5",preserveAspectRatio:"none",fill:i,stroke:l,strokeWidth:"1",children:o("path",{d:"M0 0h5v5H0z"})})},ne="horizontal-ramp",ie=e=>{var{keyDefinition:t,groupStyle:r,mapStyle:n}=e,{symbolShape:i,symbolDef:l}=((e,t)=>{if(!e)return{symbolShape:null,symbolDef:null};var{hasSymbol:r,hasPattern:o,style:n}=e;if(t===ne)return{symbolShape:ne,symbolDef:null};if(r){var i=L.getSymbolDef(n);return{symbolShape:i?"symbol":"rect",symbolDef:i}}return o?{symbolShape:"pattern",symbolDef:null}:"line"===n.keySymbolShape?{symbolShape:"line",symbolDef:null}:{symbolShape:"rect",symbolDef:null}})(t,r);return i?"symbol"===i?o(J,{mapStyle:n,keyDefinition:t,symbolDef:l}):o("pattern"===i?F:"line"===i?$:i===ne?oe:re,{mapStyle:n,keyDefinition:t}):null},le=e=>{var{keyDefinition:t,groupStyle:r,mapStyle:i}=e,l=t.label,a=p(t.symbolDescription,i.id);return n("div",{className:"im-c-map-key-list__item",children:[o("dt",{className:"im-c-map-key-list__item-symbol",children:o(ie,{keyDefinition:t,groupStyle:r,mapStyle:i})}),n("dd",{className:"im-c-map-key-list__item-label",children:[l,a&&n("span",{className:"govuk-visually-hidden",children:["(",a,")"]})]})]})},ae=e=>{var{headingId:t,label:r,groupStyle:i,keyDefinitions:l,mapStyle:a}=e,c="im-c-map-key-list"+(i?" im-c-map-key-list-".concat(i):"");return n("section",{className:"im-c-map-key__group","aria-labelledby":t,children:[o("h3",{id:t,className:"im-c-map-key__group-heading",children:r}),o("dl",{className:c,children:l.map(e=>o(le,{keyDefinition:e,mapStyle:a,groupStyle:i},"".concat(e.id)))})]})},ce="im-c-map-key",se=e=>{var{item:t,groupStyle:r,mapStyle:n}=e;return"group"===t.type?o(ae,{headingId:"key-heading-".concat(t.id),label:t.groupLabel,groupStyle:r,keyDefinitions:t.keyDefinitions,mapStyle:n}):o(le,{keyDefinition:t.keyDefinition,mapStyle:n})},pe=e=>{var{noKeyItemText:t,keyGroups:r,hasGroups:n,mapStyle:i}=e;if(null==r||!r.length)return o(B,{text:t});var l=n?"".concat(ce," ").concat("im-c-map-key--has-groups"):ce;return o("div",{className:l,children:r.map(e=>o(se,{item:e,mapStyle:i,groupStyle:e.groupStyle},e.id))})};function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function fe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ue(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ue(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ye(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ge={InitComponent:function(e){var{pluginConfig:o,pluginState:n,mapState:i,services:l}=e,{dispatch:a}=n,{eventBus:s}=l,p=r(n);p.current=n,t(()=>{i.isMapReady&&((e=>{H=e})(p),s.requestOnce("datasets:registry",c))},[i.isMapReady]),t(()=>{if(o.groups){var e=Object.entries(o.groups).map(e=>{var[t,r]=e;return fe(fe({},r),{},{id:t,label:r.groupLabel})});a({type:"ADD_KEY_GROUPS",payload:e})}},[o.groups])},reducer:{initialState:{keyDefinitions:[],groups:[]},actions:{ADD_KEY_ITEM:(e,t)=>{var r,{id:o,groupLabel:n}=t,i=t.groupId||((r=n)?r.toLowerCase().replace(/\s+/g,"-"):null),l=((e,t,r)=>e.groups.find(e=>"group"===e.type&&e.id===r||"flat"===e.type&&e.id===t))(e,o,i),a=l?null:((e,t,r)=>t?{id:t,type:"group",groupLabel:r}:{id:e,type:"flat"})(o,i,n),c=a?[...e.groups,a]:e.groups,s=[...e.keyDefinitions,de(de({},t),{},{type:"manual"},i?{groupId:i}:{})];return de(de({},e),{},{keyDefinitions:s,groups:c})},REMOVE_KEY_ITEM:(e,t)=>{var{id:r}=t;return de(de({},e),{},{keyDefinitions:e.keyDefinitions.filter(e=>e.id!==r)})},ADD_KEY_GROUPS:(e,t)=>de(de({},e),{},{groups:[...e.groups,...t]})}},panels:[{id:"mapKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(r){var{mapState:{mapStyle:n},pluginConfig:{noKeyItemText:i},pluginState:l,services:{eventBus:c}}=r,[s,p]=e(a),[u,f]=e(()=>{var e;return null!==(e=null==s?void 0:s.keyItems().items)&&void 0!==e?e:[]}),[y,d]=e(()=>{var e;return null!==(e=null==s?void 0:s.keyItems().hasGroups)&&void 0!==e&&e}),g=()=>{var{items:e,hasGroups:t}=s.keyItems(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[...K()];return 0===t.length?e:[...e.map(e=>{var r=t.findIndex(t=>t.id===e.id);if(-1===r)return e;var o=t.splice(r,1)[0];return z(z(z({},e),o),{},{keyDefinitions:[...o.keyDefinitions||[],...e.keyDefinitions||[]]})}),...t].filter(e=>{var t;return"flat"===e.type&&e.keyDefinition||"group"===e.type&&(null===(t=e.keyDefinitions)||void 0===t?void 0:t.length)})}(e);f(r),d(t)},h=e=>{s.invalidateKeyItemsOnMenuStateChange(e),g()};return t(()=>s?(g(),c.on("menu:changed",h).on("datasets:changed",g),()=>c.off("menu:changed",h).off("datasets:changed",g)):(c.requestOnce("datasets:registry",p),()=>{}),[s]),t(()=>{s&&g()},[l]),o(pe,{noKeyItemText:i,keyGroups:u,hasGroups:y,mapStyle:n})}}],buttons:[{id:"mapKey",panelId:"mapKey",label:"Key",iconId:"key",mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{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:{addKeyItem:(e,t)=>{var{pluginState:{dispatch:r}}=e;r({type:"ADD_KEY_ITEM",payload:t})},removeKeyItem:(e,t)=>{var{pluginState:{dispatch:r}}=e;r({type:"REMOVE_KEY_ITEM",payload:t})}}};export{ge as manifest};
1
+ import{useState as e,useEffect as t,useRef as r}from"preact/compat";import{jsx as o,jsxs as n}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/defineProperty";import l from"@babel/runtime/helpers/asyncToGenerator";var a=null,c=e=>a=e,s={"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="{{foregroundColor}}"/>',"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="{{foregroundColor}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foregroundColor}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foregroundColor}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foregroundColor}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>'},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},u=(e,t,r)=>e.replace(/\{\{foregroundColor\}\}/g,t||"black").replace(/\{\{backgroundColor\}\}/g,r),f=new Map,y={register(e,t){f.set(e,{id:e,svgContent:t})},get:e=>f.get(e),list:()=>[...f.values()],clear(){f.clear()},initialise(){Object.entries(s).forEach(e=>{var[t,r]=e;this.register(t,r)})},getPatternInnerContent(e){return e.fillPatternSvgContent?e.fillPatternSvgContent:e.fillPattern&&null!==(t=null===(r=this.get(e.fillPattern))||void 0===r?void 0:r.svgContent)&&void 0!==t?t:null;var t,r},getKeyPatternPaths(e,t){var r=this.getPatternInnerContent(e);if(!r)return null;var o=p(e.fillPatternForegroundColor,t)||"black",n=p(e.fillPatternBackgroundColor,t)||"transparent",i=p(e.stroke,t)||o;return{border:u('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',i,n),content:u(r,o,n)}},getPatternImageId(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=this.getPatternInnerContent(e);if(!o)return null;var n=p(e.fillPatternForegroundColor,t)||"black",i=p(e.fillPatternBackgroundColor,t)||"transparent",l=(e=>Math.max(2,2*e))(r);return"pattern-".concat((e=>{var t=0;for(var r of e)t=Math.trunc((t<<5)-t+r.codePointAt(0));return Math.abs(t).toString(36)})(o+n+i),"-").concat(l,"x")}};y.initialise();var d={symbol:"pin",backgroundColor:"#ca3535",foregroundColor:"#ffffff"},g={dot:"M8 3c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z",cross:"M6 3H10V6H13V10H10V13H6V10H3V6H6Z",diamond:"M8 2L14 8L8 14L2 8Z",triangle:"M8 2L14 14H2Z",square:"M3 3H13V13H3Z"},h={id:"pin",viewBox:"0 0 44 44",anchor:[.5,.9],graphic:g.dot,svg:'<path d="M22 40.999c-3.621 0-8.306-5.864-10.258-8.3C9.02 29.302 6 23.66 6 19.002a16.01 16.01 0 0 1 16-16 16.01 16.01 0 0 1 16 16c0 4.658-3.02 10.3-5.742 13.697-1.952 2.437-6.637 8.3-10.258 8.3z" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M22 7.001a12.01 12.01 0 0 1 12 12c0 7.623-10.377 17.998-12 17.998S10 26.624 10 19.001a12.01 12.01 0 0 1 12-12z" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 19) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},v={id:"circle",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:g.dot,svg:'<circle cx="22" cy="22" r="16" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <circle cx="22" cy="22" r="12" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},m={id:"square",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:g.dot,svg:'<path d="M13 6h18c3.863 0 7 3.137 7 7v18c0 3.863-3.137 7-7 7H13c-3.863 0-7-3.137-7-7V13c0-3.863 3.137-7 7-7" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M13 34a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3v18a3 3 0 0 1-3 3H13z" fill-rule="nonzero" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},b=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),O=e=>{if(!(e=>!(!e.symbol&&!e.symbolSvgContent))(e))return{};var t={};return b.forEach(r=>{if(null!=e[r]){var o=r.charAt(6).toLowerCase()+r.slice(7);t[o]=e[r]}}),t},j=(e,t)=>{var r;return e.symbolViewBox?e.symbolViewBox:null!==(r=null==t?void 0:t.viewBox)&&void 0!==r?r:"0 0 38 38"},k={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}};function w(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?w(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var P=new Map,D=new Map,C={},M=e=>{var t=0;for(var r of e)t=Math.trunc((t<<5)-t+r.codePointAt(0));return Math.abs(t).toString(36)},L=new Set(["id","svg","viewBox","anchor","symbol","symbolSvgContent"]);function E(e,t,r){var o,n,i,l,a=null==r?void 0:r.id,c=Object.fromEntries(Object.entries(e||{}).filter(e=>{var[t]=e;return!L.has(t)})),s=Object.fromEntries(Object.entries(C).filter(e=>{var[t]=e;return!L.has(t)})),u=Object.fromEntries(Object.entries(t).filter(e=>{var[,t]=e;return null!=t})),f=S(S(S(S({},d),s),c),u),y=null!==(o=k[null==r?void 0:r.mapColorScheme])&&void 0!==o?o:k.light;return f.haloColor=null!==(n=null==r?void 0:r.haloColor)&&void 0!==n?n:y.haloColor,f.selectedColor=null!==(i=null==r?void 0:r.selectedColor)&&void 0!==i?i:y.selectedColor,f.activeColor=null!==(l=null==r?void 0:r.activeColor)&&void 0!==l?l:y.activeColor,"string"==typeof f.graphic&&g[f.graphic]&&(f.graphic=g[f.graphic]),Object.fromEntries(Object.entries(f).map(e=>{var[t,r]=e;return[t,p(r,a)||""]}))}function x(e,t){return Object.entries(t).reduce((e,t)=>{var[r,o]=t;return e.replaceAll("{{".concat(r,"}}"),o)},e)}var I={setDefaults(e){C=e||{}},getDefaults:()=>S(S({},d),C),register(e){P.set(e.id,e)},get:e=>P.get(e),list:()=>[...P.values()],clear(){P.clear()},initialise(){this.register(h),this.register(v),this.register(m)},resolve(e,t,r){var o=E(e,t||{},r);return e?(o.selectedColor="none",o.activeColor="none",x(e.svg,o)):""},resolveActive(e,t,r){var o=E(e,t||{},r);return e?x(e.svg,o):""},resolveSelected(e,t,r){var o=E(e,t||{},r);return e?(o.activeColor="none",x(e.svg,o)):""},getSymbolImageId(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,n=this.getSymbolDef(e);if(!n)return null;var i=O(e),l=r?this.resolveActive(n,i,t):this.resolve(n,i,t);return"symbol-".concat(r?"act-":"").concat(M(l),"-").concat(o,"x")},getSymbolDef(e){return e.symbolSvgContent?{svg:e.symbolSvgContent}:e.symbol?this.get(e.symbol):void 0},rasteriseSymbolImage(e,t,r,o){var n=this;return l(function*(){var i=n.getSymbolDef(e);if(!i)return null;var l,a,c=O(e);"active"===r?(l=n.resolveActive(i,c,t),a="act-"):"selected"===r?(l=n.resolveSelected(i,c,t),a="sel-"):(l=n.resolve(i,c,t),a="");var s="symbol-".concat(a).concat(M(l),"-").concat(o,"x"),p=D.get(s);if(!p){var u=j(e,i),[,,f,y]=u.split(" ").map(Number),d='<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(f*o,'" height="').concat(y*o,'" viewBox="').concat(u,'">').concat(l,"</svg>");p=yield((e,t,r)=>new Promise((o,n)=>{var i="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(e)),l=new Image(t,r);l.onload=()=>{var e=document.createElement("canvas");e.width=t,e.height=r;var n=e.getContext("2d");n.drawImage(l,0,0,t,r),o(n.getImageData(0,0,t,r))},l.onerror=()=>{n(new Error("Failed to rasterise SVG: ".concat(e.slice(0,80))))},l.src=i}))(d,f*o,y*o),D.set(s,p)}return{imageId:s,imageData:p}})()}};function _(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}I.initialise();var H={},V=null,B=[],A=()=>{var e;if(null===(e=H)||void 0===e||!e.current)return[];if(V===H.current)return B;V=H.current;var{groups:t=[],keyDefinitions:r=[]}=H.current;return B=t.map(e=>"flat"===e.type?z(z({},e),{},{keyDefinition:r.find(t=>t.id===e.id)}):z(z({},e),{},{keyDefinitions:r.filter(t=>t.groupId===e.id)}))},K=e=>{var{text:t}=e;return o("div",{className:"im-c-map-key",children:o("p",{className:"im-c-map-key__empty-message",children:t})})};function N(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function G(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?N(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var Y=20,R={xmlns:"http://www.w3.org/2000/svg",width:Y,height:Y,viewBox:"0 0 ".concat(Y," ").concat(Y),className:"im-c-map-key-symbol","aria-hidden":"true",focusable:"false"},T=G(G({},R),{},{width:44,height:44,className:"im-c-map-key-symbol im-c-map-key-symbol--point"});function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?W(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):W(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var F=e=>{var{keyDefinition:t,mapStyle:r}=e,{style:i}=t,l=y.getKeyPatternPaths(i,r.id);return l?n("svg",q(q({},R),{},{children:[o("g",{dangerouslySetInnerHTML:{__html:l.border}}),o("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:l.content}})]})):null};function Z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Z(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var J=e=>{var t,{keyDefinition:r,mapStyle:n,symbolDef:i}=e,{style:l}=r,a=null!==(t=null==n?void 0:n.appColorScheme)&&void 0!==t?t:"light",c=U(U({},n),{},{mapColorScheme:a}),s=I.resolve(i,O(l),c),p=j(l,i);return s&&p?o("svg",U(U({},T),{},{viewBox:p,children:o("g",{dangerouslySetInnerHTML:{__html:s}})})):null};function Q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function X(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Q(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var $=e=>{var{mapStyle:t,keyDefinition:r}=e,{style:n}=r,i=n.strokeWidth,l=p(n.stroke,t.id);return o("svg",X(X({},R),{},{children:o("line",{x1:i/2,y1:10,x2:Y-i/2,y2:10,stroke:l,strokeWidth:i,strokeLinecap:"round"})}))};function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function te(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var re=e=>{var{mapStyle:t,keyDefinition:r}=e,{style:n}=r,i=n.strokeWidth,l=p(n.fill,t.id),a=p(n.stroke,t.id);return o("svg",te(te({},R),{},{children:o("rect",{x:i/2,y:i/2,width:Y-i,height:Y-i,rx:i,ry:i,fill:l,stroke:a,strokeWidth:i,strokeLinejoin:"round"})}))},oe=e=>{var{mapStyle:t,keyDefinition:r}=e,{style:n}=r,i=p(n.fill,t.id),l=p(n.fill,t.id);return o("svg",{viewBox:"0 0 5 5",preserveAspectRatio:"none",fill:i,stroke:l,strokeWidth:"1",children:o("path",{d:"M0 0h5v5H0z"})})},ne="horizontal-ramp",ie=e=>{var{keyDefinition:t,groupStyle:r,mapStyle:n}=e,{symbolShape:i,symbolDef:l}=((e,t)=>{if(!e)return{symbolShape:null,symbolDef:null};var{hasSymbol:r,hasPattern:o,style:n}=e;if(t===ne)return{symbolShape:ne,symbolDef:null};if(r){var i=I.getSymbolDef(n);return{symbolShape:i?"symbol":"rect",symbolDef:i}}return o?{symbolShape:"pattern",symbolDef:null}:"line"===n.keySymbolShape?{symbolShape:"line",symbolDef:null}:{symbolShape:"rect",symbolDef:null}})(t,r);return i?"symbol"===i?o(J,{mapStyle:n,keyDefinition:t,symbolDef:l}):o("pattern"===i?F:"line"===i?$:i===ne?oe:re,{mapStyle:n,keyDefinition:t}):null},le=e=>{var{keyDefinition:t,groupStyle:r,mapStyle:i}=e,l=t.label,a=p(t.symbolDescription,i.id);return n("div",{className:"im-c-map-key-list__item",children:[o("dt",{className:"im-c-map-key-list__item-symbol",children:o(ie,{keyDefinition:t,groupStyle:r,mapStyle:i})}),n("dd",{className:"im-c-map-key-list__item-label",children:[l,a&&n("span",{className:"govuk-visually-hidden",children:["(",a,")"]})]})]})},ae=e=>{var{headingId:t,label:r,groupStyle:i,keyDefinitions:l,mapStyle:a}=e,c="im-c-map-key-list"+(i?" im-c-map-key-list-".concat(i):"");return n("section",{className:"im-c-map-key__group","aria-labelledby":t,children:[o("h3",{id:t,className:"im-c-map-key__group-heading",children:r}),o("dl",{className:c,children:l.map(e=>o(le,{keyDefinition:e,mapStyle:a,groupStyle:i},"".concat(e.id)))})]})},ce="im-c-map-key",se=e=>{var{item:t,groupStyle:r,mapStyle:n}=e;return"group"===t.type?o(ae,{headingId:"key-heading-".concat(t.id),label:t.groupLabel,groupStyle:r,keyDefinitions:t.keyDefinitions,mapStyle:n}):o(le,{keyDefinition:t.keyDefinition,mapStyle:n})},pe=e=>{var{noKeyItemText:t,keyGroups:r,hasGroups:n,mapStyle:i}=e;if(null==r||!r.length)return o(K,{text:t});var l=n?"".concat(ce," ").concat("im-c-map-key--has-groups"):ce;return o("div",{className:l,children:r.map(e=>o(se,{item:e,mapStyle:i,groupStyle:e.groupStyle},e.id))})};function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function fe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ue(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ue(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,o)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ye(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ge={InitComponent:function(e){var{pluginConfig:o,pluginState:n,mapState:i,services:l}=e,{dispatch:a}=n,{eventBus:s}=l,p=r(n);p.current=n,t(()=>{i.isMapReady&&((e=>{H=e})(p),s.requestOnce("datasets:registry",c),s.emit("map-key:ready"))},[i.isMapReady]),t(()=>{if(o.groups){var e=Object.entries(o.groups).map(e=>{var[t,r]=e;return fe(fe({},r),{},{id:t,label:r.groupLabel})});a({type:"ADD_KEY_GROUPS",payload:e})}},[o.groups])},reducer:{initialState:{keyDefinitions:[],groups:[]},actions:{ADD_KEY_SYMBOL:(e,t)=>{var r,{id:o,groupLabel:n}=t,i=t.groupId||((r=n)?r.toLowerCase().replace(/\s+/g,"-"):null),l=((e,t,r)=>e.groups.find(e=>"group"===e.type&&e.id===r||"flat"===e.type&&e.id===t))(e,o,i),a=l?null:((e,t,r)=>t?{id:t,type:"group",groupLabel:r}:{id:e,type:"flat"})(o,i,n),c=a?[...e.groups,a]:e.groups,s=[...e.keyDefinitions,de(de({},t),{},{type:"manual"},i?{groupId:i}:{})];return de(de({},e),{},{keyDefinitions:s,groups:c})},REMOVE_KEY_SYMBOL:(e,t)=>{var{id:r}=t;return de(de({},e),{},{keyDefinitions:e.keyDefinitions.filter(e=>e.id!==r)})},ADD_KEY_GROUPS:(e,t)=>de(de({},e),{},{groups:[...e.groups,...t]})}},panels:[{id:"mapKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(r){var{mapState:{mapStyle:n},pluginConfig:{noKeyItemText:i},pluginState:l,services:{eventBus:c}}=r,[s,p]=e(a),[u,f]=e(()=>{var e;return null!==(e=null==s?void 0:s.keyItems().items)&&void 0!==e?e:[]}),[y,d]=e(()=>{var e;return null!==(e=null==s?void 0:s.keyItems().hasGroups)&&void 0!==e&&e}),g=()=>{var{items:e,hasGroups:t}=s.keyItems(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[...A()];return 0===t.length?e:[...e.map(e=>{var r=t.findIndex(t=>t.id===e.id);if(-1===r)return e;var o=t.splice(r,1)[0];return z(z(z({},e),o),{},{keyDefinitions:[...o.keyDefinitions||[],...e.keyDefinitions||[]]})}),...t].filter(e=>{var t;return"flat"===e.type&&e.keyDefinition||"group"===e.type&&(null===(t=e.keyDefinitions)||void 0===t?void 0:t.length)})}(e);f(r),d(t)},h=e=>{s.invalidateKeyItemsOnMenuStateChange(e),g()};return t(()=>s?(g(),c.on("menu:changed",h).on("datasets:changed",g),()=>c.off("menu:changed",h).off("datasets:changed",g)):(c.requestOnce("datasets:registry",p),()=>{}),[s]),t(()=>{s&&g()},[l]),o(pe,{noKeyItemText:i,keyGroups:u,hasGroups:y,mapStyle:n})}}],buttons:[{id:"mapKey",panelId:"mapKey",label:"Key",iconId:"key",mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{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:{addSymbol:(e,t)=>{var{pluginState:{dispatch:r}}=e;r({type:"ADD_KEY_SYMBOL",payload:t})},removeSymbol:(e,t)=>{var{pluginState:{dispatch:r}}=e;r({type:"REMOVE_KEY_SYMBOL",payload:t})}}};export{ge as manifest};
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see im-map-key-plugin.js.LICENSE.txt */
2
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[414],{935(t,r,e){e.r(r),e.d(r,{manifest:()=>Yt});var n=e(738),o=null,i=function(t){return o=t};function a(t){return a="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},a(t)}function l(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,r){if(t){if("string"==typeof t)return u(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?u(t,r):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 u(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function c(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function f(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?c(Object(e),!0).forEach(function(r){s(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):c(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function s(t,r,e){return(r=function(t){var r=function(t){if("object"!=a(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=a(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==a(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var y={},p=null,b=[],m=e(287),v=function(t){var r=t.text;return(0,m.jsx)("div",{className:"im-c-map-key",children:(0,m.jsx)("p",{className:"im-c-map-key__empty-message",children:r})})};function d(t){return d="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},d(t)}var h=function(t,r){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===d(t)){if(r&&t[r])return t[r];var e=Object.values(t)[0];return null!=e?e:null}return null};function g(t){return g="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},g(t)}function S(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function j(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?S(Object(e),!0).forEach(function(r){O(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):S(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function O(t,r,e){return(r=function(t){var r=function(t){if("object"!=g(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=g(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==g(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var w=20,P={xmlns:"http://www.w3.org/2000/svg",width:w,height:w,viewBox:"0 0 ".concat(w," ").concat(w),className:"im-c-map-key-symbol","aria-hidden":"true",focusable:"false"},k=j(j({},P),{},{width:44,height:44,className:"im-c-map-key-symbol im-c-map-key-symbol--point"}),D={"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="{{foregroundColor}}"/>',"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="{{foregroundColor}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foregroundColor}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foregroundColor}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foregroundColor}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>'};function C(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var x=function(t,r,e){return t.replace(/\{\{foregroundColor\}\}/g,r||"black").replace(/\{\{backgroundColor\}\}/g,e||"transparent")};function A(t,r){if(t){if("string"==typeof t)return E(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?E(t,r):void 0}}function E(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var I=new Map,M={register:function(t,r){I.set(t,{id:t,svgContent:r})},get:function(t){return I.get(t)},list:function(){return function(t){if(Array.isArray(t))return E(t)}(t=I.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||A(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.")}();var t},clear:function(){I.clear()},initialise:function(){var t=this;Object.entries(D).forEach(function(r){var e,n,o=(n=2,function(t){if(Array.isArray(t))return t}(e=r)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,n)||A(e,n)||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.")}()),i=o[0],a=o[1];t.register(i,a)})},getPatternInnerContent:function(t){return t.fillPatternSvgContent?t.fillPatternSvgContent:t.fillPattern&&null!==(r=null===(e=this.get(t.fillPattern))||void 0===e?void 0:e.svgContent)&&void 0!==r?r:null;var r,e},getKeyPatternPaths:function(t,r){var e=this.getPatternInnerContent(t);if(!e)return null;var n=h(t.fillPatternForegroundColor,r)||"black",o=h(t.fillPatternBackgroundColor,r)||"transparent",i=h(t.stroke,r)||n;return{border:x('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',i,o),content:x(e,n,o)}},getPatternImageId:function(t,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.getPatternInnerContent(t);if(!n)return null;var o=h(t.fillPatternForegroundColor,r)||"black",i=h(t.fillPatternBackgroundColor,r)||"transparent",a=function(t){return Math.max(2,2*t)}(e);return"pattern-".concat(function(t){var r,e=0,n=function(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=function(t,r){if(t){if("string"==typeof t)return C(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?C(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){e&&(t=e);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,l=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){l=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(l)throw i}}}}(t);try{for(n.s();!(r=n.n()).done;){var o=r.value;e=Math.trunc((e<<5)-e+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(e).toString(36)}(n+o+i),"-").concat(a,"x")}};function _(t){return _="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},_(t)}function L(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function T(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?L(Object(e),!0).forEach(function(r){z(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):L(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function z(t,r,e){return(r=function(t){var r=function(t){if("object"!=_(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=_(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==_(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}M.initialise();var H=function(t){var r=t.keyDefinition,e=t.mapStyle,n=r.style,o=M.getKeyPatternPaths(n,e.id);return o?(0,m.jsxs)("svg",T(T({},P),{},{children:[(0,m.jsx)("g",{dangerouslySetInnerHTML:{__html:o.border}}),(0,m.jsx)("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]})):null},V=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),K=function(t){if(!function(t){return!(!t.symbol&&!t.symbolSvgContent)}(t))return{};var r={};return V.forEach(function(e){if(null!=t[e]){var n=e.charAt(6).toLowerCase()+e.slice(7);r[n]=t[e]}}),r},B=function(t,r){var e;return t.symbolViewBox?t.symbolViewBox:null!==(e=null==r?void 0:r.viewBox)&&void 0!==e?e:"0 0 38 38"},G={symbol:"pin",backgroundColor:"#ca3535",foregroundColor:"#ffffff"},N={dot:"M8 3c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z",cross:"M6 3H10V6H13V10H10V13H6V10H3V6H6Z",diamond:"M8 2L14 8L8 14L2 8Z",triangle:"M8 2L14 14H2Z",square:"M3 3H13V13H3Z"},U={id:"pin",viewBox:"0 0 44 44",anchor:[.5,.9],graphic:N.dot,svg:'<path d="M22 40.999c-3.621 0-8.306-5.864-10.258-8.3C9.02 29.302 6 23.66 6 19.002a16.01 16.01 0 0 1 16-16 16.01 16.01 0 0 1 16 16c0 4.658-3.02 10.3-5.742 13.697-1.952 2.437-6.637 8.3-10.258 8.3z" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M22 7.001a12.01 12.01 0 0 1 12 12c0 7.623-10.377 17.998-12 17.998S10 26.624 10 19.001a12.01 12.01 0 0 1 12-12z" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 19) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},R={id:"circle",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:N.dot,svg:'<circle cx="22" cy="22" r="16" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <circle cx="22" cy="22" r="12" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},F={id:"square",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:N.dot,svg:'<path d="M13 6h18c3.863 0 7 3.137 7 7v18c0 3.863-3.137 7-7 7H13c-3.863 0-7-3.137-7-7V13c0-3.863 3.137-7 7-7" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M13 34a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3v18a3 3 0 0 1-3 3H13z" fill-rule="nonzero" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},$={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},W=function(t,r,e){return new Promise(function(n,o){var i="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(t)),a=new Image(r,e);a.onload=function(){var t=document.createElement("canvas");t.width=r,t.height=e;var o=t.getContext("2d");o.drawImage(a,0,0,r,e),n(o.getImageData(0,0,r,e))},a.onerror=function(){o(new Error("Failed to rasterise SVG: ".concat(t.slice(0,80))))},a.src=i})};function Y(t){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Y(t)}function q(){var t,r,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var u=n&&n.prototype instanceof l?n:l,c=Object.create(u.prototype);return Z(c,"_invoke",function(e,n,o){var i,l,u,c=0,f=o||[],s=!1,y={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(r,e){return i=r,l=0,u=t,y.n=e,a}};function p(e,n){for(l=e,u=n,r=0;!s&&c&&!o&&r<f.length;r++){var o,i=f[r],p=y.p,b=i[2];e>3?(o=b===n)&&(u=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=p&&((o=e<2&&p<i[1])?(l=0,y.v=n,y.n=i[1]):p<b&&(o=e<3||i[0]>n||n>b)&&(i[4]=e,i[5]=n,y.n=b,l=0))}if(o||e>1)return a;throw s=!0,n}return function(o,f,b){if(c>1)throw TypeError("Generator is already running");for(s&&1===f&&p(f,b),l=f,u=b;(r=l<2?t:u)||!s;){i||(l?l<3?(l>1&&(y.n=-1),p(l,u)):y.n=u:y.v=u);try{if(c=2,i){if(l||(o="next"),r=i[o]){if(!(r=r.call(i,u)))throw TypeError("iterator result is not an object");if(!r.done)return r;u=r.value,l<2&&(l=0)}else 1===l&&(r=i.return)&&r.call(i),l<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((r=(s=y.n<0)?u:e.call(n,y))!==a)break}catch(r){i=t,l=1,u=r}finally{c=1}}return{value:r,done:s}}}(e,o,i),!0),c}var a={};function l(){}function u(){}function c(){}r=Object.getPrototypeOf;var f=[][n]?r(r([][n]())):(Z(r={},n,function(){return this}),r),s=c.prototype=l.prototype=Object.create(f);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,c):(t.__proto__=c,Z(t,o,"GeneratorFunction")),t.prototype=Object.create(s),t}return u.prototype=c,Z(s,"constructor",c),Z(c,"constructor",u),u.displayName="GeneratorFunction",Z(c,o,"GeneratorFunction"),Z(s),Z(s,o,"Generator"),Z(s,n,function(){return this}),Z(s,"toString",function(){return"[object Generator]"}),(q=function(){return{w:i,m:y}})()}function Z(t,r,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Z=function(t,r,e,n){function i(r,e){Z(t,r,function(t){return this._invoke(r,e,t)})}r?o?o(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n}):t[r]=e:(i("next",0),i("throw",1),i("return",2))},Z(t,r,e,n)}function J(t,r,e,n,o,i,a){try{var l=t[i](a),u=l.value}catch(t){return void e(t)}l.done?r(u):Promise.resolve(u).then(n,o)}function Q(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function X(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?Q(Object(e),!0).forEach(function(r){tt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Q(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function tt(t,r,e){return(r=function(t){var r=function(t){if("object"!=Y(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=Y(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Y(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function rt(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||et(t,r)||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 et(t,r){if(t){if("string"==typeof t)return nt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?nt(t,r):void 0}}function nt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var ot=new Map,it=new Map,at={},lt=function(t){var r,e=0,n=function(t){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=et(t))){r&&(t=r);var e=0,n=function(){};return{s:n,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},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(){r=r.call(t)},n:function(){var t=r.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw o}}}}(t);try{for(n.s();!(r=n.n()).done;){var o=r.value;e=Math.trunc((e<<5)-e+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(e).toString(36)},ut=new Set(["id","svg","viewBox","anchor","symbol","symbolSvgContent"]);function ct(t,r,e){var n,o,i,a,l=null==e?void 0:e.id,u=Object.fromEntries(Object.entries(t||{}).filter(function(t){var r=rt(t,1)[0];return!ut.has(r)})),c=Object.fromEntries(Object.entries(at).filter(function(t){var r=rt(t,1)[0];return!ut.has(r)})),f=Object.fromEntries(Object.entries(r).filter(function(t){return null!=rt(t,2)[1]})),s=X(X(X(X({},G),c),u),f),y=null!==(n=$[null==e?void 0:e.mapColorScheme])&&void 0!==n?n:$.light;return s.haloColor=null!==(o=null==e?void 0:e.haloColor)&&void 0!==o?o:y.haloColor,s.selectedColor=null!==(i=null==e?void 0:e.selectedColor)&&void 0!==i?i:y.selectedColor,s.activeColor=null!==(a=null==e?void 0:e.activeColor)&&void 0!==a?a:y.activeColor,"string"==typeof s.graphic&&N[s.graphic]&&(s.graphic=N[s.graphic]),Object.fromEntries(Object.entries(s).map(function(t){var r=rt(t,2),e=r[0],n=r[1];return[e,h(n,l)||""]}))}function ft(t,r){return Object.entries(r).reduce(function(t,r){var e=rt(r,2),n=e[0],o=e[1];return t.replaceAll("{{".concat(n,"}}"),o)},t)}var st={setDefaults:function(t){at=t||{}},getDefaults:function(){return X(X({},G),at)},register:function(t){ot.set(t.id,t)},get:function(t){return ot.get(t)},list:function(){return function(t){if(Array.isArray(t))return nt(t)}(t=ot.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||et(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.")}();var t},clear:function(){ot.clear()},initialise:function(){this.register(U),this.register(R),this.register(F)},resolve:function(t,r,e){var n=ct(t,r||{},e);return t?(n.selectedColor="none",n.activeColor="none",ft(t.svg,n)):""},resolveActive:function(t,r,e){var n=ct(t,r||{},e);return t?ft(t.svg,n):""},resolveSelected:function(t,r,e){var n=ct(t,r||{},e);return t?(n.activeColor="none",ft(t.svg,n)):""},getSymbolImageId:function(t,r){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o=this.getSymbolDef(t);if(!o)return null;var i=K(t),a=e?this.resolveActive(o,i,r):this.resolve(o,i,r);return"symbol-".concat(e?"act-":"").concat(lt(a),"-").concat(n,"x")},getSymbolDef:function(t){return t.symbolSvgContent?{svg:t.symbolSvgContent}:t.symbol?this.get(t.symbol):void 0},rasteriseSymbolImage:function(t,r,e,n){var o,i=this;return(o=q().m(function o(){var a,l,u,c,f,s,y,p,b,m,v,d;return q().w(function(o){for(;;)switch(o.n){case 0:if(a=i.getSymbolDef(t)){o.n=1;break}return o.a(2,null);case 1:if(l=K(t),"active"===e?(u=i.resolveActive(a,l,r),c="act-"):"selected"===e?(u=i.resolveSelected(a,l,r),c="sel-"):(u=i.resolve(a,l,r),c=""),f="symbol-".concat(c).concat(lt(u),"-").concat(n,"x"),s=it.get(f)){o.n=3;break}return y=B(t,a),p=y.split(" ").map(Number),b=rt(p,4),m=b[2],v=b[3],d='<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(m*n,'" height="').concat(v*n,'" viewBox="').concat(y,'">').concat(u,"</svg>"),o.n=2,W(d,m*n,v*n);case 2:s=o.v,it.set(f,s);case 3:return o.a(2,{imageId:f,imageData:s})}},o)}),function(){var t=this,r=arguments;return new Promise(function(e,n){var i=o.apply(t,r);function a(t){J(i,e,n,a,l,"next",t)}function l(t){J(i,e,n,a,l,"throw",t)}a(void 0)})})()}};function yt(t){return yt="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},yt(t)}function pt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function bt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?pt(Object(e),!0).forEach(function(r){mt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):pt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function mt(t,r,e){return(r=function(t){var r=function(t){if("object"!=yt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=yt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==yt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}st.initialise();var vt=function(t){var r,e=t.keyDefinition,n=t.mapStyle,o=t.symbolDef,i=e.style,a=null!==(r=null==n?void 0:n.appColorScheme)&&void 0!==r?r:"light",l=bt(bt({},n),{},{mapColorScheme:a}),u=st.resolve(o,K(i),l),c=B(i,o);return u&&c?(0,m.jsx)("svg",bt(bt({},k),{},{viewBox:c,children:(0,m.jsx)("g",{dangerouslySetInnerHTML:{__html:u}})})):null};function dt(t){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dt(t)}function ht(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function gt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?ht(Object(e),!0).forEach(function(r){St(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ht(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function St(t,r,e){return(r=function(t){var r=function(t){if("object"!=dt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=dt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==dt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var jt=function(t){var r=t.mapStyle,e=t.keyDefinition.style,n=e.strokeWidth,o=h(e.stroke,r.id);return(0,m.jsx)("svg",gt(gt({},P),{},{children:(0,m.jsx)("line",{x1:n/2,y1:10,x2:w-n/2,y2:10,stroke:o,strokeWidth:n,strokeLinecap:"round"})}))};function Ot(t){return Ot="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},Ot(t)}function wt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Pt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?wt(Object(e),!0).forEach(function(r){kt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):wt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function kt(t,r,e){return(r=function(t){var r=function(t){if("object"!=Ot(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=Ot(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ot(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var Dt=function(t){var r=t.mapStyle,e=t.keyDefinition.style,n=e.strokeWidth,o=h(e.fill,r.id),i=h(e.stroke,r.id);return(0,m.jsx)("svg",Pt(Pt({},P),{},{children:(0,m.jsx)("rect",{x:n/2,y:n/2,width:w-n,height:w-n,rx:n,ry:n,fill:o,stroke:i,strokeWidth:n,strokeLinejoin:"round"})}))},Ct=function(t){var r=t.mapStyle,e=t.keyDefinition.style,n=h(e.fill,r.id),o=h(e.fill,r.id);return(0,m.jsx)("svg",{viewBox:"0 0 5 5",preserveAspectRatio:"none",fill:n,stroke:o,strokeWidth:"1",children:(0,m.jsx)("path",{d:"M0 0h5v5H0z"})})},xt="horizontal-ramp",At=function(t){var r=t.keyDefinition,e=t.groupStyle,n=t.mapStyle,o=function(t,r){if(!t)return{symbolShape:null,symbolDef:null};var e=t.hasSymbol,n=t.hasPattern,o=t.style;if(r===xt)return{symbolShape:xt,symbolDef:null};if(e){var i=st.getSymbolDef(o);return{symbolShape:i?"symbol":"rect",symbolDef:i}}return n?{symbolShape:"pattern",symbolDef:null}:"line"===o.keySymbolShape?{symbolShape:"line",symbolDef:null}:{symbolShape:"rect",symbolDef:null}}(r,e),i=o.symbolShape,a=o.symbolDef;return i?"symbol"===i?(0,m.jsx)(vt,{mapStyle:n,keyDefinition:r,symbolDef:a}):"pattern"===i?(0,m.jsx)(H,{mapStyle:n,keyDefinition:r}):"line"===i?(0,m.jsx)(jt,{mapStyle:n,keyDefinition:r}):i===xt?(0,m.jsx)(Ct,{mapStyle:n,keyDefinition:r}):(0,m.jsx)(Dt,{mapStyle:n,keyDefinition:r}):null},Et=function(t){var r=t.keyDefinition,e=t.groupStyle,n=t.mapStyle,o=r.label,i=h(r.symbolDescription,n.id);return(0,m.jsxs)("div",{className:"im-c-map-key-list__item",children:[(0,m.jsx)("dt",{className:"im-c-map-key-list__item-symbol",children:(0,m.jsx)(At,{keyDefinition:r,groupStyle:e,mapStyle:n})}),(0,m.jsxs)("dd",{className:"im-c-map-key-list__item-label",children:[o,i&&(0,m.jsxs)("span",{className:"govuk-visually-hidden",children:["(",i,")"]})]})]})},It=function(t){var r=t.headingId,e=t.label,n=t.groupStyle,o=t.keyDefinitions,i=t.mapStyle,a="im-c-map-key-list"+(n?" im-c-map-key-list-".concat(n):"");return(0,m.jsxs)("section",{className:"im-c-map-key__group","aria-labelledby":r,children:[(0,m.jsx)("h3",{id:r,className:"im-c-map-key__group-heading",children:e}),(0,m.jsx)("dl",{className:a,children:o.map(function(t){return(0,m.jsx)(Et,{keyDefinition:t,mapStyle:i,groupStyle:n},"".concat(t.id))})})]})},Mt="im-c-map-key",_t=function(t){var r=t.item,e=t.groupStyle,n=t.mapStyle;return"group"===r.type?(0,m.jsx)(It,{headingId:"key-heading-".concat(r.id),label:r.groupLabel,groupStyle:e,keyDefinitions:r.keyDefinitions,mapStyle:n}):(0,m.jsx)(Et,{keyDefinition:r.keyDefinition,mapStyle:n})},Lt=function(t){var r=t.noKeyItemText,e=t.keyGroups,n=t.hasGroups,o=t.mapStyle;if(null==e||!e.length)return(0,m.jsx)(v,{text:r});var i=n?"".concat(Mt," ").concat("im-c-map-key--has-groups"):Mt;return(0,m.jsx)("div",{className:i,children:e.map(function(t){return(0,m.jsx)(_t,{item:t,mapStyle:o,groupStyle:t.groupStyle},t.id)})})};function Tt(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return zt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?zt(t,r):void 0}}(t,r)||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 zt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function Ht(t){return Ht="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},Ht(t)}function Vt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Kt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?Vt(Object(e),!0).forEach(function(r){Bt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Vt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Bt(t,r,e){return(r=function(t){var r=function(t){if("object"!=Ht(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=Ht(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ht(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function Gt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function Nt(t){return Nt="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},Nt(t)}function Ut(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Rt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?Ut(Object(e),!0).forEach(function(r){Ft(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ut(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Ft(t,r,e){return(r=function(t){var r=function(t){if("object"!=Nt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=Nt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Nt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function $t(t){return function(t){if(Array.isArray(t))return Wt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,r){if(t){if("string"==typeof t)return Wt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Wt(t,r):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 Wt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var Yt={InitComponent:function(t){var r=t.pluginConfig,e=t.pluginState,o=t.mapState,a=t.services,l=e.dispatch,u=a.eventBus,c=(0,n.useRef)(e);c.current=e,(0,n.useEffect)(function(){o.isMapReady&&(function(t){y=t}(c),u.requestOnce("datasets:registry",i))},[o.isMapReady]),(0,n.useEffect)(function(){if(r.groups){var t=Object.entries(r.groups).map(function(t){var r,e,n=(e=2,function(t){if(Array.isArray(t))return t}(r=t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(r,e)||function(t,r){if(t){if("string"==typeof t)return Gt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Gt(t,r):void 0}}(r,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.")}()),o=n[0],i=n[1];return Kt(Kt({},i),{},{id:o,label:i.groupLabel})});l({type:"ADD_KEY_GROUPS",payload:t})}},[r.groups])},reducer:{initialState:{keyDefinitions:[],groups:[]},actions:{ADD_KEY_ITEM:function(t,r){var e,n=r.id,o=r.groupLabel,i=r.groupId||((e=o)?e.toLowerCase().replace(/\s+/g,"-"):null),a=function(t,r,e){return t.groups.find(function(t){return"group"===t.type&&t.id===e||"flat"===t.type&&t.id===r})}(t,n,i),l=a?null:function(t,r,e){return r?{id:r,type:"group",groupLabel:e}:{id:t,type:"flat"}}(n,i,o),u=l?[].concat($t(t.groups),[l]):t.groups,c=[].concat($t(t.keyDefinitions),[Rt(Rt({},r),{},{type:"manual"},i?{groupId:i}:{})]);return Rt(Rt({},t),{},{keyDefinitions:c,groups:u})},REMOVE_KEY_ITEM:function(t,r){var e=r.id;return Rt(Rt({},t),{},{keyDefinitions:t.keyDefinitions.filter(function(t){return t.id!==e})})},ADD_KEY_GROUPS:function(t,r){return Rt(Rt({},t),{},{groups:[].concat($t(t.groups),$t(r))})}}},panels:[{id:"mapKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(t){var r=t.mapState.mapStyle,e=t.pluginConfig.noKeyItemText,i=t.pluginState,a=t.services.eventBus,u=Tt((0,n.useState)(o),2),c=u[0],s=u[1],v=Tt((0,n.useState)(function(){var t;return null!==(t=null==c?void 0:c.keyItems().items)&&void 0!==t?t:[]}),2),d=v[0],h=v[1],g=Tt((0,n.useState)(function(){var t;return null!==(t=null==c?void 0:c.keyItems().hasGroups)&&void 0!==t&&t}),2),S=g[0],j=g[1],O=function(){var t=c.keyItems(),r=t.items,e=t.hasGroups,n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=l(function(){var t;if(null===(t=y)||void 0===t||!t.current)return[];if(p===y.current)return b;p=y.current;var r=y.current,e=r.groups,n=void 0===e?[]:e,o=r.keyDefinitions,i=void 0===o?[]:o;return b=n.map(function(t){return"flat"===t.type?f(f({},t),{},{keyDefinition:i.find(function(r){return r.id===t.id})}):f(f({},t),{},{keyDefinitions:i.filter(function(r){return r.groupId===t.id})})})}());if(0===r.length)return t;var e=t.map(function(t){var e=r.findIndex(function(r){return r.id===t.id});if(-1===e)return t;var n=r.splice(e,1)[0];return f(f(f({},t),n),{},{keyDefinitions:[].concat(l(n.keyDefinitions||[]),l(t.keyDefinitions||[]))})});return[].concat(l(e),l(r)).filter(function(t){var r;return"flat"===t.type&&t.keyDefinition||"group"===t.type&&(null===(r=t.keyDefinitions)||void 0===r?void 0:r.length)})}(r);h(n),j(e)},w=function(t){c.invalidateKeyItemsOnMenuStateChange(t),O()};return(0,n.useEffect)(function(){return c?(O(),a.on("menu:changed",w).on("datasets:changed",O),function(){return a.off("menu:changed",w).off("datasets:changed",O)}):(a.requestOnce("datasets:registry",s),function(){})},[c]),(0,n.useEffect)(function(){c&&O()},[i]),(0,m.jsx)(Lt,{noKeyItemText:e,keyGroups:d,hasGroups:S,mapStyle:r})}}],buttons:[{id:"mapKey",panelId:"mapKey",label:"Key",iconId:"key",mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{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:{addKeyItem:function(t,r){(0,t.pluginState.dispatch)({type:"ADD_KEY_ITEM",payload:r})},removeKeyItem:function(t,r){(0,t.pluginState.dispatch)({type:"REMOVE_KEY_ITEM",payload:r})}}}}}]);
2
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[414],{64(t,r,e){e.r(r),e.d(r,{manifest:()=>Wt});var n=e(738),o=null,i=function(t){return o=t};function a(t){return a="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},a(t)}function l(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,r){if(t){if("string"==typeof t)return u(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?u(t,r):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 u(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function c(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function f(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?c(Object(e),!0).forEach(function(r){s(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):c(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function s(t,r,e){return(r=function(t){var r=function(t){if("object"!=a(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=a(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==a(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var y={},p=null,b=[],m=e(287),v=function(t){var r=t.text;return(0,m.jsx)("div",{className:"im-c-map-key",children:(0,m.jsx)("p",{className:"im-c-map-key__empty-message",children:r})})};function d(t){return d="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},d(t)}var h=function(t,r){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===d(t)){if(r&&t[r])return t[r];var e=Object.values(t)[0];return null!=e?e:null}return null};function g(t){return g="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},g(t)}function S(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function O(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?S(Object(e),!0).forEach(function(r){j(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):S(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function j(t,r,e){return(r=function(t){var r=function(t){if("object"!=g(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=g(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==g(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var w=20,P={xmlns:"http://www.w3.org/2000/svg",width:w,height:w,viewBox:"0 0 ".concat(w," ").concat(w),className:"im-c-map-key-symbol","aria-hidden":"true",focusable:"false"},k=O(O({},P),{},{width:44,height:44,className:"im-c-map-key-symbol im-c-map-key-symbol--point"}),D={"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="{{foregroundColor}}"/>',"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="{{foregroundColor}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foregroundColor}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foregroundColor}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foregroundColor}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>',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="{{foregroundColor}}"/>'};function C(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var x=function(t,r,e){return t.replace(/\{\{foregroundColor\}\}/g,r||"black").replace(/\{\{backgroundColor\}\}/g,e||"transparent")};function A(t,r){if(t){if("string"==typeof t)return E(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?E(t,r):void 0}}function E(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var I=new Map,M={register:function(t,r){I.set(t,{id:t,svgContent:r})},get:function(t){return I.get(t)},list:function(){return function(t){if(Array.isArray(t))return E(t)}(t=I.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||A(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.")}();var t},clear:function(){I.clear()},initialise:function(){var t=this;Object.entries(D).forEach(function(r){var e,n,o=(n=2,function(t){if(Array.isArray(t))return t}(e=r)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,n)||A(e,n)||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.")}()),i=o[0],a=o[1];t.register(i,a)})},getPatternInnerContent:function(t){return t.fillPatternSvgContent?t.fillPatternSvgContent:t.fillPattern&&null!==(r=null===(e=this.get(t.fillPattern))||void 0===e?void 0:e.svgContent)&&void 0!==r?r:null;var r,e},getKeyPatternPaths:function(t,r){var e=this.getPatternInnerContent(t);if(!e)return null;var n=h(t.fillPatternForegroundColor,r)||"black",o=h(t.fillPatternBackgroundColor,r)||"transparent",i=h(t.stroke,r)||n;return{border:x('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',i,o),content:x(e,n,o)}},getPatternImageId:function(t,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.getPatternInnerContent(t);if(!n)return null;var o=h(t.fillPatternForegroundColor,r)||"black",i=h(t.fillPatternBackgroundColor,r)||"transparent",a=function(t){return Math.max(2,2*t)}(e);return"pattern-".concat(function(t){var r,e=0,n=function(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=function(t,r){if(t){if("string"==typeof t)return C(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?C(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){e&&(t=e);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,l=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){l=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(l)throw i}}}}(t);try{for(n.s();!(r=n.n()).done;){var o=r.value;e=Math.trunc((e<<5)-e+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(e).toString(36)}(n+o+i),"-").concat(a,"x")}};function L(t){return L="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},L(t)}function _(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function T(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?_(Object(e),!0).forEach(function(r){z(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):_(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function z(t,r,e){return(r=function(t){var r=function(t){if("object"!=L(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=L(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==L(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}M.initialise();var H=function(t){var r=t.keyDefinition,e=t.mapStyle,n=r.style,o=M.getKeyPatternPaths(n,e.id);return o?(0,m.jsxs)("svg",T(T({},P),{},{children:[(0,m.jsx)("g",{dangerouslySetInnerHTML:{__html:o.border}}),(0,m.jsx)("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]})):null},V=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),B=function(t){if(!function(t){return!(!t.symbol&&!t.symbolSvgContent)}(t))return{};var r={};return V.forEach(function(e){if(null!=t[e]){var n=e.charAt(6).toLowerCase()+e.slice(7);r[n]=t[e]}}),r},K=function(t,r){var e;return t.symbolViewBox?t.symbolViewBox:null!==(e=null==r?void 0:r.viewBox)&&void 0!==e?e:"0 0 38 38"},G={symbol:"pin",backgroundColor:"#ca3535",foregroundColor:"#ffffff"},N={dot:"M8 3c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z",cross:"M6 3H10V6H13V10H10V13H6V10H3V6H6Z",diamond:"M8 2L14 8L8 14L2 8Z",triangle:"M8 2L14 14H2Z",square:"M3 3H13V13H3Z"},U={id:"pin",viewBox:"0 0 44 44",anchor:[.5,.9],graphic:N.dot,svg:'<path d="M22 40.999c-3.621 0-8.306-5.864-10.258-8.3C9.02 29.302 6 23.66 6 19.002a16.01 16.01 0 0 1 16-16 16.01 16.01 0 0 1 16 16c0 4.658-3.02 10.3-5.742 13.697-1.952 2.437-6.637 8.3-10.258 8.3z" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M22 7.001a12.01 12.01 0 0 1 12 12c0 7.623-10.377 17.998-12 17.998S10 26.624 10 19.001a12.01 12.01 0 0 1 12-12z" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 19) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},Y={id:"circle",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:N.dot,svg:'<circle cx="22" cy="22" r="16" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <circle cx="22" cy="22" r="12" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},R={id:"square",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:N.dot,svg:'<path d="M13 6h18c3.863 0 7 3.137 7 7v18c0 3.863-3.137 7-7 7H13c-3.863 0-7-3.137-7-7V13c0-3.863 3.137-7 7-7" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M13 34a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3v18a3 3 0 0 1-3 3H13z" fill-rule="nonzero" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},F={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},$=function(t,r,e){return new Promise(function(n,o){var i="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(t)),a=new Image(r,e);a.onload=function(){var t=document.createElement("canvas");t.width=r,t.height=e;var o=t.getContext("2d");o.drawImage(a,0,0,r,e),n(o.getImageData(0,0,r,e))},a.onerror=function(){o(new Error("Failed to rasterise SVG: ".concat(t.slice(0,80))))},a.src=i})};function W(t){return W="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},W(t)}function q(){var t,r,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var u=n&&n.prototype instanceof l?n:l,c=Object.create(u.prototype);return Z(c,"_invoke",function(e,n,o){var i,l,u,c=0,f=o||[],s=!1,y={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(r,e){return i=r,l=0,u=t,y.n=e,a}};function p(e,n){for(l=e,u=n,r=0;!s&&c&&!o&&r<f.length;r++){var o,i=f[r],p=y.p,b=i[2];e>3?(o=b===n)&&(u=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=p&&((o=e<2&&p<i[1])?(l=0,y.v=n,y.n=i[1]):p<b&&(o=e<3||i[0]>n||n>b)&&(i[4]=e,i[5]=n,y.n=b,l=0))}if(o||e>1)return a;throw s=!0,n}return function(o,f,b){if(c>1)throw TypeError("Generator is already running");for(s&&1===f&&p(f,b),l=f,u=b;(r=l<2?t:u)||!s;){i||(l?l<3?(l>1&&(y.n=-1),p(l,u)):y.n=u:y.v=u);try{if(c=2,i){if(l||(o="next"),r=i[o]){if(!(r=r.call(i,u)))throw TypeError("iterator result is not an object");if(!r.done)return r;u=r.value,l<2&&(l=0)}else 1===l&&(r=i.return)&&r.call(i),l<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((r=(s=y.n<0)?u:e.call(n,y))!==a)break}catch(r){i=t,l=1,u=r}finally{c=1}}return{value:r,done:s}}}(e,o,i),!0),c}var a={};function l(){}function u(){}function c(){}r=Object.getPrototypeOf;var f=[][n]?r(r([][n]())):(Z(r={},n,function(){return this}),r),s=c.prototype=l.prototype=Object.create(f);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,c):(t.__proto__=c,Z(t,o,"GeneratorFunction")),t.prototype=Object.create(s),t}return u.prototype=c,Z(s,"constructor",c),Z(c,"constructor",u),u.displayName="GeneratorFunction",Z(c,o,"GeneratorFunction"),Z(s),Z(s,o,"Generator"),Z(s,n,function(){return this}),Z(s,"toString",function(){return"[object Generator]"}),(q=function(){return{w:i,m:y}})()}function Z(t,r,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}Z=function(t,r,e,n){function i(r,e){Z(t,r,function(t){return this._invoke(r,e,t)})}r?o?o(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n}):t[r]=e:(i("next",0),i("throw",1),i("return",2))},Z(t,r,e,n)}function J(t,r,e,n,o,i,a){try{var l=t[i](a),u=l.value}catch(t){return void e(t)}l.done?r(u):Promise.resolve(u).then(n,o)}function Q(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function X(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?Q(Object(e),!0).forEach(function(r){tt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Q(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function tt(t,r,e){return(r=function(t){var r=function(t){if("object"!=W(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=W(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==W(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function rt(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||et(t,r)||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 et(t,r){if(t){if("string"==typeof t)return nt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?nt(t,r):void 0}}function nt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var ot=new Map,it=new Map,at={},lt=function(t){var r,e=0,n=function(t){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=et(t))){r&&(t=r);var e=0,n=function(){};return{s:n,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},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(){r=r.call(t)},n:function(){var t=r.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw o}}}}(t);try{for(n.s();!(r=n.n()).done;){var o=r.value;e=Math.trunc((e<<5)-e+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(e).toString(36)},ut=new Set(["id","svg","viewBox","anchor","symbol","symbolSvgContent"]);function ct(t,r,e){var n,o,i,a,l=null==e?void 0:e.id,u=Object.fromEntries(Object.entries(t||{}).filter(function(t){var r=rt(t,1)[0];return!ut.has(r)})),c=Object.fromEntries(Object.entries(at).filter(function(t){var r=rt(t,1)[0];return!ut.has(r)})),f=Object.fromEntries(Object.entries(r).filter(function(t){return null!=rt(t,2)[1]})),s=X(X(X(X({},G),c),u),f),y=null!==(n=F[null==e?void 0:e.mapColorScheme])&&void 0!==n?n:F.light;return s.haloColor=null!==(o=null==e?void 0:e.haloColor)&&void 0!==o?o:y.haloColor,s.selectedColor=null!==(i=null==e?void 0:e.selectedColor)&&void 0!==i?i:y.selectedColor,s.activeColor=null!==(a=null==e?void 0:e.activeColor)&&void 0!==a?a:y.activeColor,"string"==typeof s.graphic&&N[s.graphic]&&(s.graphic=N[s.graphic]),Object.fromEntries(Object.entries(s).map(function(t){var r=rt(t,2),e=r[0],n=r[1];return[e,h(n,l)||""]}))}function ft(t,r){return Object.entries(r).reduce(function(t,r){var e=rt(r,2),n=e[0],o=e[1];return t.replaceAll("{{".concat(n,"}}"),o)},t)}var st={setDefaults:function(t){at=t||{}},getDefaults:function(){return X(X({},G),at)},register:function(t){ot.set(t.id,t)},get:function(t){return ot.get(t)},list:function(){return function(t){if(Array.isArray(t))return nt(t)}(t=ot.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||et(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.")}();var t},clear:function(){ot.clear()},initialise:function(){this.register(U),this.register(Y),this.register(R)},resolve:function(t,r,e){var n=ct(t,r||{},e);return t?(n.selectedColor="none",n.activeColor="none",ft(t.svg,n)):""},resolveActive:function(t,r,e){var n=ct(t,r||{},e);return t?ft(t.svg,n):""},resolveSelected:function(t,r,e){var n=ct(t,r||{},e);return t?(n.activeColor="none",ft(t.svg,n)):""},getSymbolImageId:function(t,r){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o=this.getSymbolDef(t);if(!o)return null;var i=B(t),a=e?this.resolveActive(o,i,r):this.resolve(o,i,r);return"symbol-".concat(e?"act-":"").concat(lt(a),"-").concat(n,"x")},getSymbolDef:function(t){return t.symbolSvgContent?{svg:t.symbolSvgContent}:t.symbol?this.get(t.symbol):void 0},rasteriseSymbolImage:function(t,r,e,n){var o,i=this;return(o=q().m(function o(){var a,l,u,c,f,s,y,p,b,m,v,d;return q().w(function(o){for(;;)switch(o.n){case 0:if(a=i.getSymbolDef(t)){o.n=1;break}return o.a(2,null);case 1:if(l=B(t),"active"===e?(u=i.resolveActive(a,l,r),c="act-"):"selected"===e?(u=i.resolveSelected(a,l,r),c="sel-"):(u=i.resolve(a,l,r),c=""),f="symbol-".concat(c).concat(lt(u),"-").concat(n,"x"),s=it.get(f)){o.n=3;break}return y=K(t,a),p=y.split(" ").map(Number),b=rt(p,4),m=b[2],v=b[3],d='<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(m*n,'" height="').concat(v*n,'" viewBox="').concat(y,'">').concat(u,"</svg>"),o.n=2,$(d,m*n,v*n);case 2:s=o.v,it.set(f,s);case 3:return o.a(2,{imageId:f,imageData:s})}},o)}),function(){var t=this,r=arguments;return new Promise(function(e,n){var i=o.apply(t,r);function a(t){J(i,e,n,a,l,"next",t)}function l(t){J(i,e,n,a,l,"throw",t)}a(void 0)})})()}};function yt(t){return yt="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},yt(t)}function pt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function bt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?pt(Object(e),!0).forEach(function(r){mt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):pt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function mt(t,r,e){return(r=function(t){var r=function(t){if("object"!=yt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=yt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==yt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}st.initialise();var vt=function(t){var r,e=t.keyDefinition,n=t.mapStyle,o=t.symbolDef,i=e.style,a=null!==(r=null==n?void 0:n.appColorScheme)&&void 0!==r?r:"light",l=bt(bt({},n),{},{mapColorScheme:a}),u=st.resolve(o,B(i),l),c=K(i,o);return u&&c?(0,m.jsx)("svg",bt(bt({},k),{},{viewBox:c,children:(0,m.jsx)("g",{dangerouslySetInnerHTML:{__html:u}})})):null};function dt(t){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dt(t)}function ht(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function gt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?ht(Object(e),!0).forEach(function(r){St(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ht(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function St(t,r,e){return(r=function(t){var r=function(t){if("object"!=dt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=dt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==dt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var Ot=function(t){var r=t.mapStyle,e=t.keyDefinition.style,n=e.strokeWidth,o=h(e.stroke,r.id);return(0,m.jsx)("svg",gt(gt({},P),{},{children:(0,m.jsx)("line",{x1:n/2,y1:10,x2:w-n/2,y2:10,stroke:o,strokeWidth:n,strokeLinecap:"round"})}))};function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function wt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Pt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?wt(Object(e),!0).forEach(function(r){kt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):wt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function kt(t,r,e){return(r=function(t){var r=function(t){if("object"!=jt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=jt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==jt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var Dt=function(t){var r=t.mapStyle,e=t.keyDefinition.style,n=e.strokeWidth,o=h(e.fill,r.id),i=h(e.stroke,r.id);return(0,m.jsx)("svg",Pt(Pt({},P),{},{children:(0,m.jsx)("rect",{x:n/2,y:n/2,width:w-n,height:w-n,rx:n,ry:n,fill:o,stroke:i,strokeWidth:n,strokeLinejoin:"round"})}))},Ct=function(t){var r=t.mapStyle,e=t.keyDefinition.style,n=h(e.fill,r.id),o=h(e.fill,r.id);return(0,m.jsx)("svg",{viewBox:"0 0 5 5",preserveAspectRatio:"none",fill:n,stroke:o,strokeWidth:"1",children:(0,m.jsx)("path",{d:"M0 0h5v5H0z"})})},xt="horizontal-ramp",At=function(t){var r=t.keyDefinition,e=t.groupStyle,n=t.mapStyle,o=function(t,r){if(!t)return{symbolShape:null,symbolDef:null};var e=t.hasSymbol,n=t.hasPattern,o=t.style;if(r===xt)return{symbolShape:xt,symbolDef:null};if(e){var i=st.getSymbolDef(o);return{symbolShape:i?"symbol":"rect",symbolDef:i}}return n?{symbolShape:"pattern",symbolDef:null}:"line"===o.keySymbolShape?{symbolShape:"line",symbolDef:null}:{symbolShape:"rect",symbolDef:null}}(r,e),i=o.symbolShape,a=o.symbolDef;return i?"symbol"===i?(0,m.jsx)(vt,{mapStyle:n,keyDefinition:r,symbolDef:a}):"pattern"===i?(0,m.jsx)(H,{mapStyle:n,keyDefinition:r}):"line"===i?(0,m.jsx)(Ot,{mapStyle:n,keyDefinition:r}):i===xt?(0,m.jsx)(Ct,{mapStyle:n,keyDefinition:r}):(0,m.jsx)(Dt,{mapStyle:n,keyDefinition:r}):null},Et=function(t){var r=t.keyDefinition,e=t.groupStyle,n=t.mapStyle,o=r.label,i=h(r.symbolDescription,n.id);return(0,m.jsxs)("div",{className:"im-c-map-key-list__item",children:[(0,m.jsx)("dt",{className:"im-c-map-key-list__item-symbol",children:(0,m.jsx)(At,{keyDefinition:r,groupStyle:e,mapStyle:n})}),(0,m.jsxs)("dd",{className:"im-c-map-key-list__item-label",children:[o,i&&(0,m.jsxs)("span",{className:"govuk-visually-hidden",children:["(",i,")"]})]})]})},It=function(t){var r=t.headingId,e=t.label,n=t.groupStyle,o=t.keyDefinitions,i=t.mapStyle,a="im-c-map-key-list"+(n?" im-c-map-key-list-".concat(n):"");return(0,m.jsxs)("section",{className:"im-c-map-key__group","aria-labelledby":r,children:[(0,m.jsx)("h3",{id:r,className:"im-c-map-key__group-heading",children:e}),(0,m.jsx)("dl",{className:a,children:o.map(function(t){return(0,m.jsx)(Et,{keyDefinition:t,mapStyle:i,groupStyle:n},"".concat(t.id))})})]})},Mt="im-c-map-key",Lt=function(t){var r=t.item,e=t.groupStyle,n=t.mapStyle;return"group"===r.type?(0,m.jsx)(It,{headingId:"key-heading-".concat(r.id),label:r.groupLabel,groupStyle:e,keyDefinitions:r.keyDefinitions,mapStyle:n}):(0,m.jsx)(Et,{keyDefinition:r.keyDefinition,mapStyle:n})},_t=function(t){var r=t.noKeyItemText,e=t.keyGroups,n=t.hasGroups,o=t.mapStyle;if(null==e||!e.length)return(0,m.jsx)(v,{text:r});var i=n?"".concat(Mt," ").concat("im-c-map-key--has-groups"):Mt;return(0,m.jsx)("div",{className:i,children:e.map(function(t){return(0,m.jsx)(Lt,{item:t,mapStyle:o,groupStyle:t.groupStyle},t.id)})})};function Tt(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return zt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?zt(t,r):void 0}}(t,r)||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 zt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function Ht(t){return Ht="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},Ht(t)}function Vt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Bt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?Vt(Object(e),!0).forEach(function(r){Kt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Vt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Kt(t,r,e){return(r=function(t){var r=function(t){if("object"!=Ht(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=Ht(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ht(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function Gt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function Nt(t){return Nt="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},Nt(t)}function Ut(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Yt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?Ut(Object(e),!0).forEach(function(r){Rt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ut(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Rt(t,r,e){return(r=function(t){var r=function(t){if("object"!=Nt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=Nt(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Nt(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function Ft(t){return function(t){if(Array.isArray(t))return $t(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,r){if(t){if("string"==typeof t)return $t(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?$t(t,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var Wt={InitComponent:function(t){var r=t.pluginConfig,e=t.pluginState,o=t.mapState,a=t.services,l=e.dispatch,u=a.eventBus,c=(0,n.useRef)(e);c.current=e,(0,n.useEffect)(function(){o.isMapReady&&(function(t){y=t}(c),u.requestOnce("datasets:registry",i),u.emit("map-key:ready"))},[o.isMapReady]),(0,n.useEffect)(function(){if(r.groups){var t=Object.entries(r.groups).map(function(t){var r,e,n=(e=2,function(t){if(Array.isArray(t))return t}(r=t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(r,e)||function(t,r){if(t){if("string"==typeof t)return Gt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Gt(t,r):void 0}}(r,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.")}()),o=n[0],i=n[1];return Bt(Bt({},i),{},{id:o,label:i.groupLabel})});l({type:"ADD_KEY_GROUPS",payload:t})}},[r.groups])},reducer:{initialState:{keyDefinitions:[],groups:[]},actions:{ADD_KEY_SYMBOL:function(t,r){var e,n=r.id,o=r.groupLabel,i=r.groupId||((e=o)?e.toLowerCase().replace(/\s+/g,"-"):null),a=function(t,r,e){return t.groups.find(function(t){return"group"===t.type&&t.id===e||"flat"===t.type&&t.id===r})}(t,n,i),l=a?null:function(t,r,e){return r?{id:r,type:"group",groupLabel:e}:{id:t,type:"flat"}}(n,i,o),u=l?[].concat(Ft(t.groups),[l]):t.groups,c=[].concat(Ft(t.keyDefinitions),[Yt(Yt({},r),{},{type:"manual"},i?{groupId:i}:{})]);return Yt(Yt({},t),{},{keyDefinitions:c,groups:u})},REMOVE_KEY_SYMBOL:function(t,r){var e=r.id;return Yt(Yt({},t),{},{keyDefinitions:t.keyDefinitions.filter(function(t){return t.id!==e})})},ADD_KEY_GROUPS:function(t,r){return Yt(Yt({},t),{},{groups:[].concat(Ft(t.groups),Ft(r))})}}},panels:[{id:"mapKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(t){var r=t.mapState.mapStyle,e=t.pluginConfig.noKeyItemText,i=t.pluginState,a=t.services.eventBus,u=Tt((0,n.useState)(o),2),c=u[0],s=u[1],v=Tt((0,n.useState)(function(){var t;return null!==(t=null==c?void 0:c.keyItems().items)&&void 0!==t?t:[]}),2),d=v[0],h=v[1],g=Tt((0,n.useState)(function(){var t;return null!==(t=null==c?void 0:c.keyItems().hasGroups)&&void 0!==t&&t}),2),S=g[0],O=g[1],j=function(){var t=c.keyItems(),r=t.items,e=t.hasGroups,n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=l(function(){var t;if(null===(t=y)||void 0===t||!t.current)return[];if(p===y.current)return b;p=y.current;var r=y.current,e=r.groups,n=void 0===e?[]:e,o=r.keyDefinitions,i=void 0===o?[]:o;return b=n.map(function(t){return"flat"===t.type?f(f({},t),{},{keyDefinition:i.find(function(r){return r.id===t.id})}):f(f({},t),{},{keyDefinitions:i.filter(function(r){return r.groupId===t.id})})})}());if(0===r.length)return t;var e=t.map(function(t){var e=r.findIndex(function(r){return r.id===t.id});if(-1===e)return t;var n=r.splice(e,1)[0];return f(f(f({},t),n),{},{keyDefinitions:[].concat(l(n.keyDefinitions||[]),l(t.keyDefinitions||[]))})});return[].concat(l(e),l(r)).filter(function(t){var r;return"flat"===t.type&&t.keyDefinition||"group"===t.type&&(null===(r=t.keyDefinitions)||void 0===r?void 0:r.length)})}(r);h(n),O(e)},w=function(t){c.invalidateKeyItemsOnMenuStateChange(t),j()};return(0,n.useEffect)(function(){return c?(j(),a.on("menu:changed",w).on("datasets:changed",j),function(){return a.off("menu:changed",w).off("datasets:changed",j)}):(a.requestOnce("datasets:registry",s),function(){})},[c]),(0,n.useEffect)(function(){c&&j()},[i]),(0,m.jsx)(_t,{noKeyItemText:e,keyGroups:d,hasGroups:S,mapStyle:r})}}],buttons:[{id:"mapKey",panelId:"mapKey",label:"Key",iconId:"key",mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{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:{addSymbol:function(t,r){(0,t.pluginState.dispatch)({type:"ADD_KEY_SYMBOL",payload:r})},removeSymbol:function(t,r){(0,t.pluginState.dispatch)({type:"REMOVE_KEY_SYMBOL",payload:r})}}}}}]);