@defra/interactive-map 0.0.43-alpha → 0.0.44-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 (159) hide show
  1. package/dist/css/index.css +1 -1
  2. package/dist/esm/im-core.js +1 -1
  3. package/dist/esm/im-shell.js +1 -1
  4. package/dist/umd/im-core.js +1 -1
  5. package/dist/umd/index.js +1 -1
  6. package/docs/api.md +16 -8
  7. package/docs/plugins/draw.md +1 -1
  8. package/package.json +1 -1
  9. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
  10. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
  11. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  12. package/plugins/beta/draw-ol/dist/esm/im-draw-ol-plugin.js +1 -1
  13. package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
  14. package/plugins/beta/map-styles/dist/umd/index.js +1 -1
  15. package/plugins/datasets/dist/css/index.css +1 -1
  16. package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
  17. package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
  18. package/plugins/datasets/src/components/LayersMenu/Layers.module.scss +1 -0
  19. package/plugins/datasets/src/initialise/DatasetsInit.jsx +2 -2
  20. package/plugins/datasets/src/initialise/DatasetsInit.test.jsx +6 -5
  21. package/plugins/draw/dist/esm/im-draw-ml-adapter.js +1 -1
  22. package/plugins/draw/dist/esm/im-draw-ol-adapter.js +1 -1
  23. package/plugins/draw/dist/esm/im-draw-plugin.js +1 -1
  24. package/plugins/draw/dist/esm/index.js +1 -1
  25. package/plugins/draw/dist/umd/im-draw-ml-adapter.js +1 -1
  26. package/plugins/draw/dist/umd/im-draw-ol-adapter.js +1 -1
  27. package/plugins/draw/dist/umd/im-draw-plugin.js +1 -1
  28. package/plugins/draw/dist/umd/index.js +1 -1
  29. package/plugins/draw/src/DrawInit.jsx +31 -26
  30. package/plugins/draw/src/DrawInit.test.jsx +55 -12
  31. package/plugins/draw/src/adapters/maplibre/MaplibreDrawAdapter.js +113 -114
  32. package/plugins/draw/src/adapters/maplibre/MaplibreDrawAdapter.test.js +82 -9
  33. package/plugins/draw/src/adapters/maplibre/drawEvents.js +3 -1
  34. package/plugins/draw/src/adapters/maplibre/modes/createDrawMode.test.js +1 -1
  35. package/plugins/draw/src/adapters/maplibre/modes/drawMode/__helpers__/harness.js +18 -9
  36. package/plugins/draw/src/adapters/maplibre/modes/drawMode/clickHandlers.js +9 -1
  37. package/plugins/draw/src/adapters/maplibre/modes/drawMode/clickHandlers.test.js +11 -1
  38. package/plugins/draw/src/adapters/maplibre/modes/drawMode/lifecycle.js +8 -2
  39. package/plugins/draw/src/adapters/maplibre/modes/drawMode/lifecycle.test.js +35 -0
  40. package/plugins/draw/src/adapters/maplibre/modes/drawMode/pointerHandlers.js +29 -19
  41. package/plugins/draw/src/adapters/maplibre/modes/drawMode/pointerHandlers.test.js +17 -2
  42. package/plugins/draw/src/adapters/maplibre/modes/drawMode/undoHandlers.test.js +1 -1
  43. package/plugins/draw/src/adapters/maplibre/modes/drawPointMode.js +35 -29
  44. package/plugins/draw/src/adapters/maplibre/modes/drawPointMode.test.js +24 -6
  45. package/plugins/draw/src/adapters/maplibre/modes/editPointMode/keyboardHandlers.js +22 -20
  46. package/plugins/draw/src/adapters/maplibre/modes/editPointMode/pointOperations.js +1 -1
  47. package/plugins/draw/src/adapters/maplibre/modes/editPointMode.js +2 -2
  48. package/plugins/draw/src/adapters/maplibre/modes/editPointMode.test.js +3 -3
  49. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/geometryHelpers.js +31 -0
  50. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/geometryHelpers.test.js +8 -1
  51. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/keyboardHandlers.js +38 -30
  52. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/keyboardHandlers.test.js +20 -3
  53. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/pointerHandlers.js +5 -5
  54. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/touchHandlers.js +2 -2
  55. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/touchHandlers.test.js +2 -2
  56. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/undoHandlers.js +3 -3
  57. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/undoHandlers.test.js +7 -7
  58. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexOperations.js +4 -4
  59. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexOperations.test.js +14 -14
  60. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexQueries.js +12 -32
  61. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexQueries.test.js +10 -10
  62. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode.js +48 -22
  63. package/plugins/draw/src/adapters/maplibre/modes/editVertexMode.test.js +74 -6
  64. package/plugins/draw/src/adapters/maplibre/utils/snapMovement.js +2 -2
  65. package/plugins/draw/src/adapters/openlayers/OLDrawAdapter.js +6 -0
  66. package/plugins/draw/src/adapters/openlayers/OLDrawAdapter.test.js +9 -0
  67. package/plugins/draw/src/adapters/openlayers/core/OLDrawManager.js +15 -2
  68. package/plugins/draw/src/adapters/openlayers/core/OLDrawManager.test.js +27 -1
  69. package/plugins/draw/src/adapters/openlayers/draw/DrawMode.test.js +1 -1
  70. package/plugins/draw/src/adapters/openlayers/draw/drawInput.js +31 -17
  71. package/plugins/draw/src/adapters/openlayers/draw/drawInput.test.js +55 -1
  72. package/plugins/draw/src/adapters/openlayers/draw/vertexPlacement.js +13 -7
  73. package/plugins/draw/src/adapters/openlayers/draw/vertexPlacement.test.js +7 -15
  74. package/plugins/draw/src/adapters/openlayers/edit/EditMode.js +36 -4
  75. package/plugins/draw/src/adapters/openlayers/edit/EditMode.test.js +41 -1
  76. package/plugins/draw/src/adapters/openlayers/edit/keyboardHandler.js +35 -25
  77. package/plugins/draw/src/adapters/openlayers/edit/keyboardHandler.test.js +40 -2
  78. package/plugins/draw/src/adapters/openlayers/edit/nudge.js +2 -2
  79. package/plugins/draw/src/adapters/openlayers/edit/nudge.test.js +2 -2
  80. package/plugins/draw/src/adapters/openlayers/point/drawPointMode.js +32 -57
  81. package/plugins/draw/src/adapters/openlayers/point/drawPointMode.test.js +14 -13
  82. package/plugins/draw/src/adapters/openlayers/point/editPointMode.js +1 -1
  83. package/plugins/draw/src/adapters/openlayers/point/editPointMode.test.js +17 -1
  84. package/plugins/draw/src/events.js +4 -4
  85. package/plugins/draw/src/events.test.js +1 -1
  86. package/plugins/draw/src/hooks/useSpatialList.js +180 -0
  87. package/plugins/draw/src/hooks/useSpatialList.test.js +339 -0
  88. package/plugins/draw/src/utils/spatial.js +1 -31
  89. package/plugins/draw/src/utils/spatial.test.js +1 -24
  90. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  91. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  92. package/plugins/interact/dist/umd/index.js +1 -1
  93. package/plugins/interact/src/InteractInit.jsx +2 -2
  94. package/plugins/interact/src/InteractInit.test.js +3 -3
  95. package/plugins/interact/src/events.js +5 -0
  96. package/plugins/interact/src/hooks/useAttachEvents.js +20 -0
  97. package/plugins/interact/src/hooks/useAttachEvents.test.js +44 -1
  98. package/plugins/interact/src/hooks/useCrossHairVisibility.js +4 -4
  99. package/plugins/interact/src/hooks/useCrossHairVisibility.test.js +7 -7
  100. package/plugins/interact/src/hooks/{useMapItemList.js → useSpatialList.js} +87 -52
  101. package/plugins/interact/src/hooks/{useMapItemList.test.js → useSpatialList.test.js} +152 -71
  102. package/plugins/interact/src/manifest.js +12 -1
  103. package/plugins/interact/src/manifest.test.js +20 -0
  104. package/plugins/interact/src/utils/spatial.js +1 -1
  105. package/providers/beta/openlayers/src/utils/queryFeatures.js +1 -1
  106. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
  107. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  108. package/providers/maplibre/dist/umd/index.js +1 -1
  109. package/providers/maplibre/src/utils/labels.js +2 -2
  110. package/providers/maplibre/src/utils/labels.test.js +5 -5
  111. package/providers/maplibre/src/utils/spatial.js +0 -57
  112. package/providers/maplibre/src/utils/spatial.test.js +0 -27
  113. package/src/App/components/CrossHair/CrossHair.jsx +10 -4
  114. package/src/App/components/CrossHair/CrossHair.module.scss +16 -12
  115. package/src/App/components/CrossHair/CrossHair.test.jsx +9 -4
  116. package/src/App/components/Hints/Hints.jsx +3 -3
  117. package/src/App/components/Hints/Hints.test.jsx +3 -3
  118. package/src/App/components/MapButton/MapButton.module.scss +1 -2
  119. package/src/App/components/{MoveControls/MoveControls.jsx → MapControls/MapControls.jsx} +10 -10
  120. package/src/App/components/{MoveControls/MoveControls.module.scss → MapControls/MapControls.module.scss} +25 -25
  121. package/src/App/components/{MoveControls/MoveControls.test.jsx → MapControls/MapControls.test.jsx} +48 -48
  122. package/src/App/components/Markers/Markers.jsx +2 -2
  123. package/src/App/components/Markers/Markers.test.jsx +3 -3
  124. package/src/App/components/Markers/SymbolMarker.test.jsx +2 -2
  125. package/src/App/components/Viewport/MapStatus.jsx +1 -1
  126. package/src/App/components/Viewport/SpatialList.jsx +47 -0
  127. package/src/App/components/Viewport/{Features.module.scss → SpatialList.module.scss} +3 -3
  128. package/src/App/components/Viewport/{Features.test.jsx → SpatialList.test.jsx} +60 -43
  129. package/src/App/components/Viewport/Viewport.jsx +20 -10
  130. package/src/App/components/Viewport/Viewport.test.jsx +18 -2
  131. package/src/App/hooks/useCrossHairAPI.js +5 -5
  132. package/src/App/hooks/useCrossHairAPI.test.js +5 -5
  133. package/src/App/hooks/useHintsAPI.js +5 -5
  134. package/src/App/hooks/useSpatialListFocus.js +296 -0
  135. package/src/App/hooks/{useFeatureFocus.test.js → useSpatialListFocus.test.js} +318 -163
  136. package/src/App/hooks/useSpatialListItems.js +51 -0
  137. package/src/App/hooks/useSpatialListItems.test.js +217 -0
  138. package/src/App/initialiseApp.js +6 -3
  139. package/src/App/initialiseApp.test.js +11 -0
  140. package/src/App/registry/spatialListRegistry.js +104 -0
  141. package/src/App/registry/spatialListRegistry.test.js +218 -0
  142. package/src/App/store/AppProvider.jsx +3 -2
  143. package/src/config/appConfig.js +14 -14
  144. package/src/config/appConfig.test.js +19 -19
  145. package/src/config/defaults.js +2 -2
  146. package/src/config/events.js +8 -8
  147. package/src/scss/main.scss +2 -2
  148. package/src/test-utils.js +8 -0
  149. package/src/types.js +11 -9
  150. package/src/utils/findNearestItemInDirection.js +29 -0
  151. package/src/utils/findNearestItemInDirection.test.js +67 -0
  152. package/src/utils/globalAltShortcuts.js +12 -0
  153. package/src/utils/globalAltShortcuts.test.js +27 -0
  154. package/src/utils/spatialNavigate.js +49 -0
  155. package/src/utils/spatialNavigate.test.js +42 -0
  156. package/src/App/components/Viewport/Features.jsx +0 -49
  157. package/src/App/hooks/useFeatureFocus.js +0 -257
  158. package/src/App/hooks/useFeatureItems.js +0 -39
  159. package/src/App/hooks/useFeatureItems.test.js +0 -155
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{701(e,t,r){r.r(t),r.d(t,{manifest:()=>ot});var n=r(738),o={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_SHOW_HINT:"app:showhint",APP_DISMISS_HINT:"app:dismisshint",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_FEATURES_SUPPRESSED:"map:setfeaturessuppressed",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!s(e[0])||!s(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function u(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const f=11102230246251565e-32,p=134217729,d=(3+8*f)*f;function y(e,t,r,n,o){let i,a,u,l,c=t[0],s=n[0],f=0,p=0;s>c==s>-c?(i=c,c=t[++f]):(i=s,s=n[++p]);let d=0;if(f<e&&p<r)for(s>c==s>-c?(a=c+i,u=i-(a-c),c=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[d++]=u);f<e&&p<r;)s>c==s>-c?(a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f]):(a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p]),i=a,0!==u&&(o[d++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[d++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[d++]=u);return 0===i&&0!==d||(o[d++]=i),d}function m(e){return new Float64Array(e)}const v=m(4),b=m(8),g=m(12),h=m(16),E=m(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,f,m,S,P,A,O,T,w,_,M,I,k,L,C;const R=e-o,j=r-o,D=t-i,F=n-i;M=R*F,m=p*R,S=m-(m-R),P=R-S,m=p*F,A=m-(m-F),O=F-A,I=P*O-(M-S*A-P*A-S*O),k=D*j,m=p*D,S=m-(m-D),P=D-S,m=p*j,A=m-(m-j),O=j-A,L=P*O-(k-S*A-P*A-S*O),T=I-L,f=I-T,v[0]=I-(T+f)+(f-L),w=M+T,f=w-M,_=M-(w-f)+(T-f),T=_-k,f=_-T,v[1]=_-(T+f)+(f-k),C=w+T,f=C-w,v[2]=w-(C-f)+(T-f),v[3]=C;let x=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,v),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(f=e-R,u=e-(R+f)+(f-o),f=r-j,c=r-(j+f)+(f-o),f=t-D,l=t-(D+f)+(f-i),f=n-F,s=n-(F+f)+(f-i),0===u&&0===l&&0===c&&0===s)return x;if(B=11093356479670487e-47*a+d*Math.abs(x),x+=R*s+F*u-(D*c+j*l),x>=B||-x>=B)return x;M=u*F,m=p*u,S=m-(m-u),P=u-S,m=p*F,A=m-(m-F),O=F-A,I=P*O-(M-S*A-P*A-S*O),k=l*j,m=p*l,S=m-(m-l),P=l-S,m=p*j,A=m-(m-j),O=j-A,L=P*O-(k-S*A-P*A-S*O),T=I-L,f=I-T,E[0]=I-(T+f)+(f-L),w=M+T,f=w-M,_=M-(w-f)+(T-f),T=_-k,f=_-T,E[1]=_-(T+f)+(f-k),C=w+T,f=C-w,E[2]=w-(C-f)+(T-f),E[3]=C;const G=y(4,v,4,E,b);M=R*s,m=p*R,S=m-(m-R),P=R-S,m=p*s,A=m-(m-s),O=s-A,I=P*O-(M-S*A-P*A-S*O),k=D*c,m=p*D,S=m-(m-D),P=D-S,m=p*c,A=m-(m-c),O=c-A,L=P*O-(k-S*A-P*A-S*O),T=I-L,f=I-T,E[0]=I-(T+f)+(f-L),w=M+T,f=w-M,_=M-(w-f)+(T-f),T=_-k,f=_-T,E[1]=_-(T+f)+(f-k),C=w+T,f=C-w,E[2]=w-(C-f)+(T-f),E[3]=C;const N=y(G,b,4,E,g);M=u*s,m=p*u,S=m-(m-u),P=u-S,m=p*s,A=m-(m-s),O=s-A,I=P*O-(M-S*A-P*A-S*O),k=l*c,m=p*l,S=m-(m-l),P=l-S,m=p*c,A=m-(m-c),O=c-A,L=P*O-(k-S*A-P*A-S*O),T=I-L,f=I-T,E[0]=I-(T+f)+(f-L),w=M+T,f=w-M,_=M-(w-f)+(T-f),T=_-k,f=_-T,E[1]=_-(T+f)+(f-k),C=w+T,f=C-w,E[2]=w-(C-f)+(T-f),E[3]=C;const H=y(N,g,4,E,h);return h[H-1]}(e,t,r,n,o,i,c)}function P(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],d=e[1],y=t.length;for(r=0;r<y;r++){n=0;var m=t[r],v=m.length-1;if((c=m[0])[0]!==m[v][0]&&c[1]!==m[v][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<v;n++){if(u=(s=m[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 A(e){return"Feature"===e.type?e.geometry:e}function O(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=A(t),i=o.type,a=t.bbox;let u=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(u=[u]);let l=!1;for(var c=0;c<u.length;++c){const e=P(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(8),m(8),m(8),m(4),m(8),m(8),m(8),m(12),m(192),m(192),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(8),m(8),m(8),m(8),m(8),m(8),m(8),m(8),m(8),m(4),m(4),m(4),m(8),m(16),m(16),m(16),m(32),m(32),m(48),m(64),m(1152),m(1152),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(1152),m(1152),m(1152),m(1152),m(1152),m(2304),m(2304),m(3456),m(5760),m(8),m(8),m(8),m(16),m(24),m(48),m(48),m(96),m(192),m(384),m(384),m(384),m(768),m(96),m(96),m(96),m(1152);class T{constructor(e=[],t=w){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 w(e,t){return e<t?-1:e>t?1:0}function _(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function M(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class 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 k=0,L=0,C=0;function R(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;L+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new I(o,k,L,C),l=new I(i,k,L,C+1);u.otherEvent=l,l.otherEvent=u,_(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,C+=1}}k+=1}class j{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 F(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let u=[];"FeatureCollection"===e.type?u=u.concat(e.features):"Feature"===e.type?u.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||u.push(i(e)),"FeatureCollection"===t.type?u=u.concat(t.features):"Feature"===t.type?u.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||u.push(i(t));const c=function(e,t){const r=new T([],_);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)R(r[e],t)}else R(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new T([],M);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new j(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const u=D(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(l(u),o);let s=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,s.push(t))})}else s=c;return l(s.map(e=>a(e)))}function x(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,d="FeatureCollection"===e.type,y="Feature"===e.type,m=d?e.features.length:1;for(r=0;r<m;r++){for(u=d?e.features[r].geometry:y?e.geometry:e,c=d?e.features[r].properties:y?e.properties:{},s=d?e.features[r].bbox:y?e.bbox:void 0,f=d?e.features[r].id:y?e.id:void 0,a=(l=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,c,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,c,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,c,s,f))return!1;p++}}(e,function(e,r,n,o,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var s=e.coordinates[c];if(!1===t(i({type:u,coordinates:s},n),r,c))return!1}})}function B(e,t={}){const r=A(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return G(A(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=A(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(G(e,n))}),l(o)}(r,t);default:throw new Error("invalid poly")}}function G(e,t){return e.length>1?c(e,t):u(e[0],t)}function N(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(U(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function H(e,t,r){for(const r of t.coordinates)if(O(r,e))return!0;return F(t,B(e),{ignoreSelfIntersections:r}).features.length>0}function U(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 K(e,t,r){if(null!==e)for(var n,o,i,a,u,l,c,s,f=0,p=0,d=e.type,y="FeatureCollection"===d,m="Feature"===d,v=y?e.features.length:1,b=0;b<v;b++){u=(s=!!(c=y?e.features[b].geometry:m?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var g=0;g<u;g++){var h=0,E=0;if(null!==(a=s?c.geometries[g]:c)){l=a.coordinates;var S=a.type;switch(f=!r||"Polygon"!==S&&"MultiPolygon"!==S?0:1,S){case null:break;case"Point":if(!1===t(l,p,b,h,E))return!1;p++,h++;break;case"LineString":case"MultiPoint":for(n=0;n<l.length;n++){if(!1===t(l[n],p,b,h,E))return!1;p++,"MultiPoint"===S&&h++}"LineString"===S&&h++;break;case"Polygon":case"MultiLineString":for(n=0;n<l.length;n++){for(o=0;o<l[n].length-f;o++){if(!1===t(l[n][o],p,b,h,E))return!1;p++}"MultiLineString"===S&&h++,"Polygon"===S&&E++}"Polygon"===S&&h++;break;case"MultiPolygon":for(n=0;n<l.length;n++){for(E=0,o=0;o<l[n].length;o++){for(i=0;i<l[n][o].length-f;i++){if(!1===t(l[n][o][i],p,b,h,E))return!1;p++}E++}h++}break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===K(a.geometries[n],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}var V=function(e,t={}){if(null!=e.bbox&&!0!==t.recompute)return e.bbox;const r=[1/0,1/0,-1/0,-1/0];return K(e,e=>{r[0]>e[0]&&(r[0]=e[0]),r[1]>e[1]&&(r[1]=e[1]),r[2]<e[0]&&(r[2]=e[0]),r[3]<e[1]&&(r[3]=e[1])}),r};function W(e){return function(e){if(Array.isArray(e))return Y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||z(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 z(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}}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}function q(e){var t=e.geometry||e;switch(t.type){case"Polygon":return function(e,t,r={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return i({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return u(t.coordinates);case"MultiLineString":return c(t.coordinates);case"Point":return a(t.coordinates);case"MultiPoint":return function(e,t,r={}){return i({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function X(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return x(e,e=>{x(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!N(t,e);case"Polygon":return!O(e,t)}break;case"LineString":switch(t.type){case"Point":return!N(e,t);case"LineString":return!function(e,t,r){return F(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!H(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!O(t,e);case"LineString":return!H(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(O(r,t))return!0;for(const r of t.coordinates[0])if(O(r,e))return!0;return F(B(e),B(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(q(t),q(e))})}function $(e){if(e.length<2)return!1;if(e.some(function(e){var t,r;return!("Polygon"===(r=null===(t=e.geometry)||void 0===t?void 0:t.type)||"MultiPolygon"===r)}))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]});X(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(e,t)||J(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(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}}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 ee={".cold":".hot",".hot":".cold"},te=function(e){for(var t=0,r=Object.entries(ee);t<r.length;t++){var n=Z(r[t],2),o=n[0],i=n[1];if(e.endsWith(o))return"".concat(e.slice(0,-o.length)).concat(i)}return null},re=function(e){var t,r={},n=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=J(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;r[o.layerId]=o;var i=te(o.layerId);i&&(r[i]=o)}}catch(e){n.e(e)}finally{n.f()}return r},ne=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},oe=function(e){var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r};r(287);new Map;var ie=Object.freeze({SIDE:"side",HEADER:"header",BANNER:"banner",TOP_LEFT:"top-left",TOP_MIDDLE:"top-middle",TOP_RIGHT:"top-right",LEFT_TOP:"left-top",LEFT_BOTTOM:"left-bottom",MIDDLE:"middle",RIGHT_TOP:"right-top",RIGHT_BOTTOM:"right-bottom",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",DRAWER:"drawer",ACTIONS:"actions",MODAL:"modal"});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){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?ue(Object(r),!0).forEach(function(t){ce(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ue(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ce(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}Object.freeze({control:[ie.HEADER,ie.BANNER,ie.TOP_LEFT,ie.TOP_RIGHT,ie.MIDDLE,ie.RIGHT_TOP,ie.RIGHT_BOTTOM,ie.BOTTOM_RIGHT,ie.DRAWER,ie.ACTIONS],panel:[ie.SIDE,ie.HEADER,ie.BANNER,ie.LEFT_TOP,ie.LEFT_BOTTOM,ie.MIDDLE,ie.RIGHT_TOP,ie.RIGHT_BOTTOM,ie.DRAWER,ie.MODAL],button:[ie.TOP_LEFT,ie.TOP_MIDDLE,ie.TOP_RIGHT,ie.LEFT_TOP,ie.LEFT_BOTTOM,ie.RIGHT_TOP,ie.RIGHT_BOTTOM,ie.BOTTOM_LEFT,ie.BOTTOM_RIGHT,ie.ACTIONS]}),new Set(["menu","listbox","tree","grid","dialog"]);var se={slot:"middle",open:!1,dismissible:!0,modal:!0},fe=(le({},se),le(le({},se),{},{width:"500px"}),le(le({},se),{},{width:"500px"}),{small:1,medium:1.5,large:2}),pe=(new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),function(e){return!(!e.label||e.symbol||e.symbolSvgContent||null!==e.symbol&&null!==e.symbolSvgContent)});function de(e){return de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},de(e)}function 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 me(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){ve(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 ve(e,t,r){return(t=function(e){var t=function(e){if("object"!=de(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=de(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==de(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function be(e){return function(e){if(Array.isArray(e))return he(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ge(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 ge(e,t){if(e){if("string"==typeof e)return he(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)?he(e,t):void 0}}function he(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 Ee=function(e,t,r,n){return{featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}},Se=function(e){var t=e.mapProvider,r=e.layers,o=e.interactionModes,i=e.multiSelect,a=e.dispatch,u=e.markers,l=e.layerConfigMap,c=e.debug,s=e.tolerance,f=e.processFeatureMatch,p=e.processFallback,d=e.scale;return(0,n.useCallback)(function(e){var n=e.point,y=e.coords,m=c?ne(t,n,{radius:s}):null;if(m&&function(e,t){var r,n,o=(n=2,function(e){if(Array.isArray(e))return e}(r=e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(r,n)||ge(r,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],a=o[1];console.groupCollapsed("[interact] click (".concat(i.toFixed(4),", ").concat(a.toFixed(4),") — ").concat(t.length," feature").concat(1!==t.length?"s":"")),t.forEach(function(e){var t,r;console.log({layer:e.layer.id,type:e.layer.type,id:null!==(t=e.id)&&void 0!==t?t:"—",sourceLayer:null!==(r=e.sourceLayer)&&void 0!==r?r:"—",properties:e.properties})}),console.groupEnd()}(y,m),o.includes("selectMarker")){var v=function(e,t,r){var n,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=ge(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e.items);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=null===(i=e.markerRefs)||void 0===i?void 0:i.get(a.id);if(u&&!pe(a)){var l=u.closest(".im-c-viewport__markers")||u.parentElement,c=l?l.getBoundingClientRect():{left:0,top:0},s=u.getBoundingClientRect(),f=s.left,p=s.top,d=s.right,y=s.bottom,m=t.x*r,v=t.y*r;if(m>=f-c.left&&m<=d-c.left&&v>=p-c.top&&v<=y-c.top)return a.id}}}catch(e){o.e(e)}finally{o.f()}return null}(u,n,d);if(v)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:v,multiSelect:i}})}if(o.includes("selectFeature")&&r.length>0){var b=function(e,t){var r=e.filter(function(e){var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(oe);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null}(null!=m?m:ne(t,n,{radius:s}),l);if(b)return void f(b)}p({coords:y})},[t,r,o,i,a,u,l,c,s,f,p,d])},Pe=function(e){var t,r=e.mapState,o=e.pluginState,i=e.services,a=e.mapProvider,u=r.markers,l=r.mapSize,c=o.dispatch,s=o.layers,f=o.interactionModes,p=o.multiSelect,d=o.contiguous,y=o.marker,m=o.tolerance,v=o.selectedFeatures,b=o.selectedMarkers,g=o.deselectOnClickOutside,h=i.eventBus,E=re(s),S=null!==(t=fe[l])&&void 0!==t?t:1,P=(0,n.useCallback)(function(e){var t,r,n,o=e.feature,i=e.config;u.remove("location");var l=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=l){var s=null===(n=a.getFeatureGeometry)||void 0===n?void 0:n.call(a,i.layerId,l,i.idProperty),f=s?me(me({},o),{},{geometry:s}):o;if(d&&p&&function(e){var t,r=e.featureId,n=e.feature,o=e.config,i=e.selectedFeatures,a=e.dispatch,u=e.multiSelect;if(!i.length)return!1;var l=i.findIndex(function(e){return e.featureId===r&&e.layerId===o.layerId});if(-1!==l){if(i.length<3)return!1;var c=function(e){for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++){var o;if(!t.has(n)){var i=be(t).map(function(t){return e[t]});null!==(o=e[n].geometry)&&void 0!==o&&o.type&&X(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:be(t).map(function(t){return e[t]})}(i.filter(function(e,t){return t!==l}));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var s=i.filter(function(e){var t;return null===(t=e.geometry)||void 0===t?void 0:t.type});return!(null===(t=n.geometry)||void 0===t||!t.type||!s.length||X(n,s)||(a({type:"TOGGLE_SELECTED_FEATURES",payload:me(me({},Ee(r,u,o,n)),{},{replaceAll:!0})}),0))}({featureId:l,feature:f,config:i,selectedFeatures:v,dispatch:c,multiSelect:p}))return;c({type:"TOGGLE_SELECTED_FEATURES",payload:Ee(l,p,i,f)})}},[u,c,p,d,v,a]),A=(0,n.useCallback)(function(e){var t=e.coords,r=f.includes("placeMarker");(r||g)&&(c({type:"CLEAR_SELECTED_FEATURES"}),r&&(u.add("location",t,y),h.emit("interact:markerchange",{coords:t})))},[f,c,u,y,h,g]),O=Se({mapProvider:a,layers:s,interactionModes:f,multiSelect:p,dispatch:c,markers:u,layerConfigMap:E,debug:null==o?void 0:o.debug,tolerance:m,processFeatureMatch:P,processFallback:A,scale:S});return function(e,t,r){var o=(0,n.useRef)(null);(0,n.useEffect)(function(){var n=o.current;(null===n||0===n.features.length&&0===n.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t.map(function(e){var t=e.featureId,r=e.layerId,n=e.idProperty,o=e.properties,i=e.geometry;return{featureId:t,layerId:r,idProperty:n,properties:o,geometryType:null==i?void 0:i.type}}),selectedMarkers:r,contiguous:$(t)}),o.current={features:t,markers:r})},[t,r])}(h,v,b),{handleInteraction:O}};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 Oe(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?Oe(Object(r),!0).forEach(function(t){we(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Oe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function we(e,t,r){return(t=function(e){var t=function(e){if("object"!=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}function _e(e){return function(e){if(Array.isArray(e))return ke(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ie(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 Me(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ie(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 Ie(e,t){if(e){if("string"==typeof e)return ke(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)?ke(e,t):void 0}}function ke(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 Le=function(e,t){var r,n;return t?null!==(r=null===(n=e.properties)||void 0===n?void 0:n[t.idProperty])&&void 0!==r?r:e.id:null},Ce=function(e){var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),o=n.left,i=n.right,a=n.top,u=n.bottom;return i>r.left&&o<r.right&&u>r.top&&a<r.bottom},Re=function(e,t,r){var n=e.mapToScreen(r),o=n.x,i=n.y;return{x:o*fe[t],y:i*fe[t]}},je=function(e,t,r,n,o){var i,a,u,l=t[null===(i=e.layer)||void 0===i?void 0:i.id];if(null==l||!l.labelProperty)return null;var c=Le(e,l),s=null==c?null:String(c);if(null==s||r.has(s))return null;r.add(s);var f={id:s,label:null!==(a=null===(u=e.properties)||void 0===u?void 0:u[l.labelProperty])&&void 0!==a?a:s},p=function(e){try{var t=(o=V(q(e)),i=4,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(o,i)||z(o,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=t[0],n=t[1];return[(r+t[2])/2,(n+t[3])/2]}catch(e){return null}var o,i}(e);return p&&Object.assign(f,Re(n,o,p)),f};function De(e){var t=e.mapState,r=e.pluginState,i=e.services,a=e.mapProvider,u=t.markers,l=t.mapSize,c=r.dispatch,s=r.interactionModes,f=r.layers,p=r.multiSelect,d=i.eventBus,y=(0,n.useRef)(null);(function(e){var t=e.markers,r=e.mapSize,i=e.interactionModes,a=e.layers,u=e.mapProvider,l=e.multiSelect,c=e.eventBus;(0,n.useEffect)(function(){var e=function(){var e=[];null!=i&&i.includes("selectMarker")&&e.push.apply(e,_e(function(e,t,r){var n,o=[],i=Me(e.items);try{for(i.s();!(n=i.n()).done;){var a,u=n.value;if(u.label){var l=null===(a=e.markerRefs)||void 0===a?void 0:a.get(u.id);if(!pe(u)&&l&&Ce(l)){var c={id:u.id,label:u.label};u.coords&&Object.assign(c,Re(t,r,u.coords)),o.push(c)}}}}catch(e){i.e(e)}finally{i.f()}return o}(t,u,r))),null!=i&&i.includes("selectFeature")&&a.length>0&&e.push.apply(e,_e(function(e,t,r){var n,o=[],i=new Set,a=t.map(function(e){return e.layerId}),u=re(t),l=Me(e.getVisibleFeatures(a));try{for(l.s();!(n=l.n()).done;){var c=n.value,s=je(c,u,i,e,r);s&&o.push(s)}}catch(e){l.e(e)}finally{l.f()}return o}(u,a,r))),c.emit(o.MAP_SET_FEATURES,{items:e,multiselectable:l})};return e(),c.on(o.MAP_MOVE_END,e),c.on(o.MAP_DATA_CHANGE,e),function(){c.off(o.MAP_MOVE_END,e),c.off(o.MAP_DATA_CHANGE,e)}},[t,r,i,a,u,l,c])})({markers:u,mapSize:l,interactionModes:s,layers:f,mapProvider:a,multiSelect:p,eventBus:d}),function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.eventBus,l=e.dispatch,c=e.listboxActiveItemRef;(0,n.useEffect)(function(){var e=function(e){var n=e.id;if(null===n)return c.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.some(function(e){return e.id===n}))return c.current={id:n,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&i.length>0){var o=i.map(function(e){return e.layerId}),u=re(i),s=function(e,t,r){var n,o=Me(e);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=t[null===(i=a.layer)||void 0===i?void 0:i.id],l=Le(a,u);if(null!=l&&String(l)===String(r))return{feature:a,config:u,rawId:l}}}catch(e){o.e(e)}finally{o.f()}return null}(a.getVisibleFeatures(o),u,n);if(s){var f={featureId:s.rawId,layerId:s.config.layerId,idProperty:s.config.idProperty,geometry:s.feature.geometry};c.current=Te(Te({id:n,isMarker:!1},f),{},{properties:s.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:f})}}};return u.on(o.MAP_SET_ACTIVE_FEATURE,e),function(){u.off(o.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,i,a,u,l,c])}({markers:u,interactionModes:s,layers:f,mapProvider:a,eventBus:d,dispatch:c,listboxActiveItemRef:y}),function(e){var t=e.eventBus,r=e.dispatch,i=e.listboxActiveItemRef,a=e.multiSelect;(0,n.useEffect)(function(){var e=function(){var e=i.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:a}});else{var t=e.featureId,n=e.layerId,o=e.idProperty,u=e.geometry,l=e.properties;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:n,idProperty:o,geometry:u,properties:l,multiSelect:a,replaceAll:!a}})}};return t.on(o.MAP_SELECT_FEATURE,e),function(){t.off(o.MAP_SELECT_FEATURE,e)}},[t,r,i,a])}({eventBus:d,dispatch:c,listboxActiveItemRef:y,multiSelect:p})}function Fe(e){return Fe="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},Fe(e)}var xe=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===Fe(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},Be={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}};function Ge(e){return Ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ge(e)}function 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 He(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){Ue(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 Ue(e,t,r){return(t=function(e){var t=function(e){if("object"!=Ge(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ge(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ge(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ke=function(e){return!("Enter"!==e.key||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)};var Ve=function(e){return 1===(null==e?void 0:e.length)&&e.includes("selectMarker")};function We(e){return We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}function ze(e){return function(e){if(Array.isArray(e))return Ye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ye(e,t):void 0}}(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 Ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function qe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Xe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?qe(Object(r),!0).forEach(function(t){$e(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function $e(e,t,r){return(t=function(e){var t=function(e){if("object"!=We(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=We(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==We(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ze={ENABLE:function(e,t){return Xe(Xe(Xe({},e),t),{},{enabled:!0})},DISABLE:function(e){return Xe(Xe({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],listboxActiveItem:null})},TOGGLE_SELECTED_FEATURES:function(e,t){var r=t.featureId,n=t.multiSelect,o=t.layerId,i=t.idProperty,a=t.addToExisting,u=void 0===a||a,l=t.replaceAll,c=void 0!==l&&l,s=t.properties,f=t.geometry,p=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],d=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var y=p.filter(function(e,t){return t!==d});return Xe(Xe({},e),{},{selectedFeatures:y})}var m,v={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=ze(p);-1===d?b.push(v):b.splice(d,1),m=b}else m=-1!==d&&1===p.length?[]:[v];return Xe(Xe({},e),{},{selectedFeatures:m,selectedMarkers:n&&!c?e.selectedMarkers:[]})},TOGGLE_SELECTED_MARKERS:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(function(e){return e!==r}):[].concat(ze(o),[r]);return Xe(Xe({},e),{},{selectedMarkers:a})}return Xe(Xe({},e),{},{selectedFeatures:[],selectedMarkers:i&&1===o.length?[]:[r]})},CLEAR_SELECTED_FEATURES:function(e){return Xe(Xe({},e),{},{selectedFeatures:[],selectedMarkers:[]})},SET_SELECTED_FEATURES:function(e,t){return Xe(Xe({},e),{},{selectedFeatures:t})},SELECT_MARKER:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[].concat(ze(o),[r]):[r];return Xe(Xe({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectedMarkers:i})},UNSELECT_MARKER:function(e,t){var r=t.markerId,n=e.selectedMarkers;return n.includes(r)?Xe(Xe({},e),{},{selectedMarkers:n.filter(function(e){return e!==r})}):e},SET_LISTBOX_ACTIVE:function(e,t){return Xe(Xe({},e),{},{listboxActiveItem:null!=t?t:null})}},Je={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};function Qe(e){return Qe="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},Qe(e)}function et(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 tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach(function(t){rt(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function rt(e,t,r){return(t=function(e){var t=function(e){if("object"!=Qe(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Qe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Qe(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var nt="Select",ot={InitComponent:function(e){var t=e.appState,r=e.mapState,i=e.services,a=e.buttonConfig,u=e.mapProvider,l=e.pluginState,c=l.enabled,s=l.selectedFeatures,f=l.interactionModes,p=l.layers,d=i.eventBus,y=r.crossHair,m=r.mapStyle,v=r.markers,b=Ve(f);De({mapState:r,pluginState:l,services:i,mapProvider:u});var g=Pe({appState:t,mapState:r,pluginState:l,services:i,mapProvider:u}).handleInteraction;return function(e){var t=e.mapProvider,r=e.mapStyle,o=e.pluginState,i=e.selectedFeatures,a=e.events,u=e.eventBus,l=o.layers,c=o.listboxActiveItem,s=(0,n.useMemo)(function(){return r?function(e,t){var r,n,o,i={};if(!t)return console.warn("[interact] buildStylesMap: mapStyle is null/undefined, cannot build styles"),i;var a=null!==(r=Be[t.mapColorScheme])&&void 0!==r?r:Be.light,u=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,l=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(function(e){var r=e.activeStroke||u,n=e.selectedStroke||l,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:xe(r,t.id),selectionStroke:xe(n,t.id),fill:xe(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i}(l,r):null},[l,r]),f=function(){var e,r=c?[{featureId:c.featureId,layerId:c.layerId,idProperty:c.idProperty,geometry:c.geometry}]:[];null===(e=t.updateHighlightedFeatures)||void 0===e||e.call(t,i,r,s)};(0,n.useEffect)(function(){if(t&&s){f();var e=0,r=!1,n=function(){f(),Date.now()>=e&&(u.off(a.MAP_DATA_CHANGE,n),r=!1)},o=function(){e=Date.now()+3e3,r||(r=!0,u.on(a.MAP_DATA_CHANGE,n))};return u.on(a.MAP_STYLE_CHANGE,o),u.on(a.MAP_SET_SIZE,o),function(){u.off(a.MAP_STYLE_CHANGE,o),u.off(a.MAP_SET_SIZE,o),u.off(a.MAP_DATA_CHANGE,n)}}},[i,c,t,s,u])}({mapProvider:u,mapStyle:m,pluginState:l,selectedFeatures:s,events:o,eventBus:d}),(0,n.useEffect)(function(){d.emit("interact:active",{active:c,interactionModes:f})},[c,f]),function(e){var t=e.enabled,r=e.interactionModes,o=e.markers,i=e.layers,a=e.eventBus;(0,n.useEffect)(function(){if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&o.items.some(function(e){return e.label}),n=(null==r?void 0:r.includes("selectFeature"))&&i.some(function(e){return e.labelProperty});(e||n)&&a.emit("interact:listboxcapable")}},[t,r,o,i,a])}({enabled:c,interactionModes:f,markers:v,layers:p,eventBus:d}),function(e,t,r,o){(0,n.useEffect)(function(){var n,i=t&&(null==r?void 0:r.includes("selectFeature"))?o.map(function(e){return e.layerId}):[];return null===(n=e.setHoverCursor)||void 0===n||n.call(e,i),function(){var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,o])}(u,c,f,p),function(e){var t=e.crossHair,r=e.enabled,o=e.selectMarkerOnly,i=e.appState,a=(0,n.useRef)(r);a.current=r;var u=(0,n.useRef)(o);u.current=o;var l=(0,n.useRef)(t);l.current=t;var c=(0,n.useRef)(!1),s=(0,n.useRef)(!1),f=(0,n.useRef)(i.interfaceType);f.current=i.interfaceType;var p=(0,n.useCallback)(function(){var e,t=f.current,r="keyboard"===t&&s.current,n="touch"===t&&!u.current&&!c.current,o=null===(e=i.expandedButtons)||void 0===e?void 0:e.has("moveControls");a.current&&(r||n||o)?l.current.fixAtCenter():l.current.hide()},[i.expandedButtons]);(0,n.useEffect)(function(){p()},[r,o,i.interfaceType,i.expandedButtons,p]),(0,n.useEffect)(function(){var e,t,r=null===(e=i.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(r){s.current=!(null===(t=document.activeElement)||void 0===t||!t.closest("[data-map-keyboard-scope]"));var n=function(e){var t=!!e.target.closest('[role="listbox"], [role="option"]'),r=!!e.target.closest("[data-map-keyboard-scope]"),n=c.current!==t||s.current!==r;c.current=t,s.current=r,n&&a.current&&p()};return r.addEventListener("focusin",n),function(){r.removeEventListener("focusin",n)}}},[i.layoutRefs,p])}({crossHair:y,enabled:c,selectMarkerOnly:b,appState:t}),function(e){var t=e.pluginState,r=e.appState,i=e.mapState,a=e.buttonConfig,u=e.eventBus,l=e.handleInteraction,c=(0,n.useRef)(l);c.current=l;var s=(0,n.useRef)(t);s.current=t;var f=(0,n.useRef)(r);f.current=r;var p=(0,n.useRef)(!1);(0,n.useEffect)(function(){p.current=!1;var e=setTimeout(function(){p.current=!0},0);return function(){return clearTimeout(e)}},[t.enabled]),(0,n.useEffect)(function(){if(t.enabled)return function(e){var t,r,n,o=e.getAppState,i=e.mapState,a=e.getPluginState,u=e.buttonConfig,l=e.events,c=e.eventBus,s=e.handleInteraction,f=e.clickReadyRef,p=u.selectAtTarget,d=function(){return s(i.crossHair.getDetail())},y=function(e){f.current&&s(e)},m=(t=o().layoutRefs.viewportRef,r=d,n=!1,{handleKeydown:function(e){n=Ke(e)&&t.current===e.target},handleKeyup:function(e){Ke(e)&&n&&(e.preventDefault(),r())}}),v=m.handleKeydown,b=m.handleKeyup,g=function(e,t){return function(r,n){var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:He({multiSelect:o.multiSelect,addToExisting:n},r)})}}(i,a),h=function(e){return g(e,!0)},E=function(e){return g(e,!1)};return document.addEventListener("keydown",v),document.addEventListener("keyup",b),c.on(l.MAP_CLICK,y),c.on("interact:selectFeature",h),c.on("interact:unselectFeature",E),p.onClick=d,function(){p.onClick=null,document.removeEventListener("keydown",v),document.removeEventListener("keyup",b),c.off(l.MAP_CLICK,y),c.off("interact:selectFeature",h),c.off("interact:unselectFeature",E)}}({getAppState:function(){return f.current},mapState:i,getPluginState:function(){return s.current},buttonConfig:a,events:o,eventBus:u,handleInteraction:function(e){return c.current(e)},clickReadyRef:p})},[t.enabled,a,u])}({pluginState:l,appState:t,mapState:r,buttonConfig:a,eventBus:d,handleInteraction:g}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],closeOnAction:!0,listboxActiveItem:null},actions:Ze},buttons:[{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState,r=e.pluginState;return!r.enabled||"touch"!==t.interfaceType||Ve(r.interactionModes)},mobile:{slot:"actions"},tablet:{slot:"actions"},desktop:{slot:"actions"}}],keyboardShortcuts:[{id:"clickAtTarget",title:"Click at target",command:"<kbd>Enter</kbd>"},{id:"selectFeatures",group:nt,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:nt,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:nt,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:nt,context:"listbox",title:"Dismiss hint / return to map",command:"<kbd>Escape</kbd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:function(e,t){var r=e.pluginState,n=e.pluginConfig;r.dispatch({type:"ENABLE",payload:tt(tt(tt({},Je),n),t)})},disable:function(e){e.pluginState.dispatch({type:"DISABLE"})},clear:function(e){var t=e.pluginState,r=e.mapState;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})},selectMarker:function(e,t){var r=e.pluginState;r.dispatch({type:"SELECT_MARKER",payload:{markerId:t,multiSelect:r.multiSelect}})},unselectMarker:function(e,t){e.pluginState.dispatch({type:"UNSELECT_MARKER",payload:{markerId:t}})}}}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{220(e,t,r){r.r(t),r.d(t,{manifest:()=>it});var n=r(738),o={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_SHOW_HINT:"app:showhint",APP_DISMISS_HINT:"app:dismisshint",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_SPATIAL_LIST:"map:setspatiallist",MAP_SET_SPATIAL_LIST_SUPPRESSED:"map:setspatiallistsuppressed",MAP_SET_ACTIVE_ITEM:"map:setactiveitem",MAP_SELECT_ITEM:"map:selectitem",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!s(e[0])||!s(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function u(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const f=11102230246251565e-32,p=134217729,d=(3+8*f)*f;function y(e,t,r,n,o){let i,a,u,l,c=t[0],s=n[0],f=0,p=0;s>c==s>-c?(i=c,c=t[++f]):(i=s,s=n[++p]);let d=0;if(f<e&&p<r)for(s>c==s>-c?(a=c+i,u=i-(a-c),c=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[d++]=u);f<e&&p<r;)s>c==s>-c?(a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f]):(a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p]),i=a,0!==u&&(o[d++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[d++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[d++]=u);return 0===i&&0!==d||(o[d++]=i),d}function m(e){return new Float64Array(e)}const v=m(4),b=m(8),g=m(12),h=m(16),S=m(4);function E(e,t,r,n,o,i){const a=(t-i)*(r-o),u=(e-o)*(n-i),l=a-u,c=Math.abs(a+u);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let u,l,c,s,f,m,E,P,A,O,T,w,_,I,M,k,L,C;const R=e-o,j=r-o,D=t-i,F=n-i;I=R*F,m=p*R,E=m-(m-R),P=R-E,m=p*F,A=m-(m-F),O=F-A,M=P*O-(I-E*A-P*A-E*O),k=D*j,m=p*D,E=m-(m-D),P=D-E,m=p*j,A=m-(m-j),O=j-A,L=P*O-(k-E*A-P*A-E*O),T=M-L,f=M-T,v[0]=M-(T+f)+(f-L),w=I+T,f=w-I,_=I-(w-f)+(T-f),T=_-k,f=_-T,v[1]=_-(T+f)+(f-k),C=w+T,f=C-w,v[2]=w-(C-f)+(T-f),v[3]=C;let x=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,v),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(f=e-R,u=e-(R+f)+(f-o),f=r-j,c=r-(j+f)+(f-o),f=t-D,l=t-(D+f)+(f-i),f=n-F,s=n-(F+f)+(f-i),0===u&&0===l&&0===c&&0===s)return x;if(B=11093356479670487e-47*a+d*Math.abs(x),x+=R*s+F*u-(D*c+j*l),x>=B||-x>=B)return x;I=u*F,m=p*u,E=m-(m-u),P=u-E,m=p*F,A=m-(m-F),O=F-A,M=P*O-(I-E*A-P*A-E*O),k=l*j,m=p*l,E=m-(m-l),P=l-E,m=p*j,A=m-(m-j),O=j-A,L=P*O-(k-E*A-P*A-E*O),T=M-L,f=M-T,S[0]=M-(T+f)+(f-L),w=I+T,f=w-I,_=I-(w-f)+(T-f),T=_-k,f=_-T,S[1]=_-(T+f)+(f-k),C=w+T,f=C-w,S[2]=w-(C-f)+(T-f),S[3]=C;const G=y(4,v,4,S,b);I=R*s,m=p*R,E=m-(m-R),P=R-E,m=p*s,A=m-(m-s),O=s-A,M=P*O-(I-E*A-P*A-E*O),k=D*c,m=p*D,E=m-(m-D),P=D-E,m=p*c,A=m-(m-c),O=c-A,L=P*O-(k-E*A-P*A-E*O),T=M-L,f=M-T,S[0]=M-(T+f)+(f-L),w=I+T,f=w-I,_=I-(w-f)+(T-f),T=_-k,f=_-T,S[1]=_-(T+f)+(f-k),C=w+T,f=C-w,S[2]=w-(C-f)+(T-f),S[3]=C;const H=y(G,b,4,S,g);I=u*s,m=p*u,E=m-(m-u),P=u-E,m=p*s,A=m-(m-s),O=s-A,M=P*O-(I-E*A-P*A-E*O),k=l*c,m=p*l,E=m-(m-l),P=l-E,m=p*c,A=m-(m-c),O=c-A,L=P*O-(k-E*A-P*A-E*O),T=M-L,f=M-T,S[0]=M-(T+f)+(f-L),w=I+T,f=w-I,_=I-(w-f)+(T-f),T=_-k,f=_-T,S[1]=_-(T+f)+(f-k),C=w+T,f=C-w,S[2]=w-(C-f)+(T-f),S[3]=C;const N=y(H,g,4,S,h);return h[N-1]}(e,t,r,n,o,i,c)}function P(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],d=e[1],y=t.length;for(r=0;r<y;r++){n=0;var m=t[r],v=m.length-1;if((c=m[0])[0]!==m[v][0]&&c[1]!==m[v][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<v;n++){if(u=(s=m[n+1])[0]-p,l=s[1]-d,0===a&&0===l){if(u<=0&&i>=0||i<=0&&u>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=E(i,u,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&f++}c=s,a=l,i=u}}return f%2!=0}function A(e){return"Feature"===e.type?e.geometry:e}function O(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=A(t),i=o.type,a=t.bbox;let u=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(u=[u]);let l=!1;for(var c=0;c<u.length;++c){const e=P(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(8),m(8),m(8),m(4),m(8),m(8),m(8),m(12),m(192),m(192),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(8),m(8),m(8),m(8),m(8),m(8),m(8),m(8),m(8),m(4),m(4),m(4),m(8),m(16),m(16),m(16),m(32),m(32),m(48),m(64),m(1152),m(1152),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(4),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(24),m(1152),m(1152),m(1152),m(1152),m(1152),m(2304),m(2304),m(3456),m(5760),m(8),m(8),m(8),m(16),m(24),m(48),m(48),m(96),m(192),m(384),m(384),m(384),m(768),m(96),m(96),m(96),m(1152);class T{constructor(e=[],t=w){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 w(e,t){return e<t?-1:e>t?1:0}function _(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function I(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 M{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 k=0,L=0,C=0;function R(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;L+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new M(o,k,L,C),l=new M(i,k,L,C+1);u.otherEvent=l,l.otherEvent=u,_(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,C+=1}}k+=1}class j{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 F(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let u=[];"FeatureCollection"===e.type?u=u.concat(e.features):"Feature"===e.type?u.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||u.push(i(e)),"FeatureCollection"===t.type?u=u.concat(t.features):"Feature"===t.type?u.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||u.push(i(t));const c=function(e,t){const r=new T([],_);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)R(r[e],t)}else R(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new T([],I);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new j(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const u=D(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(l(u),o);let s=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,s.push(t))})}else s=c;return l(s.map(e=>a(e)))}function x(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,d="FeatureCollection"===e.type,y="Feature"===e.type,m=d?e.features.length:1;for(r=0;r<m;r++){for(u=d?e.features[r].geometry:y?e.geometry:e,c=d?e.features[r].properties:y?e.properties:{},s=d?e.features[r].bbox:y?e.bbox:void 0,f=d?e.features[r].id:y?e.id:void 0,a=(l=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,c,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,c,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,c,s,f))return!1;p++}}(e,function(e,r,n,o,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var s=e.coordinates[c];if(!1===t(i({type:u,coordinates:s},n),r,c))return!1}})}function B(e,t={}){const r=A(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return G(A(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=A(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(G(e,n))}),l(o)}(r,t);default:throw new Error("invalid poly")}}function G(e,t){return e.length>1?c(e,t):u(e[0],t)}function H(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(U(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function N(e,t,r){for(const r of t.coordinates)if(O(r,e))return!0;return F(t,B(e),{ignoreSelfIntersections:r}).features.length>0}function U(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 K(e,t,r){if(null!==e)for(var n,o,i,a,u,l,c,s,f=0,p=0,d=e.type,y="FeatureCollection"===d,m="Feature"===d,v=y?e.features.length:1,b=0;b<v;b++){u=(s=!!(c=y?e.features[b].geometry:m?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var g=0;g<u;g++){var h=0,S=0;if(null!==(a=s?c.geometries[g]:c)){l=a.coordinates;var E=a.type;switch(f=!r||"Polygon"!==E&&"MultiPolygon"!==E?0:1,E){case null:break;case"Point":if(!1===t(l,p,b,h,S))return!1;p++,h++;break;case"LineString":case"MultiPoint":for(n=0;n<l.length;n++){if(!1===t(l[n],p,b,h,S))return!1;p++,"MultiPoint"===E&&h++}"LineString"===E&&h++;break;case"Polygon":case"MultiLineString":for(n=0;n<l.length;n++){for(o=0;o<l[n].length-f;o++){if(!1===t(l[n][o],p,b,h,S))return!1;p++}"MultiLineString"===E&&h++,"Polygon"===E&&S++}"Polygon"===E&&h++;break;case"MultiPolygon":for(n=0;n<l.length;n++){for(S=0,o=0;o<l[n].length;o++){for(i=0;i<l[n][o].length-f;i++){if(!1===t(l[n][o][i],p,b,h,S))return!1;p++}S++}h++}break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===K(a.geometries[n],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}var V=function(e,t={}){if(null!=e.bbox&&!0!==t.recompute)return e.bbox;const r=[1/0,1/0,-1/0,-1/0];return K(e,e=>{r[0]>e[0]&&(r[0]=e[0]),r[1]>e[1]&&(r[1]=e[1]),r[2]<e[0]&&(r[2]=e[0]),r[3]<e[1]&&(r[3]=e[1])}),r};function W(e){return function(e){if(Array.isArray(e))return Y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||z(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 z(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}}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}function q(e){var t=e.geometry||e;switch(t.type){case"Polygon":return function(e,t,r={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return i({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return u(t.coordinates);case"MultiLineString":return c(t.coordinates);case"Point":return a(t.coordinates);case"MultiPoint":return function(e,t,r={}){return i({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function X(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return x(e,e=>{x(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!H(t,e);case"Polygon":return!O(e,t)}break;case"LineString":switch(t.type){case"Point":return!H(e,t);case"LineString":return!function(e,t,r){return F(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!N(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!O(t,e);case"LineString":return!N(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(O(r,t))return!0;for(const r of t.coordinates[0])if(O(r,e))return!0;return F(B(e),B(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(q(t),q(e))})}function $(e){if(e.length<2)return!1;if(e.some(function(e){var t,r;return!("Polygon"===(r=null===(t=e.geometry)||void 0===t?void 0:t.type)||"MultiPolygon"===r)}))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]});X(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(e,t)||J(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(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}}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 ee={".cold":".hot",".hot":".cold"},te=function(e){for(var t=0,r=Object.entries(ee);t<r.length;t++){var n=Z(r[t],2),o=n[0],i=n[1];if(e.endsWith(o))return"".concat(e.slice(0,-o.length)).concat(i)}return null},re=function(e){var t,r={},n=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=J(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;r[o.layerId]=o;var i=te(o.layerId);i&&(r[i]=o)}}catch(e){n.e(e)}finally{n.f()}return r},ne=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},oe=function(e){var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r};r(287);new Map;var ie=Object.freeze({SIDE:"side",HEADER:"header",BANNER:"banner",TOP_LEFT:"top-left",TOP_MIDDLE:"top-middle",TOP_RIGHT:"top-right",LEFT_TOP:"left-top",LEFT_BOTTOM:"left-bottom",MIDDLE:"middle",RIGHT_TOP:"right-top",RIGHT_BOTTOM:"right-bottom",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",DRAWER:"drawer",ACTIONS:"actions",MODAL:"modal"});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){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?ue(Object(r),!0).forEach(function(t){ce(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ue(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function ce(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}Object.freeze({control:[ie.HEADER,ie.BANNER,ie.TOP_LEFT,ie.TOP_RIGHT,ie.MIDDLE,ie.RIGHT_TOP,ie.RIGHT_BOTTOM,ie.BOTTOM_RIGHT,ie.DRAWER,ie.ACTIONS],panel:[ie.SIDE,ie.HEADER,ie.BANNER,ie.LEFT_TOP,ie.LEFT_BOTTOM,ie.MIDDLE,ie.RIGHT_TOP,ie.RIGHT_BOTTOM,ie.DRAWER,ie.MODAL],button:[ie.TOP_LEFT,ie.TOP_MIDDLE,ie.TOP_RIGHT,ie.LEFT_TOP,ie.LEFT_BOTTOM,ie.RIGHT_TOP,ie.RIGHT_BOTTOM,ie.BOTTOM_LEFT,ie.BOTTOM_RIGHT,ie.ACTIONS]}),new Set(["menu","listbox","tree","grid","dialog"]);var se={slot:"middle",open:!1,dismissible:!0,modal:!0},fe=(le({},se),le(le({},se),{},{width:"500px"}),le(le({},se),{},{width:"500px"}),{small:1,medium:1.5,large:2}),pe=(new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),function(e){return!(!e.label||e.symbol||e.symbolSvgContent||null!==e.symbol&&null!==e.symbolSvgContent)});function de(e){return de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},de(e)}function 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 me(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){ve(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 ve(e,t,r){return(t=function(e){var t=function(e){if("object"!=de(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=de(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==de(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function be(e){return function(e){if(Array.isArray(e))return he(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ge(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 ge(e,t){if(e){if("string"==typeof e)return he(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)?he(e,t):void 0}}function he(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 Se=function(e,t,r,n){return{featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}},Ee=function(e){var t=e.mapProvider,r=e.layers,o=e.interactionModes,i=e.multiSelect,a=e.dispatch,u=e.markers,l=e.layerConfigMap,c=e.debug,s=e.tolerance,f=e.processFeatureMatch,p=e.processFallback,d=e.scale;return(0,n.useCallback)(function(e){var n=e.point,y=e.coords,m=c?ne(t,n,{radius:s}):null;if(m&&function(e,t){var r,n,o=(n=2,function(e){if(Array.isArray(e))return e}(r=e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(r,n)||ge(r,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],a=o[1];console.groupCollapsed("[interact] click (".concat(i.toFixed(4),", ").concat(a.toFixed(4),") — ").concat(t.length," feature").concat(1!==t.length?"s":"")),t.forEach(function(e){var t,r;console.log({layer:e.layer.id,type:e.layer.type,id:null!==(t=e.id)&&void 0!==t?t:"—",sourceLayer:null!==(r=e.sourceLayer)&&void 0!==r?r:"—",properties:e.properties})}),console.groupEnd()}(y,m),o.includes("selectMarker")){var v=function(e,t,r){var n,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=ge(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e.items);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=null===(i=e.markerRefs)||void 0===i?void 0:i.get(a.id);if(u&&!pe(a)){var l=u.closest(".im-c-viewport__markers")||u.parentElement,c=l?l.getBoundingClientRect():{left:0,top:0},s=u.getBoundingClientRect(),f=s.left,p=s.top,d=s.right,y=s.bottom,m=t.x*r,v=t.y*r;if(m>=f-c.left&&m<=d-c.left&&v>=p-c.top&&v<=y-c.top)return a.id}}}catch(e){o.e(e)}finally{o.f()}return null}(u,n,d);if(v)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:v,multiSelect:i}})}if(o.includes("selectFeature")&&r.length>0){var b=function(e,t){var r=e.filter(function(e){var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(oe);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null}(null!=m?m:ne(t,n,{radius:s}),l);if(b)return void f(b)}p({coords:y})},[t,r,o,i,a,u,l,c,s,f,p,d])},Pe=function(e){var t,r=e.mapState,o=e.pluginState,i=e.services,a=e.mapProvider,u=r.markers,l=r.mapSize,c=o.dispatch,s=o.layers,f=o.interactionModes,p=o.multiSelect,d=o.contiguous,y=o.marker,m=o.tolerance,v=o.selectedFeatures,b=o.selectedMarkers,g=o.deselectOnClickOutside,h=i.eventBus,S=re(s),E=null!==(t=fe[l])&&void 0!==t?t:1,P=(0,n.useCallback)(function(e){var t,r,n,o=e.feature,i=e.config;u.remove("location");var l=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=l){var s=null===(n=a.getFeatureGeometry)||void 0===n?void 0:n.call(a,i.layerId,l,i.idProperty),f=s?me(me({},o),{},{geometry:s}):o;if(d&&p&&function(e){var t,r=e.featureId,n=e.feature,o=e.config,i=e.selectedFeatures,a=e.dispatch,u=e.multiSelect;if(!i.length)return!1;var l=i.findIndex(function(e){return e.featureId===r&&e.layerId===o.layerId});if(-1!==l){if(i.length<3)return!1;var c=function(e){for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++){var o;if(!t.has(n)){var i=be(t).map(function(t){return e[t]});null!==(o=e[n].geometry)&&void 0!==o&&o.type&&X(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:be(t).map(function(t){return e[t]})}(i.filter(function(e,t){return t!==l}));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var s=i.filter(function(e){var t;return null===(t=e.geometry)||void 0===t?void 0:t.type});return!(null===(t=n.geometry)||void 0===t||!t.type||!s.length||X(n,s)||(a({type:"TOGGLE_SELECTED_FEATURES",payload:me(me({},Se(r,u,o,n)),{},{replaceAll:!0})}),0))}({featureId:l,feature:f,config:i,selectedFeatures:v,dispatch:c,multiSelect:p}))return;c({type:"TOGGLE_SELECTED_FEATURES",payload:Se(l,p,i,f)})}},[u,c,p,d,v,a]),A=(0,n.useCallback)(function(e){var t=e.coords,r=f.includes("placeMarker");(r||g)&&(c({type:"CLEAR_SELECTED_FEATURES"}),r&&(u.add("location",t,y),h.emit("interact:markerchange",{coords:t})))},[f,c,u,y,h,g]),O=Ee({mapProvider:a,layers:s,interactionModes:f,multiSelect:p,dispatch:c,markers:u,layerConfigMap:S,debug:null==o?void 0:o.debug,tolerance:m,processFeatureMatch:P,processFallback:A,scale:E});return function(e,t,r){var o=(0,n.useRef)(null);(0,n.useEffect)(function(){var n=o.current;(null===n||0===n.features.length&&0===n.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t.map(function(e){var t=e.featureId,r=e.layerId,n=e.idProperty,o=e.properties,i=e.geometry;return{featureId:t,layerId:r,idProperty:n,properties:o,geometryType:null==i?void 0:i.type}}),selectedMarkers:r,contiguous:$(t)}),o.current={features:t,markers:r})},[t,r])}(h,v,b),{handleInteraction:O}};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 Oe(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?Oe(Object(r),!0).forEach(function(t){we(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Oe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function we(e,t,r){return(t=function(e){var t=function(e){if("object"!=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}function _e(e){return function(e){if(Array.isArray(e))return ke(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Me(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 Ie(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Me(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 Me(e,t){if(e){if("string"==typeof e)return ke(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)?ke(e,t):void 0}}function ke(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 Le=function(e){var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),o=n.left,i=n.right,a=n.top,u=n.bottom;return i>r.left&&o<r.right&&u>r.top&&a<r.bottom},Ce=function(e,t,r){var n=e.mapToScreen(r),o=n.x,i=n.y;return{x:o*fe[t],y:i*fe[t]}},Re=function(e,t,r,n,o){var i,a,u,l=t[null===(i=e.layer)||void 0===i?void 0:i.id];if(null==l||!l.labelProperty)return null;var c=function(e,t){var r,n;return null!==(r=null===(n=e.properties)||void 0===n?void 0:n[t.idProperty])&&void 0!==r?r:e.id}(e,l),s=null==c?null:String(c);if(null==s||r.has(s))return null;r.add(s);var f={id:s,label:null!==(a=null===(u=e.properties)||void 0===u?void 0:u[l.labelProperty])&&void 0!==a?a:s,isMarker:!1,featureId:c,layerId:l.layerId,idProperty:l.idProperty,geometry:e.geometry,properties:e.properties},p=function(e){try{var t=(o=V(q(e)),i=4,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(o,i)||z(o,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=t[0],n=t[1];return[(r+t[2])/2,(n+t[3])/2]}catch(e){return null}var o,i}(e);return p&&Object.assign(f,Ce(n,o,p)),f};function je(e){var t=e.mapState,r=e.pluginState,i=e.services,a=e.mapProvider,u=e.spatialListRegistry,l=t.markers,c=t.mapSize,s=r.dispatch,f=r.interactionModes,p=r.layers,d=r.multiSelect,y=i.eventBus,m=(0,n.useRef)(null),v=(0,n.useRef)([]);(function(e){var t=e.markers,r=e.mapSize,i=e.interactionModes,a=e.layers,u=e.mapProvider,l=e.multiSelect,c=e.spatialListRegistry,s=e.eventBus,f=e.itemsRef,p=(0,n.useRef)(l);p.current=l,(0,n.useEffect)(function(){var e=function(){var e=[];null!=i&&i.includes("selectMarker")&&e.push.apply(e,_e(function(e,t,r){var n,o=[],i=Ie(e.items);try{for(i.s();!(n=i.n()).done;){var a,u=n.value;if(u.label){var l=null===(a=e.markerRefs)||void 0===a?void 0:a.get(u.id);if(!pe(u)&&l&&Le(l)){var c={id:u.id,label:u.label,isMarker:!0};u.coords&&Object.assign(c,Ce(t,r,u.coords)),o.push(c)}}}}catch(e){i.e(e)}finally{i.f()}return o}(t,u,r))),null!=i&&i.includes("selectFeature")&&a.length>0&&e.push.apply(e,_e(function(e,t,r){var n,o=[],i=new Set,a=t.map(function(e){return e.layerId}),u=re(t),l=Ie(e.getVisibleFeatures(a));try{for(l.s();!(n=l.n()).done;){var c=n.value,s=Re(c,u,i,e,r);s&&o.push(s)}}catch(e){l.e(e)}finally{l.f()}return o}(u,a,r))),f.current=e,c.notifyItemsChanged("interact")};return e(),s.on(o.MAP_MOVE_END,e),s.on(o.MAP_DATA_CHANGE,e),function(){s.off(o.MAP_MOVE_END,e),s.off(o.MAP_DATA_CHANGE,e)}},[t,r,i,a,u,l,c,s,f]),(0,n.useEffect)(function(){return c.registerItemProvider("interact",{getItems:function(){return{items:f.current,multiselectable:p.current,label:"Map features"}}}),function(){c.unregisterItemProvider("interact")}},[c,f])})({markers:l,mapSize:c,interactionModes:f,layers:p,mapProvider:a,multiSelect:d,spatialListRegistry:u,eventBus:y,itemsRef:v}),function(e){var t=e.itemsRef,r=e.eventBus,i=e.dispatch,a=e.listboxActiveItemRef;(0,n.useEffect)(function(){var e=function(e){var r=e.id;if(null===r)return a.current=null,void i({type:"SET_LISTBOX_ACTIVE",payload:null});var n=t.current.find(function(e){return e.id===r});if(n){if(n.isMarker)return a.current={id:r,isMarker:!0},void i({type:"SET_LISTBOX_ACTIVE",payload:null});var o={featureId:n.featureId,layerId:n.layerId,idProperty:n.idProperty,geometry:n.geometry};a.current=Te(Te({id:r,isMarker:!1},o),{},{properties:n.properties}),i({type:"SET_LISTBOX_ACTIVE",payload:o})}};return r.on(o.MAP_SET_ACTIVE_ITEM,e),function(){r.off(o.MAP_SET_ACTIVE_ITEM,e)}},[t,r,i,a])}({itemsRef:v,eventBus:y,dispatch:s,listboxActiveItemRef:m}),function(e){var t=e.eventBus,r=e.dispatch,i=e.listboxActiveItemRef,a=e.multiSelect;(0,n.useEffect)(function(){var e=function(){var e=i.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:a}});else{var t=e.featureId,n=e.layerId,o=e.idProperty,u=e.geometry,l=e.properties;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:n,idProperty:o,geometry:u,properties:l,multiSelect:a,replaceAll:!a}})}};return t.on(o.MAP_SELECT_ITEM,e),function(){t.off(o.MAP_SELECT_ITEM,e)}},[t,r,i,a])}({eventBus:y,dispatch:s,listboxActiveItemRef:m,multiSelect:d})}function De(e){return De="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}var Fe=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===De(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},xe={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}};function Be(e){return Be="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},Be(e)}function Ge(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 He(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(r),!0).forEach(function(t){Ne(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ge(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ne(e,t,r){return(t=function(e){var t=function(e){if("object"!=Be(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Be(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Be(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ue=function(e){return!("Enter"!==e.key||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)};var Ke=function(e){return 1===(null==e?void 0:e.length)&&e.includes("selectMarker")};function Ve(e){return Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ve(e)}function We(e){return function(e){if(Array.isArray(e))return ze(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 ze(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)?ze(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 ze(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 Ye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function qe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ye(Object(r),!0).forEach(function(t){Xe(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 Xe(e,t,r){return(t=function(e){var t=function(e){if("object"!=Ve(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ve(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ve(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var $e={ENABLE:function(e,t){return qe(qe(qe({},e),t),{},{enabled:!0})},DISABLE:function(e){return qe(qe({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],listboxActiveItem:null})},TOGGLE_SELECTED_FEATURES:function(e,t){var r=t.featureId,n=t.multiSelect,o=t.layerId,i=t.idProperty,a=t.addToExisting,u=void 0===a||a,l=t.replaceAll,c=void 0!==l&&l,s=t.properties,f=t.geometry,p=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],d=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var y=p.filter(function(e,t){return t!==d});return qe(qe({},e),{},{selectedFeatures:y})}var m,v={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=We(p);-1===d?b.push(v):b.splice(d,1),m=b}else m=-1!==d&&1===p.length?[]:[v];return qe(qe({},e),{},{selectedFeatures:m,selectedMarkers:n&&!c?e.selectedMarkers:[]})},TOGGLE_SELECTED_MARKERS:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(function(e){return e!==r}):[].concat(We(o),[r]);return qe(qe({},e),{},{selectedMarkers:a})}return qe(qe({},e),{},{selectedFeatures:[],selectedMarkers:i&&1===o.length?[]:[r]})},CLEAR_SELECTED_FEATURES:function(e){return qe(qe({},e),{},{selectedFeatures:[],selectedMarkers:[]})},SET_SELECTED_FEATURES:function(e,t){return qe(qe({},e),{},{selectedFeatures:t})},SELECT_MARKER:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[].concat(We(o),[r]):[r];return qe(qe({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectedMarkers:i})},UNSELECT_MARKER:function(e,t){var r=t.markerId,n=e.selectedMarkers;return n.includes(r)?qe(qe({},e),{},{selectedMarkers:n.filter(function(e){return e!==r})}):e},SET_LISTBOX_ACTIVE:function(e,t){return qe(qe({},e),{},{listboxActiveItem:null!=t?t:null})}},Ze={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};function Je(e){return Je="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},Je(e)}function Qe(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 et(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Qe(Object(r),!0).forEach(function(t){tt(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function tt(e,t,r){return(t=function(e){var t=function(e){if("object"!=Je(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Je(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Je(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var rt,nt="Select",ot="undefined"!=typeof navigator&&/mac/i.test((null===(rt=navigator.userAgentData)||void 0===rt?void 0:rt.platform)||navigator.platform||"")?"<kbd>Option</kbd>":"<kbd>Alt</kbd>",it={InitComponent:function(e){var t=e.appState,r=e.mapState,i=e.services,a=e.buttonConfig,u=e.mapProvider,l=e.pluginState,c=l.enabled,s=l.selectedFeatures,f=l.interactionModes,p=l.layers,d=i.eventBus,y=r.crossHair,m=r.mapStyle,v=r.markers,b=Ke(f);je({mapState:r,pluginState:l,services:i,mapProvider:u,spatialListRegistry:t.spatialListRegistry});var g=Pe({appState:t,mapState:r,pluginState:l,services:i,mapProvider:u}).handleInteraction;return function(e){var t=e.mapProvider,r=e.mapStyle,o=e.pluginState,i=e.selectedFeatures,a=e.events,u=e.eventBus,l=o.layers,c=o.listboxActiveItem,s=(0,n.useMemo)(function(){return r?function(e,t){var r,n,o,i={};if(!t)return console.warn("[interact] buildStylesMap: mapStyle is null/undefined, cannot build styles"),i;var a=null!==(r=xe[t.mapColorScheme])&&void 0!==r?r:xe.light,u=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,l=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(function(e){var r=e.activeStroke||u,n=e.selectedStroke||l,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:Fe(r,t.id),selectionStroke:Fe(n,t.id),fill:Fe(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i}(l,r):null},[l,r]),f=function(){var e,r=c?[{featureId:c.featureId,layerId:c.layerId,idProperty:c.idProperty,geometry:c.geometry}]:[];null===(e=t.updateHighlightedFeatures)||void 0===e||e.call(t,i,r,s)};(0,n.useEffect)(function(){if(t&&s){f();var e=0,r=!1,n=function(){f(),Date.now()>=e&&(u.off(a.MAP_DATA_CHANGE,n),r=!1)},o=function(){e=Date.now()+3e3,r||(r=!0,u.on(a.MAP_DATA_CHANGE,n))};return u.on(a.MAP_STYLE_CHANGE,o),u.on(a.MAP_SET_SIZE,o),function(){u.off(a.MAP_STYLE_CHANGE,o),u.off(a.MAP_SET_SIZE,o),u.off(a.MAP_DATA_CHANGE,n)}}},[i,c,t,s,u])}({mapProvider:u,mapStyle:m,pluginState:l,selectedFeatures:s,events:o,eventBus:d}),(0,n.useEffect)(function(){d.emit("interact:active",{active:c,interactionModes:f})},[c,f]),function(e){var t=e.enabled,r=e.interactionModes,o=e.markers,i=e.layers,a=e.eventBus;(0,n.useEffect)(function(){if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&o.items.some(function(e){return e.label}),n=(null==r?void 0:r.includes("selectFeature"))&&i.some(function(e){return e.labelProperty});(e||n)&&a.emit("interact:listboxcapable")}},[t,r,o,i,a])}({enabled:c,interactionModes:f,markers:v,layers:p,eventBus:d}),function(e,t,r,o){(0,n.useEffect)(function(){var n,i=t&&(null==r?void 0:r.includes("selectFeature"))?o.map(function(e){return e.layerId}):[];return null===(n=e.setHoverCursor)||void 0===n||n.call(e,i),function(){var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,o])}(u,c,f,p),function(e){var t=e.crossHair,r=e.enabled,o=e.selectMarkerOnly,i=e.appState,a=(0,n.useRef)(r);a.current=r;var u=(0,n.useRef)(o);u.current=o;var l=(0,n.useRef)(t);l.current=t;var c=(0,n.useRef)(!1),s=(0,n.useRef)(!1),f=(0,n.useRef)(i.interfaceType);f.current=i.interfaceType;var p=(0,n.useCallback)(function(){var e,t=f.current,r="keyboard"===t&&s.current,n="touch"===t&&!u.current&&!c.current,o=null===(e=i.expandedButtons)||void 0===e?void 0:e.has("mapControls");a.current&&(r||n||o)?l.current.fixAtCenter():l.current.hide()},[i.expandedButtons]);(0,n.useEffect)(function(){p()},[r,o,i.interfaceType,i.expandedButtons,p]),(0,n.useEffect)(function(){var e,t,r=null===(e=i.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(r){s.current=!(null===(t=document.activeElement)||void 0===t||!t.closest("[data-map-keyboard-scope]"));var n=function(e){var t=!!e.target.closest('[role="listbox"], [role="option"]'),r=!!e.target.closest("[data-map-keyboard-scope]"),n=c.current!==t||s.current!==r;c.current=t,s.current=r,n&&a.current&&p()};return r.addEventListener("focusin",n),function(){r.removeEventListener("focusin",n)}}},[i.layoutRefs,p])}({crossHair:y,enabled:c,selectMarkerOnly:b,appState:t}),function(e){var t=e.pluginState,r=e.appState,i=e.mapState,a=e.buttonConfig,u=e.eventBus,l=e.handleInteraction,c=(0,n.useRef)(l);c.current=l;var s=(0,n.useRef)(t);s.current=t;var f=(0,n.useRef)(r);f.current=r;var p=(0,n.useRef)(!1);(0,n.useEffect)(function(){p.current=!1;var e=setTimeout(function(){p.current=!0},0);return function(){return clearTimeout(e)}},[t.enabled]),(0,n.useEffect)(function(){if(t.enabled)return function(e){var t,r,n,o=e.getAppState,i=e.mapState,a=e.getPluginState,u=e.buttonConfig,l=e.events,c=e.eventBus,s=e.handleInteraction,f=e.clickReadyRef,p=u.selectAtTarget,d=function(){return s(i.crossHair.getDetail())},y=function(e){f.current&&s(e)},m=(t=o().layoutRefs.viewportRef,r=d,n=!1,{handleKeydown:function(e){n=Ue(e)&&t.current===e.target},handleKeyup:function(e){Ue(e)&&n&&(e.preventDefault(),r())}}),v=m.handleKeydown,b=m.handleKeyup,g=function(e,t){return function(r,n){var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:He({multiSelect:o.multiSelect,addToExisting:n},r)})}}(i,a),h=function(e){return g(e,!0)},S=function(e){return g(e,!1)};return document.addEventListener("keydown",v),document.addEventListener("keyup",b),c.on(l.MAP_CLICK,y),c.on("interact:selectFeature",h),c.on("interact:unselectFeature",S),p.onClick=d,function(){p.onClick=null,document.removeEventListener("keydown",v),document.removeEventListener("keyup",b),c.off(l.MAP_CLICK,y),c.off("interact:selectFeature",h),c.off("interact:unselectFeature",S)}}({getAppState:function(){return f.current},mapState:i,getPluginState:function(){return s.current},buttonConfig:a,events:o,eventBus:u,handleInteraction:function(e){return c.current(e)},clickReadyRef:p})},[t.enabled,a,u]),(0,n.useEffect)(function(){if(t.enabled){var e=function(){return c.current(i.crossHair.getDetail())};return i.crossHair.activate=e,function(){i.crossHair.activate===e&&(i.crossHair.activate=null)}}},[t.enabled,i.crossHair])}({pluginState:l,appState:t,mapState:r,buttonConfig:a,eventBus:d,handleInteraction:g}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],closeOnAction:!0,listboxActiveItem:null},actions:$e},buttons:[{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState,r=e.pluginState;return!r.enabled||"touch"!==t.interfaceType||Ke(r.interactionModes)},mobile:{slot:"actions"},tablet:{slot:"actions"},desktop:{slot:"actions"}}],keyboardShortcuts:[{id:"clickAtTarget",title:"Click at target",command:"<kbd>Enter</kbd>"},{id:"selectFeatures",group:nt,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:nt,context:"listbox",title:"Highlight next feature",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"navigateFeaturesSpatially",group:nt,context:"listbox",title:"Highlight nearby feature",command:"".concat(ot," + <kbd>↑</kbd>, <kbd>↓</kbd>, <kbd>←</kbd> or <kbd>→</kbd>")},{id:"selectFeature",group:nt,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:nt,context:"listbox",title:"Dismiss hint / return to map",command:"<kbd>Escape</kbd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:function(e,t){var r=e.pluginState,n=e.pluginConfig;r.dispatch({type:"ENABLE",payload:et(et(et({},Ze),n),t)})},disable:function(e){e.pluginState.dispatch({type:"DISABLE"})},clear:function(e){var t=e.pluginState,r=e.mapState;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:function(e,t){var r=e.services,n=t.featureId,o=t.layerId,i=t.idProperty;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})},selectMarker:function(e,t){var r=e.pluginState;r.dispatch({type:"SELECT_MARKER",payload:{markerId:t,multiSelect:r.multiSelect}})},unselectMarker:function(e,t){e.pluginState.dispatch({type:"UNSELECT_MARKER",payload:{markerId:t}})}}}}}]);
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.interactPlugin=t())}(this,()=>(()=>{"use strict";var e,t,r={738(e){e.exports=preactCompat},287(e){e.exports=preactJsxRuntime}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,r)=>(o.f[r](e,t),t),[])),o.u=e=>"im-interact-plugin.js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="defra.interactPlugin:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),p=0;p<f.length;p++){var l=f[p];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+i){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",o.nc&&u.setAttribute("nonce",o.nc),u.setAttribute("data-webpack",t+i),u.src=r),e[r]=[n];var s=(t,n)=>{u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach(e=>e(n)),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var i=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=i);var a=o.p+o.u(t),u=new Error;o.l(a,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,u,c]=r,f=0;if(a.some(t=>0!==e[t])){for(n in u)o.o(u,n)&&(o.m[n]=u[n]);c&&c(o)}for(t&&t(r);f<a.length;f++)i=a[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i={};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function u(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof f?n:f,p=Object.create(u.prototype);return c(p,"_invoke",function(r,n,o){var i,u,c,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,u=0,c=e,s.n=r,a}};function d(r,n){for(u=r,c=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],d=s.p,b=i[2];r>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(u=0,s.v=n,s.n=i[1]):d<b&&(o=r<3||i[0]>n||n>b)&&(i[4]=r,i[5]=n,s.n=b,u=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,b){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,b),u=p,c=b;(t=u<2?e:c)||!l;){i||(u?u<3?(u>1&&(s.n=-1),d(u,c)):s.n=c:s.v=c);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=s.n<0)?c:r.call(n,s))!==a)break}catch(t){i=e,u=1,c=t}finally{f=1}}return{value:t,done:l}}}(r,o,i),!0),p}var a={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(c(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function b(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,c(d,"constructor",l),c(l,"constructor",p),p.displayName="GeneratorFunction",c(l,o,"GeneratorFunction"),c(d),c(d,o,"Generator"),c(d,n,function(){return this}),c(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:b}})()}function c(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}c=function(e,t,r,n){function i(t,r){c(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},c(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(){var e,t;return l(l({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"interact",load:(e=u().m(function e(){var t;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(936).then(o.bind(o,701));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){f(i,n,o,a,u,"next",e)}function u(e){f(i,n,o,a,u,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})})}return o.d(i,{default:()=>d}),i.default})());
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.interactPlugin=t())}(this,()=>(()=>{"use strict";var e,t,r={738(e){e.exports=preactCompat},287(e){e.exports=preactJsxRuntime}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,r)=>(o.f[r](e,t),t),[])),o.u=e=>"im-interact-plugin.js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="defra.interactPlugin:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var u,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),p=0;p<f.length;p++){var l=f[p];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+i){u=l;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",o.nc&&u.setAttribute("nonce",o.nc),u.setAttribute("data-webpack",t+i),u.src=r),e[r]=[n];var s=(t,n)=>{u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach(e=>e(n)),t)return t(n)},d=setTimeout(s.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=s.bind(null,u.onerror),u.onload=s.bind(null,u.onload),c&&document.head.appendChild(u)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var i=new Promise((r,o)=>n=e[t]=[r,o]);r.push(n[2]=i);var a=o.p+o.u(t),u=new Error;o.l(a,r=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,u,c]=r,f=0;if(a.some(t=>0!==e[t])){for(n in u)o.o(u,n)&&(o.m[n]=u[n]);c&&c(o)}for(t&&t(r);f<a.length;f++)i=a[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},r=this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i={};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function u(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof f?n:f,p=Object.create(u.prototype);return c(p,"_invoke",function(r,n,o){var i,u,c,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,u=0,c=e,s.n=r,a}};function d(r,n){for(u=r,c=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],d=s.p,b=i[2];r>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(u=0,s.v=n,s.n=i[1]):d<b&&(o=r<3||i[0]>n||n>b)&&(i[4]=r,i[5]=n,s.n=b,u=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,b){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&d(p,b),u=p,c=b;(t=u<2?e:c)||!l;){i||(u?u<3?(u>1&&(s.n=-1),d(u,c)):s.n=c:s.v=c);try{if(f=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=s.n<0)?c:r.call(n,s))!==a)break}catch(t){i=e,u=1,c=t}finally{f=1}}return{value:t,done:l}}}(r,o,i),!0),p}var a={};function f(){}function p(){}function l(){}t=Object.getPrototypeOf;var s=[][n]?t(t([][n]())):(c(t={},n,function(){return this}),t),d=l.prototype=f.prototype=Object.create(s);function b(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=l,c(d,"constructor",l),c(l,"constructor",p),p.displayName="GeneratorFunction",c(l,o,"GeneratorFunction"),c(d),c(d,o,"Generator"),c(d,n,function(){return this}),c(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:b}})()}function c(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}c=function(e,t,r,n){function i(t,r){c(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},c(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function s(e,t,r){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(){var e,t;return l(l({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"interact",load:(e=u().m(function e(){var t;return u().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(936).then(o.bind(o,220));case 1:return t=e.v.manifest,e.a(2,t)}},e)}),t=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){f(i,n,o,a,u,"next",e)}function u(e){f(i,n,o,a,u,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})})}return o.d(i,{default:()=>d}),i.default})());
@@ -1,7 +1,7 @@
1
1
  import { useEffect } from 'react'
2
2
  import { EVENTS } from '../../../src/config/events.js'
3
3
  import { useInteractionHandlers } from './hooks/useInteractionHandlers.js'
4
- import { useMapItemList } from './hooks/useMapItemList.js'
4
+ import { useSpatialList } from './hooks/useSpatialList.js'
5
5
  import { useHighlightSync } from './hooks/useHighlightSync.js'
6
6
  import { useHoverCursor } from './hooks/useHoverCursor.js'
7
7
  import { useCrossHairVisibility } from './hooks/useCrossHairVisibility.js'
@@ -33,7 +33,7 @@ export const InteractInit = ({
33
33
 
34
34
  const selectMarkerOnly = isSelectMarkerOnly(interactionModes)
35
35
 
36
- useMapItemList({ mapState, pluginState, services, mapProvider })
36
+ useSpatialList({ mapState, pluginState, services, mapProvider, spatialListRegistry: appState.spatialListRegistry })
37
37
 
38
38
  // Core interaction logic (click > select/marker)
39
39
  const { handleInteraction } = useInteractionHandlers({
@@ -4,14 +4,14 @@ import { InteractInit } from './InteractInit.jsx'
4
4
  import { useInteractionHandlers } from './hooks/useInteractionHandlers.js'
5
5
  import { useHighlightSync } from './hooks/useHighlightSync.js'
6
6
  import { useHoverCursor } from './hooks/useHoverCursor.js'
7
- import { useMapItemList } from './hooks/useMapItemList.js'
7
+ import { useSpatialList } from './hooks/useSpatialList.js'
8
8
 
9
9
  const LISTBOX_CAPABLE = 'interact:listboxcapable'
10
10
 
11
11
  jest.mock('./hooks/useInteractionHandlers.js')
12
12
  jest.mock('./hooks/useHighlightSync.js')
13
13
  jest.mock('./hooks/useHoverCursor.js')
14
- jest.mock('./hooks/useMapItemList.js')
14
+ jest.mock('./hooks/useSpatialList.js')
15
15
  jest.mock('./hooks/useCrossHairVisibility.js')
16
16
  jest.mock('./hooks/useAttachEvents.js')
17
17
 
@@ -24,7 +24,7 @@ beforeEach(() => {
24
24
  useInteractionHandlers.mockReturnValue({ handleInteraction: handleInteractionMock })
25
25
  useHighlightSync.mockReturnValue(undefined)
26
26
  useHoverCursor.mockReturnValue(undefined)
27
- useMapItemList.mockReturnValue(undefined)
27
+ useSpatialList.mockReturnValue(undefined)
28
28
 
29
29
  props = {
30
30
  appState: { interfaceType: 'mouse', layoutRefs: { viewportRef: { current: document.createElement('div') }, appContainerRef: { current: document.createElement('div') } } },
@@ -55,6 +55,11 @@ export function attachEvents ({
55
55
  eventBus.on('interact:selectFeature', handleSelect)
56
56
  eventBus.on('interact:unselectFeature', handleUnselect)
57
57
  selectAtTarget.onClick = handleSelectAtTarget
58
+ // The crosshair's own "Click Target" (Voice Control) is wired separately, in
59
+ // useAttachEvents.js — mapState.crossHair is dispatch-managed state that gets replaced by a
60
+ // new object on almost every render, which a plain assignment made only once here (this
61
+ // function only re-runs when pluginState.enabled/buttonConfig/eventBus change, not when
62
+ // crossHair itself does) can't keep up with.
58
63
 
59
64
  return () => {
60
65
  selectAtTarget.onClick = null
@@ -42,4 +42,24 @@ export function useAttachEvents ({ pluginState, appState, mapState, buttonConfig
42
42
 
43
43
  return cleanupEvents
44
44
  }, [pluginState.enabled, buttonConfig, eventBus])
45
+
46
+ // crossHair is dispatch-managed state (mapReducer.js's UPDATE_CROSS_HAIR spreads into a NEW
47
+ // object every time — see updateCrossHair in mapActionsMap.js, which fires constantly, e.g.
48
+ // on every fixAtCenter()/hide()), so a `.activate` assignment made only once (inside the
49
+ // effect above, whose deps don't include it) would silently end up on a stale, discarded
50
+ // object the moment the next dispatch replaces it — exactly what CrossHair.jsx's onClick
51
+ // would then find nothing on. Keyed on mapState.crossHair itself, separate from the effect
52
+ // above, so this re-wires onto the current object every time it's replaced, not just once.
53
+ useEffect(() => {
54
+ if (!pluginState.enabled) {
55
+ return undefined
56
+ }
57
+ const activate = () => handleInteractionRef.current(mapState.crossHair.getDetail())
58
+ mapState.crossHair.activate = activate
59
+ return () => {
60
+ if (mapState.crossHair.activate === activate) {
61
+ mapState.crossHair.activate = null
62
+ }
63
+ }
64
+ }, [pluginState.enabled, mapState.crossHair])
45
65
  }
@@ -18,7 +18,7 @@ beforeEach(() => {
18
18
  props = {
19
19
  pluginState: { enabled: true },
20
20
  appState: { interfaceType: 'mouse' },
21
- mapState: { mapStyle: {} },
21
+ mapState: { mapStyle: {}, crossHair: { getDetail: jest.fn(() => ({ point: {}, coords: [] })) } },
22
22
  buttonConfig: {},
23
23
  eventBus: { emit: jest.fn() },
24
24
  handleInteraction: handleInteractionMock
@@ -63,4 +63,47 @@ describe('useAttachEvents', () => {
63
63
  renderHook(() => useAttachEvents({ ...props, pluginState: { enabled: false } }))
64
64
  expect(attachEvents).not.toHaveBeenCalled()
65
65
  })
66
+
67
+ describe('crossHair.activate — re-wired whenever mapState.crossHair is replaced', () => {
68
+ it('wires crossHair.activate on mount, calling handleInteraction with the live getDetail() result', () => {
69
+ renderHook(() => useAttachEvents(props))
70
+ expect(typeof props.mapState.crossHair.activate).toBe('function')
71
+
72
+ props.mapState.crossHair.activate()
73
+ expect(handleInteractionMock).toHaveBeenCalledWith({ point: {}, coords: [] })
74
+ })
75
+
76
+ it('re-wires onto a new crossHair object — mapReducer.js replaces it wholesale on every UPDATE_CROSS_HAIR dispatch', () => {
77
+ const { rerender } = renderHook((p) => useAttachEvents(p), { initialProps: props })
78
+ const staleCrossHair = props.mapState.crossHair
79
+
80
+ const nextProps = { ...props, mapState: { ...props.mapState, crossHair: { getDetail: jest.fn(() => ({ point: {}, coords: [] })) } } }
81
+ rerender(nextProps)
82
+
83
+ expect(staleCrossHair.activate).toBeNull() // guarded cleanup nulled the old one
84
+ expect(typeof nextProps.mapState.crossHair.activate).toBe('function')
85
+ })
86
+
87
+ it('nulls activate on unmount, guarded — leaves a newer owner alone', () => {
88
+ const { unmount } = renderHook(() => useAttachEvents(props))
89
+ const ownActivate = props.mapState.crossHair.activate
90
+ expect(typeof ownActivate).toBe('function')
91
+
92
+ unmount()
93
+ expect(props.mapState.crossHair.activate).toBeNull()
94
+ })
95
+
96
+ it('does not wire crossHair.activate when the plugin is not enabled', () => {
97
+ renderHook(() => useAttachEvents({ ...props, pluginState: { enabled: false } }))
98
+ expect(props.mapState.crossHair.activate).toBeUndefined()
99
+ })
100
+
101
+ it('leaves a newer owner\'s crossHair.activate alone on unmount — guarded, not unconditional', () => {
102
+ const { unmount } = renderHook(() => useAttachEvents(props))
103
+ const laterOwnersActivate = () => {}
104
+ props.mapState.crossHair.activate = laterOwnersActivate
105
+ unmount()
106
+ expect(props.mapState.crossHair.activate).toBe(laterOwnersActivate)
107
+ })
108
+ })
66
109
  })
@@ -8,7 +8,7 @@ export function useCrossHairVisibility ({ crossHair, enabled, selectMarkerOnly,
8
8
  const crossHairRef = useRef(crossHair)
9
9
  crossHairRef.current = crossHair
10
10
  const listboxFocusRef = useRef(false)
11
- // True while focus is inside an element (marked `data-map-keyboard-scope`) that actually routes cursor keys to the map, e.g. the viewport or MoveControl's D-pad.
11
+ // True while focus is inside an element (marked `data-map-keyboard-scope`) that actually routes cursor keys to the map, e.g. the viewport or MapControl's D-pad.
12
12
  const mapKeyboardScopedRef = useRef(false)
13
13
  const interfaceTypeRef = useRef(appState.interfaceType)
14
14
  interfaceTypeRef.current = appState.interfaceType
@@ -17,12 +17,12 @@ export function useCrossHairVisibility ({ crossHair, enabled, selectMarkerOnly,
17
17
  const type = interfaceTypeRef.current
18
18
  const keyboardCanOperateMap = type === 'keyboard' && mapKeyboardScopedRef.current
19
19
  const touchCanOperateMap = type === 'touch' && !selectMarkerOnlyRef.current && !listboxFocusRef.current
20
- // MoveControls being open is an explicit "I can't drag/pinch this map" signal from the
20
+ // MapControls being open is an explicit "I can't drag/pinch this map" signal from the
21
21
  // user — same audience this crosshair already exists for — so it counts as its own reason
22
22
  // to show it, independent of the currently-inferred interface type (which, for a Voice
23
23
  // Control user, will never register as anything but the default 'mouse').
24
- const moveControlsOpen = appState.expandedButtons?.has('moveControls')
25
- if (enabledRef.current && (keyboardCanOperateMap || touchCanOperateMap || moveControlsOpen)) {
24
+ const mapControlsOpen = appState.expandedButtons?.has('mapControls')
25
+ if (enabledRef.current && (keyboardCanOperateMap || touchCanOperateMap || mapControlsOpen)) {
26
26
  crossHairRef.current.fixAtCenter()
27
27
  } else {
28
28
  crossHairRef.current.hide()
@@ -73,13 +73,13 @@ describe('useCrossHairVisibility', () => {
73
73
  expect(crossHair.hide).toHaveBeenCalledTimes(2)
74
74
  })
75
75
 
76
- it('shows the crosshair for a control (e.g. MoveControl) that forwards arrow keys to the map without moving DOM focus onto the viewport', () => {
76
+ it('shows the crosshair for a control (e.g. MapControl) that forwards arrow keys to the map without moving DOM focus onto the viewport', () => {
77
77
  const container = appState.layoutRefs.appContainerRef.current
78
- const moveControlButton = document.createElement('button')
79
- const moveControlScope = document.createElement('div')
80
- moveControlScope.setAttribute('data-map-keyboard-scope', '')
81
- moveControlScope.appendChild(moveControlButton)
82
- container.appendChild(moveControlScope)
78
+ const mapControlButton = document.createElement('button')
79
+ const mapControlScope = document.createElement('div')
80
+ mapControlScope.setAttribute('data-map-keyboard-scope', '')
81
+ mapControlScope.appendChild(mapControlButton)
82
+ container.appendChild(mapControlScope)
83
83
  appState.interfaceType = 'keyboard'
84
84
 
85
85
  renderHook(() => useCrossHairVisibility({ crossHair, enabled: true, selectMarkerOnly: false, appState }))
@@ -87,7 +87,7 @@ describe('useCrossHairVisibility', () => {
87
87
 
88
88
  // Focus lands on a direction button nested inside the scoped control, not
89
89
  // on the scope element itself — closest() must still pick it up.
90
- act(() => moveControlButton.dispatchEvent(new FocusEvent('focusin', { bubbles: true })))
90
+ act(() => mapControlButton.dispatchEvent(new FocusEvent('focusin', { bubbles: true })))
91
91
  expect(crossHair.fixAtCenter).toHaveBeenCalled()
92
92
  })
93
93