@defra/interactive-map 0.0.41-alpha → 0.0.43-fmp-experimental
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/index.css +1 -1
- package/dist/esm/im-core.js +1 -1
- package/dist/umd/im-core.js +1 -1
- package/dist/umd/index.js +1 -1
- package/docs/api/button-definition.md +7 -8
- package/docs/api/control-definition.md +8 -0
- package/docs/api/panel-definition.md +5 -0
- package/docs/api/slots.md +24 -1
- package/docs/examples/add-polygons.mdx +8 -2
- package/docs/examples/add-symbols.mdx +8 -2
- package/docs/plugins/datasets.md +23 -15
- package/docs/plugins/map-key.md +147 -0
- package/docs/plugins.md +5 -1
- package/package.json +1 -1
- package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
- package/plugins/beta/map-styles/dist/umd/index.js +1 -1
- package/plugins/beta/scale-bar/dist/css/index.css +2 -25
- package/plugins/beta/use-location/dist/esm/im-use-location-plugin.js +1 -1
- package/plugins/beta/use-location/dist/umd/im-use-location-plugin.js +1 -1
- package/plugins/beta/use-location/src/manifest.js +1 -1
- package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
- package/plugins/datasets/src/registry/dataset.js +12 -0
- package/plugins/datasets/src/registry/datasetRegistry.js +4 -2
- package/plugins/draw/dist/esm/im-draw-plugin.js +1 -1
- package/plugins/draw/dist/umd/im-draw-plugin.js +1 -1
- package/plugins/draw/dist/umd/index.js +1 -1
- package/plugins/draw/src/api/createNewShape.js +41 -0
- package/plugins/draw/src/api/createNewShape.test.js +63 -0
- package/plugins/draw/src/api/newLine.js +2 -40
- package/plugins/draw/src/api/newPolygon.js +2 -40
- package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/index.js +1 -1
- package/plugins/interact/src/manifest.js +1 -1
- package/plugins/map-key/dist/css/index.css +55 -11
- package/plugins/map-key/dist/esm/im-map-key-plugin.js +1 -1
- package/plugins/map-key/dist/umd/im-map-key-plugin.js +1 -1
- package/plugins/map-key/dist/umd/index.js +1 -1
- package/plugins/map-key/src/components/Key/Key.jsx +6 -3
- package/plugins/map-key/src/components/Key/Key.module.scss +66 -13
- package/plugins/map-key/src/components/Key/KeyGroupItem.jsx +12 -8
- package/plugins/map-key/src/components/Key/KeyGroupItem.test.jsx +10 -0
- package/plugins/map-key/src/components/Key/KeyItem.jsx +9 -12
- package/plugins/map-key/src/components/Key/KeyItem.test.jsx +3 -3
- package/plugins/map-key/src/components/Key/KeySvg.jsx +27 -22
- package/plugins/map-key/src/components/Key/KeySvg.test.jsx +9 -0
- package/plugins/map-key/src/components/Key/KeySvgLine.jsx +3 -9
- package/plugins/map-key/src/components/Key/KeySvgPattern.jsx +2 -7
- package/plugins/map-key/src/components/Key/KeySvgPattern.test.jsx +6 -0
- package/plugins/map-key/src/components/Key/KeySvgRamp.jsx +13 -0
- package/plugins/map-key/src/components/Key/KeySvgRamp.test.jsx +43 -0
- package/plugins/map-key/src/components/Key/KeySvgRect.jsx +4 -11
- package/plugins/map-key/src/components/Key/KeySvgSymbol.jsx +5 -11
- package/plugins/map-key/src/components/Key/KeySvgSymbol.test.jsx +12 -0
- package/plugins/map-key/src/components/Key/MapKey.jsx +5 -2
- package/plugins/map-key/src/components/Key/MapKey.test.jsx +28 -11
- package/plugins/map-key/src/components/Key/svgProperties.js +2 -2
- package/plugins/map-key/src/components/Key/svgProperties.test.js +2 -2
- package/src/App/components/KeyboardHelp/KeyboardHelp.jsx +25 -23
- package/src/App/components/KeyboardHelp/KeyboardHelp.test.jsx +22 -5
- package/src/App/components/Panel/Panel.jsx +50 -8
- package/src/App/components/Panel/Panel.module.scss +31 -7
- package/src/App/components/Panel/Panel.test.jsx +81 -2
- package/src/App/components/Tabs/Tabs.jsx +43 -17
- package/src/App/components/Tabs/Tabs.module.scss +32 -5
- package/src/App/components/Tabs/Tabs.test.jsx +40 -10
- package/src/App/renderer/groupByKey.js +28 -0
- package/src/App/renderer/groupByKey.test.js +39 -0
- package/src/App/renderer/groupIntoTabs.js +42 -0
- package/src/App/renderer/groupIntoTabs.test.js +95 -0
- package/src/App/renderer/mapButtons.js +74 -122
- package/src/App/renderer/mapButtons.test.js +51 -80
- package/src/App/renderer/mapControls.js +1 -0
- package/src/App/renderer/mapControls.test.js +16 -0
- package/src/App/renderer/mapPanels.js +26 -19
- package/src/App/renderer/mapPanels.test.js +44 -0
- package/src/config/appConfig.js +2 -2
- package/src/types.js +20 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see im-map-key-plugin.js.LICENSE.txt */
|
|
2
|
-
"use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[414],{374(t,r,e){e.r(r),e.d(r,{manifest:()=>Vt});var n=e(738),o=null,i=function(t){return o=t},a=e(287),l=function(t){var r=t.text;return(0,a.jsx)("div",{className:"im-c-map-key",children:(0,a.jsx)("p",{className:"im-c-map-key__empty-message",children:r})})};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)}var c=function(t,r){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===u(t)){if(r&&t[r])return t[r];var e=Object.values(t)[0];return null!=e?e:null}return null};function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function s(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function y(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?s(Object(e),!0).forEach(function(r){m(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):s(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function m(t,r,e){return(r=function(t){var r=function(t){if("object"!=f(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=f(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==f(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}var p=20,b={xmlns:"http://www.w3.org/2000/svg",width:p,height:p,viewBox:"0 0 ".concat(p," ").concat(p),className:"am-c-map-key-symbol","aria-hidden":"true",focusable:"false"},v=y(y({},b),{},{width:44,height:44,className:"am-c-map-key-symbol am-c-map-key-symbol--point"}),d={"cross-hatch":'<path d="M0 4.486V3.485h3.5V.001h1v3.484h7.002V.001h1v3.484h3.5v1.001h-3.5v7h3.5v.999h-3.5v3.516h-1v-3.516H4.499v3.516h-1v-3.516H0v-.999h3.5v-7H0zm11.501 0H4.499v7h7.002v-7z" fill="{{foregroundColor}}"/>',"diagonal-cross-hatch":'<path d="M0 8.707V7.293L7.293 0h1.414L16 7.293v1.414L8.707 16H7.293L0 8.707zM.707 8L8 15.293 15.293 8 8 .707.707 8z" fill="{{foregroundColor}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foregroundColor}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foregroundColor}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foregroundColor}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foregroundColor}}"/>',dot:'<path d="M3.999 2A2 2 0 0 1 6 3.999C6 5.103 5.103 6 3.999 6a2 2 0 0 1-1.999-2.001A2 2 0 0 1 3.999 2zm0 7.999C5.103 10 6 10.897 6 12.001A2 2 0 0 1 3.999 14a2 2 0 0 1-1.999-1.999A2 2 0 0 1 3.999 10zM11.999 2A2 2 0 0 1 14 3.999C14 5.103 13.103 6 11.999 6S10 5.103 10 3.999A2 2 0 0 1 11.999 2zm0 7.999c1.104 0 2.001.897 2.001 2.001A2 2 0 0 1 11.999 14 2 2 0 0 1 10 12.001c0-1.104.897-2.001 1.999-2.001z" fill="{{foregroundColor}}"/>',diamond:'<path d="M4 .465L7.535 4 4 7.535.465 4 4 .465zm0 7.999l3.535 3.535L4 15.535.465 11.999 4 8.464zm8-8l3.535 3.535-3.536 3.536L8.464 4 12 .464zm0 8.001L15.536 12 12 15.536 8.465 12 12 8.465z" fill="{{foregroundColor}}"/>'};function h(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var g=function(t,r,e){return t.replace(/\{\{foregroundColor\}\}/g,r||"black").replace(/\{\{backgroundColor\}\}/g,e||"transparent")};function S(t,r){if(t){if("string"==typeof t)return j(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?j(t,r):void 0}}function j(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var O=new Map,w={register:function(t,r){O.set(t,{id:t,svgContent:r})},get:function(t){return O.get(t)},list:function(){return function(t){if(Array.isArray(t))return j(t)}(t=O.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||S(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var t},clear:function(){O.clear()},initialise:function(){var t=this;Object.entries(d).forEach(function(r){var e,n,o=(n=2,function(t){if(Array.isArray(t))return t}(e=r)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,n)||S(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],a=o[1];t.register(i,a)})},getPatternInnerContent:function(t){return t.fillPatternSvgContent?t.fillPatternSvgContent:t.fillPattern&&null!==(r=null===(e=this.get(t.fillPattern))||void 0===e?void 0:e.svgContent)&&void 0!==r?r:null;var r,e},getKeyPatternPaths:function(t,r){var e=this.getPatternInnerContent(t);if(!e)return null;var n=c(t.fillPatternForegroundColor,r)||"black",o=c(t.fillPatternBackgroundColor,r)||"transparent",i=c(t.stroke,r)||n;return{border:g('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',i,o),content:g(e,n,o)}},getPatternImageId:function(t,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.getPatternInnerContent(t);if(!n)return null;var o=c(t.fillPatternForegroundColor,r)||"black",i=c(t.fillPatternBackgroundColor,r)||"transparent",a=function(t){return Math.max(2,2*t)}(e);return"pattern-".concat(function(t){var r,e=0,n=function(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=function(t,r){if(t){if("string"==typeof t)return h(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?h(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){l=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(l)throw i}}}}(t);try{for(n.s();!(r=n.n()).done;){var o=r.value;e=Math.trunc((e<<5)-e+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(e).toString(36)}(n+o+i),"-").concat(a,"x")}};function k(t){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(t)}function C(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function P(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?C(Object(e),!0).forEach(function(r){A(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):C(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function A(t,r,e){return(r=function(t){var r=function(t){if("object"!=k(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=k(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==k(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function x(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}w.initialise();var I=function(t){var r,e,o=t.keyDefinition,i=t.mapStyle,l=(r=(0,n.useState)(null),e=2,function(t){if(Array.isArray(t))return t}(r)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(r,e)||function(t,r){if(t){if("string"==typeof t)return x(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?x(t,r):void 0}}(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],c=l[1];return(0,n.useEffect)(function(){var t=o.style;c(w.getKeyPatternPaths(t,i.id))},[i.id,o]),u?(0,a.jsxs)("svg",P(P({},b),{},{children:[(0,a.jsx)("g",{dangerouslySetInnerHTML:{__html:u.border}}),(0,a.jsx)("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:u.content}})]})):null},D=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),M=function(t){if(!function(t){return!(!t.symbol&&!t.symbolSvgContent)}(t))return{};var r={};return D.forEach(function(e){if(null!=t[e]){var n=e.charAt(6).toLowerCase()+e.slice(7);r[n]=t[e]}}),r},E=function(t,r){var e;return t.symbolViewBox?t.symbolViewBox:null!==(e=null==r?void 0:r.viewBox)&&void 0!==e?e:"0 0 38 38"},T={symbol:"pin",backgroundColor:"#ca3535",foregroundColor:"#ffffff"},L={dot:"M8 3c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z",cross:"M6 3H10V6H13V10H10V13H6V10H3V6H6Z",diamond:"M8 2L14 8L8 14L2 8Z",triangle:"M8 2L14 14H2Z",square:"M3 3H13V13H3Z"},z={id:"pin",viewBox:"0 0 44 44",anchor:[.5,.9],graphic:L.dot,svg:'<path d="M22 40.999c-3.621 0-8.306-5.864-10.258-8.3C9.02 29.302 6 23.66 6 19.002a16.01 16.01 0 0 1 16-16 16.01 16.01 0 0 1 16 16c0 4.658-3.02 10.3-5.742 13.697-1.952 2.437-6.637 8.3-10.258 8.3z" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M22 7.001a12.01 12.01 0 0 1 12 12c0 7.623-10.377 17.998-12 17.998S10 26.624 10 19.001a12.01 12.01 0 0 1 12-12z" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 19) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},_={id:"circle",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:L.dot,svg:'<circle cx="22" cy="22" r="16" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <circle cx="22" cy="22" r="12" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},H={id:"square",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:L.dot,svg:'<path d="M13 6h18c3.863 0 7 3.137 7 7v18c0 3.863-3.137 7-7 7H13c-3.863 0-7-3.137-7-7V13c0-3.863 3.137-7 7-7" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M13 34a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3v18a3 3 0 0 1-3 3H13z" fill-rule="nonzero" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},V={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},B=function(t,r,e){return new Promise(function(n,o){var i="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(t)),a=new Image(r,e);a.onload=function(){var t=document.createElement("canvas");t.width=r,t.height=e;var o=t.getContext("2d");o.drawImage(a,0,0,r,e),n(o.getImageData(0,0,r,e))},a.onerror=function(){o(new Error("Failed to rasterise SVG: ".concat(t.slice(0,80))))},a.src=i})};function G(t){return G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},G(t)}function N(){var t,r,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var u=n&&n.prototype instanceof l?n:l,c=Object.create(u.prototype);return U(c,"_invoke",function(e,n,o){var i,l,u,c=0,f=o||[],s=!1,y={p:0,n:0,v:t,a:m,f:m.bind(t,4),d:function(r,e){return i=r,l=0,u=t,y.n=e,a}};function m(e,n){for(l=e,u=n,r=0;!s&&c&&!o&&r<f.length;r++){var o,i=f[r],m=y.p,p=i[2];e>3?(o=p===n)&&(u=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=m&&((o=e<2&&m<i[1])?(l=0,y.v=n,y.n=i[1]):m<p&&(o=e<3||i[0]>n||n>p)&&(i[4]=e,i[5]=n,y.n=p,l=0))}if(o||e>1)return a;throw s=!0,n}return function(o,f,p){if(c>1)throw TypeError("Generator is already running");for(s&&1===f&&m(f,p),l=f,u=p;(r=l<2?t:u)||!s;){i||(l?l<3?(l>1&&(y.n=-1),m(l,u)):y.n=u:y.v=u);try{if(c=2,i){if(l||(o="next"),r=i[o]){if(!(r=r.call(i,u)))throw TypeError("iterator result is not an object");if(!r.done)return r;u=r.value,l<2&&(l=0)}else 1===l&&(r=i.return)&&r.call(i),l<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((r=(s=y.n<0)?u:e.call(n,y))!==a)break}catch(r){i=t,l=1,u=r}finally{c=1}}return{value:r,done:s}}}(e,o,i),!0),c}var a={};function l(){}function u(){}function c(){}r=Object.getPrototypeOf;var f=[][n]?r(r([][n]())):(U(r={},n,function(){return this}),r),s=c.prototype=l.prototype=Object.create(f);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,c):(t.__proto__=c,U(t,o,"GeneratorFunction")),t.prototype=Object.create(s),t}return u.prototype=c,U(s,"constructor",c),U(c,"constructor",u),u.displayName="GeneratorFunction",U(c,o,"GeneratorFunction"),U(s),U(s,o,"Generator"),U(s,n,function(){return this}),U(s,"toString",function(){return"[object Generator]"}),(N=function(){return{w:i,m:y}})()}function U(t,r,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}U=function(t,r,e,n){function i(r,e){U(t,r,function(t){return this._invoke(r,e,t)})}r?o?o(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n}):t[r]=e:(i("next",0),i("throw",1),i("return",2))},U(t,r,e,n)}function K(t,r,e,n,o,i,a){try{var l=t[i](a),u=l.value}catch(t){return void e(t)}l.done?r(u):Promise.resolve(u).then(n,o)}function $(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function F(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?$(Object(e),!0).forEach(function(r){W(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):$(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function W(t,r,e){return(r=function(t){var r=function(t){if("object"!=G(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=G(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==G(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function q(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||Z(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Z(t,r){if(t){if("string"==typeof t)return R(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?R(t,r):void 0}}function R(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var J=new Map,Q=new Map,X={},Y=function(t){var r,e=0,n=function(t){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Z(t))){r&&(t=r);var e=0,n=function(){};return{s:n,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return i=t.done,t},e:function(t){a=!0,o=t},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw o}}}}(t);try{for(n.s();!(r=n.n()).done;){var o=r.value;e=Math.trunc((e<<5)-e+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(e).toString(36)},tt=new Set(["id","svg","viewBox","anchor","symbol","symbolSvgContent"]);function rt(t,r,e){var n,o,i,a,l=null==e?void 0:e.id,u=Object.fromEntries(Object.entries(t||{}).filter(function(t){var r=q(t,1)[0];return!tt.has(r)})),f=Object.fromEntries(Object.entries(X).filter(function(t){var r=q(t,1)[0];return!tt.has(r)})),s=Object.fromEntries(Object.entries(r).filter(function(t){return null!=q(t,2)[1]})),y=F(F(F(F({},T),f),u),s),m=null!==(n=V[null==e?void 0:e.mapColorScheme])&&void 0!==n?n:V.light;return y.haloColor=null!==(o=null==e?void 0:e.haloColor)&&void 0!==o?o:m.haloColor,y.selectedColor=null!==(i=null==e?void 0:e.selectedColor)&&void 0!==i?i:m.selectedColor,y.activeColor=null!==(a=null==e?void 0:e.activeColor)&&void 0!==a?a:m.activeColor,"string"==typeof y.graphic&&L[y.graphic]&&(y.graphic=L[y.graphic]),Object.fromEntries(Object.entries(y).map(function(t){var r=q(t,2),e=r[0],n=r[1];return[e,c(n,l)||""]}))}function et(t,r){return Object.entries(r).reduce(function(t,r){var e=q(r,2),n=e[0],o=e[1];return t.replaceAll("{{".concat(n,"}}"),o)},t)}var nt={setDefaults:function(t){X=t||{}},getDefaults:function(){return F(F({},T),X)},register:function(t){J.set(t.id,t)},get:function(t){return J.get(t)},list:function(){return function(t){if(Array.isArray(t))return R(t)}(t=J.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Z(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var t},clear:function(){J.clear()},initialise:function(){this.register(z),this.register(_),this.register(H)},resolve:function(t,r,e){var n=rt(t,r||{},e);return t?(n.selectedColor="none",n.activeColor="none",et(t.svg,n)):""},resolveActive:function(t,r,e){var n=rt(t,r||{},e);return t?et(t.svg,n):""},resolveSelected:function(t,r,e){var n=rt(t,r||{},e);return t?(n.activeColor="none",et(t.svg,n)):""},getSymbolImageId:function(t,r){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o=this.getSymbolDef(t);if(!o)return null;var i=M(t),a=e?this.resolveActive(o,i,r):this.resolve(o,i,r);return"symbol-".concat(e?"act-":"").concat(Y(a),"-").concat(n,"x")},getSymbolDef:function(t){return t.symbolSvgContent?{svg:t.symbolSvgContent}:t.symbol?this.get(t.symbol):void 0},rasteriseSymbolImage:function(t,r,e,n){var o,i=this;return(o=N().m(function o(){var a,l,u,c,f,s,y,m,p,b,v,d;return N().w(function(o){for(;;)switch(o.n){case 0:if(a=i.getSymbolDef(t)){o.n=1;break}return o.a(2,null);case 1:if(l=M(t),"active"===e?(u=i.resolveActive(a,l,r),c="act-"):"selected"===e?(u=i.resolveSelected(a,l,r),c="sel-"):(u=i.resolve(a,l,r),c=""),f="symbol-".concat(c).concat(Y(u),"-").concat(n,"x"),s=Q.get(f)){o.n=3;break}return y=E(t,a),m=y.split(" ").map(Number),p=q(m,4),b=p[2],v=p[3],d='<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(b*n,'" height="').concat(v*n,'" viewBox="').concat(y,'">').concat(u,"</svg>"),o.n=2,B(d,b*n,v*n);case 2:s=o.v,Q.set(f,s);case 3:return o.a(2,{imageId:f,imageData:s})}},o)}),function(){var t=this,r=arguments;return new Promise(function(e,n){var i=o.apply(t,r);function a(t){K(i,e,n,a,l,"next",t)}function l(t){K(i,e,n,a,l,"throw",t)}a(void 0)})})()}};function ot(t){return ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ot(t)}function it(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function at(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?it(Object(e),!0).forEach(function(r){lt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):it(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function lt(t,r,e){return(r=function(t){var r=function(t){if("object"!=ot(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=ot(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ot(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function ut(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return ct(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?ct(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ct(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}nt.initialise();var ft=function(t){var r=t.keyDefinition,e=t.mapStyle,o=t.symbolDef,i=ut((0,n.useState)(null),2),l=i[0],u=i[1],c=ut((0,n.useState)(null),2),f=c[0],s=c[1];return(0,n.useEffect)(function(){var t,n=r.style,i=null!==(t=null==e?void 0:e.appColorScheme)&&void 0!==t?t:"light",a=at(at({},e),{},{mapColorScheme:i});u(nt.resolve(o,M(n),a)),s(E(n,o))},[e,r]),l&&f?(0,a.jsx)("svg",at(at({},v),{},{viewBox:f,children:(0,a.jsx)("g",{dangerouslySetInnerHTML:{__html:l}})})):null};function st(t){return st="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},st(t)}function yt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function mt(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?yt(Object(e),!0).forEach(function(r){pt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):yt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function pt(t,r,e){return(r=function(t){var r=function(t){if("object"!=st(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=st(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==st(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function bt(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return vt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?vt(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function vt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var dt=function(t){var r=t.mapStyle,e=t.keyDefinition,o=bt((0,n.useState)(2),2),i=o[0],l=o[1],u=bt((0,n.useState)("#ff0000"),2),f=u[0],s=u[1];return(0,n.useEffect)(function(){var t=e.style;l(t.strokeWidth),s(c(t.stroke,r.id))},[r.id,e]),(0,a.jsx)("svg",mt(mt({},b),{},{children:(0,a.jsx)("line",{x1:i/2,y1:10,x2:p-i/2,y2:10,stroke:f,strokeWidth:i,strokeLinecap:"round"})}))};function ht(t){return ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ht(t)}function gt(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function St(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?gt(Object(e),!0).forEach(function(r){jt(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):gt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function jt(t,r,e){return(r=function(t){var r=function(t){if("object"!=ht(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=ht(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ht(r)?r:r+""}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function Ot(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return wt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?wt(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var kt=function(t){var r=t.mapStyle,e=t.keyDefinition,o=Ot((0,n.useState)(2),2),i=o[0],l=o[1],u=Ot((0,n.useState)("#ff0000"),2),f=u[0],s=u[1],y=Ot((0,n.useState)("#ff0000"),2),m=y[0],v=y[1];return(0,n.useEffect)(function(){var t=e.style;l(t.strokeWidth),s(c(t.fill,r.id)),v(c(t.stroke,r.id))},[r.id,e]),(0,a.jsx)("svg",St(St({},b),{},{children:(0,a.jsx)("rect",{x:i/2,y:i/2,width:p-i,height:p-i,rx:i,ry:i,fill:f,stroke:m,strokeWidth:i,strokeLinejoin:"round"})}))};function Ct(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return Pt(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Pt(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var At=function(t){var r=t.keyDefinition,e=t.mapStyle,o=Ct((0,n.useState)(null),2),i=o[0],l=o[1],u=Ct((0,n.useState)(null),2),c=u[0],f=u[1];return(0,n.useEffect)(function(){if(r){var t=r.hasSymbol,e=r.hasPattern,n=r.style;if(t){var o=nt.getSymbolDef(n);f(o),l(o?"symbol":"rect")}else e?l("pattern"):"line"===n.keySymbolShape?l("line"):l("rect")}else l(null)},[r]),i?"symbol"===i?(0,a.jsx)(ft,{mapStyle:e,keyDefinition:r,symbolDef:c}):"pattern"===i?(0,a.jsx)(I,{mapStyle:e,keyDefinition:r}):"line"===i?(0,a.jsx)(dt,{mapStyle:e,keyDefinition:r}):(0,a.jsx)(kt,{mapStyle:e,keyDefinition:r}):null};function xt(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return It(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?It(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function It(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var Dt=function(t){var r=t.keyDefinition,e=t.mapStyle,o=xt((0,n.useState)(""),2),i=o[0],l=o[1],u=xt((0,n.useState)(""),2),f=u[0],s=u[1];return(0,n.useEffect)(function(){l(r.label),s(c(r.symbolDescription,e.id))},[r,e.id]),(0,a.jsxs)("dl",{className:"im-c-map-key__item",children:[(0,a.jsx)("dt",{className:"im-c-map-key__item-symbol",children:(0,a.jsx)(At,{keyDefinition:r,mapStyle:e})}),(0,a.jsxs)("dd",{className:"im-c-map-key__item-label",children:[i,f&&(0,a.jsxs)("span",{className:"govuk-visually-hidden",children:["(",f,")"]})]})]})},Mt=function(t){var r=t.headingId,e=t.label,n=t.keyDefinitions,o=t.mapStyle;return(0,a.jsxs)("section",{className:"im-c-map-key__group","aria-labelledby":r,children:[(0,a.jsx)("h3",{id:r,className:"im-c-map-key__group-heading",children:e}),n.map(function(t){return(0,a.jsx)(Dt,{keyDefinition:t,mapStyle:o},"".concat(t.id))})]})};function Et(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var Tt="im-c-map-key",Lt=function(t){var r=t.item,e=t.mapStyle;return"group"===r.type?(0,a.jsx)(Mt,{headingId:"key-heading-".concat(r.id),label:r.groupLabel,keyDefinitions:r.keyDefinitions,mapStyle:e}):(0,a.jsx)(Dt,{keyDefinition:r.keyDefinition,mapStyle:e})},zt=function(t){var r=t.noKeyItemText,e=t.keyGroups,o=t.hasGroups,i=t.mapStyle;if(null==e||!e.length)return(0,a.jsx)(l,{text:r});var u,c,f=(u=(0,n.useState)("im-c-map-key"),c=2,function(t){if(Array.isArray(t))return t}(u)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(u,c)||function(t,r){if(t){if("string"==typeof t)return Et(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Et(t,r):void 0}}(u,c)||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.")}()),s=f[0],y=f[1];return(0,n.useEffect)(function(){return y(o?"".concat(Tt," ").concat("im-c-map-key--has-groups"):Tt)},[o]),(0,a.jsx)("div",{className:s,children:e.map(function(t){return(0,a.jsx)(Lt,{item:t,mapStyle:i},t.id)})})};function _t(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,l=[],u=!0,c=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(l.push(n.value),l.length!==r);u=!0);}catch(t){c=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(t,r)||function(t,r){if(t){if("string"==typeof t)return Ht(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?Ht(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ht(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}var Vt={InitComponent:function(t){var r=t.mapState,e=t.services.eventBus;(0,n.useEffect)(function(){r.isMapReady&&e.requestOnce("datasets:registry",i)},[r.isMapReady])},panels:[{id:"mapKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(t){var r=t.mapState.mapStyle,e=t.pluginConfig.noKeyItemText,i=t.services.eventBus,l=_t((0,n.useState)([]),2),u=l[0],c=l[1],f=_t((0,n.useState)(!1),2),s=f[0],y=f[1],m=_t((0,n.useState)(o),2),p=m[0],b=m[1],v=function(){var t=p.keyItems(),r=t.items,e=t.hasGroups;c(r),y(e)},d=function(t){p.invalidateKeyItemsOnMenuStateChange(t),v()};return(0,n.useEffect)(function(){return p?(v(),i.on("menu:changed",d).on("datasets:changed",v),function(){return i.off("menu:changed",d).off("datasets:changed",v)}):(i.requestOnce("datasets:registry",b),function(){})},[p]),(0,a.jsx)(zt,{noKeyItemText:e,keyGroups:u,hasGroups:s,mapStyle:r})}}],buttons:[{id:"mapKey",panelId:"mapKey",label:"Key",iconId:"key",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}]}}}]);
|
|
2
|
+
"use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[414],{413(t,e,r){r.r(e),r.d(e,{manifest:()=>xt});var n=r(738),o=null,i=function(t){return o=t},a=r(287),l=function(t){var e=t.text;return(0,a.jsx)("div",{className:"im-c-map-key",children:(0,a.jsx)("p",{className:"im-c-map-key__empty-message",children:e})})};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)}var u=function(t,e){if(!t)return null;if("string"==typeof t)return t.trim();if("object"===c(t)){if(e&&t[e])return t[e];var r=Object.values(t)[0];return null!=r?r:null}return null};function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function 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 y(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){p(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 p(t,e,r){return(e=function(t){var e=function(t){if("object"!=f(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=f(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==f(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var m=20,b={xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 ".concat(m," ").concat(m),className:"im-c-map-key-symbol","aria-hidden":"true",focusable:"false"},v=y(y({},b),{},{width:44,height:44,className:"im-c-map-key-symbol im-c-map-key-symbol--point"}),d={"cross-hatch":'<path d="M0 4.486V3.485h3.5V.001h1v3.484h7.002V.001h1v3.484h3.5v1.001h-3.5v7h3.5v.999h-3.5v3.516h-1v-3.516H4.499v3.516h-1v-3.516H0v-.999h3.5v-7H0zm11.501 0H4.499v7h7.002v-7z" fill="{{foregroundColor}}"/>',"diagonal-cross-hatch":'<path d="M0 8.707V7.293L7.293 0h1.414L16 7.293v1.414L8.707 16H7.293L0 8.707zM.707 8L8 15.293 15.293 8 8 .707.707 8z" fill="{{foregroundColor}}"/>',"forward-diagonal-hatch":'<path d="M16 8.707V7.293L7.293 16h1.414L16 8.707zm-16 0L8.707 0H7.293L0 7.293v1.414z" fill="{{foregroundColor}}"/>',"backward-diagonal-hatch":'<path d="M0 8.707V7.293L8.707 16H7.293L0 8.707zm16 0L7.293 0h1.414L16 7.293v1.414z" fill="{{foregroundColor}}"/>',"horizontal-hatch":'<path d="M0 4.5V3.499h15.999V4.5H0zm0 7h15.999V12.5H0v-1.001z" fill="{{foregroundColor}}"/>',"vertical-hatch":'<path d="M3.501 16.001V0h1v16.001h-1zm7.998 0V0h1v16.001h-1z" fill="{{foregroundColor}}"/>',dot:'<path d="M3.999 2A2 2 0 0 1 6 3.999C6 5.103 5.103 6 3.999 6a2 2 0 0 1-1.999-2.001A2 2 0 0 1 3.999 2zm0 7.999C5.103 10 6 10.897 6 12.001A2 2 0 0 1 3.999 14a2 2 0 0 1-1.999-1.999A2 2 0 0 1 3.999 10zM11.999 2A2 2 0 0 1 14 3.999C14 5.103 13.103 6 11.999 6S10 5.103 10 3.999A2 2 0 0 1 11.999 2zm0 7.999c1.104 0 2.001.897 2.001 2.001A2 2 0 0 1 11.999 14 2 2 0 0 1 10 12.001c0-1.104.897-2.001 1.999-2.001z" fill="{{foregroundColor}}"/>',diamond:'<path d="M4 .465L7.535 4 4 7.535.465 4 4 .465zm0 7.999l3.535 3.535L4 15.535.465 11.999 4 8.464zm8-8l3.535 3.535-3.536 3.536L8.464 4 12 .464zm0 8.001L15.536 12 12 15.536 8.465 12 12 8.465z" fill="{{foregroundColor}}"/>'};function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var g=function(t,e,r){return t.replace(/\{\{foregroundColor\}\}/g,e||"black").replace(/\{\{backgroundColor\}\}/g,r||"transparent")};function S(t,e){if(t){if("string"==typeof t)return j(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)?j(t,e):void 0}}function j(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 O=new Map,w={register:function(t,e){O.set(t,{id:t,svgContent:e})},get:function(t){return O.get(t)},list:function(){return function(t){if(Array.isArray(t))return j(t)}(t=O.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||S(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var t},clear:function(){O.clear()},initialise:function(){var t=this;Object.entries(d).forEach(function(e){var r,n,o=(n=2,function(t){if(Array.isArray(t))return t}(r=e)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,l=[],c=!0,u=!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)&&(l.push(n.value),l.length!==e);c=!0);}catch(t){u=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return l}}(r,n)||S(r,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],a=o[1];t.register(i,a)})},getPatternInnerContent:function(t){return t.fillPatternSvgContent?t.fillPatternSvgContent:t.fillPattern&&null!==(e=null===(r=this.get(t.fillPattern))||void 0===r?void 0:r.svgContent)&&void 0!==e?e:null;var e,r},getKeyPatternPaths:function(t,e){var r=this.getPatternInnerContent(t);if(!r)return null;var n=u(t.fillPatternForegroundColor,e)||"black",o=u(t.fillPatternBackgroundColor,e)||"transparent",i=u(t.stroke,e)||n;return{border:g('<path d="M19 2.862v14.275c0 1.028-.835 1.862-1.862 1.862H2.863c-1.028 0-1.862-.835-1.862-1.862V2.862C1.001 1.834 1.836 1 2.863 1h14.275C18.166 1 19 1.835 19 2.862z" fill="{{backgroundColor}}" stroke="{{foregroundColor}}" stroke-width="2"/>',i,o),content:g(r,n,o)}},getPatternImageId:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.getPatternInnerContent(t);if(!n)return null;var o=u(t.fillPatternForegroundColor,e)||"black",i=u(t.fillPatternBackgroundColor,e)||"transparent",a=function(t){return Math.max(2,2*t)}(r);return"pattern-".concat(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 h(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(t,e):void 0}}(t))||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,l=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){l=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;r=Math.trunc((r<<5)-r+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(r).toString(36)}(n+o+i),"-").concat(a,"x")}};function k(t){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k(t)}function P(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 C(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?P(Object(r),!0).forEach(function(e){x(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function x(t,e,r){return(e=function(t){var e=function(t){if("object"!=k(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=k(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==k(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}w.initialise();var D=function(t){var e=t.keyDefinition,r=t.mapStyle,n=e.style,o=w.getKeyPatternPaths(n,r.id);return o?(0,a.jsxs)("svg",C(C({},b),{},{children:[(0,a.jsx)("g",{dangerouslySetInnerHTML:{__html:o.border}}),(0,a.jsx)("g",{transform:"translate(".concat(2,", ").concat(2,")"),dangerouslySetInnerHTML:{__html:o.content}})]})):null},A=new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),M=function(t){if(!function(t){return!(!t.symbol&&!t.symbolSvgContent)}(t))return{};var e={};return A.forEach(function(r){if(null!=t[r]){var n=r.charAt(6).toLowerCase()+r.slice(7);e[n]=t[r]}}),e},I=function(t,e){var r;return t.symbolViewBox?t.symbolViewBox:null!==(r=null==e?void 0:e.viewBox)&&void 0!==r?r:"0 0 38 38"},E={symbol:"pin",backgroundColor:"#ca3535",foregroundColor:"#ffffff"},L={dot:"M8 3c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z",cross:"M6 3H10V6H13V10H10V13H6V10H3V6H6Z",diamond:"M8 2L14 8L8 14L2 8Z",triangle:"M8 2L14 14H2Z",square:"M3 3H13V13H3Z"},z={id:"pin",viewBox:"0 0 44 44",anchor:[.5,.9],graphic:L.dot,svg:'<path d="M22 40.999c-3.621 0-8.306-5.864-10.258-8.3C9.02 29.302 6 23.66 6 19.002a16.01 16.01 0 0 1 16-16 16.01 16.01 0 0 1 16 16c0 4.658-3.02 10.3-5.742 13.697-1.952 2.437-6.637 8.3-10.258 8.3z" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M22 7.001a12.01 12.01 0 0 1 12 12c0 7.623-10.377 17.998-12 17.998S10 26.624 10 19.001a12.01 12.01 0 0 1 12-12z" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 19) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},H={id:"circle",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:L.dot,svg:'<circle cx="22" cy="22" r="16" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <circle cx="22" cy="22" r="12" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},_={id:"square",viewBox:"0 0 44 44",anchor:[.5,.5],graphic:L.dot,svg:'<path d="M13 6h18c3.863 0 7 3.137 7 7v18c0 3.863-3.137 7-7 7H13c-3.863 0-7-3.137-7-7V13c0-3.863 3.137-7 7-7" fill="{{selectedColor}}" stroke="{{activeColor}}" stroke-width="6" paint-order="stroke fill"/>\n <path d="M13 34a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h18a3 3 0 0 1 3 3v18a3 3 0 0 1-3 3H13z" fill-rule="nonzero" fill="{{backgroundColor}}" stroke="{{haloColor}}" stroke-width="2" paint-order="stroke fill"/>\n <g transform="translate(22, 22) scale(0.8) translate(-8, -8)"><path d="{{graphic}}" fill="{{foregroundColor}}"/></g>'},T={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},V=function(t,e,r){return new Promise(function(n,o){var i="data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent(t)),a=new Image(e,r);a.onload=function(){var t=document.createElement("canvas");t.width=e,t.height=r;var o=t.getContext("2d");o.drawImage(a,0,0,e,r),n(o.getImageData(0,0,e,r))},a.onerror=function(){o(new Error("Failed to rasterise SVG: ".concat(t.slice(0,80))))},a.src=i})};function B(t){return B="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},B(t)}function G(){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 l?n:l,u=Object.create(c.prototype);return N(u,"_invoke",function(r,n,o){var i,l,c,u=0,f=o||[],s=!1,y={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,r){return i=e,l=0,c=t,y.n=r,a}};function p(r,n){for(l=r,c=n,e=0;!s&&u&&!o&&e<f.length;e++){var o,i=f[e],p=y.p,m=i[2];r>3?(o=m===n)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=t):i[0]<=p&&((o=r<2&&p<i[1])?(l=0,y.v=n,y.n=i[1]):p<m&&(o=r<3||i[0]>n||n>m)&&(i[4]=r,i[5]=n,y.n=m,l=0))}if(o||r>1)return a;throw s=!0,n}return function(o,f,m){if(u>1)throw TypeError("Generator is already running");for(s&&1===f&&p(f,m),l=f,c=m;(e=l<2?t:c)||!s;){i||(l?l<3?(l>1&&(y.n=-1),p(l,c)):y.n=c:y.v=c);try{if(u=2,i){if(l||(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,l<2&&(l=0)}else 1===l&&(e=i.return)&&e.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),l=1);i=t}else if((e=(s=y.n<0)?c:r.call(n,y))!==a)break}catch(e){i=t,l=1,c=e}finally{u=1}}return{value:e,done:s}}}(r,o,i),!0),u}var a={};function l(){}function c(){}function u(){}e=Object.getPrototypeOf;var f=[][n]?e(e([][n]())):(N(e={},n,function(){return this}),e),s=u.prototype=l.prototype=Object.create(f);function y(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):(t.__proto__=u,N(t,o,"GeneratorFunction")),t.prototype=Object.create(s),t}return c.prototype=u,N(s,"constructor",u),N(u,"constructor",c),c.displayName="GeneratorFunction",N(u,o,"GeneratorFunction"),N(s),N(s,o,"Generator"),N(s,n,function(){return this}),N(s,"toString",function(){return"[object Generator]"}),(G=function(){return{w:i,m:y}})()}function N(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}N=function(t,e,r,n){function i(e,r){N(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},N(t,e,r,n)}function K(t,e,r,n,o,i,a){try{var l=t[i](a),c=l.value}catch(t){return void r(t)}l.done?e(c):Promise.resolve(c).then(n,o)}function F(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 W(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?F(Object(r),!0).forEach(function(e){R(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):F(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function R(t,e,r){return(e=function(t){var e=function(t){if("object"!=B(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=B(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==B(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function U(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,l=[],c=!0,u=!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)&&(l.push(n.value),l.length!==e);c=!0);}catch(t){u=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return l}}(t,e)||q(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 q(t,e){if(t){if("string"==typeof t)return Z(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Z(t,e):void 0}}function Z(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var $=new Map,J=new Map,Q={},X=function(t){var e,r=0,n=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=q(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}}}}(t);try{for(n.s();!(e=n.n()).done;){var o=e.value;r=Math.trunc((r<<5)-r+o.codePointAt(0))}}catch(t){n.e(t)}finally{n.f()}return Math.abs(r).toString(36)},Y=new Set(["id","svg","viewBox","anchor","symbol","symbolSvgContent"]);function tt(t,e,r){var n,o,i,a,l=null==r?void 0:r.id,c=Object.fromEntries(Object.entries(t||{}).filter(function(t){var e=U(t,1)[0];return!Y.has(e)})),f=Object.fromEntries(Object.entries(Q).filter(function(t){var e=U(t,1)[0];return!Y.has(e)})),s=Object.fromEntries(Object.entries(e).filter(function(t){return null!=U(t,2)[1]})),y=W(W(W(W({},E),f),c),s),p=null!==(n=T[null==r?void 0:r.mapColorScheme])&&void 0!==n?n:T.light;return y.haloColor=null!==(o=null==r?void 0:r.haloColor)&&void 0!==o?o:p.haloColor,y.selectedColor=null!==(i=null==r?void 0:r.selectedColor)&&void 0!==i?i:p.selectedColor,y.activeColor=null!==(a=null==r?void 0:r.activeColor)&&void 0!==a?a:p.activeColor,"string"==typeof y.graphic&&L[y.graphic]&&(y.graphic=L[y.graphic]),Object.fromEntries(Object.entries(y).map(function(t){var e=U(t,2),r=e[0],n=e[1];return[r,u(n,l)||""]}))}function et(t,e){return Object.entries(e).reduce(function(t,e){var r=U(e,2),n=r[0],o=r[1];return t.replaceAll("{{".concat(n,"}}"),o)},t)}var rt={setDefaults:function(t){Q=t||{}},getDefaults:function(){return W(W({},E),Q)},register:function(t){$.set(t.id,t)},get:function(t){return $.get(t)},list:function(){return function(t){if(Array.isArray(t))return Z(t)}(t=$.values())||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||q(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var t},clear:function(){$.clear()},initialise:function(){this.register(z),this.register(H),this.register(_)},resolve:function(t,e,r){var n=tt(t,e||{},r);return t?(n.selectedColor="none",n.activeColor="none",et(t.svg,n)):""},resolveActive:function(t,e,r){var n=tt(t,e||{},r);return t?et(t.svg,n):""},resolveSelected:function(t,e,r){var n=tt(t,e||{},r);return t?(n.activeColor="none",et(t.svg,n)):""},getSymbolImageId:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o=this.getSymbolDef(t);if(!o)return null;var i=M(t),a=r?this.resolveActive(o,i,e):this.resolve(o,i,e);return"symbol-".concat(r?"act-":"").concat(X(a),"-").concat(n,"x")},getSymbolDef:function(t){return t.symbolSvgContent?{svg:t.symbolSvgContent}:t.symbol?this.get(t.symbol):void 0},rasteriseSymbolImage:function(t,e,r,n){var o,i=this;return(o=G().m(function o(){var a,l,c,u,f,s,y,p,m,b,v,d;return G().w(function(o){for(;;)switch(o.n){case 0:if(a=i.getSymbolDef(t)){o.n=1;break}return o.a(2,null);case 1:if(l=M(t),"active"===r?(c=i.resolveActive(a,l,e),u="act-"):"selected"===r?(c=i.resolveSelected(a,l,e),u="sel-"):(c=i.resolve(a,l,e),u=""),f="symbol-".concat(u).concat(X(c),"-").concat(n,"x"),s=J.get(f)){o.n=3;break}return y=I(t,a),p=y.split(" ").map(Number),m=U(p,4),b=m[2],v=m[3],d='<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(b*n,'" height="').concat(v*n,'" viewBox="').concat(y,'">').concat(c,"</svg>"),o.n=2,V(d,b*n,v*n);case 2:s=o.v,J.set(f,s);case 3:return o.a(2,{imageId:f,imageData:s})}},o)}),function(){var t=this,e=arguments;return new Promise(function(r,n){var i=o.apply(t,e);function a(t){K(i,r,n,a,l,"next",t)}function l(t){K(i,r,n,a,l,"throw",t)}a(void 0)})})()}};function nt(t){return nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nt(t)}function ot(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function it(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ot(Object(r),!0).forEach(function(e){at(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ot(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function at(t,e,r){return(e=function(t){var e=function(t){if("object"!=nt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=nt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==nt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}rt.initialise();var lt=function(t){var e,r=t.keyDefinition,n=t.mapStyle,o=t.symbolDef,i=r.style,l=null!==(e=null==n?void 0:n.appColorScheme)&&void 0!==e?e:"light",c=it(it({},n),{},{mapColorScheme:l}),u=rt.resolve(o,M(i),c),f=I(i,o);return u&&f?(0,a.jsx)("svg",it(it({},v),{},{viewBox:f,children:(0,a.jsx)("g",{dangerouslySetInnerHTML:{__html:u}})})):null};function ct(t){return ct="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},ct(t)}function ut(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 ft(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ut(Object(r),!0).forEach(function(e){st(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ut(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function st(t,e,r){return(e=function(t){var e=function(t){if("object"!=ct(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=ct(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ct(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var yt=function(t){var e=t.mapStyle,r=t.keyDefinition.style,n=r.strokeWidth,o=u(r.stroke,e.id);return(0,a.jsx)("svg",ft(ft({},b),{},{children:(0,a.jsx)("line",{x1:n/2,y1:10,x2:m-n/2,y2:10,stroke:o,strokeWidth:n,strokeLinecap:"round"})}))};function pt(t){return pt="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},pt(t)}function mt(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 bt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?mt(Object(r),!0).forEach(function(e){vt(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function vt(t,e,r){return(e=function(t){var e=function(t){if("object"!=pt(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=pt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==pt(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var dt=function(t){var e=t.mapStyle,r=t.keyDefinition.style,n=r.strokeWidth,o=u(r.fill,e.id),i=u(r.stroke,e.id);return(0,a.jsx)("svg",bt(bt({},b),{},{children:(0,a.jsx)("rect",{x:n/2,y:n/2,width:m-n,height:m-n,rx:n,ry:n,fill:o,stroke:i,strokeWidth:n,strokeLinejoin:"round"})}))},ht=function(t){var e=t.mapStyle,r=t.keyDefinition.style,n=u(r.fill,e.id),o=u(r.fill,e.id);return(0,a.jsx)("svg",{viewBox:"0 0 5 5",preserveAspectRatio:"none",fill:n,stroke:o,strokeWidth:"1",children:(0,a.jsx)("path",{d:"M0 0h5v5H0z"})})},gt=function(t){var e=t.keyDefinition,r=t.mapStyle,n=function(t){if(!t)return{symbolShape:null,symbolDef:null};var e=t.hasSymbol,r=t.hasPattern,n=t.hasRampStyleKey,o=t.style;if(n)return{symbolShape:"ramp",symbolDef:null};if(e){var i=rt.getSymbolDef(o);return{symbolShape:i?"symbol":"rect",symbolDef:i}}return r?{symbolShape:"pattern",symbolDef:null}:"line"===o.keySymbolShape?{symbolShape:"line",symbolDef:null}:{symbolShape:"rect",symbolDef:null}}(e),o=n.symbolShape,i=n.symbolDef;return o?"symbol"===o?(0,a.jsx)(lt,{mapStyle:r,keyDefinition:e,symbolDef:i}):"pattern"===o?(0,a.jsx)(D,{mapStyle:r,keyDefinition:e}):"line"===o?(0,a.jsx)(yt,{mapStyle:r,keyDefinition:e}):"ramp"===o?(0,a.jsx)(ht,{mapStyle:r,keyDefinition:e}):(0,a.jsx)(dt,{mapStyle:r,keyDefinition:e}):null},St=function(t){var e=t.keyDefinition,r=t.mapStyle,n=e.label,o=u(e.symbolDescription,r.id);return(0,a.jsxs)("div",{className:"im-c-map-key-list__item",children:[(0,a.jsx)("dt",{className:"im-c-map-key-list__item-symbol",children:(0,a.jsx)(gt,{keyDefinition:e,mapStyle:r})}),(0,a.jsxs)("dd",{className:"im-c-map-key-list__item-label",children:[n,o&&(0,a.jsxs)("span",{className:"govuk-visually-hidden",children:["(",o,")"]})]})]})},jt=function(t){var e=t.headingId,r=t.label,n=t.groupStyle,o=t.keyDefinitions,i=t.mapStyle,l="im-c-map-key-list"+(n?" im-c-map-key-list-".concat(n):"");return(0,a.jsxs)("section",{className:"im-c-map-key__group","aria-labelledby":e,children:[(0,a.jsx)("h3",{id:e,className:"im-c-map-key__group-heading",children:r}),(0,a.jsx)("dl",{className:l,children:o.map(function(t){return(0,a.jsx)(St,{keyDefinition:t,mapStyle:i,groupStyle:n},"".concat(t.id))})})]})},Ot="im-c-map-key",wt=function(t){var e=t.item,r=t.mapStyle;return"group"===e.type?(0,a.jsx)(jt,{headingId:"key-heading-".concat(e.id),label:e.groupLabel,groupStyle:e.groupStyle,keyDefinitions:e.keyDefinitions,mapStyle:r}):(0,a.jsx)(St,{keyDefinition:e.keyDefinition,mapStyle:r})},kt=function(t){var e=t.noKeyItemText,r=t.keyGroups,n=t.hasGroups,o=t.mapStyle;if(null==r||!r.length)return(0,a.jsx)(l,{text:e});var i=n?"".concat(Ot," ").concat("im-c-map-key--has-groups"):Ot;return(0,a.jsx)("div",{className:i,children:r.map(function(t){return(0,a.jsx)(wt,{item:t,mapStyle:o},t.id)})})};function Pt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,l=[],c=!0,u=!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)&&(l.push(n.value),l.length!==e);c=!0);}catch(t){u=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Ct(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)?Ct(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ct(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 xt={InitComponent:function(t){var e=t.mapState,r=t.services.eventBus;(0,n.useEffect)(function(){e.isMapReady&&r.requestOnce("datasets:registry",i)},[e.isMapReady])},panels:[{id:"mapKey",label:"Key",mobile:{slot:"drawer",modal:!0},tablet:{slot:"left-top",width:"260px"},desktop:{slot:"left-top",width:"280px"},render:function(t){var e=t.mapState.mapStyle,r=t.pluginConfig.noKeyItemText,i=t.services.eventBus,l=Pt((0,n.useState)(o),2),c=l[0],u=l[1],f=Pt((0,n.useState)(function(){var t;return null!==(t=null==c?void 0:c.keyItems().items)&&void 0!==t?t:[]}),2),s=f[0],y=f[1],p=Pt((0,n.useState)(function(){var t;return null!==(t=null==c?void 0:c.keyItems().hasGroups)&&void 0!==t&&t}),2),m=p[0],b=p[1],v=function(){var t=c.keyItems(),e=t.items,r=t.hasGroups;y(e),b(r)},d=function(t){c.invalidateKeyItemsOnMenuStateChange(t),v()};return(0,n.useEffect)(function(){return c?(v(),i.on("menu:changed",d).on("datasets:changed",v),function(){return i.off("menu:changed",d).off("datasets:changed",v)}):(i.requestOnce("datasets:registry",u),function(){})},[c]),(0,a.jsx)(kt,{noKeyItemText:r,keyGroups:s,hasGroups:m,mapStyle:e})}}],buttons:[{id:"mapKey",panelId:"mapKey",label:"Key",iconId:"key",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"key",svgContent:'<path d="M3 5h.01"/><path d="M3 12h.01"/><path d="M3 19h.01"/><path d="M8 5h13"/><path d="M8 12h13"/><path d="M8 19h13"/>'}]}}}]);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.mapKeyPlugin=t())}(this,()=>(()=>{"use strict";var e,t,r={738(e){e.exports=preactCompat},287(e){e.exports=preactJsxRuntime}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,r)=>(o.f[r](e,t),t),[])),o.u=e=>"im-map-key-plugin.js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="defra.mapKeyPlugin:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),p=0;p<f.length;p++){var l=f[p];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+i){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",o.nc&&u.setAttribute("nonce",o.nc),u.setAttribute("data-webpack",t+i),u.src=r),e[r]=[n];var s=(t,n)=>{u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach(e=>e(n)),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var i=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=i);var a=o.p+o.u(t),u=new Error;o.l(a,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,u,c]=r,f=0;if(a.some(t=>0!==e[t])){for(n in u)o.o(u,n)&&(o.m[n]=u[n]);c&&c(o)}for(t&&t(r);f<a.length;f++)i=a[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i={};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function u(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof f?n:f,p=Object.create(u.prototype);return c(p,"_invoke",function(r,n,o){var i,u,c,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,u=0,c=e,s.n=r,a}};function d(r,n){for(u=r,c=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],d=s.p,b=i[2];r>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(u=0,s.v=n,s.n=i[1]):d<b&&(o=r<3||i[0]>n||n>b)&&(i[4]=r,i[5]=n,s.n=b,u=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,b){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,b),u=p,c=b;(t=u<2?e:c)||!l;){i||(u?u<3?(u>1&&(s.n=-1),d(u,c)):s.n=c:s.v=c);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=s.n<0)?c:r.call(n,s))!==a)break}catch(t){i=e,u=1,c=t}finally{f=1}}return{value:t,done:l}}}(r,o,i),!0),p}var a={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(c(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function b(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,c(d,"constructor",l),c(l,"constructor",p),p.displayName="GeneratorFunction",c(l,o,"GeneratorFunction"),c(d),c(d,o,"Generator"),c(d,n,function(){return this}),c(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:b}})()}function c(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}c=function(e,t,r,n){function i(t,r){c(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},c(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(){var e,t;return l(l({noKeyItemText:"No features displayed"},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"mapKey",load:(e=u().m(function e(){var t;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(414).then(o.bind(o,
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.mapKeyPlugin=t())}(this,()=>(()=>{"use strict";var e,t,r={738(e){e.exports=preactCompat},287(e){e.exports=preactJsxRuntime}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,r)=>(o.f[r](e,t),t),[])),o.u=e=>"im-map-key-plugin.js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="defra.mapKeyPlugin:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),p=0;p<f.length;p++){var l=f[p];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+i){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",o.nc&&u.setAttribute("nonce",o.nc),u.setAttribute("data-webpack",t+i),u.src=r),e[r]=[n];var s=(t,n)=>{u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach(e=>e(n)),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var i=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=i);var a=o.p+o.u(t),u=new Error;o.l(a,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,u,c]=r,f=0;if(a.some(t=>0!==e[t])){for(n in u)o.o(u,n)&&(o.m[n]=u[n]);c&&c(o)}for(t&&t(r);f<a.length;f++)i=a[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i={};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function u(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof f?n:f,p=Object.create(u.prototype);return c(p,"_invoke",function(r,n,o){var i,u,c,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,u=0,c=e,s.n=r,a}};function d(r,n){for(u=r,c=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],d=s.p,b=i[2];r>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(u=0,s.v=n,s.n=i[1]):d<b&&(o=r<3||i[0]>n||n>b)&&(i[4]=r,i[5]=n,s.n=b,u=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,b){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,b),u=p,c=b;(t=u<2?e:c)||!l;){i||(u?u<3?(u>1&&(s.n=-1),d(u,c)):s.n=c:s.v=c);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=s.n<0)?c:r.call(n,s))!==a)break}catch(t){i=e,u=1,c=t}finally{f=1}}return{value:t,done:l}}}(r,o,i),!0),p}var a={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(c(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function b(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,c(d,"constructor",l),c(l,"constructor",p),p.displayName="GeneratorFunction",c(l,o,"GeneratorFunction"),c(d),c(d,o,"Generator"),c(d,n,function(){return this}),c(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:b}})()}function c(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}c=function(e,t,r,n){function i(t,r){c(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},c(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(){var e,t;return l(l({noKeyItemText:"No features displayed"},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"mapKey",load:(e=u().m(function e(){var t;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(414).then(o.bind(o,413));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){f(i,n,o,a,u,"next",e)}function u(e){f(i,n,o,a,u,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})})}return o.d(i,{default:()=>d}),i.default})());
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react'
|
|
2
2
|
import { EmptyKey } from './EmptyKey.jsx'
|
|
3
3
|
import { KeyItem } from './KeyItem.jsx'
|
|
4
4
|
import { KeyGroupItem } from './KeyGroupItem.jsx'
|
|
@@ -12,6 +12,7 @@ const KeyItemWrapper = ({ item, mapStyle }) => {
|
|
|
12
12
|
<KeyGroupItem
|
|
13
13
|
headingId={`key-heading-${item.id}`}
|
|
14
14
|
label={item.groupLabel}
|
|
15
|
+
groupStyle={item.groupStyle}
|
|
15
16
|
keyDefinitions={item.keyDefinitions}
|
|
16
17
|
mapStyle={mapStyle}
|
|
17
18
|
/>
|
|
@@ -30,8 +31,10 @@ export const Key = ({
|
|
|
30
31
|
if (!keyGroups?.length) {
|
|
31
32
|
return (<EmptyKey text={noKeyItemText} />)
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
-
useEffect
|
|
34
|
+
// Pure derivation of hasGroups — computed directly during render (see KeyItem.jsx for why:
|
|
35
|
+
// staging this through useState/useEffect meant a mount with groups briefly rendered without
|
|
36
|
+
// the --has-groups modifier, using flat spacing before the effect corrected it).
|
|
37
|
+
const className = hasGroups ? `${keyClassName} ${keyGroupsClassName}` : keyClassName
|
|
35
38
|
|
|
36
39
|
return (
|
|
37
40
|
<div className={className}>
|
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
padding-bottom: 5px;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
.im-c-map-key__empty-message {
|
|
20
|
+
margin: 0;
|
|
21
|
+
font-size: 1rem;
|
|
22
|
+
color: var(--foreground-color);
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
.im-c-map-key__group-heading {
|
|
20
26
|
padding-top: 15px;
|
|
21
27
|
padding-bottom: 10px;
|
|
@@ -25,46 +31,93 @@
|
|
|
25
31
|
color: var(--foreground-color);
|
|
26
32
|
}
|
|
27
33
|
|
|
28
|
-
.im-c-map-
|
|
34
|
+
.im-c-map-key-list__item {
|
|
29
35
|
display: flex;
|
|
30
36
|
align-items: start;
|
|
31
37
|
padding-top: 10px;
|
|
32
38
|
padding-bottom: 10px;
|
|
33
39
|
font-size: 1rem;
|
|
34
|
-
|
|
35
|
-
// First item inside a group — heading already provides top spacing
|
|
36
|
-
.im-c-map-key__group &:first-child {
|
|
37
|
-
padding-top: 0;
|
|
38
|
-
}
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
.im-c-map-key--has-groups > .im-c-map-
|
|
42
|
+
.im-c-map-key--has-groups > .im-c-map-key-list__item:not(:first-child) {
|
|
42
43
|
padding-top: 15px;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
.im-c-map-key--has-groups > .im-c-map-
|
|
46
|
+
.im-c-map-key--has-groups > .im-c-map-key-list__item {
|
|
46
47
|
padding-bottom: 15px;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
.im-c-map-key__group .im-c-map-
|
|
50
|
+
.im-c-map-key__group > .im-c-map-key-list .im-c-map-key-list__item {
|
|
50
51
|
padding-top: 10px;
|
|
51
52
|
padding-bottom: 10px;
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
// Last item in all scenarios — flat or inside the last group
|
|
55
|
-
.im-c-map-key > .im-c-map-
|
|
56
|
-
.im-c-map-key__group:last-child .im-c-map-
|
|
56
|
+
.im-c-map-key > .im-c-map-key-list__item:last-child,
|
|
57
|
+
.im-c-map-key__group:last-child > .im-c-map-key-list .im-c-map-key-list__item:last-child {
|
|
57
58
|
padding-bottom: 5px;
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
// Symbol
|
|
61
62
|
|
|
62
|
-
.
|
|
63
|
+
.im-c-map-key-symbol {
|
|
63
64
|
position: relative;
|
|
64
65
|
flex-shrink: 0;
|
|
65
66
|
margin: 0 13px 0 3px;
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
.
|
|
69
|
+
.im-c-map-key-symbol--point {
|
|
69
70
|
margin: -12px 1px -12px -9px;
|
|
70
71
|
}
|
|
72
|
+
|
|
73
|
+
.im-c-map-key-list-ramp {
|
|
74
|
+
display: grid;
|
|
75
|
+
grid-template-columns: repeat(auto-fit, minmax(47px, auto));
|
|
76
|
+
direction: rtl;
|
|
77
|
+
.im-c-map-key-list__item {
|
|
78
|
+
padding: 0 !important;
|
|
79
|
+
position: relative !important;
|
|
80
|
+
display: flex;
|
|
81
|
+
flex-direction: column;
|
|
82
|
+
|
|
83
|
+
.im-c-map-key-list__item-symbol {
|
|
84
|
+
margin: 0 !important;
|
|
85
|
+
width: 100%;
|
|
86
|
+
direction: ltr;
|
|
87
|
+
svg {
|
|
88
|
+
display: block;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
}
|
|
92
|
+
.im-c-map-key-list__item-label {
|
|
93
|
+
width: 100%;
|
|
94
|
+
direction: ltr;
|
|
95
|
+
margin-top: 10px;
|
|
96
|
+
// Offset the label, so it sits below the border with the next box
|
|
97
|
+
white-space: nowrap;
|
|
98
|
+
text-align: center;
|
|
99
|
+
transform: translateX(-50%);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&:first-child { // rightmost visual cell (rtl) - add a curved corner
|
|
103
|
+
.im-c-map-key-list__item-symbol {
|
|
104
|
+
border-top-right-radius: 4px;
|
|
105
|
+
border-bottom-right-radius: 4px;
|
|
106
|
+
overflow: hidden;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
&:last-child { // leftmost visual cell (rtl)
|
|
111
|
+
// Hide the last child's label (ie the left-most one as the order is rtl)
|
|
112
|
+
.im-c-map-key-list__item-label {
|
|
113
|
+
display: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.im-c-map-key-list__item-symbol { // add a curved corner
|
|
117
|
+
border-top-left-radius: 4px;
|
|
118
|
+
border-bottom-left-radius: 4px;
|
|
119
|
+
overflow: hidden;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { KeyItem } from './KeyItem.jsx'
|
|
2
2
|
|
|
3
|
-
export const KeyGroupItem = ({ headingId, label, keyDefinitions, mapStyle }) => {
|
|
3
|
+
export const KeyGroupItem = ({ headingId, label, groupStyle, keyDefinitions, mapStyle }) => {
|
|
4
|
+
const className = 'im-c-map-key-list' + (groupStyle ? ` im-c-map-key-list-${groupStyle}` : '')
|
|
4
5
|
return (
|
|
5
6
|
<section className='im-c-map-key__group' aria-labelledby={headingId}>
|
|
6
7
|
<h3 id={headingId} className='im-c-map-key__group-heading'>{label}</h3>
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
<dl className={className}>
|
|
9
|
+
{keyDefinitions.map(keyDefinition =>
|
|
10
|
+
<KeyItem
|
|
11
|
+
key={`${keyDefinition.id}`}
|
|
12
|
+
keyDefinition={keyDefinition}
|
|
13
|
+
mapStyle={mapStyle}
|
|
14
|
+
groupStyle={groupStyle}
|
|
15
|
+
/>
|
|
16
|
+
)}
|
|
17
|
+
</dl>
|
|
14
18
|
</section>
|
|
15
19
|
)
|
|
16
20
|
}
|
|
@@ -50,4 +50,14 @@ describe('KeyGroupItem', () => {
|
|
|
50
50
|
render(<KeyGroupItem {...baseProps} keyDefinitions={[]} />)
|
|
51
51
|
expect(screen.queryAllByTestId('key-item')).toHaveLength(0)
|
|
52
52
|
})
|
|
53
|
+
|
|
54
|
+
it('appends the groupStyle modifier class to the dl when groupStyle is provided', () => {
|
|
55
|
+
const { container } = render(<KeyGroupItem {...baseProps} groupStyle='ramp' />)
|
|
56
|
+
expect(container.querySelector('dl').className).toBe('im-c-map-key-list im-c-map-key-list-ramp')
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
it('uses the base dl class when groupStyle is not provided', () => {
|
|
60
|
+
const { container } = render(<KeyGroupItem {...baseProps} />)
|
|
61
|
+
expect(container.querySelector('dl').className).toBe('im-c-map-key-list')
|
|
62
|
+
})
|
|
53
63
|
})
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react'
|
|
2
1
|
import { getValueForStyle } from '../../../../../src/utils/getValueForStyle.js'
|
|
3
2
|
import { KeySvg } from './KeySvg.jsx'
|
|
4
3
|
|
|
5
4
|
export const KeyItem = ({ keyDefinition, mapStyle }) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
setSymbolDescription(getValueForStyle(keyDefinition.symbolDescription, mapStyle.id))
|
|
12
|
-
}, [keyDefinition, mapStyle.id])
|
|
5
|
+
// Pure derivations of props — computed directly on every render rather than staged through
|
|
6
|
+
// useState/useEffect, so there's no post-mount frame where the label/description are blank
|
|
7
|
+
// (every panel reopen mounts this fresh, so that frame was visible as a flicker).
|
|
8
|
+
const label = keyDefinition.label
|
|
9
|
+
const symbolDescription = getValueForStyle(keyDefinition.symbolDescription, mapStyle.id)
|
|
13
10
|
|
|
14
11
|
return (
|
|
15
|
-
<
|
|
16
|
-
<dt className='im-c-map-
|
|
12
|
+
<div className='im-c-map-key-list__item'>
|
|
13
|
+
<dt className='im-c-map-key-list__item-symbol'>
|
|
17
14
|
<KeySvg keyDefinition={keyDefinition} mapStyle={mapStyle} />
|
|
18
15
|
</dt>
|
|
19
|
-
<dd className='im-c-map-
|
|
16
|
+
<dd className='im-c-map-key-list__item-label'>
|
|
20
17
|
{label}
|
|
21
18
|
{symbolDescription && (
|
|
22
19
|
<span className='govuk-visually-hidden'>
|
|
@@ -24,6 +21,6 @@ export const KeyItem = ({ keyDefinition, mapStyle }) => {
|
|
|
24
21
|
</span>
|
|
25
22
|
)}
|
|
26
23
|
</dd>
|
|
27
|
-
</
|
|
24
|
+
</div>
|
|
28
25
|
)
|
|
29
26
|
}
|
|
@@ -25,12 +25,12 @@ beforeEach(() => {
|
|
|
25
25
|
describe('KeyItem', () => {
|
|
26
26
|
it('renders a dl with the item class', () => {
|
|
27
27
|
const { container } = render(<KeyItem keyDefinition={baseKeyDefinition} mapStyle={mapStyle} />)
|
|
28
|
-
expect(container.querySelector('.im-c-map-
|
|
28
|
+
expect(container.querySelector('.im-c-map-key-list__item')).toBeTruthy()
|
|
29
29
|
})
|
|
30
30
|
|
|
31
31
|
it('renders the symbol dt with the correct class', () => {
|
|
32
32
|
const { container } = render(<KeyItem keyDefinition={baseKeyDefinition} mapStyle={mapStyle} />)
|
|
33
|
-
expect(container.querySelector('.im-c-map-
|
|
33
|
+
expect(container.querySelector('.im-c-map-key-list__item-symbol')).toBeTruthy()
|
|
34
34
|
})
|
|
35
35
|
|
|
36
36
|
it('renders KeySvg inside the symbol dt', () => {
|
|
@@ -40,7 +40,7 @@ describe('KeyItem', () => {
|
|
|
40
40
|
|
|
41
41
|
it('renders the label dd with the correct class', () => {
|
|
42
42
|
const { container } = render(<KeyItem keyDefinition={baseKeyDefinition} mapStyle={mapStyle} />)
|
|
43
|
-
expect(container.querySelector('.im-c-map-
|
|
43
|
+
expect(container.querySelector('.im-c-map-key-list__item-label')).toBeTruthy()
|
|
44
44
|
})
|
|
45
45
|
|
|
46
46
|
it('renders the label text', () => {
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react'
|
|
2
1
|
import { KeySvgPattern } from './KeySvgPattern.jsx'
|
|
3
2
|
import { KeySvgSymbol } from './KeySvgSymbol.jsx'
|
|
4
3
|
import { KeySvgLine } from './KeySvgLine.jsx'
|
|
5
4
|
import { KeySvgRect } from './KeySvgRect.jsx'
|
|
5
|
+
import { KeySvgRamp } from './KeySvgRamp.jsx'
|
|
6
6
|
import { symbolRegistry } from '../../registry/index.js'
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
// Pure derivation of keyDefinition — computed directly during render (see KeyItem.jsx for why:
|
|
9
|
+
// staging this through useState/useEffect meant every fresh mount painted a blank symbol first).
|
|
10
|
+
const getSymbolShape = (keyDefinition) => {
|
|
11
|
+
if (!keyDefinition) {
|
|
12
|
+
return { symbolShape: null, symbolDef: null }
|
|
13
|
+
}
|
|
14
|
+
const { hasSymbol, hasPattern, hasRampStyleKey, style } = keyDefinition
|
|
15
|
+
if (hasRampStyleKey) {
|
|
16
|
+
return { symbolShape: 'ramp', symbolDef: null }
|
|
17
|
+
}
|
|
18
|
+
if (hasSymbol) {
|
|
19
|
+
const symbolDef = symbolRegistry.getSymbolDef(style)
|
|
20
|
+
return { symbolShape: symbolDef ? 'symbol' : 'rect', symbolDef }
|
|
21
|
+
}
|
|
22
|
+
if (hasPattern) {
|
|
23
|
+
return { symbolShape: 'pattern', symbolDef: null }
|
|
24
|
+
}
|
|
25
|
+
if (style.keySymbolShape === 'line') {
|
|
26
|
+
return { symbolShape: 'line', symbolDef: null }
|
|
27
|
+
}
|
|
28
|
+
return { symbolShape: 'rect', symbolDef: null }
|
|
29
|
+
}
|
|
11
30
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
setSymbolShape(null)
|
|
15
|
-
return
|
|
16
|
-
}
|
|
17
|
-
const { hasSymbol, hasPattern, style } = keyDefinition
|
|
18
|
-
if (hasSymbol) {
|
|
19
|
-
const _symbolDef = symbolRegistry.getSymbolDef(style)
|
|
20
|
-
setSymbolDef(_symbolDef)
|
|
21
|
-
setSymbolShape(_symbolDef ? 'symbol' : 'rect')
|
|
22
|
-
} else if (hasPattern) {
|
|
23
|
-
setSymbolShape('pattern')
|
|
24
|
-
} else if (style.keySymbolShape === 'line') {
|
|
25
|
-
setSymbolShape('line')
|
|
26
|
-
} else {
|
|
27
|
-
setSymbolShape('rect')
|
|
28
|
-
}
|
|
29
|
-
}, [keyDefinition])
|
|
31
|
+
export const KeySvg = ({ keyDefinition, mapStyle }) => {
|
|
32
|
+
const { symbolShape, symbolDef } = getSymbolShape(keyDefinition)
|
|
30
33
|
|
|
31
34
|
if (!symbolShape) {
|
|
32
35
|
return null
|
|
@@ -36,6 +39,8 @@ export const KeySvg = ({ keyDefinition, mapStyle }) => {
|
|
|
36
39
|
return <KeySvgPattern mapStyle={mapStyle} keyDefinition={keyDefinition} />
|
|
37
40
|
} else if (symbolShape === 'line') {
|
|
38
41
|
return <KeySvgLine mapStyle={mapStyle} keyDefinition={keyDefinition} />
|
|
42
|
+
} else if (symbolShape === 'ramp') {
|
|
43
|
+
return <KeySvgRamp mapStyle={mapStyle} keyDefinition={keyDefinition} />
|
|
39
44
|
} else {
|
|
40
45
|
return <KeySvgRect mapStyle={mapStyle} keyDefinition={keyDefinition} />
|
|
41
46
|
}
|
|
@@ -21,6 +21,10 @@ jest.mock('./KeySvgRect.jsx', () => ({
|
|
|
21
21
|
KeySvgRect: () => <svg data-testid='key-svg-rect' />
|
|
22
22
|
}))
|
|
23
23
|
|
|
24
|
+
jest.mock('./KeySvgRamp.jsx', () => ({
|
|
25
|
+
KeySvgRamp: () => <svg data-testid='key-svg-ramp' />
|
|
26
|
+
}))
|
|
27
|
+
|
|
24
28
|
const baseKeyDefinition = {
|
|
25
29
|
hasSymbol: false,
|
|
26
30
|
hasPattern: false,
|
|
@@ -86,4 +90,9 @@ describe('KeySvg', () => {
|
|
|
86
90
|
const { container } = render(<KeySvg {...baseProps} keyDefinition={null} />)
|
|
87
91
|
expect(container.firstChild).toBeNull()
|
|
88
92
|
})
|
|
93
|
+
|
|
94
|
+
it('renders KeySvgRamp when hasRampStyleKey is true', () => {
|
|
95
|
+
const { getByTestId } = render(<KeySvg {...baseProps} keyDefinition={{ ...baseKeyDefinition, hasRampStyleKey: true }} />)
|
|
96
|
+
expect(getByTestId('key-svg-ramp')).toBeTruthy()
|
|
97
|
+
})
|
|
89
98
|
})
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react'
|
|
2
1
|
import { svgProps, SVG_SIZE, SVG_CENTER } from './svgProperties.js'
|
|
3
2
|
import { getValueForStyle } from '../../../../../src/utils/getValueForStyle.js'
|
|
4
3
|
|
|
5
4
|
export const KeySvgLine = ({ mapStyle, keyDefinition }) => {
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
const { style } = keyDefinition
|
|
11
|
-
setStrokeWidth(style.strokeWidth)
|
|
12
|
-
setStroke(getValueForStyle(style.stroke, mapStyle.id))
|
|
13
|
-
}, [mapStyle.id, keyDefinition])
|
|
5
|
+
const { style } = keyDefinition
|
|
6
|
+
const strokeWidth = style.strokeWidth
|
|
7
|
+
const stroke = getValueForStyle(style.stroke, mapStyle.id)
|
|
14
8
|
|
|
15
9
|
return (
|
|
16
10
|
<svg {...svgProps}>
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import { useEffect, useState } from 'react'
|
|
2
1
|
import { svgProps } from './svgProperties.js'
|
|
3
2
|
import { patternRegistry } from '../../registry/index.js'
|
|
4
3
|
const PATTERN_INSET = 2
|
|
5
4
|
|
|
6
5
|
export const KeySvgPattern = ({ keyDefinition, mapStyle }) => {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
const { style } = keyDefinition
|
|
11
|
-
setPaths(patternRegistry.getKeyPatternPaths(style, mapStyle.id))
|
|
12
|
-
}, [mapStyle.id, keyDefinition])
|
|
6
|
+
const { style } = keyDefinition
|
|
7
|
+
const paths = patternRegistry.getKeyPatternPaths(style, mapStyle.id)
|
|
13
8
|
|
|
14
9
|
if (!paths) {
|
|
15
10
|
return null
|
|
@@ -52,4 +52,10 @@ describe('KeySvgPattern', () => {
|
|
|
52
52
|
const { container } = render(<KeySvgPattern {...defaultProps} />)
|
|
53
53
|
expect(container.querySelector('#content-el')).toBeTruthy()
|
|
54
54
|
})
|
|
55
|
+
|
|
56
|
+
it('renders nothing when getKeyPatternPaths returns falsy', () => {
|
|
57
|
+
getKeyPatternPaths.mockReturnValue(null)
|
|
58
|
+
const { container } = render(<KeySvgPattern {...defaultProps} />)
|
|
59
|
+
expect(container.firstChild).toBeNull()
|
|
60
|
+
})
|
|
55
61
|
})
|