@defra/interactive-map 0.0.27-alpha → 0.0.28-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{559(e,t,r){r.r(t),r.d(t,{manifest:()=>$e});var n=r(738),o={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!s(e[0])||!s(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function u(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const f=11102230246251565e-32,p=134217729,d=(3+8*f)*f;function y(e,t,r,n,o){let i,a,u,l,c=t[0],s=n[0],f=0,p=0;s>c==s>-c?(i=c,c=t[++f]):(i=s,s=n[++p]);let d=0;if(f<e&&p<r)for(s>c==s>-c?(a=c+i,u=i-(a-c),c=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[d++]=u);f<e&&p<r;)s>c==s>-c?(a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f]):(a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p]),i=a,0!==u&&(o[d++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[d++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[d++]=u);return 0===i&&0!==d||(o[d++]=i),d}function v(e){return new Float64Array(e)}const m=v(4),b=v(8),g=v(12),h=v(16),S=v(4);function E(e,t,r,n,o,i){const a=(t-i)*(r-o),u=(e-o)*(n-i),l=a-u,c=Math.abs(a+u);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let u,l,c,s,f,v,E,P,A,w,O,_,M,k,T,I,C,L;const j=e-o,F=r-o,D=t-i,R=n-i;k=j*R,v=p*j,E=v-(v-j),P=j-E,v=p*R,A=v-(v-R),w=R-A,T=P*w-(k-E*A-P*A-E*w),I=D*F,v=p*D,E=v-(v-D),P=D-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,m[0]=T-(O+f)+(f-C),_=k+O,f=_-k,M=k-(_-f)+(O-f),O=M-I,f=M-O,m[1]=M-(O+f)+(f-I),L=_+O,f=L-_,m[2]=_-(L-f)+(O-f),m[3]=L;let x=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,m),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(f=e-j,u=e-(j+f)+(f-o),f=r-F,c=r-(F+f)+(f-o),f=t-D,l=t-(D+f)+(f-i),f=n-R,s=n-(R+f)+(f-i),0===u&&0===l&&0===c&&0===s)return x;if(B=11093356479670487e-47*a+d*Math.abs(x),x+=j*s+R*u-(D*c+F*l),x>=B||-x>=B)return x;k=u*R,v=p*u,E=v-(v-u),P=u-E,v=p*R,A=v-(v-R),w=R-A,T=P*w-(k-E*A-P*A-E*w),I=l*F,v=p*l,E=v-(v-l),P=l-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),_=k+O,f=_-k,M=k-(_-f)+(O-f),O=M-I,f=M-O,S[1]=M-(O+f)+(f-I),L=_+O,f=L-_,S[2]=_-(L-f)+(O-f),S[3]=L;const N=y(4,m,4,S,b);k=j*s,v=p*j,E=v-(v-j),P=j-E,v=p*s,A=v-(v-s),w=s-A,T=P*w-(k-E*A-P*A-E*w),I=D*c,v=p*D,E=v-(v-D),P=D-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),_=k+O,f=_-k,M=k-(_-f)+(O-f),O=M-I,f=M-O,S[1]=M-(O+f)+(f-I),L=_+O,f=L-_,S[2]=_-(L-f)+(O-f),S[3]=L;const U=y(N,b,4,S,g);k=u*s,v=p*u,E=v-(v-u),P=u-E,v=p*s,A=v-(v-s),w=s-A,T=P*w-(k-E*A-P*A-E*w),I=l*c,v=p*l,E=v-(v-l),P=l-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),_=k+O,f=_-k,M=k-(_-f)+(O-f),O=M-I,f=M-O,S[1]=M-(O+f)+(f-I),L=_+O,f=L-_,S[2]=_-(L-f)+(O-f),S[3]=L;const G=y(U,g,4,S,h);return h[G-1]}(e,t,r,n,o,i,c)}function P(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],d=e[1],y=t.length;for(r=0;r<y;r++){n=0;var v=t[r],m=v.length-1;if((c=v[0])[0]!==v[m][0]&&c[1]!==v[m][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-p,a=c[1]-d;n<m;n++){if(u=(s=v[n+1])[0]-p,l=s[1]-d,0===a&&0===l){if(u<=0&&i>=0||i<=0&&u>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=E(i,u,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&f++}c=s,a=l,i=u}}return f%2!=0}function A(e){return"Feature"===e.type?e.geometry:e}function w(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=A(t),i=o.type,a=t.bbox;let u=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(u=[u]);let l=!1;for(var c=0;c<u.length;++c){const e=P(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(4),v(8),v(8),v(8),v(12),v(192),v(192),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(4),v(4),v(4),v(8),v(16),v(16),v(16),v(32),v(32),v(48),v(64),v(1152),v(1152),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(1152),v(1152),v(1152),v(1152),v(1152),v(2304),v(2304),v(3456),v(5760),v(8),v(8),v(8),v(16),v(24),v(48),v(48),v(96),v(192),v(384),v(384),v(384),v(768),v(96),v(96),v(96),v(1152);class O{constructor(e=[],t=_){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:r}=this,n=t[e];for(;e>0;){const o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}_down(e){const{data:t,compare:r}=this,n=this.length>>1,o=t[e];for(;e<n;){let n=1+(e<<1),i=t[n];const a=n+1;if(a<this.length&&r(t[a],i)<0&&(n=a,i=t[a]),r(i,o)>=0)break;t[e]=i,e=n}t[e]=o}}function _(e,t){return e<t?-1:e>t?1:0}function M(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function k(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class T{constructor(e,t,r,n){this.p={x:e[0],y:e[1]},this.featureId=t,this.ringId=r,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(e){return this.p.x===e.p.x&&this.p.y===e.p.y}}let I=0,C=0,L=0;function j(e,t){const r="Feature"===e.type?e.geometry:e;let n=r.coordinates;"Polygon"!==r.type&&"MultiLineString"!==r.type||(n=[n]),"LineString"===r.type&&(n=[[n]]);for(let e=0;e<n.length;e++)for(let r=0;r<n[e].length;r++){let o=n[e][r][0],i=null;C+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new T(o,I,C,L),l=new T(i,I,C,L+1);u.otherEvent=l,l.otherEvent=u,M(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,L+=1}}I+=1}class F{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function D(e,t){if(null===e||null===t)return!1;if(e.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.rightSweepEvent)||e.leftSweepEvent.isSamePoint(t.leftSweepEvent)||e.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const r=e.leftSweepEvent.p.x,n=e.leftSweepEvent.p.y,o=e.rightSweepEvent.p.x,i=e.rightSweepEvent.p.y,a=t.leftSweepEvent.p.x,u=t.leftSweepEvent.p.y,l=t.rightSweepEvent.p.x,c=t.rightSweepEvent.p.y,s=(c-u)*(o-r)-(l-a)*(i-n);if(0===s)return!1;const f=((l-a)*(n-u)-(c-u)*(r-a))/s,p=((o-r)*(n-u)-(i-n)*(r-a))/s;return f>=0&&f<=1&&p>=0&&p<=1&&[r+f*(o-r),n+f*(i-n)]}function R(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let u=[];"FeatureCollection"===e.type?u=u.concat(e.features):"Feature"===e.type?u.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||u.push(i(e)),"FeatureCollection"===t.type?u=u.concat(t.features):"Feature"===t.type?u.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||u.push(i(t));const c=function(e,t){const r=new O([],M);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)j(r[e],t)}else j(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new O([],k);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new F(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const u=D(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(l(u),o);let s=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,s.push(t))})}else s=c;return l(s.map(e=>a(e)))}function x(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,d="FeatureCollection"===e.type,y="Feature"===e.type,v=d?e.features.length:1;for(r=0;r<v;r++){for(u=d?e.features[r].geometry:y?e.geometry:e,c=d?e.features[r].properties:y?e.properties:{},s=d?e.features[r].bbox:y?e.bbox:void 0,f=d?e.features[r].id:y?e.id:void 0,a=(l=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,c,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,c,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,c,s,f))return!1;p++}}(e,function(e,r,n,o,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var s=e.coordinates[c];if(!1===t(i({type:u,coordinates:s},n),r,c))return!1}})}function B(e,t={}){const r=A(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return N(A(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=A(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(N(e,n))}),l(o)}(r,t);default:throw new Error("invalid poly")}}function N(e,t){return e.length>1?c(e,t):u(e[0],t)}function U(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(V(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function G(e,t,r){for(const r of t.coordinates)if(w(r,e))return!0;return R(t,B(e),{ignoreSelfIntersections:r}).features.length>0}function V(e,t,r){const n=r[0]-e[0],o=r[1]-e[1],i=t[0]-e[0],a=t[1]-e[1];return 0===n*a-o*i&&(Math.abs(i)>=Math.abs(a)?i>0?e[0]<=r[0]&&r[0]<=t[0]:t[0]<=r[0]&&r[0]<=e[0]:a>0?e[1]<=r[1]&&r[1]<=t[1]:t[1]<=r[1]&&r[1]<=e[1])}function H(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return K(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function W(e){var t=e.geometry||e;switch(t.type){case"Polygon":return function(e,t,r={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return i({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return u(t.coordinates);case"MultiLineString":return c(t.coordinates);case"Point":return a(t.coordinates);case"MultiPoint":return function(e,t,r={}){return i({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function Y(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return x(e,e=>{x(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!U(t,e);case"Polygon":return!w(e,t)}break;case"LineString":switch(t.type){case"Point":return!U(e,t);case"LineString":return!function(e,t,r){return R(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!G(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!w(t,e);case"LineString":return!G(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(w(r,t))return!0;for(const r of t.coordinates[0])if(w(r,e))return!0;return R(B(e),B(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(W(t),W(e))})}function q(e){if(e.length<2)return!1;if(e.some(function(e){var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=H(t).map(function(t){return e[t]});Y(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var X=function(e){var t,r={},n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return z(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;r[o.layerId]=o}}catch(e){n.e(e)}finally{n.f()}return r},$=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},J=function(e){var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r};r(287);new Set,new Set;function Z(e){return Z="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},Z(e)}function Q(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 ee(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(r),!0).forEach(function(t){te(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Q(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function te(e,t,r){return(t=function(e){var t=function(e){if("object"!=Z(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Z(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Z(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var re={slot:"middle",open:!1,dismissible:!0,modal:!0},ne=(ee({},re),ee(ee({},re),{},{width:"500px"}),ee(ee({},re),{},{width:"500px"}),{small:1,medium:1.5,large:2}),oe=(new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),function(e){return!(!e.label||e.symbol||e.symbolSvgContent||null!==e.symbol&&null!==e.symbolSvgContent)});function ie(e){return ie="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},ie(e)}function ae(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 ue(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(r),!0).forEach(function(t){le(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ae(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function le(e,t,r){return(t=function(e){var t=function(e){if("object"!=ie(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ie(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ie(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ce(e){return function(e){if(Array.isArray(e))return fe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||se(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function se(e,t){if(e){if("string"==typeof e)return fe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fe(e,t):void 0}}function fe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var pe=function(e,t,r,n){return{featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}},de=function(e){var t=e.mapProvider,r=e.layers,o=e.interactionModes,i=e.multiSelect,a=e.dispatch,u=e.markers,l=e.layerConfigMap,c=e.debug,s=e.tolerance,f=e.processFeatureMatch,p=e.processFallback,d=e.scale;return(0,n.useCallback)(function(e){var n=e.point,y=e.coords,v=c?$(t,n,{radius:s}):null;if(v&&console.log("--- Features at ".concat(y," ---"),v),o.includes("selectMarker")){var m=function(e,t,r){var n,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=se(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},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(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e.items);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=null===(i=e.markerRefs)||void 0===i?void 0:i.get(a.id);if(u&&!oe(a)){var l=u.closest(".im-c-viewport__markers")||u.parentElement,c=l?l.getBoundingClientRect():{left:0,top:0},s=u.getBoundingClientRect(),f=s.left,p=s.top,d=s.right,y=s.bottom,v=t.x*r,m=t.y*r;if(v>=f-c.left&&v<=d-c.left&&m>=p-c.top&&m<=y-c.top)return a.id}}}catch(e){o.e(e)}finally{o.f()}return null}(u,n,d);if(m)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:m,multiSelect:i}})}if(o.includes("selectFeature")&&r.length>0){var b=function(e,t){var r=e.filter(function(e){var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(J);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null}(null!=v?v:$(t,n,{radius:s}),l);if(b)return void f(b)}p({coords:y})},[t,r,o,i,a,u,l,c,s,f,p,d])},ye=function(e){var t,r=e.mapState,o=e.pluginState,i=e.services,a=e.mapProvider,u=r.markers,l=r.mapSize,c=o.dispatch,s=o.layers,f=o.interactionModes,p=o.multiSelect,d=o.contiguous,y=o.marker,v=o.tolerance,m=o.selectedFeatures,b=o.selectedMarkers,g=o.selectionBounds,h=o.deselectOnClickOutside,S=i.eventBus,E=X(s),P=null!==(t=ne[l])&&void 0!==t?t:1,A=(0,n.useCallback)(function(e){var t,r,n,o=e.feature,i=e.config;u.remove("location");var l=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=l){var s=null===(n=a.getFeatureGeometry)||void 0===n?void 0:n.call(a,i.layerId,l,i.idProperty),f=s?ue(ue({},o),{},{geometry:s}):o;if(d&&p&&function(e){var t,r=e.featureId,n=e.feature,o=e.config,i=e.selectedFeatures,a=e.dispatch,u=e.multiSelect;if(!i.length)return!1;var l=i.findIndex(function(e){return e.featureId===r&&e.layerId===o.layerId});if(-1!==l){if(i.length<3)return!1;var c=function(e){for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++){var o;if(!t.has(n)){var i=ce(t).map(function(t){return e[t]});null!==(o=e[n].geometry)&&void 0!==o&&o.type&&Y(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:ce(t).map(function(t){return e[t]})}(i.filter(function(e,t){return t!==l}));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var s=i.filter(function(e){var t;return null===(t=e.geometry)||void 0===t?void 0:t.type});return!(null===(t=n.geometry)||void 0===t||!t.type||!s.length||Y(n,s)||(a({type:"TOGGLE_SELECTED_FEATURES",payload:ue(ue({},pe(r,u,o,n)),{},{replaceAll:!0})}),0))}({featureId:l,feature:f,config:i,selectedFeatures:m,dispatch:c,multiSelect:p}))return;c({type:"TOGGLE_SELECTED_FEATURES",payload:pe(l,p,i,f)})}},[u,c,p,d,m,a]),w=(0,n.useCallback)(function(e){var t=e.coords,r=f.includes("placeMarker");(r||h)&&(c({type:"CLEAR_SELECTED_FEATURES"}),r&&(u.add("location",t,y),S.emit("interact:markerchange",{coords:t})))},[f,c,u,y,S,h]),O=de({mapProvider:a,layers:s,interactionModes:f,multiSelect:p,dispatch:c,markers:u,layerConfigMap:E,debug:null==o?void 0:o.debug,tolerance:v,processFeatureMatch:A,processFallback:w,scale:P});return function(e,t,r,o){var i=(0,n.useRef)(null);(0,n.useEffect)(function(){if(!(t.length>0)||o){var n=i.current;(null===n||0===n.features.length&&0===n.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t,selectedMarkers:r,selectionBounds:o,contiguous:q(t)}),i.current={features:t,markers:r})}},[t,r,o])}(S,m,b,g),{handleInteraction:O}};function ve(e){return ve="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},ve(e)}function me(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 be(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?me(Object(r),!0).forEach(function(t){ge(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):me(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ge(e,t,r){return(t=function(e){var t=function(e){if("object"!=ve(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ve(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ve(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function he(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ee(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ee(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function Ee(e,t){if(e){if("string"==typeof e)return Pe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pe(e,t):void 0}}function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var Ae=function(e,t){var r,n;return t?null!==(r=null===(n=e.properties)||void 0===n?void 0:n[t.idProperty])&&void 0!==r?r:e.id:null},we=function(e){var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),o=n.left,i=n.right,a=n.top,u=n.bottom;return i>r.left&&o<r.right&&u>r.top&&a<r.bottom},Oe=function(e,t,r){var n,o,i,a=t[null===(n=e.layer)||void 0===n?void 0:n.id];if(null==a||!a.labelProperty)return null;var u=Ae(e,a),l=null==u?null:String(u);return null==l||r.has(l)?null:(r.add(l),{id:l,label:null!==(o=null===(i=e.properties)||void 0===i?void 0:i[a.labelProperty])&&void 0!==o?o:l})};function _e(e){var t=e.mapState,r=e.pluginState,i=e.services,a=e.mapProvider,u=t.markers,l=r.dispatch,c=r.interactionModes,s=r.layers,f=r.multiSelect,p=i.eventBus,d=(0,n.useRef)(null);(function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.multiSelect,l=e.eventBus;(0,n.useEffect)(function(){var e=function(){var e=[];null!=r&&r.includes("selectMarker")&&e.push.apply(e,he(function(e){var t,r=[],n=Se(e.items);try{for(n.s();!(t=n.n()).done;){var o,i=t.value;if(i.label){var a=null===(o=e.markerRefs)||void 0===o?void 0:o.get(i.id);!oe(i)&&a&&we(a)&&r.push({id:i.id,label:i.label})}}}catch(e){n.e(e)}finally{n.f()}return r}(t))),null!=r&&r.includes("selectFeature")&&i.length>0&&e.push.apply(e,he(function(e,t){var r,n=[],o=new Set,i=t.map(function(e){return e.layerId}),a=X(t),u=Se(e.getVisibleFeatures(i));try{for(u.s();!(r=u.n()).done;){var l=r.value,c=Oe(l,a,o);c&&n.push(c)}}catch(e){u.e(e)}finally{u.f()}return n}(a,i))),l.emit(o.MAP_SET_FEATURES,{items:e,multiselectable:u})};return e(),l.on(o.MAP_MOVE_END,e),l.on(o.MAP_DATA_CHANGE,e),function(){l.off(o.MAP_MOVE_END,e),l.off(o.MAP_DATA_CHANGE,e)}},[t,r,i,a,u,l])})({markers:u,interactionModes:c,layers:s,mapProvider:a,multiSelect:f,eventBus:p}),function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.eventBus,l=e.dispatch,c=e.listboxActiveItemRef;(0,n.useEffect)(function(){var e=function(e){var n=e.id;if(null===n)return c.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.find(function(e){return e.id===n}))return c.current={id:n,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&i.length>0){var o=i.map(function(e){return e.layerId}),u=X(i),s=function(e,t,r){var n,o=Se(e);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=t[null===(i=a.layer)||void 0===i?void 0:i.id],l=Ae(a,u);if(null!=l&&String(l)===String(r))return{feature:a,config:u,rawId:l}}}catch(e){o.e(e)}finally{o.f()}return null}(a.getVisibleFeatures(o),u,n);if(s){var f={featureId:s.rawId,layerId:s.config.layerId,idProperty:s.config.idProperty,geometry:s.feature.geometry};c.current=be(be({id:n,isMarker:!1},f),{},{properties:s.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:f})}}};return u.on(o.MAP_SET_ACTIVE_FEATURE,e),function(){u.off(o.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,i,a,u,l,c])}({markers:u,interactionModes:c,layers:s,mapProvider:a,eventBus:p,dispatch:l,listboxActiveItemRef:d}),function(e){var t=e.eventBus,r=e.dispatch,i=e.listboxActiveItemRef,a=e.multiSelect;(0,n.useEffect)(function(){var e=function(){var e=i.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:a}});else{var t=e.featureId,n=e.layerId,o=e.idProperty,u=e.geometry,l=e.properties;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:n,idProperty:o,geometry:u,properties:l,multiSelect:a,replaceAll:!a}})}};return t.on(o.MAP_SELECT_FEATURE,e),function(){t.off(o.MAP_SELECT_FEATURE,e)}},[t,r,i,a])}({eventBus:p,dispatch:l,listboxActiveItemRef:d,multiSelect:f})}function Me(e){return Me="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},Me(e)}var ke=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===Me(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},Te={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},Ie=window.matchMedia("(pointer: coarse)").matches?"touch":"unknown",Ce=(new Set,new Set);function Le(e){return Le="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},Le(e)}function je(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 Fe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?je(Object(r),!0).forEach(function(t){De(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):je(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function De(e,t,r){return(t=function(e){var t=function(e){if("object"!=Le(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Le(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Re=function(e){return 1===(null==e?void 0:e.length)&&e.includes("selectMarker")};function xe(e){return xe="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},xe(e)}function Be(e){return function(e){if(Array.isArray(e))return Ne(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ne(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ne(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Ue(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 Ge(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(r),!0).forEach(function(t){Ve(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ue(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ve(e,t,r){return(t=function(e){var t=function(e){if("object"!=xe(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=xe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==xe(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var He={ENABLE:function(e,t){return Ge(Ge(Ge({},e),t),{},{enabled:!0})},DISABLE:function(e){return Ge(Ge({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,listboxActiveItem:null})},TOGGLE_SELECTED_FEATURES:function(e,t){var r=t.featureId,n=t.multiSelect,o=t.layerId,i=t.idProperty,a=t.addToExisting,u=void 0===a||a,l=t.replaceAll,c=void 0!==l&&l,s=t.properties,f=t.geometry,p=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],d=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var y=p.filter(function(e,t){return t!==d});return Ge(Ge({},e),{},{selectedFeatures:y,selectionBounds:null})}var v,m={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=Be(p);-1===d?b.push(m):b.splice(d,1),v=b}else v=-1!==d&&1===p.length?[]:[m];return Ge(Ge({},e),{},{selectedFeatures:v,selectedMarkers:n&&!c?e.selectedMarkers:[],selectionBounds:null})},TOGGLE_SELECTED_MARKERS:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(function(e){return e!==r}):[].concat(Be(o),[r]);return Ge(Ge({},e),{},{selectedMarkers:a})}return Ge(Ge({},e),{},{selectedFeatures:[],selectionBounds:null,selectedMarkers:i&&1===o.length?[]:[r]})},UPDATE_SELECTED_BOUNDS:function(e,t){return JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:Ge(Ge({},e),{},{selectionBounds:t})},CLEAR_SELECTED_FEATURES:function(e){return Ge(Ge({},e),{},{selectedFeatures:[],selectedMarkers:[],selectionBounds:null})},SET_SELECTED_FEATURES:function(e,t){return Ge(Ge({},e),{},{selectedFeatures:t,selectionBounds:null})},SELECT_MARKER:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[].concat(Be(o),[r]):[r];return Ge(Ge({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectionBounds:null,selectedMarkers:i})},UNSELECT_MARKER:function(e,t){var r=t.markerId,n=e.selectedMarkers;return n.includes(r)?Ge(Ge({},e),{},{selectedMarkers:n.filter(function(e){return e!==r})}):e},SET_LISTBOX_ACTIVE:function(e,t){return Ge(Ge({},e),{},{listboxActiveItem:null!=t?t:null})}},Ke={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};function We(e){return We="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},We(e)}function Ye(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 qe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ye(Object(r),!0).forEach(function(t){ze(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ye(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ze(e,t,r){return(t=function(e){var t=function(e){if("object"!=We(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=We(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==We(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Xe="Select features",$e={InitComponent:function(e){var t=e.appState,r=e.mapState,i=e.services,a=e.buttonConfig,u=e.mapProvider,l=e.pluginState,c=l.dispatch,s=l.enabled,f=l.selectedFeatures,p=l.interactionModes,d=l.layers,y=i.eventBus,v=i.closeApp,m=r.crossHair,b=r.mapStyle,g=r.markers,h=Re(p);_e({mapState:r,pluginState:l,services:i,mapProvider:u});var S=ye({appState:t,mapState:r,pluginState:l,services:i,mapProvider:u}).handleInteraction;return function(e){var t=e.mapProvider,r=e.mapStyle,o=e.pluginState,i=e.selectedFeatures,a=e.dispatch,u=e.events,l=e.eventBus,c=o.layers,s=o.listboxActiveItem,f=(0,n.useMemo)(function(){return r?function(e,t){var r,n,o,i={};if(!t)return i;var a=null!==(r=Te[t.mapColorScheme])&&void 0!==r?r:Te.light,u=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,l=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(function(e){var r=e.activeStroke||u,n=e.selectedStroke||l,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:ke(r,t.id),selectionStroke:ke(n,t.id),fill:ke(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i}(c,r):null},[c,r]),p=function(){var e,r=s?[{featureId:s.featureId,layerId:s.layerId,idProperty:s.idProperty,geometry:s.geometry}]:[],n=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,i,r,f);a({type:"UPDATE_SELECTED_BOUNDS",payload:n})};(0,n.useEffect)(function(){if(t&&f){p();var e=function(){l.once(u.MAP_DATA_CHANGE,p)};return l.on(u.MAP_STYLE_CHANGE,e),function(){l.off(u.MAP_STYLE_CHANGE,e)}}},[i,s,t,f,l])}({mapProvider:u,mapStyle:b,pluginState:l,selectedFeatures:f,dispatch:c,events:o,eventBus:y}),(0,n.useEffect)(function(){y.emit("interact:active",{active:s,interactionModes:p})},[s,p]),function(e){var t=e.enabled,r=e.interactionModes,o=e.markers,i=e.layers,a=e.eventBus;(0,n.useEffect)(function(){if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&o.items.some(function(e){return e.label}),n=(null==r?void 0:r.includes("selectFeature"))&&i.some(function(e){return e.labelProperty});(e||n)&&a.emit("interact:listboxcapable")}},[t,r,o,i,a])}({enabled:s,interactionModes:p,markers:g,layers:d,eventBus:y}),function(e,t,r,o){(0,n.useEffect)(function(){var n,i=t&&(null==r?void 0:r.includes("selectFeature"))?o.map(function(e){return e.layerId}):[];return null===(n=e.setHoverCursor)||void 0===n||n.call(e,i),function(){var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,o])}(u,s,p,d),function(e){var t=e.crossHair,r=e.enabled,o=e.selectMarkerOnly,i=e.appState,a=(0,n.useRef)(r);a.current=r;var u=(0,n.useRef)(o);u.current=o;var l=(0,n.useRef)(t);l.current=t;var c=(0,n.useRef)(!1),s=(0,n.useCallback)(function(){var e="unknown"===Ie?(Ie="mouse","mouse"):Ie,t=["touch","keyboard"].includes(e);!a.current||c.current||!t||"touch"===e&&u.current?l.current.hide():l.current.fixAtCenter()},[]);(0,n.useEffect)(function(){s()},[r,o,s]),(0,n.useEffect)(function(){return e=s,Ce.add(e),function(){Ce.delete(e)};var e},[s]),(0,n.useEffect)(function(){var e,t=null===(e=i.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(t){var r=function(e){var t=!!e.target.closest('[role="listbox"], [role="option"]');c.current!==t&&(c.current=t,s())};return t.addEventListener("focusin",r),function(){t.removeEventListener("focusin",r)}}},[i.layoutRefs,s])}({crossHair:m,enabled:s,selectMarkerOnly:h,appState:t}),function(e){var t=e.pluginState,r=e.appState,i=e.mapState,a=e.buttonConfig,u=e.eventBus,l=e.handleInteraction,c=e.closeApp,s=(0,n.useRef)(l);s.current=l;var f=(0,n.useRef)(t);f.current=t;var p=(0,n.useRef)(r);p.current=r;var d=(0,n.useRef)(!1);(0,n.useEffect)(function(){d.current=!1;var e=setTimeout(function(){d.current=!0},0);return function(){return clearTimeout(e)}},[t.enabled]),(0,n.useEffect)(function(){if(t.enabled)return function(e){var t,r,n,o=e.getAppState,i=e.mapState,a=e.getPluginState,u=e.buttonConfig,l=e.events,c=e.eventBus,s=e.handleInteraction,f=e.clickReadyRef,p=e.closeApp,d=u.selectDone,y=u.selectAtTarget,v=u.selectCancel,m=function(){return s(i.crossHair.getDetail())},b=function(e){f.current&&s(e)},g=(t=o().layoutRefs.viewportRef,r=m,n=!1,{handleKeydown:function(e){n="Enter"===e.key&&t.current===e.target},handleKeyup:function(e){"Enter"===e.key&&n&&(e.preventDefault(),r())}}),h=g.handleKeydown,S=g.handleKeyup,E=function(e,t){return function(r,n){var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:Fe({multiSelect:o.multiSelect,addToExisting:n},r)})}}(i,a),P=function(e){return E(e,!0)},A=function(e){return E(e,!1)};return document.addEventListener("keydown",h),document.addEventListener("keyup",S),c.on(l.MAP_CLICK,b),c.on("interact:selectFeature",P),c.on("interact:unselectFeature",A),y.onClick=m,d.onClick=function(){var e,t=a(),r=(i.markers.getMarker("location")||{}).coords,n=t.selectionBounds,u=t.selectedFeatures,l=t.selectedMarkers;o().disabledButtons.has("selectDone")||(c.emit("interact:done",function(e,t,r,n){return Fe(Fe(Fe(Fe({},e&&{coords:e}),!e&&t&&{selectedFeatures:t}),!e&&(null==r?void 0:r.length)&&{selectedMarkers:r}),!e&&n&&{selectionBounds:n})}(r,u,l,n)),(null===(e=t.closeOnAction)||void 0===e||e)&&p())},v.onClick=function(){var e;c.emit("interact:cancel"),(null===(e=a().closeOnAction)||void 0===e||e)&&p()},function(){d.onClick=null,y.onClick=null,v.onClick=null,document.removeEventListener("keydown",h),document.removeEventListener("keyup",S),c.off(l.MAP_CLICK,b),c.off("interact:selectFeature",P),c.off("interact:unselectFeature",A)}}({getAppState:function(){return p.current},mapState:i,getPluginState:function(){return f.current},buttonConfig:a,events:o,eventBus:u,handleInteraction:function(e){return s.current(e)},clickReadyRef:d,closeApp:c})},[t.enabled,a,u,c])}({pluginState:l,appState:t,mapState:r,buttonConfig:a,eventBus:y,handleInteraction:S,closeApp:v}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,closeOnAction:!0,listboxActiveItem:null},actions:He},buttons:[{id:"selectCancel",label:"Back",variant:"tertiary",hiddenWhen:function(e){var t=e.appConfig,r=e.appState;return!e.pluginState.enabled||!(["hybrid","buttonFirst"].includes(t.behaviour)&&r.isFullscreen)},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState,r=e.pluginState;return!r.enabled||"touch"!==t.interfaceType||Re(r.interactionModes)},mobile:{slot:"actions"},tablet:{slot:"actions"},desktop:{slot:"actions"}},{id:"selectDone",label:"Continue",variant:"primary",excludeWhen:function(e){var t=e.appState;return!e.pluginState.enabled||!t.isFullscreen},enableWhen:function(e){var t=e.mapState,r=e.pluginState;return!!t.markers.items.some(function(e){return"location"===e.id})||!!r.selectionBounds},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}}],keyboardShortcuts:[{id:"clickAtTarget",title:"Click at target",command:"<kbd>Enter</kbd>"},{id:"selectFeatures",group:Xe,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:Xe,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:Xe,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:Xe,context:"listbox",title:"Dismiss hint / return to map",command:"<kbd>Escape</kbd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:function(e,t){var r=e.pluginState,n=e.pluginConfig;r.dispatch({type:"ENABLE",payload:qe(qe(qe({},Ke),n),t)})},disable:function(e){e.pluginState.dispatch({type:"DISABLE"})},clear:function(e){var t=e.pluginState,r=e.mapState;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})},selectMarker:function(e,t){var r=e.pluginState;r.dispatch({type:"SELECT_MARKER",payload:{markerId:t,multiSelect:r.multiSelect}})},unselectMarker:function(e,t){e.pluginState.dispatch({type:"UNSELECT_MARKER",payload:{markerId:t}})}}}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{559(e,t,r){r.r(t),r.d(t,{manifest:()=>Qe});var n=r(738),o={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!s(e[0])||!s(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function u(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const f=11102230246251565e-32,p=134217729,d=(3+8*f)*f;function y(e,t,r,n,o){let i,a,u,l,c=t[0],s=n[0],f=0,p=0;s>c==s>-c?(i=c,c=t[++f]):(i=s,s=n[++p]);let d=0;if(f<e&&p<r)for(s>c==s>-c?(a=c+i,u=i-(a-c),c=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[d++]=u);f<e&&p<r;)s>c==s>-c?(a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f]):(a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p]),i=a,0!==u&&(o[d++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[d++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[d++]=u);return 0===i&&0!==d||(o[d++]=i),d}function v(e){return new Float64Array(e)}const m=v(4),b=v(8),g=v(12),h=v(16),S=v(4);function E(e,t,r,n,o,i){const a=(t-i)*(r-o),u=(e-o)*(n-i),l=a-u,c=Math.abs(a+u);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let u,l,c,s,f,v,E,P,A,w,O,k,_,M,T,I,C,L;const j=e-o,F=r-o,D=t-i,R=n-i;M=j*R,v=p*j,E=v-(v-j),P=j-E,v=p*R,A=v-(v-R),w=R-A,T=P*w-(M-E*A-P*A-E*w),I=D*F,v=p*D,E=v-(v-D),P=D-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,m[0]=T-(O+f)+(f-C),k=M+O,f=k-M,_=M-(k-f)+(O-f),O=_-I,f=_-O,m[1]=_-(O+f)+(f-I),L=k+O,f=L-k,m[2]=k-(L-f)+(O-f),m[3]=L;let x=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,m),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(f=e-j,u=e-(j+f)+(f-o),f=r-F,c=r-(F+f)+(f-o),f=t-D,l=t-(D+f)+(f-i),f=n-R,s=n-(R+f)+(f-i),0===u&&0===l&&0===c&&0===s)return x;if(B=11093356479670487e-47*a+d*Math.abs(x),x+=j*s+R*u-(D*c+F*l),x>=B||-x>=B)return x;M=u*R,v=p*u,E=v-(v-u),P=u-E,v=p*R,A=v-(v-R),w=R-A,T=P*w-(M-E*A-P*A-E*w),I=l*F,v=p*l,E=v-(v-l),P=l-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),k=M+O,f=k-M,_=M-(k-f)+(O-f),O=_-I,f=_-O,S[1]=_-(O+f)+(f-I),L=k+O,f=L-k,S[2]=k-(L-f)+(O-f),S[3]=L;const N=y(4,m,4,S,b);M=j*s,v=p*j,E=v-(v-j),P=j-E,v=p*s,A=v-(v-s),w=s-A,T=P*w-(M-E*A-P*A-E*w),I=D*c,v=p*D,E=v-(v-D),P=D-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),k=M+O,f=k-M,_=M-(k-f)+(O-f),O=_-I,f=_-O,S[1]=_-(O+f)+(f-I),L=k+O,f=L-k,S[2]=k-(L-f)+(O-f),S[3]=L;const U=y(N,b,4,S,g);M=u*s,v=p*u,E=v-(v-u),P=u-E,v=p*s,A=v-(v-s),w=s-A,T=P*w-(M-E*A-P*A-E*w),I=l*c,v=p*l,E=v-(v-l),P=l-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),k=M+O,f=k-M,_=M-(k-f)+(O-f),O=_-I,f=_-O,S[1]=_-(O+f)+(f-I),L=k+O,f=L-k,S[2]=k-(L-f)+(O-f),S[3]=L;const G=y(U,g,4,S,h);return h[G-1]}(e,t,r,n,o,i,c)}function P(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],d=e[1],y=t.length;for(r=0;r<y;r++){n=0;var v=t[r],m=v.length-1;if((c=v[0])[0]!==v[m][0]&&c[1]!==v[m][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-p,a=c[1]-d;n<m;n++){if(u=(s=v[n+1])[0]-p,l=s[1]-d,0===a&&0===l){if(u<=0&&i>=0||i<=0&&u>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=E(i,u,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&f++}c=s,a=l,i=u}}return f%2!=0}function A(e){return"Feature"===e.type?e.geometry:e}function w(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=A(t),i=o.type,a=t.bbox;let u=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(u=[u]);let l=!1;for(var c=0;c<u.length;++c){const e=P(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(4),v(8),v(8),v(8),v(12),v(192),v(192),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(4),v(4),v(4),v(8),v(16),v(16),v(16),v(32),v(32),v(48),v(64),v(1152),v(1152),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(1152),v(1152),v(1152),v(1152),v(1152),v(2304),v(2304),v(3456),v(5760),v(8),v(8),v(8),v(16),v(24),v(48),v(48),v(96),v(192),v(384),v(384),v(384),v(768),v(96),v(96),v(96),v(1152);class O{constructor(e=[],t=k){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:r}=this,n=t[e];for(;e>0;){const o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}_down(e){const{data:t,compare:r}=this,n=this.length>>1,o=t[e];for(;e<n;){let n=1+(e<<1),i=t[n];const a=n+1;if(a<this.length&&r(t[a],i)<0&&(n=a,i=t[a]),r(i,o)>=0)break;t[e]=i,e=n}t[e]=o}}function k(e,t){return e<t?-1:e>t?1:0}function _(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function M(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class T{constructor(e,t,r,n){this.p={x:e[0],y:e[1]},this.featureId=t,this.ringId=r,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(e){return this.p.x===e.p.x&&this.p.y===e.p.y}}let I=0,C=0,L=0;function j(e,t){const r="Feature"===e.type?e.geometry:e;let n=r.coordinates;"Polygon"!==r.type&&"MultiLineString"!==r.type||(n=[n]),"LineString"===r.type&&(n=[[n]]);for(let e=0;e<n.length;e++)for(let r=0;r<n[e].length;r++){let o=n[e][r][0],i=null;C+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new T(o,I,C,L),l=new T(i,I,C,L+1);u.otherEvent=l,l.otherEvent=u,_(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,L+=1}}I+=1}class F{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function D(e,t){if(null===e||null===t)return!1;if(e.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.rightSweepEvent)||e.leftSweepEvent.isSamePoint(t.leftSweepEvent)||e.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const r=e.leftSweepEvent.p.x,n=e.leftSweepEvent.p.y,o=e.rightSweepEvent.p.x,i=e.rightSweepEvent.p.y,a=t.leftSweepEvent.p.x,u=t.leftSweepEvent.p.y,l=t.rightSweepEvent.p.x,c=t.rightSweepEvent.p.y,s=(c-u)*(o-r)-(l-a)*(i-n);if(0===s)return!1;const f=((l-a)*(n-u)-(c-u)*(r-a))/s,p=((o-r)*(n-u)-(i-n)*(r-a))/s;return f>=0&&f<=1&&p>=0&&p<=1&&[r+f*(o-r),n+f*(i-n)]}function R(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let u=[];"FeatureCollection"===e.type?u=u.concat(e.features):"Feature"===e.type?u.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||u.push(i(e)),"FeatureCollection"===t.type?u=u.concat(t.features):"Feature"===t.type?u.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||u.push(i(t));const c=function(e,t){const r=new O([],_);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)j(r[e],t)}else j(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new O([],M);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new F(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const u=D(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(l(u),o);let s=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,s.push(t))})}else s=c;return l(s.map(e=>a(e)))}function x(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,d="FeatureCollection"===e.type,y="Feature"===e.type,v=d?e.features.length:1;for(r=0;r<v;r++){for(u=d?e.features[r].geometry:y?e.geometry:e,c=d?e.features[r].properties:y?e.properties:{},s=d?e.features[r].bbox:y?e.bbox:void 0,f=d?e.features[r].id:y?e.id:void 0,a=(l=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,c,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,c,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,c,s,f))return!1;p++}}(e,function(e,r,n,o,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var s=e.coordinates[c];if(!1===t(i({type:u,coordinates:s},n),r,c))return!1}})}function B(e,t={}){const r=A(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return N(A(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=A(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(N(e,n))}),l(o)}(r,t);default:throw new Error("invalid poly")}}function N(e,t){return e.length>1?c(e,t):u(e[0],t)}function U(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(V(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function G(e,t,r){for(const r of t.coordinates)if(w(r,e))return!0;return R(t,B(e),{ignoreSelfIntersections:r}).features.length>0}function V(e,t,r){const n=r[0]-e[0],o=r[1]-e[1],i=t[0]-e[0],a=t[1]-e[1];return 0===n*a-o*i&&(Math.abs(i)>=Math.abs(a)?i>0?e[0]<=r[0]&&r[0]<=t[0]:t[0]<=r[0]&&r[0]<=e[0]:a>0?e[1]<=r[1]&&r[1]<=t[1]:t[1]<=r[1]&&r[1]<=e[1])}function H(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return K(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function W(e){var t=e.geometry||e;switch(t.type){case"Polygon":return function(e,t,r={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return i({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return u(t.coordinates);case"MultiLineString":return c(t.coordinates);case"Point":return a(t.coordinates);case"MultiPoint":return function(e,t,r={}){return i({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function Y(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return x(e,e=>{x(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!U(t,e);case"Polygon":return!w(e,t)}break;case"LineString":switch(t.type){case"Point":return!U(e,t);case"LineString":return!function(e,t,r){return R(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!G(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!w(t,e);case"LineString":return!G(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(w(r,t))return!0;for(const r of t.coordinates[0])if(w(r,e))return!0;return R(B(e),B(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(W(t),W(e))})}function q(e){if(e.length<2)return!1;if(e.some(function(e){var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=H(t).map(function(t){return e[t]});Y(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var X,$,J=function(e){var t,r={},n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return z(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;r[o.layerId]=o}}catch(e){n.e(e)}finally{n.f()}return r},Z=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},Q=function(e){var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r},ee=(r(287),/mac/i.test(null!==(X=null===($=navigator.userAgentData)||void 0===$?void 0:$.platform)&&void 0!==X?X:navigator.platform)?"<kbd>Option</kbd>":"<kbd>Alt</kbd>");"".concat(ee," + <kbd>Enter</kbd>"),"".concat(ee," + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>");new Set,new Set;function te(e){return te="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},te(e)}function re(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 ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach(function(t){oe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function oe(e,t,r){return(t=function(e){var t=function(e){if("object"!=te(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=te(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==te(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ie={slot:"middle",open:!1,dismissible:!0,modal:!0},ae=(ne({},ie),ne(ne({},ie),{},{width:"500px"}),ne(ne({},ie),{},{width:"500px"}),{small:1,medium:1.5,large:2}),ue=(new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),function(e){return!(!e.label||e.symbol||e.symbolSvgContent||null!==e.symbol&&null!==e.symbolSvgContent)});function le(e){return le="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},le(e)}function ce(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 se(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(r),!0).forEach(function(t){fe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function fe(e,t,r){return(t=function(e){var t=function(e){if("object"!=le(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==le(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pe(e){return function(e){if(Array.isArray(e))return ye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||de(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(e,t){if(e){if("string"==typeof e)return ye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ye(e,t):void 0}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var ve=function(e,t,r,n){return{featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}},me=function(e){var t=e.mapProvider,r=e.layers,o=e.interactionModes,i=e.multiSelect,a=e.dispatch,u=e.markers,l=e.layerConfigMap,c=e.debug,s=e.tolerance,f=e.processFeatureMatch,p=e.processFallback,d=e.scale;return(0,n.useCallback)(function(e){var n=e.point,y=e.coords,v=c?Z(t,n,{radius:s}):null;if(v&&console.log("--- Features at ".concat(y," ---"),v),o.includes("selectMarker")){var m=function(e,t,r){var n,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=de(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},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(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e.items);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=null===(i=e.markerRefs)||void 0===i?void 0:i.get(a.id);if(u&&!ue(a)){var l=u.closest(".im-c-viewport__markers")||u.parentElement,c=l?l.getBoundingClientRect():{left:0,top:0},s=u.getBoundingClientRect(),f=s.left,p=s.top,d=s.right,y=s.bottom,v=t.x*r,m=t.y*r;if(v>=f-c.left&&v<=d-c.left&&m>=p-c.top&&m<=y-c.top)return a.id}}}catch(e){o.e(e)}finally{o.f()}return null}(u,n,d);if(m)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:m,multiSelect:i}})}if(o.includes("selectFeature")&&r.length>0){var b=function(e,t){var r=e.filter(function(e){var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(Q);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null}(null!=v?v:Z(t,n,{radius:s}),l);if(b)return void f(b)}p({coords:y})},[t,r,o,i,a,u,l,c,s,f,p,d])},be=function(e){var t,r=e.mapState,o=e.pluginState,i=e.services,a=e.mapProvider,u=r.markers,l=r.mapSize,c=o.dispatch,s=o.layers,f=o.interactionModes,p=o.multiSelect,d=o.contiguous,y=o.marker,v=o.tolerance,m=o.selectedFeatures,b=o.selectedMarkers,g=o.selectionBounds,h=o.deselectOnClickOutside,S=i.eventBus,E=J(s),P=null!==(t=ae[l])&&void 0!==t?t:1,A=(0,n.useCallback)(function(e){var t,r,n,o=e.feature,i=e.config;u.remove("location");var l=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=l){var s=null===(n=a.getFeatureGeometry)||void 0===n?void 0:n.call(a,i.layerId,l,i.idProperty),f=s?se(se({},o),{},{geometry:s}):o;if(d&&p&&function(e){var t,r=e.featureId,n=e.feature,o=e.config,i=e.selectedFeatures,a=e.dispatch,u=e.multiSelect;if(!i.length)return!1;var l=i.findIndex(function(e){return e.featureId===r&&e.layerId===o.layerId});if(-1!==l){if(i.length<3)return!1;var c=function(e){for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++){var o;if(!t.has(n)){var i=pe(t).map(function(t){return e[t]});null!==(o=e[n].geometry)&&void 0!==o&&o.type&&Y(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:pe(t).map(function(t){return e[t]})}(i.filter(function(e,t){return t!==l}));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var s=i.filter(function(e){var t;return null===(t=e.geometry)||void 0===t?void 0:t.type});return!(null===(t=n.geometry)||void 0===t||!t.type||!s.length||Y(n,s)||(a({type:"TOGGLE_SELECTED_FEATURES",payload:se(se({},ve(r,u,o,n)),{},{replaceAll:!0})}),0))}({featureId:l,feature:f,config:i,selectedFeatures:m,dispatch:c,multiSelect:p}))return;c({type:"TOGGLE_SELECTED_FEATURES",payload:ve(l,p,i,f)})}},[u,c,p,d,m,a]),w=(0,n.useCallback)(function(e){var t=e.coords,r=f.includes("placeMarker");(r||h)&&(c({type:"CLEAR_SELECTED_FEATURES"}),r&&(u.add("location",t,y),S.emit("interact:markerchange",{coords:t})))},[f,c,u,y,S,h]),O=me({mapProvider:a,layers:s,interactionModes:f,multiSelect:p,dispatch:c,markers:u,layerConfigMap:E,debug:null==o?void 0:o.debug,tolerance:v,processFeatureMatch:A,processFallback:w,scale:P});return function(e,t,r,o){var i=(0,n.useRef)(null);(0,n.useEffect)(function(){if(!(t.length>0)||o){var n=i.current;(null===n||0===n.features.length&&0===n.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t,selectedMarkers:r,selectionBounds:o,contiguous:q(t)}),i.current={features:t,markers:r})}},[t,r,o])}(S,m,b,g),{handleInteraction:O}};function ge(e){return ge="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},ge(e)}function he(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 Se(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?he(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):he(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ee(e,t,r){return(t=function(e){var t=function(e){if("object"!=ge(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ge(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ge(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pe(e){return function(e){if(Array.isArray(e))return Oe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||we(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=we(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function we(e,t){if(e){if("string"==typeof e)return Oe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Oe(e,t):void 0}}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var ke=function(e,t){var r,n;return t?null!==(r=null===(n=e.properties)||void 0===n?void 0:n[t.idProperty])&&void 0!==r?r:e.id:null},_e=function(e){var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),o=n.left,i=n.right,a=n.top,u=n.bottom;return i>r.left&&o<r.right&&u>r.top&&a<r.bottom},Me=function(e,t,r){var n,o,i,a=t[null===(n=e.layer)||void 0===n?void 0:n.id];if(null==a||!a.labelProperty)return null;var u=ke(e,a),l=null==u?null:String(u);return null==l||r.has(l)?null:(r.add(l),{id:l,label:null!==(o=null===(i=e.properties)||void 0===i?void 0:i[a.labelProperty])&&void 0!==o?o:l})};function Te(e){var t=e.mapState,r=e.pluginState,i=e.services,a=e.mapProvider,u=t.markers,l=r.dispatch,c=r.interactionModes,s=r.layers,f=r.multiSelect,p=i.eventBus,d=(0,n.useRef)(null);(function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.multiSelect,l=e.eventBus;(0,n.useEffect)(function(){var e=function(){var e=[];null!=r&&r.includes("selectMarker")&&e.push.apply(e,Pe(function(e){var t,r=[],n=Ae(e.items);try{for(n.s();!(t=n.n()).done;){var o,i=t.value;if(i.label){var a=null===(o=e.markerRefs)||void 0===o?void 0:o.get(i.id);!ue(i)&&a&&_e(a)&&r.push({id:i.id,label:i.label})}}}catch(e){n.e(e)}finally{n.f()}return r}(t))),null!=r&&r.includes("selectFeature")&&i.length>0&&e.push.apply(e,Pe(function(e,t){var r,n=[],o=new Set,i=t.map(function(e){return e.layerId}),a=J(t),u=Ae(e.getVisibleFeatures(i));try{for(u.s();!(r=u.n()).done;){var l=r.value,c=Me(l,a,o);c&&n.push(c)}}catch(e){u.e(e)}finally{u.f()}return n}(a,i))),l.emit(o.MAP_SET_FEATURES,{items:e,multiselectable:u})};return e(),l.on(o.MAP_MOVE_END,e),l.on(o.MAP_DATA_CHANGE,e),function(){l.off(o.MAP_MOVE_END,e),l.off(o.MAP_DATA_CHANGE,e)}},[t,r,i,a,u,l])})({markers:u,interactionModes:c,layers:s,mapProvider:a,multiSelect:f,eventBus:p}),function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.eventBus,l=e.dispatch,c=e.listboxActiveItemRef;(0,n.useEffect)(function(){var e=function(e){var n=e.id;if(null===n)return c.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.find(function(e){return e.id===n}))return c.current={id:n,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&i.length>0){var o=i.map(function(e){return e.layerId}),u=J(i),s=function(e,t,r){var n,o=Ae(e);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=t[null===(i=a.layer)||void 0===i?void 0:i.id],l=ke(a,u);if(null!=l&&String(l)===String(r))return{feature:a,config:u,rawId:l}}}catch(e){o.e(e)}finally{o.f()}return null}(a.getVisibleFeatures(o),u,n);if(s){var f={featureId:s.rawId,layerId:s.config.layerId,idProperty:s.config.idProperty,geometry:s.feature.geometry};c.current=Se(Se({id:n,isMarker:!1},f),{},{properties:s.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:f})}}};return u.on(o.MAP_SET_ACTIVE_FEATURE,e),function(){u.off(o.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,i,a,u,l,c])}({markers:u,interactionModes:c,layers:s,mapProvider:a,eventBus:p,dispatch:l,listboxActiveItemRef:d}),function(e){var t=e.eventBus,r=e.dispatch,i=e.listboxActiveItemRef,a=e.multiSelect;(0,n.useEffect)(function(){var e=function(){var e=i.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:a}});else{var t=e.featureId,n=e.layerId,o=e.idProperty,u=e.geometry,l=e.properties;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:n,idProperty:o,geometry:u,properties:l,multiSelect:a,replaceAll:!a}})}};return t.on(o.MAP_SELECT_FEATURE,e),function(){t.off(o.MAP_SELECT_FEATURE,e)}},[t,r,i,a])}({eventBus:p,dispatch:l,listboxActiveItemRef:d,multiSelect:f})}function Ie(e){return Ie="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},Ie(e)}var Ce=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===Ie(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},Le={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},je=window.matchMedia("(pointer: coarse)").matches?"touch":"unknown",Fe=(new Set,new Set);function De(e){return De="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},De(e)}function Re(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 xe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Re(Object(r),!0).forEach(function(t){Be(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Be(e,t,r){return(t=function(e){var t=function(e){if("object"!=De(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=De(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==De(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ne=function(e){return 1===(null==e?void 0:e.length)&&e.includes("selectMarker")};function Ue(e){return Ue="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},Ue(e)}function Ge(e){return function(e){if(Array.isArray(e))return Ve(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ve(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ve(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function He(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 Ke(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?He(Object(r),!0).forEach(function(t){We(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):He(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function We(e,t,r){return(t=function(e){var t=function(e){if("object"!=Ue(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ue(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ue(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ye={ENABLE:function(e,t){return Ke(Ke(Ke({},e),t),{},{enabled:!0})},DISABLE:function(e){return Ke(Ke({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,listboxActiveItem:null})},TOGGLE_SELECTED_FEATURES:function(e,t){var r=t.featureId,n=t.multiSelect,o=t.layerId,i=t.idProperty,a=t.addToExisting,u=void 0===a||a,l=t.replaceAll,c=void 0!==l&&l,s=t.properties,f=t.geometry,p=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],d=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var y=p.filter(function(e,t){return t!==d});return Ke(Ke({},e),{},{selectedFeatures:y,selectionBounds:null})}var v,m={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=Ge(p);-1===d?b.push(m):b.splice(d,1),v=b}else v=-1!==d&&1===p.length?[]:[m];return Ke(Ke({},e),{},{selectedFeatures:v,selectedMarkers:n&&!c?e.selectedMarkers:[],selectionBounds:null})},TOGGLE_SELECTED_MARKERS:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(function(e){return e!==r}):[].concat(Ge(o),[r]);return Ke(Ke({},e),{},{selectedMarkers:a})}return Ke(Ke({},e),{},{selectedFeatures:[],selectionBounds:null,selectedMarkers:i&&1===o.length?[]:[r]})},UPDATE_SELECTED_BOUNDS:function(e,t){return JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:Ke(Ke({},e),{},{selectionBounds:t})},CLEAR_SELECTED_FEATURES:function(e){return Ke(Ke({},e),{},{selectedFeatures:[],selectedMarkers:[],selectionBounds:null})},SET_SELECTED_FEATURES:function(e,t){return Ke(Ke({},e),{},{selectedFeatures:t,selectionBounds:null})},SELECT_MARKER:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[].concat(Ge(o),[r]):[r];return Ke(Ke({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectionBounds:null,selectedMarkers:i})},UNSELECT_MARKER:function(e,t){var r=t.markerId,n=e.selectedMarkers;return n.includes(r)?Ke(Ke({},e),{},{selectedMarkers:n.filter(function(e){return e!==r})}):e},SET_LISTBOX_ACTIVE:function(e,t){return Ke(Ke({},e),{},{listboxActiveItem:null!=t?t:null})}},qe={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};function ze(e){return ze="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},ze(e)}function Xe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function $e(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xe(Object(r),!0).forEach(function(t){Je(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Je(e,t,r){return(t=function(e){var t=function(e){if("object"!=ze(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ze(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ze="Select features",Qe={InitComponent:function(e){var t=e.appState,r=e.mapState,i=e.services,a=e.buttonConfig,u=e.mapProvider,l=e.pluginState,c=l.dispatch,s=l.enabled,f=l.selectedFeatures,p=l.interactionModes,d=l.layers,y=i.eventBus,v=i.closeApp,m=r.crossHair,b=r.mapStyle,g=r.markers,h=Ne(p);Te({mapState:r,pluginState:l,services:i,mapProvider:u});var S=be({appState:t,mapState:r,pluginState:l,services:i,mapProvider:u}).handleInteraction;return function(e){var t=e.mapProvider,r=e.mapStyle,o=e.pluginState,i=e.selectedFeatures,a=e.dispatch,u=e.events,l=e.eventBus,c=o.layers,s=o.listboxActiveItem,f=(0,n.useMemo)(function(){return r?function(e,t){var r,n,o,i={};if(!t)return i;var a=null!==(r=Le[t.mapColorScheme])&&void 0!==r?r:Le.light,u=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,l=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(function(e){var r=e.activeStroke||u,n=e.selectedStroke||l,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:Ce(r,t.id),selectionStroke:Ce(n,t.id),fill:Ce(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i}(c,r):null},[c,r]),p=function(){var e,r=s?[{featureId:s.featureId,layerId:s.layerId,idProperty:s.idProperty,geometry:s.geometry}]:[],n=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,i,r,f);a({type:"UPDATE_SELECTED_BOUNDS",payload:n})};(0,n.useEffect)(function(){if(t&&f){p();var e=function(){l.once(u.MAP_DATA_CHANGE,p)};return l.on(u.MAP_STYLE_CHANGE,e),function(){l.off(u.MAP_STYLE_CHANGE,e)}}},[i,s,t,f,l])}({mapProvider:u,mapStyle:b,pluginState:l,selectedFeatures:f,dispatch:c,events:o,eventBus:y}),(0,n.useEffect)(function(){y.emit("interact:active",{active:s,interactionModes:p})},[s,p]),function(e){var t=e.enabled,r=e.interactionModes,o=e.markers,i=e.layers,a=e.eventBus;(0,n.useEffect)(function(){if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&o.items.some(function(e){return e.label}),n=(null==r?void 0:r.includes("selectFeature"))&&i.some(function(e){return e.labelProperty});(e||n)&&a.emit("interact:listboxcapable")}},[t,r,o,i,a])}({enabled:s,interactionModes:p,markers:g,layers:d,eventBus:y}),function(e,t,r,o){(0,n.useEffect)(function(){var n,i=t&&(null==r?void 0:r.includes("selectFeature"))?o.map(function(e){return e.layerId}):[];return null===(n=e.setHoverCursor)||void 0===n||n.call(e,i),function(){var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,o])}(u,s,p,d),function(e){var t=e.crossHair,r=e.enabled,o=e.selectMarkerOnly,i=e.appState,a=(0,n.useRef)(r);a.current=r;var u=(0,n.useRef)(o);u.current=o;var l=(0,n.useRef)(t);l.current=t;var c=(0,n.useRef)(!1),s=(0,n.useCallback)(function(){var e="unknown"===je?(je="mouse","mouse"):je,t=["touch","keyboard"].includes(e);!a.current||c.current||!t||"touch"===e&&u.current?l.current.hide():l.current.fixAtCenter()},[]);(0,n.useEffect)(function(){s()},[r,o,s]),(0,n.useEffect)(function(){return e=s,Fe.add(e),function(){Fe.delete(e)};var e},[s]),(0,n.useEffect)(function(){var e,t=null===(e=i.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(t){var r=function(e){var t=!!e.target.closest('[role="listbox"], [role="option"]');c.current!==t&&(c.current=t,s())};return t.addEventListener("focusin",r),function(){t.removeEventListener("focusin",r)}}},[i.layoutRefs,s])}({crossHair:m,enabled:s,selectMarkerOnly:h,appState:t}),function(e){var t=e.pluginState,r=e.appState,i=e.mapState,a=e.buttonConfig,u=e.eventBus,l=e.handleInteraction,c=e.closeApp,s=(0,n.useRef)(l);s.current=l;var f=(0,n.useRef)(t);f.current=t;var p=(0,n.useRef)(r);p.current=r;var d=(0,n.useRef)(!1);(0,n.useEffect)(function(){d.current=!1;var e=setTimeout(function(){d.current=!0},0);return function(){return clearTimeout(e)}},[t.enabled]),(0,n.useEffect)(function(){if(t.enabled)return function(e){var t,r,n,o=e.getAppState,i=e.mapState,a=e.getPluginState,u=e.buttonConfig,l=e.events,c=e.eventBus,s=e.handleInteraction,f=e.clickReadyRef,p=e.closeApp,d=u.selectDone,y=u.selectAtTarget,v=u.selectCancel,m=function(){return s(i.crossHair.getDetail())},b=function(e){f.current&&s(e)},g=(t=o().layoutRefs.viewportRef,r=m,n=!1,{handleKeydown:function(e){n="Enter"===e.key&&t.current===e.target},handleKeyup:function(e){"Enter"===e.key&&n&&(e.preventDefault(),r())}}),h=g.handleKeydown,S=g.handleKeyup,E=function(e,t){return function(r,n){var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:xe({multiSelect:o.multiSelect,addToExisting:n},r)})}}(i,a),P=function(e){return E(e,!0)},A=function(e){return E(e,!1)};return document.addEventListener("keydown",h),document.addEventListener("keyup",S),c.on(l.MAP_CLICK,b),c.on("interact:selectFeature",P),c.on("interact:unselectFeature",A),y.onClick=m,d.onClick=function(){var e,t=a(),r=(i.markers.getMarker("location")||{}).coords,n=t.selectionBounds,u=t.selectedFeatures,l=t.selectedMarkers;o().disabledButtons.has("selectDone")||(c.emit("interact:done",function(e,t,r,n){return xe(xe(xe(xe({},e&&{coords:e}),!e&&t&&{selectedFeatures:t}),!e&&(null==r?void 0:r.length)&&{selectedMarkers:r}),!e&&n&&{selectionBounds:n})}(r,u,l,n)),(null===(e=t.closeOnAction)||void 0===e||e)&&p())},v.onClick=function(){var e;c.emit("interact:cancel"),(null===(e=a().closeOnAction)||void 0===e||e)&&p()},function(){d.onClick=null,y.onClick=null,v.onClick=null,document.removeEventListener("keydown",h),document.removeEventListener("keyup",S),c.off(l.MAP_CLICK,b),c.off("interact:selectFeature",P),c.off("interact:unselectFeature",A)}}({getAppState:function(){return p.current},mapState:i,getPluginState:function(){return f.current},buttonConfig:a,events:o,eventBus:u,handleInteraction:function(e){return s.current(e)},clickReadyRef:d,closeApp:c})},[t.enabled,a,u,c])}({pluginState:l,appState:t,mapState:r,buttonConfig:a,eventBus:y,handleInteraction:S,closeApp:v}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,closeOnAction:!0,listboxActiveItem:null},actions:Ye},buttons:[{id:"selectCancel",label:"Back",variant:"tertiary",hiddenWhen:function(e){var t=e.appConfig,r=e.appState;return!e.pluginState.enabled||!(["hybrid","buttonFirst"].includes(t.behaviour)&&r.isFullscreen)},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState,r=e.pluginState;return!r.enabled||"touch"!==t.interfaceType||Ne(r.interactionModes)},mobile:{slot:"actions"},tablet:{slot:"actions"},desktop:{slot:"actions"}},{id:"selectDone",label:"Continue",variant:"primary",excludeWhen:function(e){var t=e.appState;return!e.pluginState.enabled||!t.isFullscreen},enableWhen:function(e){var t=e.mapState,r=e.pluginState;return!!t.markers.items.some(function(e){return"location"===e.id})||!!r.selectionBounds},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}}],keyboardShortcuts:[{id:"clickAtTarget",title:"Click at target",command:"<kbd>Enter</kbd>"},{id:"selectFeatures",group:Ze,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:Ze,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:Ze,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:Ze,context:"listbox",title:"Dismiss hint / return to map",command:"<kbd>Escape</kbd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:function(e,t){var r=e.pluginState,n=e.pluginConfig;r.dispatch({type:"ENABLE",payload:$e($e($e({},qe),n),t)})},disable:function(e){e.pluginState.dispatch({type:"DISABLE"})},clear:function(e){var t=e.pluginState,r=e.mapState;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})},selectMarker:function(e,t){var r=e.pluginState;r.dispatch({type:"SELECT_MARKER",payload:{markerId:t,multiSelect:r.multiSelect}})},unselectMarker:function(e,t){e.pluginState.dispatch({type:"UNSELECT_MARKER",payload:{markerId:t}})}}}}}]);
@@ -23,7 +23,7 @@ const setup = ({ mainEl = document.createElement('div') } = {}) => {
23
23
  return () => {}
24
24
  })
25
25
  }
26
- useConfig.mockReturnValue({ id: 'test-map', keyboardHintText: '<kbd>Alt</kbd> + <kbd>K</kbd>' })
26
+ useConfig.mockReturnValue({ id: 'test-map', keyboardHintText: '<kbd>Shift</kbd> + <kbd>?</kbd>' })
27
27
  useService.mockReturnValue({ hints: mockHints })
28
28
  useApp.mockReturnValue({ layoutRefs: { mainRef: { current: mainEl } } })
29
29
  if (mainEl) document.body.appendChild(mainEl)
@@ -49,7 +49,7 @@ describe('Hints — rendering', () => {
49
49
  render(<Hints />)
50
50
  const desc = mainEl.querySelector('#test-map-keyboard-desc')
51
51
  expect(desc).toBeTruthy()
52
- expect(desc.innerHTML).toBe('<kbd>Alt</kbd> + <kbd>K</kbd>')
52
+ expect(desc.innerHTML).toBe('<kbd>Shift</kbd> + <kbd>?</kbd>')
53
53
  })
54
54
 
55
55
  it('renders no hint content when there is no active hint', () => {
@@ -12,6 +12,12 @@
12
12
  $type: button
13
13
  );
14
14
 
15
+ // The container holds DOM focus for aria-activedescendant, but the visual
16
+ // focus indicator lives on the --selected item, so suppress the ring here.
17
+ &[data-focus-visible="true"]::after {
18
+ opacity: 0;
19
+ }
20
+
15
21
  background-color: var(--background-color);
16
22
  position: fixed;
17
23
  z-index: 9999;
@@ -11,8 +11,7 @@ export const keyboardMappings = {
11
11
  },
12
12
 
13
13
  keyup: {
14
- 'Alt+k': 'showKeyboardControls',
15
- 'Alt+K': 'showKeyboardControls',
14
+ '?': 'showKeyboardControls',
16
15
  'Alt+ArrowRight': 'highlightNextLabel',
17
16
  'Alt+ArrowLeft': 'highlightNextLabel',
18
17
  'Alt+ArrowUp': 'highlightNextLabel',
@@ -1,10 +1,12 @@
1
1
  // src/controls/keyboardShortcuts.js
2
+ const isMac = /mac/i.test(navigator.userAgentData?.platform ?? navigator.platform)
3
+ const altKeyHtml = isMac ? '<kbd>Option</kbd>' : '<kbd>Alt</kbd>'
2
4
 
3
5
  export const coreShortcuts = [
4
6
  {
5
7
  id: 'showKeyboardHelp',
6
8
  title: 'Show keyboard help',
7
- command: '<kbd>Alt</kbd> + <kbd>K</kbd>',
9
+ command: '<kbd>Shift</kbd> + <kbd>?</kbd>',
8
10
  context: 'global',
9
11
  enabled: true
10
12
  },
@@ -35,14 +37,14 @@ export const coreShortcuts = [
35
37
  {
36
38
  id: 'highlightLabelAtCenter',
37
39
  title: 'Highlight label at centre',
38
- command: '<kbd>Alt</kbd> + <kbd>Enter</kbd>',
40
+ command: `${altKeyHtml} + <kbd>Enter</kbd>`,
39
41
  enabled: false,
40
42
  requiredConfig: ['readMapText']
41
43
  },
42
44
  {
43
45
  id: 'highlightNextLabel',
44
46
  title: 'Highlight nearby label',
45
- command: '<kbd>Alt</kbd> + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>',
47
+ command: `${altKeyHtml} + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>`,
46
48
  enabled: false,
47
49
  requiredConfig: ['readMapText']
48
50
  }
@@ -0,0 +1,24 @@
1
+ describe('keyboardShortcuts', () => {
2
+ beforeEach(() => jest.resetModules())
3
+
4
+ const load = () => require('./keyboardShortcuts.js').coreShortcuts
5
+
6
+ const altShortcuts = (shortcuts) =>
7
+ shortcuts.filter(s => s.command?.includes('Alt') || s.command?.includes('Option'))
8
+
9
+ it('uses Option key label on Mac', () => {
10
+ Object.defineProperty(navigator, 'platform', { value: 'MacIntel', configurable: true })
11
+ const shortcuts = load()
12
+ altShortcuts(shortcuts).forEach(s => {
13
+ expect(s.command).toContain('<kbd>Option</kbd>')
14
+ })
15
+ })
16
+
17
+ it('uses Alt key label on non-Mac', () => {
18
+ Object.defineProperty(navigator, 'platform', { value: 'Win32', configurable: true })
19
+ const shortcuts = load()
20
+ altShortcuts(shortcuts).forEach(s => {
21
+ expect(s.command).toContain('<kbd>Alt</kbd>')
22
+ })
23
+ })
24
+ })
@@ -1,5 +1,6 @@
1
1
  import { renderError } from './renderError.js'
2
2
  import { removeLoadingState } from './domStateManager.js'
3
+ import { logger } from '../services/logger.js'
3
4
 
4
5
  /**
5
6
  * Checks if the current device is supported by the map provider.
@@ -18,14 +19,14 @@ export function checkDeviceSupport (rootEl, config) {
18
19
  const device = mapProvider?.checkDeviceCapabilities()
19
20
 
20
21
  if (!mapProvider) {
21
- console.log('No map provider')
22
+ logger.warn('No map provider')
22
23
  return false
23
24
  }
24
25
 
25
26
  if (!device?.isSupported) {
26
27
  renderError(rootEl, deviceNotSupportedText)
27
28
  removeLoadingState()
28
- console.log(device?.error)
29
+ logger.warn(device?.error)
29
30
  return false
30
31
  }
31
32
  return true
@@ -1,23 +1,20 @@
1
1
  import { checkDeviceSupport } from './deviceChecker.js'
2
2
  import { renderError } from './renderError.js'
3
3
  import { removeLoadingState } from './domStateManager.js'
4
+ import { logger } from '../services/logger.js'
4
5
 
5
6
  jest.mock('./renderError.js')
6
7
  jest.mock('./domStateManager.js')
8
+ jest.mock('../services/logger.js', () => ({ logger: { warn: jest.fn() } }))
7
9
 
8
10
  describe('checkDeviceSupport', () => {
9
- let rootEl, config, consoleLogSpy
11
+ let rootEl, config
10
12
 
11
13
  beforeEach(() => {
12
14
  rootEl = document.createElement('div')
13
- consoleLogSpy = jest.spyOn(console, 'log').mockImplementation()
14
15
  jest.clearAllMocks()
15
16
  })
16
17
 
17
- afterEach(() => {
18
- consoleLogSpy.mockRestore()
19
- })
20
-
21
18
  it('returns true when device is supported', () => {
22
19
  config = {
23
20
  mapProvider: {
@@ -29,7 +26,7 @@ describe('checkDeviceSupport', () => {
29
26
  expect(checkDeviceSupport(rootEl, config)).toBe(true)
30
27
  expect(renderError).not.toHaveBeenCalled()
31
28
  expect(removeLoadingState).not.toHaveBeenCalled()
32
- expect(console.log).not.toHaveBeenCalled()
29
+ expect(logger.warn).not.toHaveBeenCalled()
33
30
  })
34
31
 
35
32
  it('returns false and shows error when device is not supported', () => {
@@ -46,7 +43,7 @@ describe('checkDeviceSupport', () => {
46
43
  expect(checkDeviceSupport(rootEl, config)).toBe(false)
47
44
  expect(renderError).toHaveBeenCalledWith(rootEl, 'Device not supported')
48
45
  expect(removeLoadingState).toHaveBeenCalled()
49
- expect(console.log).toHaveBeenCalledWith('WebGL not available')
46
+ expect(logger.warn).toHaveBeenCalledWith('WebGL not available')
50
47
  })
51
48
 
52
49
  it('logs "No map provider" and returns false if mapProvider is missing', () => {
@@ -56,7 +53,7 @@ describe('checkDeviceSupport', () => {
56
53
  }
57
54
 
58
55
  expect(checkDeviceSupport(rootEl, config)).toBe(false)
59
- expect(console.log).toHaveBeenCalledWith('No map provider')
56
+ expect(logger.warn).toHaveBeenCalledWith('No map provider')
60
57
  expect(renderError).not.toHaveBeenCalled()
61
58
  expect(removeLoadingState).not.toHaveBeenCalled()
62
59
  })
@@ -72,6 +69,6 @@ describe('checkDeviceSupport', () => {
72
69
  expect(checkDeviceSupport(rootEl, config)).toBe(false)
73
70
  expect(renderError).toHaveBeenCalledWith(rootEl, 'Device not supported')
74
71
  expect(removeLoadingState).toHaveBeenCalled()
75
- expect(console.log).toHaveBeenCalledWith(undefined)
72
+ expect(logger.warn).toHaveBeenCalledWith(undefined)
76
73
  })
77
74
  })
@@ -20,7 +20,7 @@ const defaults = {
20
20
  genericErrorText: 'There was a problem loading the map. Please try again later.',
21
21
  hasExitButton: false,
22
22
  hybridWidth: null, // Defaults to maxMobileWidth if not set
23
- keyboardHintText: '<span class="im-u-visually-hidden">Press </span><kbd>Alt</kbd> + <kbd>K</kbd> <span class="im-u-visually-hidden">to view </span>keyboard shortcuts',
23
+ keyboardHintText: '<span class="im-u-visually-hidden">Press </span><kbd>Shift</kbd> + <kbd>?</kbd> <span class="im-u-visually-hidden">to view </span>keyboard shortcuts',
24
24
  mapLabel: 'Interactive map application',
25
25
  mapProvider: null,
26
26
  mapSize: 'small',
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Strips HTML tags from a string and returns plain text.
3
+ * Collapses runs of two or more whitespace characters into a single space,
4
+ * while preserving intentional single spaces between words.
5
+ * @param {string} htmlString - A string containing HTML markup.
6
+ * @returns {string} The extracted text content with normalised whitespace.
7
+ */
8
+ export const htmlToPlainText = (htmlString) => {
9
+ const doc = new DOMParser().parseFromString(htmlString, 'text/html')
10
+ return doc.body.textContent.replace(/\s{2,}/g, ' ').trim()
11
+ }
@@ -0,0 +1,5 @@
1
+ import { htmlToPlainText } from './htmlToPlainText'
2
+
3
+ it('strips HTML and normalises whitespace', () => {
4
+ expect(htmlToPlainText('<p> Hello <strong>world</strong> </p>')).toBe('Hello world')
5
+ })