@defra/interactive-map 0.0.8-alpha → 0.0.9-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 (75) hide show
  1. package/dist/esm/im-core.js +1 -0
  2. package/dist/esm/im-shell.js +1 -0
  3. package/dist/esm/index.js +1 -2
  4. package/dist/umd/im-core.js +1 -1
  5. package/dist/umd/index.js +1 -1
  6. package/docs/api/button-definition.md +104 -3
  7. package/docs/api.md +21 -1
  8. package/docs/getting-started.md +78 -8
  9. package/package.json +31 -24
  10. package/plugins/beta/datasets/dist/css/index.css +50 -1
  11. package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -0
  12. package/plugins/beta/datasets/dist/esm/index.js +1 -2
  13. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -0
  14. package/plugins/beta/draw-es/dist/esm/index.js +1 -2
  15. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -0
  16. package/plugins/beta/draw-ml/dist/esm/index.js +1 -2
  17. package/plugins/beta/frame/dist/css/index.css +11 -1
  18. package/plugins/beta/frame/dist/esm/im-frame-plugin.js +1 -0
  19. package/plugins/beta/frame/dist/esm/index.js +1 -2
  20. package/plugins/beta/map-styles/dist/css/index.css +79 -1
  21. package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +1 -0
  22. package/plugins/beta/map-styles/dist/esm/index.js +1 -2
  23. package/plugins/beta/scale-bar/dist/esm/im-scale-bar-plugin.js +1 -0
  24. package/plugins/beta/scale-bar/dist/esm/index.js +1 -2
  25. package/plugins/beta/use-location/dist/esm/im-use-location-plugin.js +1 -0
  26. package/plugins/beta/use-location/dist/esm/index.js +1 -2
  27. package/plugins/beta/use-location/dist/umd/index.js +1 -1
  28. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -0
  29. package/plugins/interact/dist/esm/index.js +1 -2
  30. package/plugins/search/dist/esm/im-search-plugin.js +1 -0
  31. package/plugins/search/dist/esm/index.js +1 -2
  32. package/plugins/search/src/components/Suggestions/Suggestions.module.scss +1 -1
  33. package/plugins/search/src/search.scss +1 -1
  34. package/providers/beta/esri/dist/css/index.css +30 -1
  35. package/providers/beta/esri/dist/esm/im-esri-provider.js +1 -0
  36. package/providers/beta/esri/dist/esm/index.js +1 -2
  37. package/providers/beta/open-names/dist/esm/im-reverse-geocode.js +1 -0
  38. package/providers/beta/open-names/dist/esm/index.js +1 -2
  39. package/providers/beta/open-names/src/utils/mapToLocationModel.test.js +61 -0
  40. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -0
  41. package/providers/maplibre/dist/esm/index.js +1 -2
  42. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  43. package/providers/maplibre/src/appEvents.test.js +44 -0
  44. package/providers/maplibre/src/index.test.js +60 -0
  45. package/providers/maplibre/src/mapEvents.test.js +115 -0
  46. package/providers/maplibre/src/maplibreProvider.test.js +205 -0
  47. package/providers/maplibre/src/utils/calculateLinearTextSize.test.js +31 -0
  48. package/providers/maplibre/src/utils/detectWebgl.test.js +63 -0
  49. package/providers/maplibre/src/utils/highlightFeatures.test.js +126 -0
  50. package/providers/maplibre/src/utils/labels.js +1 -3
  51. package/providers/maplibre/src/utils/labels.test.js +231 -0
  52. package/providers/maplibre/src/utils/maplibreFixes.test.js +66 -0
  53. package/providers/maplibre/src/utils/queryFeatures.test.js +60 -0
  54. package/providers/maplibre/src/utils/spatial.js +5 -4
  55. package/providers/maplibre/src/utils/spatial.test.js +96 -0
  56. package/rollup.esm.mjs +288 -0
  57. package/src/App/store/appActionsMap.js +1 -1
  58. package/src/InteractiveMap/InteractiveMap.js +3 -2
  59. package/webpack.dev.mjs +9 -1
  60. package/webpack.prod.mjs +8 -1
  61. package/webpack.umd.mjs +1 -2
  62. package/dist/esm/index.js.LICENSE.txt +0 -1
  63. package/plugins/beta/datasets/dist/esm/index.js.LICENSE.txt +0 -1
  64. package/plugins/beta/draw-es/dist/esm/index.js.LICENSE.txt +0 -1
  65. package/plugins/beta/draw-ml/dist/esm/index.js.LICENSE.txt +0 -1
  66. package/plugins/beta/frame/dist/esm/index.js.LICENSE.txt +0 -1
  67. package/plugins/beta/map-styles/dist/esm/index.js.LICENSE.txt +0 -1
  68. package/plugins/beta/scale-bar/dist/esm/index.js.LICENSE.txt +0 -1
  69. package/plugins/beta/use-location/dist/esm/index.js.LICENSE.txt +0 -1
  70. package/plugins/interact/dist/esm/index.js.LICENSE.txt +0 -1
  71. package/plugins/search/dist/esm/index.js.LICENSE.txt +0 -1
  72. package/providers/beta/esri/dist/esm/index.js.LICENSE.txt +0 -1
  73. package/providers/beta/open-names/dist/esm/index.js.LICENSE.txt +0 -1
  74. package/providers/maplibre/dist/esm/index.js.LICENSE.txt +0 -6
  75. package/webpack.esm.mjs +0 -154
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/interactive-map",
3
- "version": "0.0.8-alpha",
3
+ "version": "0.0.9-alpha",
4
4
  "description": "An accessible map component",
5
5
  "main": "dist/umd/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -54,9 +54,23 @@
54
54
  "./plugins/frame": {
55
55
  "import": "./plugins/beta/frame/dist/esm/index.js",
56
56
  "require": "./plugins/beta/frame/dist/umd/index.js"
57
- }
57
+ },
58
+ "./css": "./dist/css/index.css",
59
+ "./plugins/draw-ml/css": "./plugins/beta/draw-ml/dist/css/index.css",
60
+ "./plugins/scale-bar/css": "./plugins/beta/scale-bar/dist/css/index.css",
61
+ "./plugins/datasets/css": "./plugins/beta/datasets/dist/css/index.css",
62
+ "./plugins/frame/css": "./plugins/beta/frame/dist/css/index.css",
63
+ "./plugins/map-styles/css": "./plugins/beta/map-styles/dist/css/index.css",
64
+ "./plugins/search/css": "./plugins/search/dist/css/index.css",
65
+ "./plugins/interact/css": "./plugins/interact/dist/css/index.css",
66
+ "./providers/esri/css": "./providers/beta/esri/dist/css/index.css"
58
67
  },
59
68
  "type": "module",
69
+ "sideEffects": [
70
+ "**/*.css",
71
+ "**/*.scss",
72
+ "./src/InteractiveMap/polyfills.js"
73
+ ],
60
74
  "scripts": {
61
75
  "clean": "rimraf dist",
62
76
  "sass:watch": "sass --watch demo/scss/farming.scss:public/farming-demo.css demo/scss/planning.scss:public/planning-demo.css",
@@ -64,7 +78,7 @@
64
78
  "dev": "npm-run-all --parallel sass:watch webpack:serve",
65
79
  "prod": "webpack serve --config webpack.prod.mjs",
66
80
  "build:umd": "webpack --config webpack.umd.mjs --mode production",
67
- "build:esm": "webpack --config webpack.esm.mjs --mode production",
81
+ "build:esm": "rollup --config rollup.esm.mjs",
68
82
  "build": "npm run clean && npm-run-all --parallel build:umd build:esm",
69
83
  "type-check": "tsc --noEmit",
70
84
  "lint": "npm run lint:js && npm run lint:scss",
@@ -74,7 +88,8 @@
74
88
  "lint:js:fix": "standard \"src/**/*.{js,jsx,ts,tsx}\" --fix",
75
89
  "lint:scss:fix": "stylelint \"src/**/*.{css,scss}\" --fix",
76
90
  "test": "jest --color --coverage --verbose",
77
- "report": "webpack --profile --json --config webpack.prod.mjs > stats.json && webpack-bundle-analyzer --host 0.0.0.0 --port 8888 ./stats.json ./public"
91
+ "report": "webpack --profile --json --config webpack.prod.mjs > stats.json && webpack-bundle-analyzer --host 0.0.0.0 --port 8888 ./stats.json ./public",
92
+ "report:esm": "ANALYZE=1 rollup --config rollup.esm.mjs"
78
93
  },
79
94
  "standard": {
80
95
  "envs": [
@@ -89,29 +104,27 @@
89
104
  ]
90
105
  },
91
106
  "peerDependencies": {
92
- "@arcgis/core": "^4.34.8",
93
- "react": "^19.2.0",
94
- "react-dom": "^19.2.0"
107
+ "@arcgis/core": "^4.34.8"
95
108
  },
96
109
  "peerDependenciesMeta": {
97
110
  "@arcgis/core": {
98
111
  "optional": true
99
- },
100
- "react": {
101
- "optional": true
102
- },
103
- "react-dom": {
104
- "optional": true
105
112
  }
106
113
  },
107
114
  "devDependencies": {
108
115
  "@arcgis/core": "^4.34.8",
109
116
  "@babel/core": "^7.28.0",
117
+ "@babel/plugin-transform-runtime": "^7.29.0",
110
118
  "@babel/preset-env": "^7.28.0",
111
119
  "@babel/preset-react": "^7.27.1",
112
- "@babel/preset-typescript": "^7.27.1",
113
120
  "@esri/arcgis-rest-request": "^4.7.3",
114
121
  "@mapbox/mapbox-gl-draw": "^1.5.0",
122
+ "@rollup/plugin-alias": "^6.0.0",
123
+ "@rollup/plugin-babel": "^6.1.0",
124
+ "@rollup/plugin-commonjs": "^29.0.0",
125
+ "@rollup/plugin-node-resolve": "^16.0.3",
126
+ "@rollup/plugin-replace": "^6.0.3",
127
+ "@rollup/plugin-terser": "^0.4.4",
115
128
  "@testing-library/jest-dom": "^6.6.3",
116
129
  "@testing-library/react": "^16.3.0",
117
130
  "@types/geojson": "^7946.0.16",
@@ -122,11 +135,8 @@
122
135
  "copy-webpack-plugin": "^13.0.1",
123
136
  "css-loader": "^7.1.2",
124
137
  "dotenv": "^17.2.0",
125
- "event-target-polyfill": "^0.0.4",
126
138
  "express-static-gzip": "^3.0.0",
127
139
  "geodesy": "^2.4.0",
128
- "html-webpack-plugin": "^5.6.3",
129
- "install": "^0.13.0",
130
140
  "jest": "^29.7.0",
131
141
  "jest-environment-jsdom": "^30.0.4",
132
142
  "mapbox-gl-snap": "^1.1.9",
@@ -134,20 +144,19 @@
134
144
  "node-fetch": "^3.3.2",
135
145
  "npm": "^11.8.0",
136
146
  "npm-run-all": "^4.1.5",
137
- "prettier": "^3.6.2",
138
147
  "react": "^19.2.0",
139
148
  "react-dom": "^19.2.0",
140
149
  "remove-files-webpack-plugin": "^1.5.0",
141
- "resize-observer-polyfill": "^1.5.1",
142
150
  "rimraf": "^6.1.0",
151
+ "rollup": "^4.59.0",
152
+ "rollup-plugin-postcss": "^4.0.2",
153
+ "rollup-plugin-visualizer": "^7.0.0",
143
154
  "sass": "^1.89.2",
144
155
  "sass-loader": "^16.0.5",
145
156
  "standard": "^17.1.2",
146
- "style-loader": "^4.0.0",
147
157
  "stylelint": "^16.21.1",
148
158
  "stylelint-config-gds": "^2.0.0",
149
159
  "stylelint-scss": "^6.12.1",
150
- "ts-loader": "^9.5.2",
151
160
  "typescript": "^5.8.3",
152
161
  "webpack": "^5.100.1",
153
162
  "webpack-bundle-analyzer": "^4.10.2",
@@ -167,6 +176,7 @@
167
176
  "@turf/bearing": "^7.3.3"
168
177
  },
169
178
  "dependencies": {
179
+ "@babel/runtime": "^7.28.6",
170
180
  "@turf/area": "^7.2.0",
171
181
  "@turf/bearing": "^7.3.3",
172
182
  "@turf/boolean-disjoint": "^7.3.3",
@@ -176,11 +186,8 @@
176
186
  "@turf/line-intersect": "^7.3.3",
177
187
  "@turf/point-to-line-distance": "^7.3.3",
178
188
  "@turf/polygon-to-line": "^7.3.3",
179
- "abortcontroller-polyfill": "^1.7.8",
180
- "core-js": "^3.44.0",
181
189
  "govuk-frontend": "^5.13.0",
182
190
  "maplibre-gl": "^5.15.0",
183
- "maplibre-gl-legacy": "npm:maplibre-gl@1.15.3",
184
191
  "polygon-splitter": "^0.0.11",
185
192
  "preact": "^10.27.2"
186
193
  }
@@ -1 +1,50 @@
1
- .im-c-datasets-key__item-label{display:flex;align-items:start;padding-top:12px;padding-bottom:12px;align-self:auto;font-size:1rem;line-height:1.2}.im-c-datasets-key__item-label svg{position:relative;flex-shrink:0;margin:0px 13px 0 2px}.im-c-datasets-layers__item{border:1px solid var(--button-hover-color);padding-left:10px}.im-c-datasets-layers__item:not(last-child){margin-bottom:5px}.im-c-datasets-layers__item-label{width:100%;max-width:none;align-items:start;padding-top:12px;padding-bottom:10px;align-self:auto;font-size:1rem;line-height:1.2;color:var(--foreground-color)}.im-c-datasets-layers__item--checked{border-color:var(--app-border-color)}.im-c-datasets-layers__item .govuk-checkboxes__item{flex-wrap:nowrap}.im-c-datasets-layers__item .govuk-checkboxes__item .govuk-checkboxes__input{margin-left:-3px}.im-c-datasets{display:block}
1
+ .im-c-datasets-key__item-label {
2
+ display: flex;
3
+ align-items: start;
4
+ padding-top: 12px;
5
+ padding-bottom: 12px;
6
+ align-self: auto;
7
+ font-size: 1rem;
8
+ line-height: 1.2;
9
+ }
10
+
11
+ .im-c-datasets-key__item-label svg {
12
+ position: relative;
13
+ flex-shrink: 0;
14
+ margin: 0px 13px 0 2px;
15
+ }
16
+
17
+ .im-c-datasets-layers__item {
18
+ border: 1px solid var(--button-hover-color);
19
+ padding-left: 10px;
20
+ }
21
+ .im-c-datasets-layers__item:not(last-child) {
22
+ margin-bottom: 5px;
23
+ }
24
+
25
+ .im-c-datasets-layers__item-label {
26
+ width: 100%;
27
+ max-width: none;
28
+ align-items: start;
29
+ padding-top: 12px;
30
+ padding-bottom: 10px;
31
+ align-self: auto;
32
+ font-size: 1rem;
33
+ line-height: 1.2;
34
+ color: var(--foreground-color);
35
+ }
36
+
37
+ .im-c-datasets-layers__item--checked {
38
+ border-color: var(--app-border-color);
39
+ }
40
+
41
+ .im-c-datasets-layers__item .govuk-checkboxes__item {
42
+ flex-wrap: nowrap;
43
+ }
44
+ .im-c-datasets-layers__item .govuk-checkboxes__item .govuk-checkboxes__input {
45
+ margin-left: -3px;
46
+ }
47
+
48
+ .im-c-datasets {
49
+ display: block;
50
+ }
@@ -0,0 +1 @@
1
+ import{useRef as e,useEffect as t}from"preact/compat";import{jsx as r,jsxs as a}from"preact/jsx-runtime";import i from"@babel/runtime/helpers/objectWithoutProperties";import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/asyncToGenerator";function n(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var u={SET_DATASETS:(e,t)=>{var{datasets:r,datasetDefaults:a}=t;return d(d({},e),{},{datasets:r.map(e=>d(d({},a),e))})},ADD_DATASET:(e,t)=>{var{dataset:r,datasetDefaults:a}=t;return d(d({},e),{},{datasets:[...e.datasets||[],d(d({},a),r)]})},REMOVE_DATASET:(e,t)=>{var r,{id:a}=t;return d(d({},e),{},{datasets:(null===(r=e.datasets)||void 0===r?void 0:r.filter(e=>e.id!==a))||[]})},SET_DATASET_VISIBILITY:(e,t)=>{var r,{id:a,visibility:i}=t;return d(d({},e),{},{datasets:null===(r=e.datasets)||void 0===r?void 0:r.map(e=>e.id===a?d(d({},e),{},{visibility:i}):e)})},HIDE_FEATURES:(e,t)=>{var{layerId:r,idProperty:a,featureIds:i}=t,o=e.hiddenFeatures[r],s=(null==o?void 0:o.ids)||[],n=[...new Set([...s,...i])];return d(d({},e),{},{hiddenFeatures:d(d({},e.hiddenFeatures),{},{[r]:{idProperty:a,ids:n}})})},SHOW_FEATURES:(e,t)=>{var{layerId:r,featureIds:a}=t,o=e.hiddenFeatures[r];if(!o)return e;var s=o.ids.filter(e=>!a.includes(e));if(0===s.length){var l=e.hiddenFeatures,{[r]:u}=l,c=i(l,[r].map(n));return d(d({},e),{},{hiddenFeatures:c})}return d(d({},e),{},{hiddenFeatures:d(d({},e.hiddenFeatures),{},{[r]:d(d({},o),{},{ids:s})})})}},c={stroke:"#d4351c",strokeWidth:2,fill:"transparent",symbolDescription:"red outline",minZoom:6,maxZoom:24,showInKey:!1,showInLayers:!1,visibility:"visible"},p=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null};function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var f=e=>{var t=0;for(var r of e)t=(t<<5)-t+r.codePointAt(0),t&=t;return Math.abs(t).toString(36)},h=e=>{if(e.tiles){var t=Array.isArray(e.tiles)?e.tiles.join(","):e.tiles;return"tiles-".concat(f(t))}return e.geojson?m(e)?"geojson-dynamic-".concat(e.id):"string"==typeof e.geojson?"geojson-".concat(f(e.geojson)):"geojson-".concat(e.id):"source-".concat(e.id)},m=e=>"string"==typeof e.geojson&&!!e.idProperty&&"function"==typeof e.transformRequest,g=(e,t,r)=>{var a=h(r);if(!e.getSource(a))if(r.tiles)e.addSource(a,{type:"vector",tiles:r.tiles,minzoom:r.minZoom||0,maxzoom:r.maxZoom||22});else if(r.geojson){var i=m(r)?{type:"FeatureCollection",features:[]}:r.geojson;e.addSource(a,{type:"geojson",data:i})}var o=!!r.fill,s=!!r.stroke,n=o?r.id:null,l=s?o?"".concat(r.id,"-stroke"):r.id:null,d="hidden"===r.visibility?"none":"visible";if(o&&!e.getLayer(n)){var u,c=p(r.fill,t);e.addLayer(v({id:n,type:"fill",source:a,"source-layer":null!=r&&null!==(u=r.tiles)&&void 0!==u&&u.length?r.sourceLayer:void 0,layout:{visibility:d},paint:{"fill-color":c,"fill-opacity":r.opacity||1}},r.filter?{filter:r.filter}:{}))}if(s&&!e.getLayer(l)){var y,f=p(r.stroke,t);e.addLayer(v({id:l,type:"line",source:a,"source-layer":null!=r&&null!==(y=r.tiles)&&void 0!==y&&y.length?r.sourceLayer:void 0,layout:{visibility:d},paint:v({"line-color":f,"line-width":r.strokeWidth||1,"line-opacity":r.opacity||1},r.strokeDashArray?{"line-dasharray":r.strokeDashArray}:{})},r.filter?{filter:r.filter}:{}))}},b=(e,t,r,a,i)=>{if(e.getLayer(t)){var o=((e,t,r)=>{if(!r||0===r.length)return e;var a=["!",["in",["to-string",["get",t]],["literal",r.map(e=>String(e))]]];return e?["all",e,a]:a})(r,a,i);e.setFilter(t,o)}},S=function(){var e=s(function*(e,t,r){var a=r(e,t),i="string"==typeof a?{url:a}:a,{url:o,headers:s={}}=i,n=yield fetch(o,{headers:s});if(!n.ok)throw new Error("Failed to fetch GeoJSON: ".concat(n.status," ").concat(n.statusText));var l=yield n.json();if("FeatureCollection"===l.type)return l;if("Feature"===l.type)return{type:"FeatureCollection",features:[l]};if(Array.isArray(l))return{type:"FeatureCollection",features:l};throw new Error("Invalid GeoJSON response")});return function(t,r,a){return e.apply(this,arguments)}}(),k=(e,t)=>!(!e||!t)&&!(e[2]<t[0]||e[0]>t[2]||e[3]<t[1]||e[1]>t[3]),w=e=>{var t=1/0,r=1/0,a=-1/0,i=-1/0,o=(e,s)=>{var n;0===s?(n=e,t=Math.min(t,n[0]),r=Math.min(r,n[1]),a=Math.max(a,n[0]),i=Math.max(i,n[1])):e.forEach(e=>o(e,s-1))};switch(e.type){case"Point":o(e.coordinates,0);break;case"LineString":case"MultiPoint":o(e.coordinates,1);break;case"Polygon":case"MultiLineString":o(e.coordinates,2);break;case"MultiPolygon":o(e.coordinates,3);break;case"GeometryCollection":e.geometries.forEach(e=>{var o=w(e);t=Math.min(t,o[0]),r=Math.min(r,o[1]),a=Math.max(a,o[2]),i=Math.max(i,o[3])})}return[t,r,a,i]},O=e=>{var t,r,a,i,{dataset:o,map:n,sourceId:l,onUpdate:d}=e,{geojson:u,idProperty:c,transformRequest:p,maxFeatures:y,minZoom:v=0}=o,f=new Map,h=null,m=!1,g=()=>({type:"FeatureCollection",features:Array.from(f.values()).map(e=>e.feature)}),b=function(){var e=s(function*(){var e=n.getZoom();if(!(e<v)){var t,r,a=(e=>{var t=e.getBounds();return[t.getWest(),t.getSouth(),t.getEast(),t.getNorth()]})(n);if(!(h&&(t=h,r=a,t&&r&&r[0]>=t[0]&&r[1]>=t[1]&&r[2]<=t[2]&&r[3]<=t[3])))if(!m){m=!0;try{var i={bbox:a,zoom:e,dataset:o},s=yield S(u,i,p),b=Date.now();s.features.forEach(e=>{var t=(e=>{var t,r;return c&&null!==(t=null===(r=e.properties)||void 0===r?void 0:r[c])&&void 0!==t?t:e.id})(e);null!=t?f.set(t,{feature:e,bbox:w(e.geometry),addedAt:f.has(t)?f.get(t).addedAt:b}):console.warn("Feature missing ID, skipping:",e)}),P=a,h=(O=h)?[Math.min(O[0],P[0]),Math.min(O[1],P[1]),Math.max(O[2],P[2]),Math.max(O[3],P[3])]:[...P],(e=>{if(y&&!(f.size<=1.2*y)){var t=y,r=[],a=[];for(var[i,o]of f)k(o.bbox,e)?r.push(i):a.push({id:i,addedAt:o.addedAt});a.sort((e,t)=>e.addedAt-t.addedAt);for(var s=f.size-t,n=0;n<s&&n<a.length;n++)f.delete(a[n].id);if(f.size>t)for(var l=f.size-t,d=r.map(e=>({id:e,addedAt:f.get(e).addedAt})).sort((e,t)=>e.addedAt-t.addedAt),u=0;u<l&&u<d.length;u++)f.delete(d[u].id)}})(a),d(l,g())}catch(e){console.error("Failed to fetch dynamic GeoJSON for ".concat(o.id,":"),e)}finally{m=!1}var O,P}}});return function(){return e.apply(this,arguments)}}(),O=(t=b,r=200,(i=function(){for(var e=arguments.length,i=new Array(e),o=0;o<e;o++)i[o]=arguments[o];clearTimeout(a),a=setTimeout(()=>t(...i),r)}).cancel=()=>{clearTimeout(a),a=null},i),P=()=>{O()};return n.on("moveend",P),b(),{destroy(){n.off("moveend",P),O.cancel()},clear(){f.clear(),h=null,d(l,{type:"FeatureCollection",features:[]})},refresh(){f.clear(),h=null,b()},getFeatureCount:()=>f.size,reapply(){f.size>0&&d(l,g())}}},P=e=>{var{pluginConfig:t,pluginStateRef:r,mapStyleId:a,mapProvider:i,events:o,eventBus:s}=e,{map:n}=i,{datasets:l}=t,d=new Map,u=()=>r.current.datasets||l;l.forEach(e=>{if(g(n,a,e),m(e)){var t=h(e),r=O({dataset:e,map:n,sourceId:t,onUpdate:(e,t)=>((e,t,r)=>{var a=e.getSource(t);a&&"function"==typeof a.setData&&a.setData(r)})(n,e,t)});d.set(e.id,r)}}),n.once("idle",()=>{s.emit("datasets:ready")});var c=(e=>{var{map:t,events:r,eventBus:a,getDatasets:i,getHiddenFeatures:o,getDynamicSources:s}=e,n=e=>{t.once("idle",()=>{var r=e.id,a=i(),n=o(),l=s?s():new Map;a.forEach(e=>{g(t,r,e)}),l.forEach(e=>{e.reapply()}),Object.entries(n).forEach(e=>{var[r,{idProperty:i,ids:o}]=e,s=a.find(e=>e.id===r);if(s){var n=s.filter||null,l=!!s.fill,d=!!s.stroke,u=l?r:null,c=d?l?"".concat(r,"-stroke"):r:null;u&&b(t,u,n,i,o),c&&b(t,c,n,i,o)}})})};return a.on(r.MAP_SET_STYLE,n),n})({map:n,events:o,eventBus:s,getDatasets:u,getHiddenFeatures:()=>r.current.hiddenFeatures||{},getDynamicSources:()=>d});return{remove(){s.off(o.MAP_SET_STYLE,c),d.forEach(e=>e.destroy()),d.clear();var e=u(),t=new Set;e.forEach(e=>{var r=h(e),a=((e,t)=>{var r=e.getStyle();return null!=r&&r.layers?r.layers.filter(e=>e.source===t).map(e=>e.id):[]})(n,r);a.forEach(e=>n.removeLayer(e)),!t.has(r)&&n.getSource(r)&&(n.removeSource(r),t.add(r))})},refreshDataset(e){var t=d.get(e);t&&t.refresh()},clearDatasetCache(e){var t=d.get(e);t&&t.clear()},getFeatureCount(e){var t=d.get(e);return t?t.getFeatureCount():null}}};var j=(e,t)=>{var{mapProvider:r,pluginState:a}=e,i=r.map;i.getLayer(t)&&i.setLayoutProperty(t,"visibility","visible"),i.getLayer("".concat(t,"-stroke"))&&i.setLayoutProperty("".concat(t,"-stroke"),"visibility","visible"),a.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:t,visibility:"visible"}})},E=(e,t)=>{var{mapProvider:r,pluginState:a}=e,i=r.map;i.getLayer(t)&&i.setLayoutProperty(t,"visibility","none"),i.getLayer("".concat(t,"-stroke"))&&i.setLayoutProperty("".concat(t,"-stroke"),"visibility","none"),a.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:t,visibility:"hidden"}})};function D(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function L(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?D(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):D(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var I={InitComponent:function(r){var a,{pluginConfig:i,pluginState:o,appState:s,mapState:n,mapProvider:l,services:d}=r,{dispatch:u}=o,{events:p,eventBus:y}=d,v=!(null===(a=l.map)||void 0===a||!a.getStyle()),f=e(o);f.current=o;var h=e(null);return t(()=>{var e,t,r,a,d=null===(e=null===(t=i.includeModes)||void 0===t?void 0:t.includes(s.mode))||void 0===e||e,m=null!==(r=null===(a=i.excludeModes)||void 0===a?void 0:a.includes(s.mode))&&void 0!==r&&r;v&&d&&!m&&(h.current||(o.datasets||u({type:"SET_DATASETS",payload:{datasets:i.datasets,datasetDefaults:c}}),h.current=P({mapStyleId:n.mapStyle.id,pluginConfig:i,pluginStateRef:f,mapProvider:l,events:p,eventBus:y})))},[v,s.mode]),t(()=>()=>{h.current&&(h.current.remove(),h.current=null)},[]),null},reducer:{initialState:{datasets:null,hiddenFeatures:{}},actions:u},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"bottom",modal:!0,dismissable:!0},tablet:{slot:"inset",dismissable:!0,exclusive:!0,width:"300px"},desktop:{slot:"inset",modal:!1,dismissable:!0,exclusive:!0,width:"320px"},render:e=>{var{pluginState:t,mapProvider:i}=e,o=e=>{var{value:r,checked:a}=e.target;a?j({mapProvider:i,pluginState:t},r):E({mapProvider:i,pluginState:t},r)};return r("div",{className:"im-c-datasets-layers",children:r("div",{className:"govuk-form-group",children:a("fieldset",{className:"govuk-fieldset",children:[r("legend",{className:"govuk-visually-hidden",children:"Layers"}),r("div",{className:"govuk-checkboxes govuk-checkboxes--small","data-module":"govuk-checkboxes",children:(t.datasets||[]).filter(e=>e.showInLayers).map(e=>r("div",{className:"im-c-datasets-layers__item".concat("hidden"!==e.visibility?" im-c-datasets-layers__item--checked":""),children:a("div",{className:"govuk-checkboxes__item",children:[r("input",{className:"govuk-checkboxes__input",id:e.id,name:"layers",type:"checkbox",value:e.id,checked:"hidden"!==e.visibility,onChange:o}),r("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:e.id,children:e.label})]})},e.id))})]})})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"bottom",modal:!0},tablet:{slot:"inset",width:"300px"},desktop:{slot:"inset",width:"320px"},render:e=>{var{mapState:t,pluginState:i}=e,{mapStyle:o}=t,s=e=>r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",children:"line"===e.keySymbolShape?r("line",{x1:e.strokeWidth/2,y1:"10",x2:20-e.strokeWidth/2,y2:"10",stroke:p(e.stroke,o.id),strokeWidth:e.strokeWidth,strokeLinecap:"round"}):r("rect",{x:e.strokeWidth/2,y:e.strokeWidth/2,width:20-e.strokeWidth,height:20-e.strokeWidth,rx:e.strokeWidth,ry:e.strokeWidth,fill:p(e.fill,o.id),stroke:p(e.stroke,o.id),strokeWidth:e.strokeWidth,strokeLinejoin:"round"})});return r("div",{className:"im-c-datasets-key",children:(i.datasets||[]).filter(e=>e.showInKey&&"hidden"!==e.visibility).map(e=>r("div",{className:"im-c-datasets-key__item",children:a("div",{className:"im-c-datasets-key__item-label",children:[s(e),e.label,e.symbolDescription&&a("span",{className:"govuk-visually-hidden",children:["(",p(e.symbolDescription,o.id),")"]})]})},e.id))})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.find(e=>e.showInLayers)},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:e=>{var{pluginConfig:t}=e;return!t.datasets.find(e=>e.showInKey)},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z"></path><path d="m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{showDataset:j,hideDataset:E,addDataset:(e,t)=>{var{mapProvider:r,mapState:a,pluginState:i}=e,o=r.map;g(o,a.mapStyle.id,L(L({},c),t)),i.dispatch({type:"ADD_DATASET",payload:{dataset:t,datasetDefaults:c}})},removeDataset:(e,t)=>{var r,a,{mapProvider:i,pluginState:o}=e,s=i.map,n=null===(r=o.datasets)||void 0===r?void 0:r.find(e=>e.id===t);if(n){var{fillLayerId:l,strokeLayerId:d}=(e=>{var t=!!e.fill,r=!!e.stroke,a=t?e.id:null,i=null;return r&&(i=t?"".concat(e.id,"-stroke"):e.id),{fillLayerId:a,strokeLayerId:i}})(n),u=h(n);[d,l].forEach(e=>{e&&s.getLayer(e)&&s.removeLayer(e)}),!(null===(a=o.datasets)||void 0===a?void 0:a.some(e=>e.id!==t&&h(e)===u))&&s.getSource(u)&&s.removeSource(u),o.dispatch({type:"REMOVE_DATASET",payload:{id:t}})}},showFeatures:(e,t)=>{var r,{mapProvider:a,pluginState:i}=e,{featureIds:o,idProperty:s,datasetId:n}=t,l=a.map,d=i.hiddenFeatures[n];if(d){var u=null===(r=i.datasets)||void 0===r?void 0:r.find(e=>e.id===n);if(u){var c=u.filter||null,p=!!u.fill,y=!!u.stroke,v=p?n:null,f=null;y&&(f=p?"".concat(n,"-stroke"):n);var h=d.ids.filter(e=>!o.includes(e));i.dispatch({type:"SHOW_FEATURES",payload:{layerId:n,featureIds:o}}),v&&b(l,v,c,s,h),f&&b(l,f,c,s,h)}}},hideFeatures:(e,t)=>{var r,{mapProvider:a,pluginState:i}=e,{featureIds:o,idProperty:s,datasetId:n}=t,l=a.map,d=null===(r=i.datasets)||void 0===r?void 0:r.find(e=>e.id===n);if(d){var u=d.filter||null,c=!!d.fill,p=!!d.stroke,y=c?n:null,v=null;p&&(v=c?"".concat(n,"-stroke"):n);var f=i.hiddenFeatures[n],h=f?[...new Set([...f.ids,...o])]:o;i.dispatch({type:"HIDE_FEATURES",payload:{layerId:n,idProperty:s,featureIds:o}}),y&&b(l,y,u,s,h),v&&b(l,v,u,s,h)}}}};export{I as manifest};
@@ -1,2 +1 @@
1
- /*! For license information please see index.js.LICENSE.txt */
2
- import{useEffect as t,useRef as e}from"react";import{jsx as r,jsxs as n}from"react/jsx-runtime";var o={"./plugins/beta/datasets/src/manifest.js"(o,i,a){function u(t){return u="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},u(t)}function c(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function f(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach(function(e){d(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function d(t,e,r){return(e=y(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function y(t){var e=function(t){if("object"!=u(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==u(e)?e:e+""}a.d(i,{manifest:()=>tt}),a.r(i);var p={SET_DATASETS:function(t,e){var r=e.datasets,n=e.datasetDefaults;return f(f({},t),{},{datasets:r.map(function(t){return f(f({},n),t)})})},ADD_DATASET:function(t,e){var r=e.dataset,n=e.datasetDefaults;return f(f({},t),{},{datasets:[].concat(c(t.datasets||[]),[f(f({},n),r)])})},REMOVE_DATASET:function(t,e){var r,n=e.id;return f(f({},t),{},{datasets:(null===(r=t.datasets)||void 0===r?void 0:r.filter(function(t){return t.id!==n}))||[]})},SET_DATASET_VISIBILITY:function(t,e){var r,n=e.id,o=e.visibility;return f(f({},t),{},{datasets:null===(r=t.datasets)||void 0===r?void 0:r.map(function(t){return t.id===n?f(f({},t),{},{visibility:o}):t})})},HIDE_FEATURES:function(t,e){var r=e.layerId,n=e.idProperty,o=e.featureIds,i=t.hiddenFeatures[r],a=(null==i?void 0:i.ids)||[],u=c(new Set([].concat(c(a),c(o))));return f(f({},t),{},{hiddenFeatures:f(f({},t.hiddenFeatures),{},d({},r,{idProperty:n,ids:u}))})},SHOW_FEATURES:function(t,e){var r=e.layerId,n=e.featureIds,o=t.hiddenFeatures[r];if(!o)return t;var i=o.ids.filter(function(t){return!n.includes(t)});if(0===i.length){var a=t.hiddenFeatures,u=(a[r],function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(a,[r].map(y)));return f(f({},t),{},{hiddenFeatures:u})}return f(f({},t),{},{hiddenFeatures:f(f({},t.hiddenFeatures),{},d({},r,f(f({},o),{},{ids:i})))})}},v={stroke:"#d4351c",strokeWidth:2,fill:"transparent",symbolDescription:"red outline",minZoom:6,maxZoom:24,showInKey:!1,showInLayers:!1,visibility:"visible"};function m(t){return m="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},m(t)}var b=function(t,e){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===m(t)){if(e&&t[e])return t[e];var r=Object.values(t)[0];return null!=r?r:null}return null};function h(t){return h="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},h(t)}function g(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function S(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?g(Object(r),!0).forEach(function(e){O(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function O(t,e,r){return(e=function(t){var e=function(t){if("object"!=h(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==h(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function w(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var j=function(t){var e,r=0,n=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return w(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?w(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(t);try{for(n.s();!(e=n.n()).done;)r=(r<<5)-r+e.value.codePointAt(0),r&=r}catch(t){n.e(t)}finally{n.f()}return Math.abs(r).toString(36)},P=function(t){if(t.tiles){var e=Array.isArray(t.tiles)?t.tiles.join(","):t.tiles;return"tiles-".concat(j(e))}return t.geojson?k(t)?"geojson-dynamic-".concat(t.id):"string"==typeof t.geojson?"geojson-".concat(j(t.geojson)):"geojson-".concat(t.id):"source-".concat(t.id)},k=function(t){return"string"==typeof t.geojson&&!!t.idProperty&&"function"==typeof t.transformRequest},A=function(t,e,r){var n=P(r);if(!t.getSource(n))if(r.tiles)t.addSource(n,{type:"vector",tiles:r.tiles,minzoom:r.minZoom||0,maxzoom:r.maxZoom||22});else if(r.geojson){var o=k(r)?{type:"FeatureCollection",features:[]}:r.geojson;t.addSource(n,{type:"geojson",data:o})}var i=!!r.fill,a=!!r.stroke,u=i?r.id:null,c=a?i?"".concat(r.id,"-stroke"):r.id:null,l="hidden"===r.visibility?"none":"visible";if(i&&!t.getLayer(u)){var s,f=b(r.fill,e);t.addLayer(S({id:u,type:"fill",source:n,"source-layer":null!=r&&null!==(s=r.tiles)&&void 0!==s&&s.length?r.sourceLayer:void 0,layout:{visibility:l},paint:{"fill-color":f,"fill-opacity":r.opacity||1}},r.filter?{filter:r.filter}:{}))}if(a&&!t.getLayer(c)){var d,y=b(r.stroke,e);t.addLayer(S({id:c,type:"line",source:n,"source-layer":null!=r&&null!==(d=r.tiles)&&void 0!==d&&d.length?r.sourceLayer:void 0,layout:{visibility:l},paint:S({"line-color":y,"line-width":r.strokeWidth||1,"line-opacity":r.opacity||1},r.strokeDashArray?{"line-dasharray":r.strokeDashArray}:{})},r.filter?{filter:r.filter}:{}))}},E=function(t,e,r,n,o){if(t.getLayer(e)){var i=function(t,e,r){if(!r||0===r.length)return t;var n=["!",["in",["to-string",["get",e]],["literal",r.map(function(t){return String(t)})]]];return t?["all",t,n]:n}(r,n,o);t.setFilter(e,i)}};function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function I(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof u?n:u,l=Object.create(c.prototype);return x(l,"_invoke",function(r,n,o){var i,u,c,l=0,s=o||[],f=!1,d={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,u=0,c=t,d.n=r,a}};function y(r,n){for(u=r,c=n,e=0;!f&&l&&!o&&e<s.length;e++){var o,i=s[e],y=d.p,p=i[2];r>3?(o=p===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=r<2&&y<i[1])?(u=0,d.v=n,d.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,d.n=p,u=0))}if(o||r>1)return a;throw f=!0,n}return function(o,s,p){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&y(s,p),u=s,c=p;(e=u<2?t:c)||!f;){i||(u?u<3?(u>1&&(d.n=-1),y(u,c)):d.n=c:d.v=c);try{if(l=2,i){if(u||(o="next"),e=i[o]){if(!(e=e.call(i,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,u<2&&(u=0)}else 1===u&&(e=i.return)&&e.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((e=(f=d.n<0)?c:r.call(n,d))!==a)break}catch(e){i=t,u=1,c=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function u(){}function c(){}function l(){}e=Object.getPrototypeOf;var s=[][n]?e(e([][n]())):(x(e={},n,function(){return this}),e),f=l.prototype=u.prototype=Object.create(s);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,x(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return c.prototype=l,x(f,"constructor",l),x(l,"constructor",c),c.displayName="GeneratorFunction",x(l,o,"GeneratorFunction"),x(f),x(f,o,"Generator"),x(f,n,function(){return this}),x(f,"toString",function(){return"[object Generator]"}),(I=function(){return{w:i,m:d}})()}function x(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}x=function(t,e,r,n){function i(e,r){x(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},x(t,e,r,n)}function _(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}var D=function(){var t,e=(t=I().m(function t(e,r,n){var o,i,a,u,c,l,s;return I().w(function(t){for(;;)switch(t.n){case 0:return o=n(e,r),a=(i="string"==typeof o?{url:o}:o).url,u=i.headers,c=void 0===u?{}:u,t.n=1,fetch(a,{headers:c});case 1:if((l=t.v).ok){t.n=2;break}throw new Error("Failed to fetch GeoJSON: ".concat(l.status," ").concat(l.statusText));case 2:return t.n=3,l.json();case 3:if("FeatureCollection"!==(s=t.v).type){t.n=4;break}return t.a(2,s);case 4:if("Feature"!==s.type){t.n=5;break}return t.a(2,{type:"FeatureCollection",features:[s]});case 5:if(!Array.isArray(s)){t.n=6;break}return t.a(2,{type:"FeatureCollection",features:s});case 6:throw new Error("Invalid GeoJSON response");case 7:return t.a(2)}},t)}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){_(i,n,o,a,u,"next",t)}function u(t){_(i,n,o,a,u,"throw",t)}a(void 0)})});return function(t,r,n){return e.apply(this,arguments)}}();function L(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var F=function(t){var e=t.getBounds();return[e.getWest(),e.getSouth(),e.getEast(),e.getNorth()]},M=function(t,e){return!(!t||!e)&&e[0]>=t[0]&&e[1]>=t[1]&&e[2]<=t[2]&&e[3]<=t[3]},C=function(t,e){return t?[Math.min(t[0],e[0]),Math.min(t[1],e[1]),Math.max(t[2],e[2]),Math.max(t[3],e[3])]:function(t){if(Array.isArray(t))return L(t)}(r=e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(t,e){if(t){if("string"==typeof t)return L(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?L(t,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var r},G=function(t,e){return!(!t||!e||t[2]<e[0]||t[0]>e[2]||t[3]<e[1]||t[1]>e[3])},N=function(t){var e=1/0,r=1/0,n=-1/0,o=-1/0,i=function(t,a){var u;0===a?(u=t,e=Math.min(e,u[0]),r=Math.min(r,u[1]),n=Math.max(n,u[0]),o=Math.max(o,u[1])):t.forEach(function(t){return i(t,a-1)})};switch(t.type){case"Point":i(t.coordinates,0);break;case"LineString":case"MultiPoint":i(t.coordinates,1);break;case"Polygon":case"MultiLineString":i(t.coordinates,2);break;case"MultiPolygon":i(t.coordinates,3);break;case"GeometryCollection":t.geometries.forEach(function(t){var i=N(t);e=Math.min(e,i[0]),r=Math.min(r,i[1]),n=Math.max(n,i[2]),o=Math.max(o,i[3])})}return[e,r,n,o]};function W(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof u?n:u,l=Object.create(c.prototype);return U(l,"_invoke",function(r,n,o){var i,u,c,l=0,s=o||[],f=!1,d={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,u=0,c=t,d.n=r,a}};function y(r,n){for(u=r,c=n,e=0;!f&&l&&!o&&e<s.length;e++){var o,i=s[e],y=d.p,p=i[2];r>3?(o=p===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=r<2&&y<i[1])?(u=0,d.v=n,d.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,d.n=p,u=0))}if(o||r>1)return a;throw f=!0,n}return function(o,s,p){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&y(s,p),u=s,c=p;(e=u<2?t:c)||!f;){i||(u?u<3?(u>1&&(d.n=-1),y(u,c)):d.n=c:d.v=c);try{if(l=2,i){if(u||(o="next"),e=i[o]){if(!(e=e.call(i,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,u<2&&(u=0)}else 1===u&&(e=i.return)&&e.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((e=(f=d.n<0)?c:r.call(n,d))!==a)break}catch(e){i=t,u=1,c=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function u(){}function c(){}function l(){}e=Object.getPrototypeOf;var s=[][n]?e(e([][n]())):(U(e={},n,function(){return this}),e),f=l.prototype=u.prototype=Object.create(s);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,U(t,o,"GeneratorFunction")),t.prototype=Object.create(f),t}return c.prototype=l,U(f,"constructor",l),U(l,"constructor",c),c.displayName="GeneratorFunction",U(l,o,"GeneratorFunction"),U(f),U(f,o,"Generator"),U(f,n,function(){return this}),U(f,"toString",function(){return"[object Generator]"}),(W=function(){return{w:i,m:d}})()}function U(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}U=function(t,e,r,n){function i(e,r){U(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},U(t,e,r,n)}function R(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function z(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||B(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function B(t,e){if(t){if("string"==typeof t)return K(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(t,e):void 0}}function K(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var H=function(t){var e=t.pluginConfig,r=t.pluginStateRef,n=t.mapStyleId,o=t.mapProvider,i=t.events,a=t.eventBus,u=o.map,c=e.datasets,l=new Map,s=function(){return r.current.datasets||c};c.forEach(function(t){if(A(u,n,t),k(t)){var e=P(t),r=function(t){var e,r,n,o=t.dataset,i=t.map,a=t.sourceId,u=t.onUpdate,c=o.geojson,l=o.idProperty,s=o.transformRequest,f=o.maxFeatures,d=o.minZoom,y=void 0===d?0:d,p=new Map,v=null,m=!1,b=function(){return{type:"FeatureCollection",features:Array.from(p.values()).map(function(t){return t.feature})}},h=function(t){var e,r;return l&&null!==(e=null===(r=t.properties)||void 0===r?void 0:r[l])&&void 0!==e?e:t.id},g=function(t){if(f&&!(p.size<=1.2*f)){var e,r=f,n=[],o=[],i=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=B(t))){e&&(t=e);var r=0,n=function(){};return{s:n,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==e.return||e.return()}finally{if(a)throw o}}}}(p);try{for(i.s();!(e=i.n()).done;){var a=z(e.value,2),u=a[0],c=a[1];G(c.bbox,t)?n.push(u):o.push({id:u,addedAt:c.addedAt})}}catch(t){i.e(t)}finally{i.f()}o.sort(function(t,e){return t.addedAt-e.addedAt});for(var l=p.size-r,s=0;s<l&&s<o.length;s++)p.delete(o[s].id);if(p.size>r)for(var d=p.size-r,y=n.map(function(t){return{id:t,addedAt:p.get(t).addedAt}}).sort(function(t,e){return t.addedAt-e.addedAt}),v=0;v<d&&v<y.length;v++)p.delete(y[v].id)}},S=function(){var t,e=(t=W().m(function t(){var e,r,n,l,f,d;return W().w(function(t){for(;;)switch(t.p=t.n){case 0:if(!((e=i.getZoom())<y)){t.n=1;break}return t.a(2);case 1:if(r=F(i),!v||!M(v,r)){t.n=2;break}return t.a(2);case 2:if(!m){t.n=3;break}return t.a(2);case 3:return m=!0,t.p=4,n={bbox:r,zoom:e,dataset:o},t.n=5,D(c,n,s);case 5:l=t.v,f=Date.now(),l.features.forEach(function(t){var e=h(t);null!=e?p.set(e,{feature:t,bbox:N(t.geometry),addedAt:p.has(e)?p.get(e).addedAt:f}):console.warn("Feature missing ID, skipping:",t)}),v=C(v,r),g(r),u(a,b()),t.n=7;break;case 6:t.p=6,d=t.v,console.error("Failed to fetch dynamic GeoJSON for ".concat(o.id,":"),d);case 7:return t.p=7,m=!1,t.f(7);case 8:return t.a(2)}},t,null,[[4,6,7,8]])}),function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){R(i,n,o,a,u,"next",t)}function u(t){R(i,n,o,a,u,"throw",t)}a(void 0)})});return function(){return e.apply(this,arguments)}}(),O=(e=S,n=function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];clearTimeout(r),r=setTimeout(function(){return e.apply(void 0,n)},200)},n.cancel=function(){clearTimeout(r),r=null},n),w=function(){O()};return i.on("moveend",w),S(),{destroy:function(){i.off("moveend",w),O.cancel()},clear:function(){p.clear(),v=null,u(a,{type:"FeatureCollection",features:[]})},refresh:function(){p.clear(),v=null,S()},getFeatureCount:function(){return p.size},reapply:function(){p.size>0&&u(a,b())}}}({dataset:t,map:u,sourceId:e,onUpdate:function(t,e){return function(t,e,r){var n=t.getSource(e);n&&"function"==typeof n.setData&&n.setData(r)}(u,t,e)}});l.set(t.id,r)}}),u.once("idle",function(){a.emit("datasets:ready")});var f=function(t){var e=t.map,r=t.events,n=t.getDatasets,o=t.getHiddenFeatures,i=t.getDynamicSources,a=function(t){e.once("idle",function(){var r=t.id,a=n(),u=o(),c=i?i():new Map;a.forEach(function(t){A(e,r,t)}),c.forEach(function(t){t.reapply()}),Object.entries(u).forEach(function(t){var r=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return T(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?T(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t,2),n=r[0],o=r[1],i=o.idProperty,u=o.ids,c=a.find(function(t){return t.id===n});if(c){var l=c.filter||null,s=!!c.fill,f=!!c.stroke,d=s?n:null,y=f?s?"".concat(n,"-stroke"):n:null;d&&E(e,d,l,i,u),y&&E(e,y,l,i,u)}})})};return t.eventBus.on(r.MAP_SET_STYLE,a),a}({map:u,events:i,eventBus:a,getDatasets:s,getHiddenFeatures:function(){return r.current.hiddenFeatures||{}},getDynamicSources:function(){return l}});return{remove:function(){a.off(i.MAP_SET_STYLE,f),l.forEach(function(t){return t.destroy()}),l.clear();var t=s(),e=new Set;t.forEach(function(t){var r=P(t),n=function(t,e){var r=t.getStyle();return null!=r&&r.layers?r.layers.filter(function(t){return t.source===e}).map(function(t){return t.id}):[]}(u,r);n.forEach(function(t){return u.removeLayer(t)}),!e.has(r)&&u.getSource(r)&&(u.removeSource(r),e.add(r))})},refreshDataset:function(t){var e=l.get(t);e&&e.refresh()},clearDatasetCache:function(t){var e=l.get(t);e&&e.clear()},getFeatureCount:function(t){var e=l.get(t);return e?e.getFeatureCount():null}}},Z=function(t,e){var r=t.mapProvider,n=t.pluginState,o=r.map;o.getLayer(e)&&o.setLayoutProperty(e,"visibility","visible"),o.getLayer("".concat(e,"-stroke"))&&o.setLayoutProperty("".concat(e,"-stroke"),"visibility","visible"),n.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:e,visibility:"visible"}})},$=function(t,e){var r=t.mapProvider,n=t.pluginState,o=r.map;o.getLayer(e)&&o.setLayoutProperty(e,"visibility","none"),o.getLayer("".concat(e,"-stroke"))&&o.setLayoutProperty("".concat(e,"-stroke"),"visibility","none"),n.dispatch({type:"SET_DATASET_VISIBILITY",payload:{id:e,visibility:"hidden"}})};function V(t){return V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},V(t)}function Y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function J(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Y(Object(r),!0).forEach(function(e){q(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function q(t,e,r){return(e=function(t){var e=function(t){if("object"!=V(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=V(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==V(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Q(t){return function(t){if(Array.isArray(t))return X(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return X(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?X(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function X(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var tt={InitComponent:function(r){var n,o=r.pluginConfig,i=r.pluginState,a=r.appState,u=r.mapState,c=r.mapProvider,l=r.services,s=i.dispatch,f=l.events,d=l.eventBus,y=!(null===(n=c.map)||void 0===n||!n.getStyle()),p=e(i);p.current=i;var m=e(null);return t(function(){var t,e,r,n,l=null===(t=null===(e=o.includeModes)||void 0===e?void 0:e.includes(a.mode))||void 0===t||t,b=null!==(r=null===(n=o.excludeModes)||void 0===n?void 0:n.includes(a.mode))&&void 0!==r&&r;y&&l&&!b&&(m.current||(i.datasets||s({type:"SET_DATASETS",payload:{datasets:o.datasets,datasetDefaults:v}}),m.current=H({mapStyleId:u.mapStyle.id,pluginConfig:o,pluginStateRef:p,mapProvider:c,events:f,eventBus:d})))},[y,a.mode]),t(function(){return function(){m.current&&(m.current.remove(),m.current=null)}},[]),null},reducer:{initialState:{datasets:null,hiddenFeatures:{}},actions:p},panels:[{id:"datasetsLayers",label:"Layers",mobile:{slot:"bottom",modal:!0,dismissable:!0},tablet:{slot:"inset",dismissable:!0,exclusive:!0,width:"300px"},desktop:{slot:"inset",modal:!1,dismissable:!0,exclusive:!0,width:"320px"},render:function(t){var e=t.pluginState,o=t.mapProvider,i=function(t){var r=t.target,n=r.value;r.checked?Z({mapProvider:o,pluginState:e},n):$({mapProvider:o,pluginState:e},n)};return r("div",{className:"im-c-datasets-layers",children:r("div",{className:"govuk-form-group",children:n("fieldset",{className:"govuk-fieldset",children:[r("legend",{className:"govuk-visually-hidden",children:"Layers"}),r("div",{className:"govuk-checkboxes govuk-checkboxes--small","data-module":"govuk-checkboxes",children:(e.datasets||[]).filter(function(t){return t.showInLayers}).map(function(t){return r("div",{className:"im-c-datasets-layers__item".concat("hidden"!==t.visibility?" im-c-datasets-layers__item--checked":""),children:n("div",{className:"govuk-checkboxes__item",children:[r("input",{className:"govuk-checkboxes__input",id:t.id,name:"layers",type:"checkbox",value:t.id,checked:"hidden"!==t.visibility,onChange:i}),r("label",{className:"im-c-datasets-layers__item-label govuk-label govuk-checkboxes__label",htmlFor:t.id,children:t.label})]})},t.id)})})]})})})}},{id:"datasetsKey",label:"Key",mobile:{slot:"bottom",modal:!0},tablet:{slot:"inset",width:"300px"},desktop:{slot:"inset",width:"320px"},render:function(t){var e=t.mapState,o=t.pluginState,i=e.mapStyle,a=function(t){return r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",children:"line"===t.keySymbolShape?r("line",{x1:t.strokeWidth/2,y1:"10",x2:20-t.strokeWidth/2,y2:"10",stroke:b(t.stroke,i.id),strokeWidth:t.strokeWidth,strokeLinecap:"round"}):r("rect",{x:t.strokeWidth/2,y:t.strokeWidth/2,width:20-t.strokeWidth,height:20-t.strokeWidth,rx:t.strokeWidth,ry:t.strokeWidth,fill:b(t.fill,i.id),stroke:b(t.stroke,i.id),strokeWidth:t.strokeWidth,strokeLinejoin:"round"})})};return r("div",{className:"im-c-datasets-key",children:(o.datasets||[]).filter(function(t){return t.showInKey&&"hidden"!==t.visibility}).map(function(t){return r("div",{className:"im-c-datasets-key__item",children:n("div",{className:"im-c-datasets-key__item-label",children:[a(t),t.label,t.symbolDescription&&n("span",{className:"govuk-visually-hidden",children:["(",b(t.symbolDescription,i.id),")"]})]})},t.id)})})}}],buttons:[{id:"datasetsLayers",label:"Layers",panelId:"datasetsLayers",iconId:"layers",excludeWhen:function(t){return!t.pluginConfig.datasets.find(function(t){return t.showInLayers})},mobile:{slot:"top-left",showLabel:!0},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}},{id:"datasetsKey",label:"Key",panelId:"datasetsKey",iconId:"key",excludeWhen:function(t){return!t.pluginConfig.datasets.find(function(t){return t.showInKey})},mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"layers",svgContent:'<path d="M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z"></path><path d="m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845"></path>'},{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}],api:{showDataset:Z,hideDataset:$,addDataset:function(t,e){var r=t.mapProvider,n=t.mapState,o=t.pluginState,i=r.map;A(i,n.mapStyle.id,J(J({},v),e)),o.dispatch({type:"ADD_DATASET",payload:{dataset:e,datasetDefaults:v}})},removeDataset:function(t,e){var r,n,o=t.mapProvider,i=t.pluginState,a=o.map,u=null===(r=i.datasets)||void 0===r?void 0:r.find(function(t){return t.id===e});if(u){var c=function(t){var e=!!t.fill,r=!!t.stroke,n=e?t.id:null,o=null;return r&&(o=e?"".concat(t.id,"-stroke"):t.id),{fillLayerId:n,strokeLayerId:o}}(u),l=c.fillLayerId,s=c.strokeLayerId,f=P(u);[s,l].forEach(function(t){t&&a.getLayer(t)&&a.removeLayer(t)}),!(null===(n=i.datasets)||void 0===n?void 0:n.some(function(t){return t.id!==e&&P(t)===f}))&&a.getSource(f)&&a.removeSource(f),i.dispatch({type:"REMOVE_DATASET",payload:{id:e}})}},showFeatures:function(t,e){var r,n=t.mapProvider,o=t.pluginState,i=e.featureIds,a=e.idProperty,u=e.datasetId,c=n.map,l=o.hiddenFeatures[u];if(l){var s=null===(r=o.datasets)||void 0===r?void 0:r.find(function(t){return t.id===u});if(s){var f=s.filter||null,d=!!s.fill,y=!!s.stroke,p=d?u:null,v=null;y&&(v=d?"".concat(u,"-stroke"):u);var m=l.ids.filter(function(t){return!i.includes(t)});o.dispatch({type:"SHOW_FEATURES",payload:{layerId:u,featureIds:i}}),p&&E(c,p,f,a,m),v&&E(c,v,f,a,m)}}},hideFeatures:function(t,e){var r,n=t.mapProvider,o=t.pluginState,i=e.featureIds,a=e.idProperty,u=e.datasetId,c=n.map,l=null===(r=o.datasets)||void 0===r?void 0:r.find(function(t){return t.id===u});if(l){var s=l.filter||null,f=!!l.fill,d=!!l.stroke,y=f?u:null,p=null;d&&(p=f?"".concat(u,"-stroke"):u);var v=o.hiddenFeatures[u],m=v?Q(new Set([].concat(Q(v.ids),Q(i)))):i;o.dispatch({type:"HIDE_FEATURES",payload:{layerId:u,idProperty:a,featureIds:i}}),y&&E(c,y,s,a,m),p&&E(c,p,s,a,m)}}}}}},i={};function a(t){var e=i[t];if(void 0!==e)return e.exports;var r=i[t]={exports:{}};return o[t](r,r.exports,a),r.exports}a.d=(t,e)=>{for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var u={};function c(t){return c="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},c(t)}function l(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof u?n:u,l=Object.create(c.prototype);return s(l,"_invoke",function(r,n,o){var i,u,c,l=0,s=o||[],f=!1,d={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(e,r){return i=e,u=0,c=t,d.n=r,a}};function y(r,n){for(u=r,c=n,e=0;!f&&l&&!o&&e<s.length;e++){var o,i=s[e],y=d.p,p=i[2];r>3?(o=p===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=r<2&&y<i[1])?(u=0,d.v=n,d.n=i[1]):y<p&&(o=r<3||i[0]>n||n>p)&&(i[4]=r,i[5]=n,d.n=p,u=0))}if(o||r>1)return a;throw f=!0,n}return function(o,s,p){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&y(s,p),u=s,c=p;(e=u<2?t:c)||!f;){i||(u?u<3?(u>1&&(d.n=-1),y(u,c)):d.n=c:d.v=c);try{if(l=2,i){if(u||(o="next"),e=i[o]){if(!(e=e.call(i,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,u<2&&(u=0)}else 1===u&&(e=i.return)&&e.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((e=(f=d.n<0)?c:r.call(n,d))!==a)break}catch(e){i=t,u=1,c=e}finally{l=1}}return{value:e,done:f}}}(r,o,i),!0),l}var a={};function u(){}function c(){}function f(){}e=Object.getPrototypeOf;var d=[][n]?e(e([][n]())):(s(e={},n,function(){return this}),e),y=f.prototype=u.prototype=Object.create(d);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,f):(t.__proto__=f,s(t,o,"GeneratorFunction")),t.prototype=Object.create(y),t}return c.prototype=f,s(y,"constructor",f),s(f,"constructor",c),c.displayName="GeneratorFunction",s(f,o,"GeneratorFunction"),s(y),s(y,o,"Generator"),s(y,n,function(){return this}),s(y,"toString",function(){return"[object Generator]"}),(l=function(){return{w:i,m:p}})()}function s(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}s=function(t,e,r,n){function i(e,r){s(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},s(t,e,r,n)}function f(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function d(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function y(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?d(Object(r),!0).forEach(function(e){p(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function p(t,e,r){return(e=function(t){var e=function(t){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function v(){var t,e,r=y(y({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"datasets",load:(t=l().m(function t(){var e;return l().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,Promise.resolve().then(a.bind(a,"./plugins/beta/datasets/src/manifest.js"));case 1:return e=t.v.manifest,t.a(2,e)}},t)}),e=function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function a(t){f(i,n,o,a,u,"next",t)}function u(t){f(i,n,o,a,u,"throw",t)}a(void 0)})},function(){return e.apply(this,arguments)})});return r}a.d(u,{A:()=>v});const m=u.A;export{m as default};
1
+ import e from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function n(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?r(Object(o),!0).forEach(function(r){t(e,r,o[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))})}return e}function o(){var t,r=n(n({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"datasets",load:(t=e(function*(){return(yield import(/* webpackChunkName: "im-datasets-plugin" */ "./im-datasets-plugin.js")).manifest}),function(){return t.apply(this,arguments)})});return r}export{o as default};
@@ -0,0 +1 @@
1
+ import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import o from"@arcgis/core/layers/GraphicsLayer.js";import a from"@babel/runtime/helpers/asyncToGenerator";import*as n from"@arcgis/core/geometry/operators/simplifyOperator.js";import i from"@arcgis/core/Graphic.js";function l(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(t){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?l(Object(o),!0).forEach(function(r){e(t,r,o[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):l(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}function c(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(t){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?c(Object(o),!0).forEach(function(r){e(t,r,o[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):c(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}function u(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function d(e,t,r){return new i({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:u(r)})}function y(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var{geometry:t,attributes:r={}}=e;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:s({},r)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:s({},r)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:s({},r)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function m(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 h(t){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?m(Object(o),!0).forEach(function(r){e(t,r,o[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):m(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}var f={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},v={reducer:{initialState:{mode:null,feature:null,tempFeature:null},actions:{SET_MODE:(e,t)=>p(p({},e),{},{mode:t}),SET_FEATURE:(e,t)=>p(p({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature})}},InitComponent:e=>{var i,l,p,c,{appState:s,mapState:m,pluginConfig:h,pluginState:f,services:v,mapProvider:g,buttonConfig:b}=e,{events:O,eventBus:w}=v,{mapColorScheme:S}=m.mapStyle||{},k=null===(i=null===(l=h.includeModes)||void 0===l?void 0:l.includes(s.mode))||void 0===i||i,E=null!==(p=null===(c=h.excludeModes)||void 0===c?void 0:c.includes(s.mode))&&void 0!==p&&p,P=m.isMapReady&&k&&!E;t(()=>{if(P&&!g.sketchViewModel){var{sketchViewModel:e,sketchLayer:t,emptySketchLayer:a}=(e=>{var{mapProvider:t}=e,{view:a}=t,n=new o({id:"sketchLayer"});a.map.add(n);var i=new o({id:"emptySketchLayer"});return a.map.add(i),{sketchViewModel:new r({view:a,layer:i,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:i,sketchLayer:n}})({mapProvider:g});return g.sketchViewModel=e,g.sketchLayer=t,g.emptySketchLayer=a,w.emit("draw:ready"),()=>{g.sketchViewModel=null,g.sketchLayer=null,g.emptySketchLayer=null}}},[m.isMapReady,s.mode]),t(()=>{if(P&&g.sketchViewModel){var e=function(e){var{pluginState:t,mapProvider:r,events:o,eventBus:i,buttonConfig:l,mapColorScheme:p}=e,{view:c,sketchViewModel:s,sketchLayer:m,emptySketchLayer:h}=r;if(!s)return null;var{drawDone:f,drawCancel:v}=l,{dispatch:g,mode:b,feature:O}=t,w=function(){var e=a(function*(){var e,r=null===(e=t.feature)||void 0===e||null===(e=e.properties)||void 0===e?void 0:e.id,o=null,a="active"===s.state&&!r;if("active"===s.state&&r&&(s.cancel(),yield new Promise(e=>setTimeout(e,50))),s.polygonSymbol=u(p),null==m||m.graphics.items.forEach(e=>{var t=d(e.attributes.id,e.geometry.rings,p);e.symbol=t.symbol,r===e.attributes.id&&(o=e)}),o&&!a&&s.layer===m)try{yield s.update(o,{tool:"reshape",toggleToolOnClick:!1})}catch(e){"AbortError"!==e.name&&console.error("Error updating sketch:",e)}});return function(){return e.apply(this,arguments)}}(),S=()=>{var e,t,r=null!==(e=null===(t=m.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(()=>s.update(r),0)},k=()=>w(),E=function(){var e=a(function*(){b&&((s.updateGraphics||[]).length||S())});return function(){return e.apply(this,arguments)}}();i.on(o.MAP_STYLE_CHANGE,k);var P=s.on("update",e=>{var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,o=e.graphics[0];if("move-start"===r&&(s.cancel(),S()),"reshape"===r&&(n.isSimple(o.geometry)||s.undo()),"reshape-stop"===r){var a=y(o);i.emit("draw:update",a),g({type:"SET_FEATURE",payload:{tempFeature:a}})}}),j=c.on("click",E),T=f.onClick,C=v.onClick;return f.onClick=()=>{s.cancel(),s.layer=h,g({type:"SET_MODE",payload:null}),g({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},v.onClick=()=>{if(s.cancel(),m.removeAll(),O){var e=d(O.id||O.properties.id,O.geometry.coordinates,p);m.add(e)}s.layer=h,g({type:"SET_MODE",payload:null}),i.emit("draw:cancel")},()=>{i.off(o.MAP_STYLE_CHANGE,k),P.remove(),j.remove(),f.onClick=T,v.onClick=C}}({pluginState:f,mapProvider:g,events:O,eventBus:w,buttonConfig:b,mapColorScheme:S});return()=>{e()}}},[P,S,f])},buttons:[h({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode},enableWhen:e=>{var{pluginState:t}=e;return!!t.tempFeature}},f),h({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},f)],api:{newPolygon:(e,t)=>{var{mapState:r,pluginState:o,mapProvider:a,services:n}=e,{dispatch:i}=o,{sketchViewModel:l,sketchLayer:p}=a,{eventBus:c}=n;l.layer=p;var s=l.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},console.log("create-complete",a.sketchLayer.graphics.items.length),requestAnimationFrame(()=>{l.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=y(e.graphic);c.emit("draw:create",r),i({type:"SET_FEATURE",payload:{tempFeature:r}}),s.remove()}});l.polygonSymbol=u(r.mapStyle.mapColorScheme),l.create("polygon"),i({type:"SET_MODE",payload:"new-polygon"})},editFeature:(e,t)=>{var{pluginState:r,mapProvider:o}=e,{dispatch:a}=r,{sketchViewModel:n,sketchLayer:i}=o,l=i.graphics.items.find(e=>e.attributes.id===t),p=l.geometry.extent,c=[p.xmin,p.ymin,p.xmax,p.ymax];o.fitToBounds(c),n.layer=i,n.update(l,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),a({type:"SET_FEATURE",payload:{feature:y(l)}}),a({type:"SET_MODE",payload:"edit-feature"})},addFeature:(e,t)=>{var{pluginState:r,mapState:o,mapProvider:a,services:n}=e,{dispatch:i}=r,{mapStyle:l}=o,{sketchViewModel:p,sketchLayer:c,emptySketchLayer:s}=a,{eventBus:u}=n,y=d(t.id,t.geometry.coordinates,l.mapColorScheme);c.add(y),p.layer=s,i({type:"SET_FEATURE",payload:{feature:t}}),u.emit("draw:add",t)},deleteFeature:(e,t)=>{var{pluginState:r,mapProvider:o,services:a}=e,{dispatch:n}=r,{sketchViewModel:i,sketchLayer:l,emptySketchLayer:p}=o,{eventBus:c}=a,s=l.graphics.items.find(e=>e.attributes.id===t);i.cancel(),l.remove(s),i.layer=p,n({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),c.emit("draw:delete",{featureId:t}),n({type:"SET_MODE",payload:null})}}};export{v as manifest};
@@ -1,2 +1 @@
1
- /*! For license information please see index.js.LICENSE.txt */
2
- import{useEffect as e}from"react";import{default as t}from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import{default as r}from"@arcgis/core/layers/GraphicsLayer.js";import{isSimple as n}from"@arcgis/core/geometry/operators/simplifyOperator.js";import{default as o}from"@arcgis/core/Graphic.js";var i={"./plugins/beta/draw-es/src/manifest.js"(i,a,c){function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){f(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function f(e,t,r){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function m(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){d(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}function d(e,t,r){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function v(e,t,r){return new o({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:b(r)})}function h(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var t=e.geometry,r=e.attributes,n=void 0===r?{}:r;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:m({},n)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:m({},n)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:m({},n)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function g(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof c?n:c,l=Object.create(u.prototype);return O(l,"_invoke",function(r,n,o){var i,c,u,l=0,p=o||[],f=!1,s={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return i=t,c=0,u=e,s.n=r,a}};function y(r,n){for(c=r,u=n,t=0;!f&&l&&!o&&t<p.length;t++){var o,i=p[t],y=s.p,m=i[2];r>3?(o=m===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=y&&((o=r<2&&y<i[1])?(c=0,s.v=n,s.n=i[1]):y<m&&(o=r<3||i[0]>n||n>m)&&(i[4]=r,i[5]=n,s.n=m,c=0))}if(o||r>1)return a;throw f=!0,n}return function(o,p,m){if(l>1)throw TypeError("Generator is already running");for(f&&1===p&&y(p,m),c=p,u=m;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(s.n=-1),y(c,u)):s.n=u:s.v=u);try{if(l=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=s.n<0)?u:r.call(n,s))!==a)break}catch(t){i=e,c=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function c(){}function u(){}function l(){}t=Object.getPrototypeOf;var p=[][n]?t(t([][n]())):(O(t={},n,function(){return this}),t),f=l.prototype=c.prototype=Object.create(p);function s(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,O(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,O(f,"constructor",l),O(l,"constructor",u),u.displayName="GeneratorFunction",O(l,o,"GeneratorFunction"),O(f),O(f,o,"Generator"),O(f,n,function(){return this}),O(f,"toString",function(){return"[object Generator]"}),(g=function(){return{w:i,m:s}})()}function O(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}O=function(e,t,r,n){function i(t,r){O(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},O(e,t,r,n)}function w(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function S(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){w(i,n,o,a,c,"next",e)}function c(e){w(i,n,o,a,c,"throw",e)}a(void 0)})}}function j(e){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j(e)}function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach(function(t){k(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function k(e,t,r){return(t=function(e){var t=function(e){if("object"!=j(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=j(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==j(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}c.d(a,{manifest:()=>F}),c.r(a);var T={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},F={reducer:{initialState:{mode:null,feature:null,tempFeature:null},actions:{SET_MODE:function(e,t){return p(p({},e),{},{mode:t})},SET_FEATURE:function(e,t){return p(p({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature})}}},InitComponent:function(o){var i,a,c,u,l=o.appState,p=o.mapState,f=o.pluginConfig,s=o.pluginState,y=o.services,m=o.mapProvider,d=o.buttonConfig,O=y.events,w=y.eventBus,j=(p.mapStyle||{}).mapColorScheme,P=null===(i=null===(a=f.includeModes)||void 0===a?void 0:a.includes(l.mode))||void 0===i||i,E=null!==(c=null===(u=f.excludeModes)||void 0===u?void 0:u.includes(l.mode))&&void 0!==c&&c,k=p.isMapReady&&P&&!E;e(function(){if(k&&!m.sketchViewModel){var e=function(e){var n=e.mapProvider.view,o=new r({id:"sketchLayer"});n.map.add(o);var i=new r({id:"emptySketchLayer"});return n.map.add(i),{sketchViewModel:new t({view:n,layer:i,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:i,sketchLayer:o}}({pluginState:s,mapProvider:m,eventBus:w}),n=e.sketchViewModel,o=e.sketchLayer,i=e.emptySketchLayer;return m.sketchViewModel=n,m.sketchLayer=o,m.emptySketchLayer=i,w.emit("draw:ready"),function(){m.sketchViewModel=null,m.sketchLayer=null,m.emptySketchLayer=null}}},[p.isMapReady,l.mode]),e(function(){if(k&&m.sketchViewModel){var e=function(e){var t=e.pluginState,r=e.mapProvider,o=e.events,i=e.eventBus,a=e.buttonConfig,c=e.mapColorScheme,u=r.view,l=r.sketchViewModel,p=r.sketchLayer,f=r.emptySketchLayer;if(!l)return null;var s=a.drawDone,y=a.drawCancel,m=t.dispatch,d=t.mode,O=t.feature,w=function(){var e=S(g().m(function e(){var r,n,o,i,a;return g().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=null===(r=t.feature)||void 0===r||null===(r=r.properties)||void 0===r?void 0:r.id,o=null,i="active"===l.state&&!n,"active"!==l.state||!n){e.n=1;break}return l.cancel(),e.n=1,new Promise(function(e){return setTimeout(e,50)});case 1:if(l.polygonSymbol=b(c),null==p||p.graphics.items.forEach(function(e){var t=v(e.attributes.id,e.geometry.rings,c);e.symbol=t.symbol,n===e.attributes.id&&(o=e)}),!o||i||l.layer!==p){e.n=5;break}return e.p=2,e.n=3,l.update(o,{tool:"reshape",toggleToolOnClick:!1});case 3:e.n=5;break;case 4:e.p=4,"AbortError"!==(a=e.v).name&&console.error("Error updating sketch:",a);case 5:return e.a(2)}},e,null,[[2,4]])}));return function(){return e.apply(this,arguments)}}(),j=function(){var e,t,r=null!==(e=null===(t=p.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(function(){return l.update(r)},0)},P=function(){return w()},E=function(){var e=S(g().m(function e(){return g().w(function(e){for(;;)switch(e.n){case 0:if(d){e.n=1;break}return e.a(2);case 1:if(!(l.updateGraphics||[]).length){e.n=2;break}return e.a(2);case 2:j();case 3:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();i.on(o.MAP_STYLE_CHANGE,P);var k=l.on("update",function(e){var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,o=e.graphics[0];if("move-start"===r&&(l.cancel(),j()),"reshape"===r&&(n(o.geometry)||l.undo()),"reshape-stop"===r){var a=h(o);i.emit("draw:update",a),m({type:"SET_FEATURE",payload:{tempFeature:a}})}}),T=u.on("click",E),F=s.onClick,_=y.onClick;return s.onClick=function(){l.cancel(),l.layer=f,m({type:"SET_MODE",payload:null}),m({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=function(){if(l.cancel(),p.removeAll(),O){var e=v(O.id||O.properties.id,O.geometry.coordinates,c);p.add(e)}l.layer=f,m({type:"SET_MODE",payload:null}),i.emit("draw:cancel")},function(){i.off(o.MAP_STYLE_CHANGE,P),k.remove(),T.remove(),s.onClick=F,y.onClick=_}}({pluginState:s,mapProvider:m,events:O,eventBus:w,buttonConfig:d,mapColorScheme:j});return function(){e()}}},[k,j,s])},buttons:[E({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:function(e){return!e.pluginState.mode},enableWhen:function(e){return!!e.pluginState.tempFeature}},T),E({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:function(e){return!e.pluginState.mode}},T)],api:{newPolygon:function(e,t){var r=e.mapState,n=e.pluginState,o=e.mapProvider,i=e.services,a=n.dispatch,c=o.sketchViewModel,u=o.sketchLayer,l=i.eventBus;c.layer=u;var p=c.on("create",function(e){if("complete"===e.state){e.graphic.attributes={id:t},console.log("create-complete",o.sketchLayer.graphics.items.length),requestAnimationFrame(function(){c.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=h(e.graphic);l.emit("draw:create",r),a({type:"SET_FEATURE",payload:{tempFeature:r}}),p.remove()}});c.polygonSymbol=b(r.mapStyle.mapColorScheme),c.create("polygon"),a({type:"SET_MODE",payload:"new-polygon"})},editFeature:function(e,t){var r=e.pluginState,n=e.mapProvider,o=r.dispatch,i=n.sketchViewModel,a=n.sketchLayer,c=a.graphics.items.find(function(e){return e.attributes.id===t}),u=c.geometry.extent,l=[u.xmin,u.ymin,u.xmax,u.ymax];n.fitToBounds(l),i.layer=a,i.update(c,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),o({type:"SET_FEATURE",payload:{feature:h(c)}}),o({type:"SET_MODE",payload:"edit-feature"})},addFeature:function(e,t){var r=e.pluginState,n=e.mapState,o=e.mapProvider,i=e.services,a=r.dispatch,c=n.mapStyle,u=o.sketchViewModel,l=o.sketchLayer,p=o.emptySketchLayer,f=i.eventBus,s=v(t.id,t.geometry.coordinates,c.mapColorScheme);l.add(s),u.layer=p,a({type:"SET_FEATURE",payload:{feature:t}}),f.emit("draw:add",t)},deleteFeature:function(e,t){var r=e.pluginState,n=e.mapProvider,o=e.services,i=r.dispatch,a=n.sketchViewModel,c=n.sketchLayer,u=n.emptySketchLayer,l=o.eventBus,p=c.graphics.items.find(function(e){return e.attributes.id===t});a.cancel(),c.remove(p),a.layer=u,i({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),l.emit("draw:delete",{featureId:t}),i({type:"SET_MODE",payload:null})}}}}},a={};function c(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return i[e](r,r.exports,c),r.exports}c.d=(e,t)=>{for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var u={};function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function p(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof c?n:c,l=Object.create(u.prototype);return f(l,"_invoke",function(r,n,o){var i,c,u,l=0,p=o||[],f=!1,s={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return i=t,c=0,u=e,s.n=r,a}};function y(r,n){for(c=r,u=n,t=0;!f&&l&&!o&&t<p.length;t++){var o,i=p[t],y=s.p,m=i[2];r>3?(o=m===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=y&&((o=r<2&&y<i[1])?(c=0,s.v=n,s.n=i[1]):y<m&&(o=r<3||i[0]>n||n>m)&&(i[4]=r,i[5]=n,s.n=m,c=0))}if(o||r>1)return a;throw f=!0,n}return function(o,p,m){if(l>1)throw TypeError("Generator is already running");for(f&&1===p&&y(p,m),c=p,u=m;(t=c<2?e:u)||!f;){i||(c?c<3?(c>1&&(s.n=-1),y(c,u)):s.n=u:s.v=u);try{if(l=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(f=s.n<0)?u:r.call(n,s))!==a)break}catch(t){i=e,c=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function c(){}function u(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(f(t={},n,function(){return this}),t),y=l.prototype=c.prototype=Object.create(s);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,f(e,o,"GeneratorFunction")),e.prototype=Object.create(y),e}return u.prototype=l,f(y,"constructor",l),f(l,"constructor",u),u.displayName="GeneratorFunction",f(l,o,"GeneratorFunction"),f(y),f(y,o,"Generator"),f(y,n,function(){return this}),f(y,"toString",function(){return"[object Generator]"}),(p=function(){return{w:i,m}})()}function f(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}f=function(e,t,r,n){function i(t,r){f(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},f(e,t,r,n)}function s(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function m(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){d(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}function d(e,t,r){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(){var e,t;return m(m({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"draw",load:(e=p().m(function e(){var t;return p().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.resolve().then(c.bind(c,"./plugins/beta/draw-es/src/manifest.js"));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){s(i,n,o,a,c,"next",e)}function c(e){s(i,n,o,a,c,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})})}c.d(u,{A:()=>b});const v=u.A;export{v as default};
1
+ import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/defineProperty";function t(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function n(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?t(Object(o),!0).forEach(function(t){r(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(o,r))})}return e}function o(){var r;return n(n({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"draw",load:(r=e(function*(){return(yield import(/* webpackChunkName: "im-draw-es-plugin" */ "./im-draw-es-plugin.js")).manifest}),function(){return r.apply(this,arguments)})})}export{o as default};