@defra/interactive-map 0.0.6-alpha → 0.0.8-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/assets/templates/map.njk +2 -2
  2. package/dist/css/index.css +1 -1
  3. package/dist/esm/index.js +1 -1
  4. package/dist/umd/im-core.js +1 -1
  5. package/docs/api.md +10 -5
  6. package/package.json +56 -4
  7. package/plugins/beta/datasets/dist/esm/index.js +1 -1
  8. package/plugins/beta/draw-es/dist/esm/index.js +2 -0
  9. package/plugins/beta/draw-ml/dist/css/index.css +1 -1
  10. package/plugins/beta/draw-ml/dist/esm/index.js +1 -1
  11. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  12. package/plugins/beta/draw-ml/src/DrawInit.jsx +15 -0
  13. package/plugins/beta/draw-ml/src/api/deleteFeature.js +4 -4
  14. package/plugins/beta/draw-ml/src/api/editFeature.js +10 -5
  15. package/plugins/beta/draw-ml/src/draw.scss +1 -0
  16. package/plugins/beta/draw-ml/src/events.js +2 -0
  17. package/plugins/beta/draw-ml/src/manifest.js +18 -43
  18. package/plugins/beta/draw-ml/src/modes/createDrawMode.js +35 -1
  19. package/plugins/beta/draw-ml/src/modes/editVertexMode.js +17 -1
  20. package/plugins/beta/frame/dist/esm/index.js +1 -1
  21. package/plugins/beta/map-styles/dist/esm/index.js +1 -1
  22. package/plugins/beta/scale-bar/dist/esm/index.js +1 -1
  23. package/plugins/beta/use-location/dist/esm/index.js +1 -1
  24. package/plugins/interact/dist/css/index.css +1 -1
  25. package/plugins/interact/dist/esm/index.js +1 -1
  26. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  27. package/plugins/interact/src/defaults.js +1 -0
  28. package/plugins/interact/src/events.js +6 -1
  29. package/plugins/interact/src/events.test.js +19 -5
  30. package/plugins/interact/src/hooks/useInteractionHandlers.js +7 -2
  31. package/plugins/interact/src/hooks/useInteractionHandlers.test.js +28 -0
  32. package/plugins/interact/src/interact.scss +1 -0
  33. package/plugins/interact/src/manifest.js +22 -16
  34. package/plugins/interact/src/manifest.test.js +1 -1
  35. package/plugins/interact/src/reducer.js +1 -0
  36. package/plugins/interact/src/reducer.test.js +1 -0
  37. package/plugins/search/dist/esm/index.js +1 -1
  38. package/providers/beta/esri/dist/css/index.css +1 -0
  39. package/providers/beta/esri/dist/esm/index.js +2 -0
  40. package/providers/beta/esri/src/esriProvider.js +12 -0
  41. package/providers/beta/esri/src/mapEvents.js +2 -2
  42. package/providers/beta/open-names/dist/esm/index.js +1 -1
  43. package/providers/maplibre/dist/esm/index.js +1 -1
  44. package/providers/maplibre/dist/esm/index.js.LICENSE.txt +5 -0
  45. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  46. package/providers/maplibre/src/maplibreProvider.js +11 -1
  47. package/providers/maplibre/src/utils/highlightFeatures.js +6 -2
  48. package/src/App/components/Actions/Actions.jsx +2 -1
  49. package/src/App/components/Actions/Actions.module.scss +14 -0
  50. package/src/App/components/Actions/Actions.test.jsx +2 -2
  51. package/src/App/components/MapButton/MapButton.module.scss +19 -6
  52. package/src/App/components/PopupMenu/PopupMenu.jsx +69 -14
  53. package/src/App/components/PopupMenu/PopupMenu.module.scss +70 -7
  54. package/src/App/components/PopupMenu/PopupMenu.test.jsx +102 -16
  55. package/src/App/hooks/useButtonStateEvaluator.js +2 -2
  56. package/src/App/hooks/useInterfaceAPI.js +26 -32
  57. package/src/App/registry/pluginRegistry.js +2 -2
  58. package/src/App/renderer/mapButtons.js +6 -1
  59. package/src/App/renderer/mapButtons.test.js +20 -0
  60. package/src/App/store/MapProvider.jsx +2 -2
  61. package/src/App/store/mapActionsMap.js +3 -2
  62. package/src/App/store/mapReducer.js +1 -0
  63. package/src/scss/settings/_dimensions.scss +1 -0
  64. package/webpack.esm.mjs +21 -11
  65. package/webpack.umd.mjs +0 -1
  66. package/dist/esm/im-core.js +0 -2
  67. package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +0 -2
  68. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +0 -1
  69. package/plugins/beta/frame/dist/esm/im-frame-plugin.js +0 -1
  70. package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +0 -1
  71. package/plugins/beta/scale-bar/dist/esm/im-scale-bar-plugin.js +0 -1
  72. package/plugins/beta/use-location/dist/esm/im-use-location-plugin.js +0 -1
  73. package/plugins/interact/dist/esm/im-interact-plugin.js +0 -1
  74. package/plugins/search/dist/esm/im-search-plugin.js +0 -2
  75. package/plugins/search/dist/esm/im-search-plugin.js.LICENSE.txt +0 -1
  76. package/providers/beta/open-names/dist/esm/im-reverse-geocode.js +0 -2
  77. package/providers/beta/open-names/dist/esm/im-reverse-geocode.js.LICENSE.txt +0 -1
  78. package/providers/maplibre/dist/esm/im-maplibre-framework.js +0 -2
  79. package/providers/maplibre/dist/esm/im-maplibre-framework.js.LICENSE.txt +0 -4
  80. package/providers/maplibre/dist/esm/im-maplibre-provider.js +0 -2
  81. package/providers/maplibre/dist/esm/im-maplibre-provider.js.LICENSE.txt +0 -1
  82. /package/{dist/esm/im-core.js.LICENSE.txt → plugins/beta/draw-es/dist/esm/index.js.LICENSE.txt} +0 -0
  83. /package/{plugins/beta/datasets/dist/esm/im-datasets-plugin.js.LICENSE.txt → providers/beta/esri/dist/esm/index.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- import*as e from"react";var t,r,n={react(t,r,n){var o,i;t.exports=(o={useCallback:()=>e.useCallback,useEffect:()=>e.useEffect,useMemo:()=>e.useMemo,useRef:()=>e.useRef},i={},n.d(i,o),i)}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e](r,r.exports,i),r.exports}i.m=n,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce((t,r)=>(i.f[r](e,t),t),[])),i.u=e=>"../esm/"+e+".js",i.miniCssF=e=>{},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e+"../css/"})(),t={index:0},r=e=>{var r,n,{__webpack_esm_ids__:o,__webpack_esm_modules__:c,__webpack_esm_runtime__:u}=e,a=0;for(r in c)i.o(c,r)&&(i.m[r]=c[r]);for(u&&u(i);a<o.length;a++)n=o[a],i.o(t,n)&&t[n]&&t[n][0](),t[o[a]]=0},i.f.j=(e,n)=>{var o=i.o(t,e)?t[e]:void 0;if(0!==o)if(o)n.push(o[1]);else{var c=import("../css/"+i.u(e)).then(r,r=>{throw 0!==t[e]&&(t[e]=void 0),r});c=Promise.race([c,new Promise(r=>o=t[e]=[r])]),n.push(o[1]=c)}};var c={};function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function a(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var a=n&&n.prototype instanceof u?n:u,s=Object.create(a.prototype);return f(s,"_invoke",function(r,n,o){var i,u,a,f=0,s=o||[],p=!1,l={p:0,n:0,v:e,a:b,f:b.bind(e,4),d:function(t,r){return i=t,u=0,a=e,l.n=r,c}};function b(r,n){for(u=r,a=n,t=0;!p&&f&&!o&&t<s.length;t++){var o,i=s[t],b=l.p,y=i[2];r>3?(o=y===n)&&(a=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=b&&((o=r<2&&b<i[1])?(u=0,l.v=n,l.n=i[1]):b<y&&(o=r<3||i[0]>n||n>y)&&(i[4]=r,i[5]=n,l.n=y,u=0))}if(o||r>1)return c;throw p=!0,n}return function(o,s,y){if(f>1)throw TypeError("Generator is already running");for(p&&1===s&&b(s,y),u=s,a=y;(t=u<2?e:a)||!p;){i||(u?u<3?(u>1&&(l.n=-1),b(u,a)):l.n=a:l.v=a);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,a)))throw TypeError("iterator result is not an object");if(!t.done)return t;a=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(p=l.n<0)?a:r.call(n,l))!==c)break}catch(t){i=e,u=1,a=t}finally{f=1}}return{value:t,done:p}}}(r,o,i),!0),s}var c={};function u(){}function s(){}function p(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(f(t={},n,function(){return this}),t),b=p.prototype=u.prototype=Object.create(l);function y(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,f(e,o,"GeneratorFunction")),e.prototype=Object.create(b),e}return s.prototype=p,f(b,"constructor",p),f(p,"constructor",s),s.displayName="GeneratorFunction",f(p,o,"GeneratorFunction"),f(b),f(b,o,"Generator"),f(b,n,function(){return this}),f(b,"toString",function(){return"[object Generator]"}),(a=function(){return{w:i,m:y}})()}function f(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}f=function(e,t,r,n){function i(t,r){f(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},f(e,t,r,n)}function s(e,t,r,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){return void r(e)}u.done?t(a):Promise.resolve(a).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){b(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function b(e,t,r){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function y(){var e,t;return l(l({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"interact",load:(e=a().m(function e(){var t;return a().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,i.e("im-interact-plugin").then(i.bind(i,"./plugins/interact/src/manifest.js"));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function c(e){s(i,n,o,c,u,"next",e)}function u(e){s(i,n,o,c,u,"throw",e)}c(void 0)})},function(){return t.apply(this,arguments)})})}i.d(c,{A:()=>y});const m=c.A;export{m as default};
2
+ import{useCallback as e,useEffect as t,useMemo as r,useRef as n}from"react";var o={"./plugins/interact/src/manifest.js"(o,i,a){a.d(i,{manifest:()=>he}),a.r(i);function u(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 c(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(!p(e[0])||!p(e[1]))throw new Error("coordinates must contain numbers");return u({type:"Point",coordinates:e},t,r)}function l(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return u({type:"LineString",coordinates:e},t,r)}function s(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function f(e,t,r={}){return u({type:"MultiLineString",coordinates:e},t,r)}function p(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const y=11102230246251565e-32,d=134217729,g=(3+8*y)*y;function h(e,t,r,n,o){let i,a,u,c,l=t[0],s=n[0],f=0,p=0;s>l==s>-l?(i=l,l=t[++f]):(i=s,s=n[++p]);let y=0;if(f<e&&p<r)for(s>l==s>-l?(a=l+i,u=i-(a-l),l=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[y++]=u);f<e&&p<r;)s>l==s>-l?(a=i+l,c=a-i,u=i-(a-c)+(l-c),l=t[++f]):(a=i+s,c=a-i,u=i-(a-c)+(s-c),s=n[++p]),i=a,0!==u&&(o[y++]=u);for(;f<e;)a=i+l,c=a-i,u=i-(a-c)+(l-c),l=t[++f],i=a,0!==u&&(o[y++]=u);for(;p<r;)a=i+s,c=a-i,u=i-(a-c)+(s-c),s=n[++p],i=a,0!==u&&(o[y++]=u);return 0===i&&0!==y||(o[y++]=i),y}function v(e){return new Float64Array(e)}const b=v(4),m=v(8),S=v(12),w=v(16),E=v(4);function P(e,t,r,n,o,i){const a=(t-i)*(r-o),u=(e-o)*(n-i),c=a-u,l=Math.abs(a+u);return Math.abs(c)>=33306690738754716e-32*l?c:-function(e,t,r,n,o,i,a){let u,c,l,s,f,p,y,v,P,O,j,A,L,k,F,C,I,T;const M=e-o,x=r-o,D=t-i,_=n-i;k=M*_,p=d*M,y=p-(p-M),v=M-y,p=d*_,P=p-(p-_),O=_-P,F=v*O-(k-y*P-v*P-y*O),C=D*x,p=d*D,y=p-(p-D),v=D-y,p=d*x,P=p-(p-x),O=x-P,I=v*O-(C-y*P-v*P-y*O),j=F-I,f=F-j,b[0]=F-(j+f)+(f-I),A=k+j,f=A-k,L=k-(A-f)+(j-f),j=L-C,f=L-j,b[1]=L-(j+f)+(f-C),T=A+j,f=T-A,b[2]=A-(T-f)+(j-f),b[3]=T;let B=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,b),G=22204460492503146e-32*a;if(B>=G||-B>=G)return B;if(f=e-M,u=e-(M+f)+(f-o),f=r-x,l=r-(x+f)+(f-o),f=t-D,c=t-(D+f)+(f-i),f=n-_,s=n-(_+f)+(f-i),0===u&&0===c&&0===l&&0===s)return B;if(G=11093356479670487e-47*a+g*Math.abs(B),B+=M*s+_*u-(D*l+x*c),B>=G||-B>=G)return B;k=u*_,p=d*u,y=p-(p-u),v=u-y,p=d*_,P=p-(p-_),O=_-P,F=v*O-(k-y*P-v*P-y*O),C=c*x,p=d*c,y=p-(p-c),v=c-y,p=d*x,P=p-(p-x),O=x-P,I=v*O-(C-y*P-v*P-y*O),j=F-I,f=F-j,E[0]=F-(j+f)+(f-I),A=k+j,f=A-k,L=k-(A-f)+(j-f),j=L-C,f=L-j,E[1]=L-(j+f)+(f-C),T=A+j,f=T-A,E[2]=A-(T-f)+(j-f),E[3]=T;const U=h(4,b,4,E,m);k=M*s,p=d*M,y=p-(p-M),v=M-y,p=d*s,P=p-(p-s),O=s-P,F=v*O-(k-y*P-v*P-y*O),C=D*l,p=d*D,y=p-(p-D),v=D-y,p=d*l,P=p-(p-l),O=l-P,I=v*O-(C-y*P-v*P-y*O),j=F-I,f=F-j,E[0]=F-(j+f)+(f-I),A=k+j,f=A-k,L=k-(A-f)+(j-f),j=L-C,f=L-j,E[1]=L-(j+f)+(f-C),T=A+j,f=T-A,E[2]=A-(T-f)+(j-f),E[3]=T;const R=h(U,m,4,E,S);k=u*s,p=d*u,y=p-(p-u),v=u-y,p=d*s,P=p-(p-s),O=s-P,F=v*O-(k-y*P-v*P-y*O),C=c*l,p=d*c,y=p-(p-c),v=c-y,p=d*l,P=p-(p-l),O=l-P,I=v*O-(C-y*P-v*P-y*O),j=F-I,f=F-j,E[0]=F-(j+f)+(f-I),A=k+j,f=A-k,L=k-(A-f)+(j-f),j=L-C,f=L-j,E[1]=L-(j+f)+(f-C),T=A+j,f=T-A,E[2]=A-(T-f)+(j-f),E[3]=T;const N=h(R,S,4,E,w);return w[N-1]}(e,t,r,n,o,i,l)}function O(e,t){var r,n,o,i,a,u,c,l,s,f=0,p=e[0],y=e[1],d=t.length;for(r=0;r<d;r++){n=0;var g=t[r],h=g.length-1;if((l=g[0])[0]!==g[h][0]&&l[1]!==g[h][1])throw new Error("First and last coordinates in a ring must be the same");for(i=l[0]-p,a=l[1]-y;n<h;n++){if(u=(s=g[n+1])[0]-p,c=s[1]-y,0===a&&0===c){if(u<=0&&i>=0||i<=0&&u>=0)return 0}else if(c>=0&&a<=0||c<=0&&a>=0){if(0===(o=P(i,u,a,c,0,0)))return 0;(o>0&&c>0&&a<=0||o<0&&c<=0&&a>0)&&f++}l=s,a=c,i=u}}return f%2!=0}function j(e){return"Feature"===e.type?e.geometry:e}function A(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=j(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 c=!1;for(var l=0;l<u.length;++l){const e=O(n,u[l]);if(0===e)return!r.ignoreBoundary;e&&(c=!0)}return c}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 L{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 F(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 C(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 I{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 T=0,M=0,x=0;function D(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;M+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new I(o,T,M,x),c=new I(i,T,M,x+1);u.otherEvent=c,c.otherEvent=u,F(u,c)>0?(c.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,c.isLeftEndpoint=!1),t.push(u),t.push(c),o=i,x+=1}}T+=1}class _{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function B(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,c=t.rightSweepEvent.p.x,l=t.rightSweepEvent.p.y,s=(l-u)*(o-r)-(c-a)*(i-n);if(0===s)return!1;const f=((c-a)*(n-u)-(l-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 G(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let i=[];"FeatureCollection"===e.type?i=i.concat(e.features):"Feature"===e.type?i.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||i.push(u(e)),"FeatureCollection"===t.type?i=i.concat(t.features):"Feature"===t.type?i.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||i.push(u(t));const a=function(e,t){const r=new L([],F);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)D(r[e],t)}else D(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new L([],C);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new _(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=B(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(s(i),o);let l=[];if(n){const e={};a.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,l.push(t))})}else l=a;return s(l.map(e=>c(e)))}function U(e,t){!function(e,t){var r,n,o,i,a,u,c,l,s,f,p=0,y="FeatureCollection"===e.type,d="Feature"===e.type,g=y?e.features.length:1;for(r=0;r<g;r++){for(u=y?e.features[r].geometry:d?e.geometry:e,l=y?e.features[r].properties:d?e.properties:{},s=y?e.features[r].bbox:d?e.bbox:void 0,f=y?e.features[r].id:d?e.id:void 0,a=(c=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=c?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,l,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,l,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,l,s,f))return!1;p++}}(e,function(e,r,n,o,i){var a,c=null===e?null:e.type;switch(c){case null:case"Point":case"LineString":case"Polygon":return!1!==t(u(e,n,{bbox:o,id:i}),r,0)&&void 0}switch(c){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}for(var l=0;l<e.coordinates.length;l++){var s=e.coordinates[l];if(!1===t(u({type:a,coordinates:s},n),r,l))return!1}})}function R(e,t={}){const r=j(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return N(j(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=j(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(N(e,n))}),s(o)}(r,t);default:throw new Error("invalid poly")}}function N(e,t){return e.length>1?f(e,t):l(e[0],t)}function W(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(H(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function q(e,t,r){for(const r of t.coordinates)if(A(r,e))return!0;return G(t,R(e),{ignoreSelfIntersections:r}).features.length>0}function H(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 J(e){return function(e){if(Array.isArray(e))return $(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 $(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)?$(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 $(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 K(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 u({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return u({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return l(t.coordinates);case"MultiLineString":return f(t.coordinates);case"Point":return c(t.coordinates);case"MultiPoint":return function(e,t,r={}){return u({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function V(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return U(e,e=>{U(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!W(t,e);case"Polygon":return!A(e,t)}break;case"LineString":switch(t.type){case"Point":return!W(e,t);case"LineString":return!function(e,t,r){return G(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!q(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!A(t,e);case"LineString":return!q(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(A(r,t))return!0;for(const r of t.coordinates[0])if(A(r,e))return!0;return G(R(e),R(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(K(t),K(e))})}function z(e){var t;if(1!==e.length)return!1;var r=null===(t=e[0].geometry)||void 0===t?void 0:t.type;return"Polygon"===r||"MultiPolygon"===r}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=J(t).map(function(t){return e[t]});V(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function X(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 Y(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)?Y(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}}}}function Y(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 Z={tolerance:10,interactionMode:"marker",multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,markerColor:"rgba(212,53,28,1)",selectedStroke:"rgba(212,53,28,1)",selectedFill:"rgba(255, 0, 0, 0.1)",selectedStrokeWidth:2};function ee(e){return ee="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},ee(e)}var te=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===ee(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null};function re(e){return re="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},re(e)}function ne(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 oe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(r),!0).forEach(function(t){ie(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ne(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ie(e,t,r){return(t=function(e){var t=function(e){if("object"!=re(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=re(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==re(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ae(e){return ae="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},ae(e)}function ue(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 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 le(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){se(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 se(e,t,r){return(t=function(e){var t=function(e){if("object"!=ae(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ae(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ae(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var fe={ENABLE:function(e,t){return le(le(le({},e),t),{},{enabled:!0})},DISABLE:function(e){return le(le({},e),{},{enabled:!1,selectedFeatures:[],selectionBounds: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,c=t.replaceAll,l=void 0!==c&&c,s=t.properties,f=t.geometry,p=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],y=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var d=p.filter(function(e,t){return t!==y});return le(le({},e),{},{selectedFeatures:d,selectionBounds:null})}var g,h,v={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!l){var b=function(e){if(Array.isArray(e))return ue(e)}(h=p)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(h)||function(e,t){if(e){if("string"==typeof e)return ue(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)?ue(e,t):void 0}}(h)||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.")}();-1===y?b.push(v):b.splice(y,1),g=b}else g=-1!==y&&1===p.length?[]:[v];return le(le({},e),{},{selectedFeatures:g,selectionBounds:null})},UPDATE_SELECTED_BOUNDS:function(e,t){return JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:le(le({},e),{},{selectionBounds:t})},CLEAR_SELECTED_FEATURES:function(e){return le(le({},e),{},{selectedFeatures:[],selectionBounds:null})}};function pe(e){return pe="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},pe(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 de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(r),!0).forEach(function(t){ge(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 ge(e,t,r){return(t=function(e){var t=function(e){if("object"!=pe(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=pe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==pe(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var he={InitComponent:function(o){var i=o.appState,a=o.mapState,u=o.services,c=o.buttonConfig,l=o.mapProvider,s=o.pluginState,f=i.interfaceType,p=s.dispatch,y=s.enabled,d=s.selectedFeatures,g=s.selectionBounds,h=u.events,v=u.eventBus,b=u.closeApp,m=a.crossHair,S=a.mapStyle,w=["touch","keyboard"].includes(f),E=function(r){var o=r.mapState,i=r.pluginState,a=r.services,u=r.mapProvider,c=o.markers,l=i.dispatch,s=i.dataLayers,f=i.interactionMode,p=i.multiSelect,y=i.contiguous,d=i.markerColor,g=i.tolerance,h=i.selectedFeatures,v=i.selectionBounds,b=i.deselectOnClickOutside,m=a.eventBus,S=function(e){var t,r={},n=X(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}(s),w=e(function(e){var t=e.point,r=e.coords,n=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}}(u,t,{radius:g}),o=s.length>0;null!=i&&i.debug&&console.log("--- Features at ".concat(r," ---"),n);var a=!o||"select"!==f&&"auto"!==f?null:function(e,t){var r,n=X(e);try{for(n.s();!(r=n.n()).done;){var o,i=r.value,a=null===(o=i.layer)||void 0===o?void 0:o.id;if(t[a])return{feature:i,config:t[a]}}}catch(e){n.e(e)}finally{n.f()}return null}(n,S);a?function(e){var t,r,n=e.feature,o=e.config;c.remove("location");var i=y&&V(n,h),a=null!==(t=null===(r=n.properties)||void 0===r?void 0:r[o.idProperty])&&void 0!==t?t:n.id;a&&l({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:a,multiSelect:p,layerId:o.layerId,idProperty:o.idProperty,properties:n.properties,geometry:n.geometry,replaceAll:y&&!i}})}(a):"marker"===f||"auto"===f&&o?(l({type:"CLEAR_SELECTED_FEATURES"}),c.add("location",r,{color:d}),m.emit("interact:markerchange",{coords:r})):b&&l({type:"CLEAR_SELECTED_FEATURES"})},[u,s,f,p,m,l,c,y,h,S,null==i?void 0:i.debug,g,d,b]);return function(e,r,o){var i=n(null);t(function(){if(!(r.length>0)||o){var t=i.current;(null===t||0===t.length)&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:r,selectionBounds:o,canMerge:Q(r),canSplit:z(r)}),i.current=r)}},[r,o])}(m,h,v),{handleInteraction:w}}({appState:i,mapState:a,pluginState:s,services:u,mapProvider:l}).handleInteraction;return function(e){var n=e.mapProvider,o=e.mapStyle,i=e.pluginState,a=e.selectedFeatures,u=e.dispatch,c=e.events,l=e.eventBus,s=i.dataLayers,f=r(function(){return o?function(e,t){var r={};return t?(e.forEach(function(e){var n=e.selectedStroke||Z.selectedStroke,o=e.selectedFill||Z.selectedFill,i=e.selectedStrokeWidth||Z.selectedStrokeWidth;r[e.layerId]={stroke:te(n,t.id),fill:te(o,t.id),strokeWidth:i}}),r):r}(s,o):null},[s,o]),p=function(){var e,t=null===(e=n.updateHighlightedFeatures)||void 0===e?void 0:e.call(n,a,f);u({type:"UPDATE_SELECTED_BOUNDS",payload:t})};t(function(){if(n&&a&&f)return p(),l.on(c.MAP_DATA_CHANGE,p),function(){l.off(c.MAP_DATA_CHANGE,p)}},[a,n,f])}({mapProvider:l,mapStyle:S,pluginState:s,selectedFeatures:d,selectionBounds:g,dispatch:p,events:h,eventBus:v}),t(function(){y&&w?m.fixAtCenter():m.hide()},[y,f]),t(function(){if(s.enabled)return function(e){var t=e.appState,r=e.mapState,n=e.pluginState,o=e.buttonConfig,i=e.events,a=e.eventBus,u=e.handleInteraction,c=e.closeApp,l=o.selectDone,s=o.selectAtTarget,f=o.selectCancel,p=t.layoutRefs.viewportRef,y=!1,d=function(e){y="Enter"===e.key&&p.current===e.target},g=function(e){"Enter"===e.key&&y&&(e.preventDefault(),m())},h=!1,v=setTimeout(function(){h=!0},0),b=function(e){h&&u(e)},m=function(){return u(r.crossHair.getDetail())},S=function(e,t){return function(r,n){e.markers.remove("location"),t.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:oe({multiSelect:t.multiSelect,addToExisting:n},r)})}}(r,n),w=function(e){return S(e,!0)},E=function(e){return S(e,!1)};return document.addEventListener("keydown",d),document.addEventListener("keyup",g),a.on(i.MAP_CLICK,b),a.on("interact:selectFeature",w),a.on("interact:unselectFeature",E),s.onClick=m,l.onClick=function(){var e,o=(r.markers.getMarker("location")||{}).coords,i=n.selectionBounds,u=n.selectedFeatures;t.disabledButtons.has("selectDone")||(a.emit("interact:done",oe(oe(oe({},o&&{coords:o}),!o&&u&&{selectedFeatures:u}),!o&&i&&{selectionBounds:i})),(null===(e=n.closeOnAction)||void 0===e||e)&&c())},f.onClick=function(){var e;a.emit("interact:cancel"),(null===(e=n.closeOnAction)||void 0===e||e)&&c()},function(){clearTimeout(v),l.onClick=null,s.onClick=null,f.onClick=null,document.removeEventListener("keydown",d),document.removeEventListener("keyup",g),a.off(i.MAP_CLICK,b),a.off("interact:selectFeature",w),a.off("interact:unselectFeature",E)}}({appState:i,pluginState:s,mapState:a,buttonConfig:c,events:h,eventBus:v,handleInteraction:E,closeApp:b})},[i,a,s,c,v,E]),null},reducer:{initialState:{enabled:!1,dataLayers:[],markerColor:null,interactionMode:null,multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectionBounds:null,closeOnAction:!0},actions:fe},buttons:[{id:"selectAtTarget",label:"Select",iconId:"select",variant:"touch",hiddenWhen:function(e){var t=e.appState;return!e.pluginState.enabled||"touch"!==t.interfaceType},mobile:{slot:"actions",showLabel:!1},tablet:{slot:"actions",showLabel:!1},desktop:{slot:"actions",showLabel:!1}},{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:"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:"selectOrMark",group:"Select",title:"Select feature",command:"<kbd>Enter</kbd></dd>"}],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:de(de(de({},Z),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})}}}}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return o[e](r,r.exports,a),r.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var u={};function c(e){return c="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},c(e)}function l(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof u?n:u,l=Object.create(c.prototype);return s(l,"_invoke",function(r,n,o){var i,u,c,l=0,s=o||[],f=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return i=t,u=0,c=e,p.n=r,a}};function y(r,n){for(u=r,c=n,t=0;!f&&l&&!o&&t<s.length;t++){var o,i=s[t],y=p.p,d=i[2];r>3?(o=d===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=y&&((o=r<2&&y<i[1])?(u=0,p.v=n,p.n=i[1]):y<d&&(o=r<3||i[0]>n||n>d)&&(i[4]=r,i[5]=n,p.n=d,u=0))}if(o||r>1)return a;throw f=!0,n}return function(o,s,d){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&y(s,d),u=s,c=d;(t=u<2?e:c)||!f;){i||(u?u<3?(u>1&&(p.n=-1),y(u,c)):p.n=c:p.v=c);try{if(l=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,u=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function u(){}function c(){}function f(){}t=Object.getPrototypeOf;var p=[][n]?t(t([][n]())):(s(t={},n,function(){return this}),t),y=f.prototype=u.prototype=Object.create(p);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,s(e,o,"GeneratorFunction")),e.prototype=Object.create(y),e}return c.prototype=f,s(y,"constructor",f),s(f,"constructor",c),c.displayName="GeneratorFunction",s(f,o,"GeneratorFunction"),s(y),s(y,o,"Generator"),s(y,n,function(){return this}),s(y,"toString",function(){return"[object Generator]"}),(l=function(){return{w:i,m:d}})()}function s(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}s=function(e,t,r,n){function i(t,r){s(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},s(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){d(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function d(e,t,r){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(){var e,t;return y(y({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"interact",load:(e=l().m(function e(){var t;return l().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.resolve().then(a.bind(a,"./plugins/interact/src/manifest.js"));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){f(i,n,o,a,u,"next",e)}function u(e){f(i,n,o,a,u,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})})}a.d(u,{A:()=>g});const h=u.A;export{h as default};
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{363(e,t,r){r.r(t),r.d(t,{manifest:()=>ye});var n=r(738);function o(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 i(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(!c(e[0])||!c(e[1]))throw new Error("coordinates must contain numbers");return o({type:"Point",coordinates:e},t,r)}function a(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return o({type:"LineString",coordinates:e},t,r)}function u(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function l(e,t,r={}){return o({type:"MultiLineString",coordinates:e},t,r)}function c(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const s=11102230246251565e-32,f=134217729,p=(3+8*s)*s;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 y=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[y++]=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[y++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[y++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[y++]=u);return 0===i&&0!==y||(o[y++]=i),y}function d(e){return new Float64Array(e)}const g=d(4),h=d(8),b=d(12),v=d(16),m=d(4);function S(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,d,S,E,w,P,A,O,L,k,F,I,j,C,M;const D=e-o,T=r-o,x=t-i,B=n-i;F=D*B,S=f*D,E=S-(S-D),w=D-E,S=f*B,P=S-(S-B),A=B-P,I=w*A-(F-E*P-w*P-E*A),j=x*T,S=f*x,E=S-(S-x),w=x-E,S=f*T,P=S-(S-T),A=T-P,C=w*A-(j-E*P-w*P-E*A),O=I-C,d=I-O,g[0]=I-(O+d)+(d-C),L=F+O,d=L-F,k=F-(L-d)+(O-d),O=k-j,d=k-O,g[1]=k-(O+d)+(d-j),M=L+O,d=M-L,g[2]=L-(M-d)+(O-d),g[3]=M;let _=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,g),U=22204460492503146e-32*a;if(_>=U||-_>=U)return _;if(d=e-D,u=e-(D+d)+(d-o),d=r-T,c=r-(T+d)+(d-o),d=t-x,l=t-(x+d)+(d-i),d=n-B,s=n-(B+d)+(d-i),0===u&&0===l&&0===c&&0===s)return _;if(U=11093356479670487e-47*a+p*Math.abs(_),_+=D*s+B*u-(x*c+T*l),_>=U||-_>=U)return _;F=u*B,S=f*u,E=S-(S-u),w=u-E,S=f*B,P=S-(S-B),A=B-P,I=w*A-(F-E*P-w*P-E*A),j=l*T,S=f*l,E=S-(S-l),w=l-E,S=f*T,P=S-(S-T),A=T-P,C=w*A-(j-E*P-w*P-E*A),O=I-C,d=I-O,m[0]=I-(O+d)+(d-C),L=F+O,d=L-F,k=F-(L-d)+(O-d),O=k-j,d=k-O,m[1]=k-(O+d)+(d-j),M=L+O,d=M-L,m[2]=L-(M-d)+(O-d),m[3]=M;const R=y(4,g,4,m,h);F=D*s,S=f*D,E=S-(S-D),w=D-E,S=f*s,P=S-(S-s),A=s-P,I=w*A-(F-E*P-w*P-E*A),j=x*c,S=f*x,E=S-(S-x),w=x-E,S=f*c,P=S-(S-c),A=c-P,C=w*A-(j-E*P-w*P-E*A),O=I-C,d=I-O,m[0]=I-(O+d)+(d-C),L=F+O,d=L-F,k=F-(L-d)+(O-d),O=k-j,d=k-O,m[1]=k-(O+d)+(d-j),M=L+O,d=M-L,m[2]=L-(M-d)+(O-d),m[3]=M;const G=y(R,h,4,m,b);F=u*s,S=f*u,E=S-(S-u),w=u-E,S=f*s,P=S-(S-s),A=s-P,I=w*A-(F-E*P-w*P-E*A),j=l*c,S=f*l,E=S-(S-l),w=l-E,S=f*c,P=S-(S-c),A=c-P,C=w*A-(j-E*P-w*P-E*A),O=I-C,d=I-O,m[0]=I-(O+d)+(d-C),L=F+O,d=L-F,k=F-(L-d)+(O-d),O=k-j,d=k-O,m[1]=k-(O+d)+(d-j),M=L+O,d=M-L,m[2]=L-(M-d)+(O-d),m[3]=M;const N=y(G,b,4,m,v);return v[N-1]}(e,t,r,n,o,i,c)}function E(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],y=e[1],d=t.length;for(r=0;r<d;r++){n=0;var g=t[r],h=g.length-1;if((c=g[0])[0]!==g[h][0]&&c[1]!==g[h][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-p,a=c[1]-y;n<h;n++){if(u=(s=g[n+1])[0]-p,l=s[1]-y,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=S(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 w(e){return"Feature"===e.type?e.geometry:e}function P(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=w(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=E(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(8),d(8),d(8),d(4),d(8),d(8),d(8),d(12),d(192),d(192),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(8),d(8),d(8),d(8),d(8),d(8),d(8),d(8),d(8),d(4),d(4),d(4),d(8),d(16),d(16),d(16),d(32),d(32),d(48),d(64),d(1152),d(1152),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(4),d(24),d(24),d(24),d(24),d(24),d(24),d(24),d(24),d(24),d(24),d(1152),d(1152),d(1152),d(1152),d(1152),d(2304),d(2304),d(3456),d(5760),d(8),d(8),d(8),d(16),d(24),d(48),d(48),d(96),d(192),d(384),d(384),d(384),d(768),d(96),d(96),d(96),d(1152);class A{constructor(e=[],t=O){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 O(e,t){return e<t?-1:e>t?1:0}function L(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 F{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,j=0,C=0;function M(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;j+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new F(o,I,j,C),l=new F(i,I,j,C+1);u.otherEvent=l,l.otherEvent=u,L(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,C+=1}}I+=1}class D{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function T(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 x(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:a=!0}=r;let l=[];"FeatureCollection"===e.type?l=l.concat(e.features):"Feature"===e.type?l.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||l.push(o(e)),"FeatureCollection"===t.type?l=l.concat(t.features):"Feature"===t.type?l.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||l.push(o(t));const c=function(e,t){const r=new A([],L);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)M(r[e],t)}else M(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new A([],k);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new D(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=T(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(u(l),a);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 u(s.map(e=>i(e)))}function B(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,y="FeatureCollection"===e.type,d="Feature"===e.type,g=y?e.features.length:1;for(r=0;r<g;r++){for(u=y?e.features[r].geometry:d?e.geometry:e,c=y?e.features[r].properties:d?e.properties:{},s=y?e.features[r].bbox:d?e.bbox:void 0,f=y?e.features[r].id:d?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,i,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(o(e,n,{bbox:i,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(o({type:u,coordinates:s},n),r,c))return!1}})}function _(e,t={}){const r=w(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return U(w(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=w(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(U(e,n))}),u(o)}(r,t);default:throw new Error("invalid poly")}}function U(e,t){return e.length>1?l(e,t):a(e[0],t)}function R(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(N(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(P(r,e))return!0;return x(t,_(e),{ignoreSelfIntersections:r}).features.length>0}function N(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 W(e){return function(e){if(Array.isArray(e))return q(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 q(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)?q(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 q(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 H(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 o({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return o({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return a(t.coordinates);case"MultiLineString":return l(t.coordinates);case"Point":return i(t.coordinates);case"MultiPoint":return function(e,t,r={}){return o({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function J(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return B(e,e=>{B(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!R(t,e);case"Polygon":return!P(e,t)}break;case"LineString":switch(t.type){case"Point":return!R(e,t);case"LineString":return!function(e,t,r){return x(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!P(t,e);case"LineString":return!G(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(P(r,t))return!0;for(const r of t.coordinates[0])if(P(r,e))return!0;return x(_(e),_(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(H(t),H(e))})}function $(e){var t;if(1!==e.length)return!1;var r=null===(t=e[0].geometry)||void 0===t?void 0:t.type;return"Polygon"===r||"MultiPolygon"===r}function K(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=W(t).map(function(t){return e[t]});J(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function z(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 Q(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)?Q(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}}}}function Q(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 V={tolerance:10,interactionMode:"marker",multiSelect:!1,contiguous:!1,markerColor:"rgba(212,53,28,1)",selectedStroke:"rgba(212,53,28,1)",selectedFill:"rgba(255, 0, 0, 0.1)",selectedStrokeWidth:2};function X(e){return X="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},X(e)}var Y=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===X(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null};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 ee(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 te(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach(function(t){re(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function re(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}function ne(e){return ne="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},ne(e)}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}function ie(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 ae(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(r),!0).forEach(function(t){ue(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ie(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ue(e,t,r){return(t=function(e){var t=function(e){if("object"!=ne(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ne(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ne(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var le={ENABLE:function(e,t){return ae(ae(ae({},e),t),{},{enabled:!0})},DISABLE:function(e){return ae(ae({},e),{},{enabled:!1,selectedFeatures:[],selectionBounds: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:[],y=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var d=p.filter(function(e,t){return t!==y});return ae(ae({},e),{},{selectedFeatures:d,selectionBounds:null})}var g,h,b={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var v=function(e){if(Array.isArray(e))return oe(e)}(h=p)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(h)||function(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}}(h)||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.")}();-1===y?v.push(b):v.splice(y,1),g=v}else g=-1!==y&&1===p.length?[]:[b];return ae(ae({},e),{},{selectedFeatures:g,selectionBounds:null})},UPDATE_SELECTED_BOUNDS:function(e,t){return JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:ae(ae({},e),{},{selectionBounds:t})},CLEAR_SELECTED_FEATURES:function(e){return ae(ae({},e),{},{selectedFeatures:[],selectionBounds:null})}};function ce(e){return ce="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},ce(e)}function se(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?se(Object(r),!0).forEach(function(t){pe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):se(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function pe(e,t,r){return(t=function(e){var t=function(e){if("object"!=ce(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ce(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ce(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ye={InitComponent:function(e){var t=e.appState,r=e.mapState,o=e.services,i=e.buttonConfig,a=e.mapProvider,u=e.pluginState,l=t.interfaceType,c=u.dispatch,s=u.enabled,f=u.selectedFeatures,p=u.selectionBounds,y=o.events,d=o.eventBus,g=o.closeApp,h=r.crossHair,b=r.mapStyle,v=["touch","keyboard"].includes(l),m=function(e){var t=e.mapState,r=e.pluginState,o=e.services,i=e.mapProvider,a=t.markers,u=r.dispatch,l=r.dataLayers,c=r.interactionMode,s=r.multiSelect,f=r.contiguous,p=r.markerColor,y=r.tolerance,d=r.selectedFeatures,g=r.selectionBounds,h=o.eventBus,b=function(e){var t,r={},n=z(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}(l),v=(0,n.useCallback)(function(e){var t=e.point,n=e.coords,o=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}}(i,t,{radius:y}),g=l.length>0;null!=r&&r.debug&&console.log("--- Features at ".concat(n," ---"),o);var v=!g||"select"!==c&&"auto"!==c?null:function(e,t){var r,n=z(e);try{for(n.s();!(r=n.n()).done;){var o,i=r.value,a=null===(o=i.layer)||void 0===o?void 0:o.id;if(t[a])return{feature:i,config:t[a]}}}catch(e){n.e(e)}finally{n.f()}return null}(o,b);v?function(e){var t,r,n=e.feature,o=e.config;a.remove("location");var i=f&&J(n,d),l=null!==(t=null===(r=n.properties)||void 0===r?void 0:r[o.idProperty])&&void 0!==t?t:n.id;l&&u({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:l,multiSelect:s,layerId:o.layerId,idProperty:o.idProperty,properties:n.properties,geometry:n.geometry,replaceAll:f&&!i}})}(v):("marker"===c||"auto"===c&&g)&&(u({type:"CLEAR_SELECTED_FEATURES"}),a.add("location",n,{color:p}),h.emit("interact:markerchange",{coords:n}))},[i,l,c,s,h,u,a,f,d,b,null==r?void 0:r.debug,y,p]);return function(e,t,r){var o=(0,n.useRef)(null);(0,n.useEffect)(function(){if(!(t.length>0)||r){var n=o.current;(null===n||0===n.length)&&0===t.length||(e.emit("interact:selectionchange",{selectedFeatures:t,selectionBounds:r,canMerge:K(t),canSplit:$(t)}),o.current=t)}},[t,r])}(h,d,g),{handleInteraction:v}}({appState:t,mapState:r,pluginState:u,services:o,mapProvider:a}).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.dataLayers,s=(0,n.useMemo)(function(){return r?function(e,t){var r={};return t?(e.forEach(function(e){var n=e.selectedStroke||V.selectedStroke,o=e.selectedFill||V.selectedFill,i=e.selectedStrokeWidth||V.selectedStrokeWidth;r[e.layerId]={stroke:Y(n,t.id),fill:Y(o,t.id),strokeWidth:i}}),r):r}(c,r):null},[c,r]),f=function(){var e,r=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,i,s);a({type:"UPDATE_SELECTED_BOUNDS",payload:r})};(0,n.useEffect)(function(){if(t&&i&&s)return f(),l.on(u.MAP_DATA_CHANGE,f),function(){l.off(u.MAP_DATA_CHANGE,f)}},[i,t,s])}({mapProvider:a,mapStyle:b,pluginState:u,selectedFeatures:f,selectionBounds:p,dispatch:c,events:y,eventBus:d}),(0,n.useEffect)(function(){s&&v?h.fixAtCenter():h.hide()},[s,l]),(0,n.useEffect)(function(){if(u.enabled)return function(e){var t=e.appState,r=e.mapState,n=e.pluginState,o=e.buttonConfig,i=e.events,a=e.eventBus,u=e.handleInteraction,l=e.closeApp,c=o.selectDone,s=o.selectAtTarget,f=o.selectCancel,p=t.layoutRefs.viewportRef,y=!1,d=function(e){y="Enter"===e.key&&p.current===e.target},g=function(e){"Enter"===e.key&&y&&(e.preventDefault(),b())},h=function(e){return u(e)},b=function(){return u(r.crossHair.getDetail())},v=function(e,t){return function(r,n){e.markers.remove("location"),t.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:te({multiSelect:t.multiSelect,addToExisting:n},r)})}}(r,n),m=function(e){return v(e,!0)},S=function(e){return v(e,!1)};return document.addEventListener("keydown",d),document.addEventListener("keyup",g),a.on(i.MAP_CLICK,h),a.on("interact:selectFeature",m),a.on("interact:unselectFeature",S),s.onClick=b,c.onClick=function(){var e,o=(r.markers.getMarker("location")||{}).coords,i=n.selectionBounds,u=n.selectedFeatures;t.disabledButtons.has("selectDone")||(a.emit("interact:done",te(te(te({},o&&{coords:o}),!o&&u&&{selectedFeatures:u}),!o&&i&&{selectionBounds:i})),(null===(e=n.closeOnAction)||void 0===e||e)&&l())},f.onClick=function(){var e;a.emit("interact:cancel"),(null===(e=n.closeOnAction)||void 0===e||e)&&l()},function(){c.onClick=null,s.onClick=null,f.onClick=null,document.removeEventListener("keydown",d),document.removeEventListener("keyup",g),a.off(i.MAP_CLICK,h),a.off("interact:selectFeature",m),a.off("interact:unselectFeature",S)}}({appState:t,pluginState:u,mapState:r,buttonConfig:i,events:y,eventBus:d,handleInteraction:m,closeApp:g})},[t,r,u,i,d,m]),null},reducer:{initialState:{enabled:!1,dataLayers:[],markerColor:null,interactionMode:null,multiSelect:!1,contiguous:!1,selectedFeatures:[],selectionBounds:null,closeOnAction:!0},actions:le},buttons:[{id:"selectDone",label:"Done",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}},{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState;return!e.pluginState.enabled||!["touch","keyboard"].includes(t.interfaceType)},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},{id:"selectCancel",label:"Cancel",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}}],keyboardShortcuts:[{id:"selectOrMark",group:"Select",title:"Select feature",command:"<kbd>Enter</kbd></dd>"}],api:{enable:function(e,t){var r=e.pluginState,n=e.pluginConfig;r.dispatch({type:"ENABLE",payload:fe(fe(fe({},V),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})}}}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{363(e,t,r){r.r(t),r.d(t,{manifest:()=>de});var n=r(738);function o(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 i(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(!c(e[0])||!c(e[1]))throw new Error("coordinates must contain numbers");return o({type:"Point",coordinates:e},t,r)}function a(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return o({type:"LineString",coordinates:e},t,r)}function u(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function l(e,t,r={}){return o({type:"MultiLineString",coordinates:e},t,r)}function c(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const s=11102230246251565e-32,f=134217729,p=(3+8*s)*s;function d(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 y(e){return new Float64Array(e)}const h=y(4),g=y(8),v=y(12),b=y(16),m=y(4);function S(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,y,S,E,w,P,A,O,L,k,F,C,I,j,M;const T=e-o,D=r-o,x=t-i,B=n-i;F=T*B,S=f*T,E=S-(S-T),w=T-E,S=f*B,P=S-(S-B),A=B-P,C=w*A-(F-E*P-w*P-E*A),I=x*D,S=f*x,E=S-(S-x),w=x-E,S=f*D,P=S-(S-D),A=D-P,j=w*A-(I-E*P-w*P-E*A),O=C-j,y=C-O,h[0]=C-(O+y)+(y-j),L=F+O,y=L-F,k=F-(L-y)+(O-y),O=k-I,y=k-O,h[1]=k-(O+y)+(y-I),M=L+O,y=M-L,h[2]=L-(M-y)+(O-y),h[3]=M;let _=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,h),U=22204460492503146e-32*a;if(_>=U||-_>=U)return _;if(y=e-T,u=e-(T+y)+(y-o),y=r-D,c=r-(D+y)+(y-o),y=t-x,l=t-(x+y)+(y-i),y=n-B,s=n-(B+y)+(y-i),0===u&&0===l&&0===c&&0===s)return _;if(U=11093356479670487e-47*a+p*Math.abs(_),_+=T*s+B*u-(x*c+D*l),_>=U||-_>=U)return _;F=u*B,S=f*u,E=S-(S-u),w=u-E,S=f*B,P=S-(S-B),A=B-P,C=w*A-(F-E*P-w*P-E*A),I=l*D,S=f*l,E=S-(S-l),w=l-E,S=f*D,P=S-(S-D),A=D-P,j=w*A-(I-E*P-w*P-E*A),O=C-j,y=C-O,m[0]=C-(O+y)+(y-j),L=F+O,y=L-F,k=F-(L-y)+(O-y),O=k-I,y=k-O,m[1]=k-(O+y)+(y-I),M=L+O,y=M-L,m[2]=L-(M-y)+(O-y),m[3]=M;const R=d(4,h,4,m,g);F=T*s,S=f*T,E=S-(S-T),w=T-E,S=f*s,P=S-(S-s),A=s-P,C=w*A-(F-E*P-w*P-E*A),I=x*c,S=f*x,E=S-(S-x),w=x-E,S=f*c,P=S-(S-c),A=c-P,j=w*A-(I-E*P-w*P-E*A),O=C-j,y=C-O,m[0]=C-(O+y)+(y-j),L=F+O,y=L-F,k=F-(L-y)+(O-y),O=k-I,y=k-O,m[1]=k-(O+y)+(y-I),M=L+O,y=M-L,m[2]=L-(M-y)+(O-y),m[3]=M;const G=d(R,g,4,m,v);F=u*s,S=f*u,E=S-(S-u),w=u-E,S=f*s,P=S-(S-s),A=s-P,C=w*A-(F-E*P-w*P-E*A),I=l*c,S=f*l,E=S-(S-l),w=l-E,S=f*c,P=S-(S-c),A=c-P,j=w*A-(I-E*P-w*P-E*A),O=C-j,y=C-O,m[0]=C-(O+y)+(y-j),L=F+O,y=L-F,k=F-(L-y)+(O-y),O=k-I,y=k-O,m[1]=k-(O+y)+(y-I),M=L+O,y=M-L,m[2]=L-(M-y)+(O-y),m[3]=M;const N=d(G,v,4,m,b);return b[N-1]}(e,t,r,n,o,i,c)}function E(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 h=t[r],g=h.length-1;if((c=h[0])[0]!==h[g][0]&&c[1]!==h[g][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<g;n++){if(u=(s=h[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=S(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 w(e){return"Feature"===e.type?e.geometry:e}function P(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=w(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=E(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(8),y(8),y(8),y(4),y(8),y(8),y(8),y(12),y(192),y(192),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(8),y(8),y(8),y(8),y(8),y(8),y(8),y(8),y(8),y(4),y(4),y(4),y(8),y(16),y(16),y(16),y(32),y(32),y(48),y(64),y(1152),y(1152),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(4),y(24),y(24),y(24),y(24),y(24),y(24),y(24),y(24),y(24),y(24),y(1152),y(1152),y(1152),y(1152),y(1152),y(2304),y(2304),y(3456),y(5760),y(8),y(8),y(8),y(16),y(24),y(48),y(48),y(96),y(192),y(384),y(384),y(384),y(768),y(96),y(96),y(96),y(1152);class A{constructor(e=[],t=O){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 O(e,t){return e<t?-1:e>t?1:0}function L(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 F{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 C=0,I=0,j=0;function M(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;I+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new F(o,C,I,j),l=new F(i,C,I,j+1);u.otherEvent=l,l.otherEvent=u,L(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,j+=1}}C+=1}class T{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 x(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:a=!0}=r;let l=[];"FeatureCollection"===e.type?l=l.concat(e.features):"Feature"===e.type?l.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||l.push(o(e)),"FeatureCollection"===t.type?l=l.concat(t.features):"Feature"===t.type?l.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||l.push(o(t));const c=function(e,t){const r=new A([],L);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)M(r[e],t)}else M(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new A([],k);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new T(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)}(u(l),a);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 u(s.map(e=>i(e)))}function B(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,h=d?e.features.length:1;for(r=0;r<h;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,i,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(o(e,n,{bbox:i,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(o({type:u,coordinates:s},n),r,c))return!1}})}function _(e,t={}){const r=w(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return U(w(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=w(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(U(e,n))}),u(o)}(r,t);default:throw new Error("invalid poly")}}function U(e,t){return e.length>1?l(e,t):a(e[0],t)}function R(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(N(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(P(r,e))return!0;return x(t,_(e),{ignoreSelfIntersections:r}).features.length>0}function N(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 W(e){return function(e){if(Array.isArray(e))return q(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 q(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)?q(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 q(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 H(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 o({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return o({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return a(t.coordinates);case"MultiLineString":return l(t.coordinates);case"Point":return i(t.coordinates);case"MultiPoint":return function(e,t,r={}){return o({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function J(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return B(e,e=>{B(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!R(t,e);case"Polygon":return!P(e,t)}break;case"LineString":switch(t.type){case"Point":return!R(e,t);case"LineString":return!function(e,t,r){return x(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!P(t,e);case"LineString":return!G(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(P(r,t))return!0;for(const r of t.coordinates[0])if(P(r,e))return!0;return x(_(e),_(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(H(t),H(e))})}function $(e){var t;if(1!==e.length)return!1;var r=null===(t=e[0].geometry)||void 0===t?void 0:t.type;return"Polygon"===r||"MultiPolygon"===r}function K(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=W(t).map(function(t){return e[t]});J(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function V(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}}}}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 Q={tolerance:10,interactionMode:"marker",multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,markerColor:"rgba(212,53,28,1)",selectedStroke:"rgba(212,53,28,1)",selectedFill:"rgba(255, 0, 0, 0.1)",selectedStrokeWidth:2};function X(e){return X="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},X(e)}var Y=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===X(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null};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 ee(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 te(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach(function(t){re(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function re(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}function ne(e){return ne="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},ne(e)}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}function ie(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 ae(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(r),!0).forEach(function(t){ue(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ie(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ue(e,t,r){return(t=function(e){var t=function(e){if("object"!=ne(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ne(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ne(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var le={ENABLE:function(e,t){return ae(ae(ae({},e),t),{},{enabled:!0})},DISABLE:function(e){return ae(ae({},e),{},{enabled:!1,selectedFeatures:[],selectionBounds: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 ae(ae({},e),{},{selectedFeatures:y,selectionBounds:null})}var h,g,v={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=function(e){if(Array.isArray(e))return oe(e)}(g=p)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(g)||function(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}}(g)||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.")}();-1===d?b.push(v):b.splice(d,1),h=b}else h=-1!==d&&1===p.length?[]:[v];return ae(ae({},e),{},{selectedFeatures:h,selectionBounds:null})},UPDATE_SELECTED_BOUNDS:function(e,t){return JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:ae(ae({},e),{},{selectionBounds:t})},CLEAR_SELECTED_FEATURES:function(e){return ae(ae({},e),{},{selectedFeatures:[],selectionBounds:null})}};function ce(e){return ce="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},ce(e)}function se(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?se(Object(r),!0).forEach(function(t){pe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):se(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function pe(e,t,r){return(t=function(e){var t=function(e){if("object"!=ce(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ce(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ce(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var de={InitComponent:function(e){var t=e.appState,r=e.mapState,o=e.services,i=e.buttonConfig,a=e.mapProvider,u=e.pluginState,l=t.interfaceType,c=u.dispatch,s=u.enabled,f=u.selectedFeatures,p=u.selectionBounds,d=o.events,y=o.eventBus,h=o.closeApp,g=r.crossHair,v=r.mapStyle,b=["touch","keyboard"].includes(l),m=function(e){var t=e.mapState,r=e.pluginState,o=e.services,i=e.mapProvider,a=t.markers,u=r.dispatch,l=r.dataLayers,c=r.interactionMode,s=r.multiSelect,f=r.contiguous,p=r.markerColor,d=r.tolerance,y=r.selectedFeatures,h=r.selectionBounds,g=r.deselectOnClickOutside,v=o.eventBus,b=function(e){var t,r={},n=V(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}(l),m=(0,n.useCallback)(function(e){var t=e.point,n=e.coords,o=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}}(i,t,{radius:d}),h=l.length>0;null!=r&&r.debug&&console.log("--- Features at ".concat(n," ---"),o);var m=!h||"select"!==c&&"auto"!==c?null:function(e,t){var r,n=V(e);try{for(n.s();!(r=n.n()).done;){var o,i=r.value,a=null===(o=i.layer)||void 0===o?void 0:o.id;if(t[a])return{feature:i,config:t[a]}}}catch(e){n.e(e)}finally{n.f()}return null}(o,b);m?function(e){var t,r,n=e.feature,o=e.config;a.remove("location");var i=f&&J(n,y),l=null!==(t=null===(r=n.properties)||void 0===r?void 0:r[o.idProperty])&&void 0!==t?t:n.id;l&&u({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:l,multiSelect:s,layerId:o.layerId,idProperty:o.idProperty,properties:n.properties,geometry:n.geometry,replaceAll:f&&!i}})}(m):"marker"===c||"auto"===c&&h?(u({type:"CLEAR_SELECTED_FEATURES"}),a.add("location",n,{color:p}),v.emit("interact:markerchange",{coords:n})):g&&u({type:"CLEAR_SELECTED_FEATURES"})},[i,l,c,s,v,u,a,f,y,b,null==r?void 0:r.debug,d,p,g]);return function(e,t,r){var o=(0,n.useRef)(null);(0,n.useEffect)(function(){if(!(t.length>0)||r){var n=o.current;(null===n||0===n.length)&&0===t.length||(e.emit("interact:selectionchange",{selectedFeatures:t,selectionBounds:r,canMerge:K(t),canSplit:$(t)}),o.current=t)}},[t,r])}(v,y,h),{handleInteraction:m}}({appState:t,mapState:r,pluginState:u,services:o,mapProvider:a}).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.dataLayers,s=(0,n.useMemo)(function(){return r?function(e,t){var r={};return t?(e.forEach(function(e){var n=e.selectedStroke||Q.selectedStroke,o=e.selectedFill||Q.selectedFill,i=e.selectedStrokeWidth||Q.selectedStrokeWidth;r[e.layerId]={stroke:Y(n,t.id),fill:Y(o,t.id),strokeWidth:i}}),r):r}(c,r):null},[c,r]),f=function(){var e,r=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,i,s);a({type:"UPDATE_SELECTED_BOUNDS",payload:r})};(0,n.useEffect)(function(){if(t&&i&&s)return f(),l.on(u.MAP_DATA_CHANGE,f),function(){l.off(u.MAP_DATA_CHANGE,f)}},[i,t,s])}({mapProvider:a,mapStyle:v,pluginState:u,selectedFeatures:f,selectionBounds:p,dispatch:c,events:d,eventBus:y}),(0,n.useEffect)(function(){s&&b?g.fixAtCenter():g.hide()},[s,l]),(0,n.useEffect)(function(){if(u.enabled)return function(e){var t=e.appState,r=e.mapState,n=e.pluginState,o=e.buttonConfig,i=e.events,a=e.eventBus,u=e.handleInteraction,l=e.closeApp,c=o.selectDone,s=o.selectAtTarget,f=o.selectCancel,p=t.layoutRefs.viewportRef,d=!1,y=function(e){d="Enter"===e.key&&p.current===e.target},h=function(e){"Enter"===e.key&&d&&(e.preventDefault(),m())},g=!1,v=setTimeout(function(){g=!0},0),b=function(e){g&&u(e)},m=function(){return u(r.crossHair.getDetail())},S=function(e,t){return function(r,n){e.markers.remove("location"),t.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:te({multiSelect:t.multiSelect,addToExisting:n},r)})}}(r,n),E=function(e){return S(e,!0)},w=function(e){return S(e,!1)};return document.addEventListener("keydown",y),document.addEventListener("keyup",h),a.on(i.MAP_CLICK,b),a.on("interact:selectFeature",E),a.on("interact:unselectFeature",w),s.onClick=m,c.onClick=function(){var e,o=(r.markers.getMarker("location")||{}).coords,i=n.selectionBounds,u=n.selectedFeatures;t.disabledButtons.has("selectDone")||(a.emit("interact:done",te(te(te({},o&&{coords:o}),!o&&u&&{selectedFeatures:u}),!o&&i&&{selectionBounds:i})),(null===(e=n.closeOnAction)||void 0===e||e)&&l())},f.onClick=function(){var e;a.emit("interact:cancel"),(null===(e=n.closeOnAction)||void 0===e||e)&&l()},function(){clearTimeout(v),c.onClick=null,s.onClick=null,f.onClick=null,document.removeEventListener("keydown",y),document.removeEventListener("keyup",h),a.off(i.MAP_CLICK,b),a.off("interact:selectFeature",E),a.off("interact:unselectFeature",w)}}({appState:t,pluginState:u,mapState:r,buttonConfig:i,events:d,eventBus:y,handleInteraction:m,closeApp:h})},[t,r,u,i,y,m]),null},reducer:{initialState:{enabled:!1,dataLayers:[],markerColor:null,interactionMode:null,multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectionBounds:null,closeOnAction:!0},actions:le},buttons:[{id:"selectAtTarget",label:"Select",iconId:"select",variant:"touch",hiddenWhen:function(e){var t=e.appState;return!e.pluginState.enabled||"touch"!==t.interfaceType},mobile:{slot:"actions",showLabel:!1},tablet:{slot:"actions",showLabel:!1},desktop:{slot:"actions",showLabel:!1}},{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:"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:"selectOrMark",group:"Select",title:"Select feature",command:"<kbd>Enter</kbd></dd>"}],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:fe(fe(fe({},Q),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})}}}}}]);
@@ -3,6 +3,7 @@ export const DEFAULTS = {
3
3
  interactionMode: 'marker',
4
4
  multiSelect: false,
5
5
  contiguous: false,
6
+ deselectOnClickOutside: false,
6
7
  markerColor: 'rgba(212,53,28,1)',
7
8
  selectedStroke: 'rgba(212,53,28,1)',
8
9
  selectedFill: 'rgba(255, 0, 0, 0.1)',
@@ -35,7 +35,11 @@ export function attachEvents ({
35
35
  }
36
36
 
37
37
  // Interaction Handlers
38
- const handleMapClick = (e) => handleInteraction(e)
38
+ // Defer click handling by one macrotask so any click that triggered the enable
39
+ // (e.g. finishing a draw gesture) fires before this handler is live.
40
+ let clickReady = false
41
+ const clickReadyTimer = setTimeout(() => { clickReady = true }, 0)
42
+ const handleMapClick = (e) => { if (clickReady) { handleInteraction(e) } }
39
43
  const handleSelectAtTarget = () => handleInteraction(mapState.crossHair.getDetail())
40
44
 
41
45
  const handleSelectDone = () => {
@@ -80,6 +84,7 @@ export function attachEvents ({
80
84
  selectCancel.onClick = handleSelectCancel
81
85
 
82
86
  return () => {
87
+ clearTimeout(clickReadyTimer)
83
88
  selectDone.onClick = null
84
89
  selectAtTarget.onClick = null
85
90
  selectCancel.onClick = null
@@ -4,6 +4,7 @@ describe('attachEvents', () => {
4
4
  let createParams, cleanup
5
5
 
6
6
  beforeEach(() => {
7
+ jest.useFakeTimers()
7
8
  // factory function to create fresh params for each test
8
9
  createParams = () => ({
9
10
  appState: { layoutRefs: { viewportRef: { current: document.body } }, disabledButtons: new Set() },
@@ -20,7 +21,10 @@ describe('attachEvents', () => {
20
21
  })
21
22
  })
22
23
 
23
- afterEach(() => cleanup?.())
24
+ afterEach(() => {
25
+ cleanup?.()
26
+ jest.useRealTimers()
27
+ })
24
28
 
25
29
  it('keyboard Enter triggers only on viewport', () => {
26
30
  const params = createParams()
@@ -61,15 +65,25 @@ describe('attachEvents', () => {
61
65
  expect(params.handleInteraction).not.toHaveBeenCalled()
62
66
  })
63
67
 
64
- it('map click triggers interaction', () => {
68
+ it('map click triggers interaction after timer fires', () => {
65
69
  const params = createParams()
66
70
  cleanup = attachEvents(params)
71
+ jest.runAllTimers()
67
72
 
68
73
  const handler = params.eventBus.on.mock.calls.find(c => c[0]==='map:click')[1]
69
- const clickData = { point:{x:1,y:2}, coords:[3,4] }
70
- handler(clickData)
74
+ handler({ point:{x:1,y:2}, coords:[3,4] })
75
+
76
+ expect(params.handleInteraction).toHaveBeenCalledWith({ point:{x:1,y:2}, coords:[3,4] })
77
+ })
71
78
 
72
- expect(params.handleInteraction).toHaveBeenCalledWith(clickData)
79
+ it('map click is suppressed immediately after enable before timer fires', () => {
80
+ const params = createParams()
81
+ cleanup = attachEvents(params)
82
+
83
+ const handler = params.eventBus.on.mock.calls.find(c => c[0]==='map:click')[1]
84
+ handler({ point:{x:1,y:2}, coords:[3,4] })
85
+
86
+ expect(params.handleInteraction).not.toHaveBeenCalled()
73
87
  })
74
88
 
75
89
  it('selectAtTarget triggers crosshair interaction', () => {
@@ -37,7 +37,7 @@ export const useInteractionHandlers = ({
37
37
  mapProvider,
38
38
  }) => {
39
39
  const { markers } = mapState
40
- const { dispatch, dataLayers, interactionMode, multiSelect, contiguous, markerColor, tolerance, selectedFeatures, selectionBounds } = pluginState
40
+ const { dispatch, dataLayers, interactionMode, multiSelect, contiguous, markerColor, tolerance, selectedFeatures, selectionBounds, deselectOnClickOutside } = pluginState
41
41
  const { eventBus } = services
42
42
  const layerConfigMap = buildLayerConfigMap(dataLayers)
43
43
 
@@ -64,6 +64,10 @@ export const useInteractionHandlers = ({
64
64
  dispatch({ type: 'CLEAR_SELECTED_FEATURES' })
65
65
  markers.add('location', coords, { color: markerColor })
66
66
  eventBus.emit('interact:markerchange', { coords })
67
+ } else if (deselectOnClickOutside) {
68
+ dispatch({ type: 'CLEAR_SELECTED_FEATURES' })
69
+ } else {
70
+ // No action
67
71
  }
68
72
 
69
73
  // Internal helper to keep complexity low
@@ -102,7 +106,8 @@ export const useInteractionHandlers = ({
102
106
  layerConfigMap,
103
107
  pluginState?.debug,
104
108
  tolerance,
105
- markerColor
109
+ markerColor,
110
+ deselectOnClickOutside
106
111
  ])
107
112
 
108
113
  useSelectionChangeEmitter(eventBus, selectedFeatures, selectionBounds)
@@ -219,6 +219,34 @@ describe('contiguous selection', () => {
219
219
  })
220
220
  })
221
221
 
222
+ /* ------------------------------------------------------------------ */
223
+ /* deselectOnClickOutside */
224
+ /* ------------------------------------------------------------------ */
225
+
226
+ describe('deselectOnClickOutside', () => {
227
+ beforeEach(() => {
228
+ featureQueries.getFeaturesAtPoint.mockReturnValue([])
229
+ featureQueries.findMatchingFeature.mockReturnValue(null)
230
+ })
231
+
232
+ it('clears selection when clicking outside a feature in select mode', () => {
233
+ const { result, deps } = setup({ deselectOnClickOutside: true })
234
+
235
+ click(result)
236
+
237
+ expect(deps.pluginState.dispatch).toHaveBeenCalledWith({ type: 'CLEAR_SELECTED_FEATURES' })
238
+ expect(deps.mapState.markers.add).not.toHaveBeenCalled()
239
+ })
240
+
241
+ it('does not clear selection when deselectOnClickOutside is false', () => {
242
+ const { result, deps } = setup({ deselectOnClickOutside: false })
243
+
244
+ click(result)
245
+
246
+ expect(deps.pluginState.dispatch).not.toHaveBeenCalled()
247
+ })
248
+ })
249
+
222
250
  /* ------------------------------------------------------------------ */
223
251
  /* Marker condition guard (FULL COVERAGE) */
224
252
  /* ------------------------------------------------------------------ */
@@ -27,4 +27,5 @@
27
27
  .im-c-button-wrapper--select-at-target {
28
28
  position: absolute;
29
29
  bottom: calc(100% + var(--primary-gap));
30
+ z-index: 0;
30
31
  }
@@ -16,28 +16,28 @@ export const manifest = {
16
16
  },
17
17
 
18
18
  buttons: [{
19
- id: 'selectDone',
20
- label: 'Done',
21
- variant: 'primary',
22
- excludeWhen: ({ appState, pluginState }) => !pluginState.enabled || !appState.isFullscreen,
23
- enableWhen: ({ mapState, pluginState }) => !!mapState.markers.items.some(m => m.id === 'location') || !!pluginState.selectionBounds,
19
+ id: 'selectAtTarget',
20
+ label: 'Select',
21
+ iconId: 'select',
22
+ variant: 'touch',
23
+ hiddenWhen: ({ appState, pluginState }) => !pluginState.enabled || appState.interfaceType !== 'touch',
24
24
  mobile: {
25
25
  slot: 'actions',
26
- showLabel: true
26
+ showLabel: false
27
27
  },
28
28
  tablet: {
29
29
  slot: 'actions',
30
- showLabel: true
30
+ showLabel: false
31
31
  },
32
32
  desktop: {
33
33
  slot: 'actions',
34
- showLabel: true
34
+ showLabel: false
35
35
  }
36
36
  },{
37
- id: 'selectAtTarget',
38
- label: 'Select',
39
- variant: 'primary',
40
- hiddenWhen: ({ appState, pluginState }) => !pluginState.enabled || !['touch', 'keyboard'].includes(appState.interfaceType),
37
+ id: 'selectCancel',
38
+ label: 'Back',
39
+ variant: 'tertiary',
40
+ hiddenWhen: ({ appConfig, appState, pluginState }) => !pluginState.enabled || !(['hybrid', 'buttonFirst'].includes(appConfig.behaviour) && appState.isFullscreen),
41
41
  mobile: {
42
42
  slot: 'actions',
43
43
  showLabel: true
@@ -51,10 +51,11 @@ export const manifest = {
51
51
  showLabel: true
52
52
  }
53
53
  },{
54
- id: 'selectCancel',
55
- label: 'Cancel',
56
- variant: 'tertiary',
57
- hiddenWhen: ({ appConfig, appState, pluginState }) => !pluginState.enabled || !(['hybrid', 'buttonFirst'].includes(appConfig.behaviour) && appState.isFullscreen),
54
+ id: 'selectDone',
55
+ label: 'Continue',
56
+ variant: 'primary',
57
+ excludeWhen: ({ appState, pluginState }) => !pluginState.enabled || !appState.isFullscreen,
58
+ enableWhen: ({ mapState, pluginState }) => !!mapState.markers.items.some(m => m.id === 'location') || !!pluginState.selectionBounds,
58
59
  mobile: {
59
60
  slot: 'actions',
60
61
  showLabel: true
@@ -76,6 +77,11 @@ export const manifest = {
76
77
  command: '<kbd>Enter</kbd></dd>'
77
78
  }],
78
79
 
80
+ icons: [{
81
+ id: 'select',
82
+ 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"/>'
83
+ }],
84
+
79
85
  api: {
80
86
  enable,
81
87
  disable,
@@ -26,7 +26,7 @@ describe('manifest', () => {
26
26
  manifest.buttons.forEach(b => {
27
27
  ['mobile','tablet','desktop'].forEach(dev => {
28
28
  expect(b[dev].slot).toBe('actions')
29
- expect(b[dev].showLabel).toBe(true)
29
+ expect(typeof b[dev].showLabel).toBe('boolean')
30
30
  })
31
31
  })
32
32
  })
@@ -5,6 +5,7 @@ const initialState = {
5
5
  interactionMode: null,
6
6
  multiSelect: false,
7
7
  contiguous: false,
8
+ deselectOnClickOutside: false,
8
9
  selectedFeatures: [],
9
10
  selectionBounds: null,
10
11
  closeOnAction: true // Done or Cancel
@@ -9,6 +9,7 @@ describe('initialState', () => {
9
9
  interactionMode: null,
10
10
  multiSelect: false,
11
11
  contiguous: false,
12
+ deselectOnClickOutside: false,
12
13
  selectedFeatures: [],
13
14
  selectionBounds: null,
14
15
  closeOnAction: true