@defra/interactive-map 0.0.31-alpha → 0.0.33-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.
- package/README.md +2 -2
- package/assets/images/bright-ofm-thumb.jpg +0 -0
- package/assets/images/dark-ofm-thumb.jpg +0 -0
- package/assets/images/road-ofm-thumb.jpg +0 -0
- package/assets/templates/add-polygons.njk +143 -0
- package/assets/templates/add-symbols.njk +119 -0
- package/assets/templates/{map.njk → basic-map.njk} +9 -17
- package/assets/templates/button-map.njk +56 -0
- package/assets/templates/draw-tools.njk +161 -0
- package/assets/templates/marker-panel.njk +91 -0
- package/assets/templates/place-marker.njk +104 -0
- package/assets/templates/search-control.njk +98 -0
- package/assets/templates/select-feature.njk +101 -0
- package/assets/templates/style-switcher.njk +87 -0
- package/assets/templates/toggle-marker-label.njk +74 -0
- package/dist/css/index.css +1 -1
- package/dist/esm/im-core.js +1 -1
- package/dist/esm/im-shell.js +1 -1
- package/dist/umd/im-core.js +1 -1
- package/dist/umd/index.js +1 -1
- package/docs/api/map-style-config.md +27 -3
- package/docs/api.md +55 -0
- package/docs/assets/css/docusaurus.scss +22 -6
- package/docs/assets/images/add-polygons.jpg +0 -0
- package/docs/assets/images/add-symbols.jpg +0 -0
- package/docs/assets/images/hero.png +0 -0
- package/docs/assets/images/place-marker.jpg +0 -0
- package/docs/assets/images/screenshot.jpg +0 -0
- package/docs/examples/add-marker-with-panel.mdx +1 -1
- package/docs/examples/add-polygons.mdx +225 -0
- package/docs/examples/add-symbols.mdx +177 -0
- package/docs/examples/{draw.mdx → draw-tools.mdx} +2 -2
- package/docs/examples/index.mdx +38 -2
- package/docs/examples/place-marker.mdx +151 -0
- package/docs/plugins/datasets.md +144 -96
- package/docs/plugins/interact.md +1 -4
- package/docusaurus.config.cjs +5 -2
- package/govuk-prototype-kit.config.json +52 -2
- package/package.json +1 -1
- package/plugins/beta/datasets/dist/css/index.css +1 -2
- package/plugins/beta/datasets/dist/esm/im-datasets-ml-adapter.js +1 -1
- package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -1
- package/plugins/beta/datasets/dist/umd/im-datasets-ml-adapter.js +1 -1
- package/plugins/beta/datasets/dist/umd/im-datasets-plugin.js +1 -1
- package/plugins/beta/datasets/dist/umd/index.js +1 -1
- package/plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.js +27 -9
- package/plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js +46 -4
- package/plugins/beta/datasets/src/api/setFeatureVisibility.js +10 -1
- package/plugins/beta/datasets/src/api/setFeatureVisibility.test.js +48 -6
- package/plugins/beta/datasets/src/components/LayersMenu/Layers.module.scss +12 -12
- package/plugins/beta/datasets/src/reducers/datasetsToMenu.js +11 -6
- package/plugins/beta/datasets/src/reducers/datasetsToMenu.test.js +49 -0
- package/plugins/beta/datasets/src/reducers/mappedDatasetsReducer.js +8 -1
- package/plugins/beta/datasets/src/reducers/pluginState.js +1 -1
- package/plugins/beta/datasets/src/registry/dataset.js +7 -3
- package/plugins/beta/datasets/src/registry/dataset.test.js +14 -0
- package/plugins/beta/datasets/src/registry/dynamicGeoJson.js +1 -1
- package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
- package/plugins/beta/draw-es/src/api/addFeature.js +12 -3
- package/plugins/beta/draw-es/src/events.js +8 -3
- package/plugins/beta/draw-es/src/events.test.js +2 -0
- package/plugins/beta/draw-es/src/graphic.js +26 -2
- package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
- package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
- package/plugins/beta/draw-ml/src/DrawInit.jsx +19 -0
- package/plugins/beta/draw-ml/src/api/newLine.js +1 -0
- package/plugins/beta/draw-ml/src/api/newPolygon.js +1 -0
- package/plugins/beta/draw-ml/src/modes/createDrawMode.js +52 -37
- package/plugins/beta/draw-ml/src/modes/editVertex/touchHandlers.js +1 -1
- package/plugins/beta/draw-ml/src/modes/editVertex/vertexOperations.js +5 -4
- package/plugins/beta/draw-ml/src/modes/editVertexMode.js +53 -21
- package/plugins/beta/draw-ol/dist/esm/DrawMode.js +1 -1
- package/plugins/beta/draw-ol/dist/esm/EditMode.js +1 -1
- package/plugins/beta/draw-ol/dist/esm/im-draw-ol-plugin.js +1 -1
- package/plugins/beta/draw-ol/src/core/OLDrawManager.js +3 -0
- package/plugins/beta/draw-ol/src/draw/DrawMode.js +57 -49
- package/plugins/beta/draw-ol/src/draw/drawInput.js +76 -32
- package/plugins/beta/draw-ol/src/edit/EditMode.js +4 -4
- package/plugins/beta/draw-ol/src/edit/keyboardHandler.js +4 -2
- package/plugins/beta/draw-ol/src/manifest.js +5 -1
- package/plugins/beta/draw-ol/src/reducer.js +1 -1
- package/plugins/beta/draw-ol/src/snap/snapEngine.js +75 -31
- package/plugins/beta/draw-ol/src/snap/snapGeometry.js +23 -46
- package/plugins/beta/draw-ol/src/snap/snapInteraction.js +30 -29
- package/plugins/beta/draw-ol/src/snap/snapManager.js +10 -1
- package/plugins/beta/draw-ol/src/utils/geometryHelpers.js +9 -3
- package/plugins/beta/draw-ol/src/utils/olCoords.js +2 -2
- package/plugins/beta/draw-ol/src/utils/spatial.js +4 -8
- package/plugins/beta/map-styles/src/mapStyles.scss +41 -41
- package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/index.js +1 -1
- package/plugins/interact/src/InteractInit.jsx +1 -3
- package/plugins/interact/src/InteractInit.test.js +0 -2
- package/plugins/interact/src/events.test.js +1 -1
- package/plugins/interact/src/hooks/useCrossHairVisibility.js +4 -10
- package/plugins/interact/src/hooks/useCrossHairVisibility.test.js +5 -10
- package/plugins/interact/src/hooks/useHighlightSync.js +1 -10
- package/plugins/interact/src/hooks/useHighlightSync.test.js +2 -21
- package/plugins/interact/src/hooks/useInteractionHandlers.js +5 -11
- package/plugins/interact/src/hooks/useInteractionHandlers.test.js +5 -25
- package/plugins/interact/src/reducer.js +4 -22
- package/plugins/interact/src/reducer.test.js +11 -39
- package/plugins/search/dist/css/index.css +5 -2
- package/plugins/search/src/components/Form/Form.module.scss +5 -2
- package/plugins/search/src/search.scss +4 -4
- package/providers/beta/openlayers/dist/esm/im-openlayers-provider.js +1 -1
- package/providers/beta/openlayers/dist/umd/im-openlayers-provider.js +1 -1
- package/providers/beta/openlayers/dist/umd/index.js +1 -1
- package/providers/beta/openlayers/src/utils/tileLayers.js +29 -2
- package/providers/beta/openlayers/src/utils/tileLayers.test.js +53 -1
- package/src/App/components/CrossHair/CrossHair.module.scss +8 -8
- package/src/App/components/MapButton/MapButton.jsx +14 -10
- package/src/App/components/MapButton/MapButton.module.scss +1 -1
- package/src/App/components/MapButton/MapButton.test.jsx +1 -1
- package/src/App/components/PopupMenu/PopupMenu.test.jsx +79 -0
- package/src/App/components/PopupMenu/usePopupMenu.js +61 -12
- package/src/App/hooks/useLayoutMeasurements.js +10 -2
- package/src/App/hooks/useResizeObserver.js +4 -2
- package/src/InteractiveMap/InteractiveMap.js +4 -4
- package/src/InteractiveMap/InteractiveMap.test.js +3 -3
- package/src/InteractiveMap/behaviourController.js +3 -1
- package/src/InteractiveMap/behaviourController.test.js +6 -3
- package/src/InteractiveMap/domStateManager.js +2 -0
- package/src/config/events.js +21 -3
- package/src/types.js +12 -3
- package/src/utils/findNextTabStop.js +3 -3
- package/src/utils/findNextTabStop.test.js +25 -1
- package/webpack.dev.mjs +1 -0
- package/docs/assets/images/screens-blue.jpg +0 -0
- package/docs/assets/images/screens-white.jpg +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/defineProperty";import"@babel/runtime/helpers/objectWithoutProperties";import{useContext as t,createContext as r,useState as n,useCallback as o,useRef as i,useEffect as a,useMemo as l}from"preact/compat";import{jsxs as s,jsx as u}from"preact/jsx-runtime";var c={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function p(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 d(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(!g(e[0])||!g(e[1]))throw new Error("coordinates must contain numbers");return p({type:"Point",coordinates:e},t,r)}function f(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return p({type:"LineString",coordinates:e},t,r)}function v(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function y(e,t,r={}){return p({type:"MultiLineString",coordinates:e},t,r)}function g(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}const E=11102230246251565e-32,m=134217729,h=(3+8*E)*E;function S(e,t,r,n,o){let i,a,l,s,u=t[0],c=n[0],p=0,d=0;c>u==c>-u?(i=u,u=t[++p]):(i=c,c=n[++d]);let f=0;if(p<e&&d<r)for(c>u==c>-u?(a=u+i,l=i-(a-u),u=t[++p]):(a=c+i,l=i-(a-c),c=n[++d]),i=a,0!==l&&(o[f++]=l);p<e&&d<r;)c>u==c>-u?(a=i+u,s=a-i,l=i-(a-s)+(u-s),u=t[++p]):(a=i+c,s=a-i,l=i-(a-s)+(c-s),c=n[++d]),i=a,0!==l&&(o[f++]=l);for(;p<e;)a=i+u,s=a-i,l=i-(a-s)+(u-s),u=t[++p],i=a,0!==l&&(o[f++]=l);for(;d<r;)a=i+c,s=a-i,l=i-(a-s)+(c-s),c=n[++d],i=a,0!==l&&(o[f++]=l);return 0===i&&0!==f||(o[f++]=i),f}function b(e){return new Float64Array(e)}const P=b(4),A=b(8),O=b(12),_=b(16),w=b(4);function k(e,t,r,n,o,i){const a=(t-i)*(r-o),l=(e-o)*(n-i),s=a-l,u=Math.abs(a+l);return Math.abs(s)>=33306690738754716e-32*u?s:-function(e,t,r,n,o,i,a){let l,s,u,c,p,d,f,v,y,g,E,b,k,M,T,I,L,C;const F=e-o,D=r-o,R=t-i,j=n-i;M=F*j,d=m*F,f=d-(d-F),v=F-f,d=m*j,y=d-(d-j),g=j-y,T=v*g-(M-f*y-v*y-f*g),I=R*D,d=m*R,f=d-(d-R),v=R-f,d=m*D,y=d-(d-D),g=D-y,L=v*g-(I-f*y-v*y-f*g),E=T-L,p=T-E,P[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,P[1]=k-(E+p)+(p-I),C=b+E,p=C-b,P[2]=b-(C-p)+(E-p),P[3]=C;let x=function(e,t){let r=t[0];for(let n=1;n<e;n++)r+=t[n];return r}(4,P),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(p=e-F,l=e-(F+p)+(p-o),p=r-D,u=r-(D+p)+(p-o),p=t-R,s=t-(R+p)+(p-i),p=n-j,c=n-(j+p)+(p-i),0===l&&0===s&&0===u&&0===c)return x;if(B=11093356479670487e-47*a+h*Math.abs(x),x+=F*c+j*l-(R*u+D*s),x>=B||-x>=B)return x;M=l*j,d=m*l,f=d-(d-l),v=l-f,d=m*j,y=d-(d-j),g=j-y,T=v*g-(M-f*y-v*y-f*g),I=s*D,d=m*s,f=d-(d-s),v=s-f,d=m*D,y=d-(d-D),g=D-y,L=v*g-(I-f*y-v*y-f*g),E=T-L,p=T-E,w[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,w[1]=k-(E+p)+(p-I),C=b+E,p=C-b,w[2]=b-(C-p)+(E-p),w[3]=C;const N=S(4,P,4,w,A);M=F*c,d=m*F,f=d-(d-F),v=F-f,d=m*c,y=d-(d-c),g=c-y,T=v*g-(M-f*y-v*y-f*g),I=R*u,d=m*R,f=d-(d-R),v=R-f,d=m*u,y=d-(d-u),g=u-y,L=v*g-(I-f*y-v*y-f*g),E=T-L,p=T-E,w[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,w[1]=k-(E+p)+(p-I),C=b+E,p=C-b,w[2]=b-(C-p)+(E-p),w[3]=C;const G=S(N,A,4,w,O);M=l*c,d=m*l,f=d-(d-l),v=l-f,d=m*c,y=d-(d-c),g=c-y,T=v*g-(M-f*y-v*y-f*g),I=s*u,d=m*s,f=d-(d-s),v=s-f,d=m*u,y=d-(d-u),g=u-y,L=v*g-(I-f*y-v*y-f*g),E=T-L,p=T-E,w[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,w[1]=k-(E+p)+(p-I),C=b+E,p=C-b,w[2]=b-(C-p)+(E-p),w[3]=C;const U=S(G,O,4,w,_);return _[U-1]}(e,t,r,n,o,i,u)}function M(e,t){var r,n,o,i,a,l,s,u,c,p=0,d=e[0],f=e[1],v=t.length;for(r=0;r<v;r++){n=0;var y=t[r],g=y.length-1;if((u=y[0])[0]!==y[g][0]&&u[1]!==y[g][1])throw new Error("First and last coordinates in a ring must be the same");for(i=u[0]-d,a=u[1]-f;n<g;n++){if(l=(c=y[n+1])[0]-d,s=c[1]-f,0===a&&0===s){if(l<=0&&i>=0||i<=0&&l>=0)return 0}else if(s>=0&&a<=0||s<=0&&a>=0){if(0===(o=k(i,l,a,s,0,0)))return 0;(o>0&&s>0&&a<=0||o<0&&s<=0&&a>0)&&p++}u=c,a=s,i=l}}return p%2!=0}function T(e){return"Feature"===e.type?e.geometry:e}function I(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=T(t),i=o.type,a=t.bbox;let l=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&&(l=[l]);let s=!1;for(var u=0;u<l.length;++u){const e=M(n,l[u]);if(0===e)return!r.ignoreBoundary;e&&(s=!0)}return s}class L{constructor(e=[],t=C){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 C(e,t){return e<t?-1:e>t?1:0}function F(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function D(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 R{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 j=0,x=0,B=0;function N(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;x+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const l=new R(o,j,x,B),s=new R(i,j,x,B+1);l.otherEvent=s,s.otherEvent=l,F(l,s)>0?(s.isLeftEndpoint=!0,l.isLeftEndpoint=!1):(l.isLeftEndpoint=!0,s.isLeftEndpoint=!1),t.push(l),t.push(s),o=i,B+=1}}j+=1}class G{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function U(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,l=t.leftSweepEvent.p.y,s=t.rightSweepEvent.p.x,u=t.rightSweepEvent.p.y,c=(u-l)*(o-r)-(s-a)*(i-n),p=(s-a)*(n-l)-(u-l)*(r-a),d=(o-r)*(n-l)-(i-n)*(r-a);if(0===c)return!1;const f=p/c,v=d/c;if(f>=0&&f<=1&&v>=0&&v<=1){return[r+f*(o-r),n+f*(i-n)]}return!1}var V=function(e,t){const r=new L([],F);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)N(r[e],t)}else N(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new L([],D);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new G(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const l=U(e,a);!1!==l&&r.push(l)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)};function H(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let i=[];"FeatureCollection"===e.type?i=i.concat(e.features):"Feature"===e.type?i.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||i.push(p(e)),"FeatureCollection"===t.type?i=i.concat(t.features):"Feature"===t.type?i.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||i.push(p(t));const a=V(v(i),o);let l=[];if(n){const e={};a.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,l.push(t))})}else l=a;return v(l.map(e=>d(e)))}function K(e,t){!function(e,t){var r,n,o,i,a,l,s,u,c,p,d=0,f="FeatureCollection"===e.type,v="Feature"===e.type,y=f?e.features.length:1;for(r=0;r<y;r++){for(l=f?e.features[r].geometry:v?e.geometry:e,u=f?e.features[r].properties:v?e.properties:{},c=f?e.features[r].bbox:v?e.bbox:void 0,p=f?e.features[r].id:v?e.id:void 0,a=(s=!!l&&"GeometryCollection"===l.type)?l.geometries.length:1,o=0;o<a;o++)if(null!==(i=s?l.geometries[o]:l))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,d,u,c,p))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],d,u,c,p))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,d,u,c,p))return!1;d++}}(e,function(e,r,n,o,i){var a,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(p(e,n,{bbox:o,id:i}),r,0)&&void 0}switch(l){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}for(var s=0;s<e.coordinates.length;s++){var u=e.coordinates[s];if(!1===t(p({type:a,coordinates:u},n),r,s))return!1}})}function Y(e,t={}){const r=T(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){const r=T(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{};return q(n,o)}(r,t);case"MultiPolygon":return function(e,t={}){const r=T(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{},i=[];return n.forEach(e=>{i.push(q(e,o))}),v(i)}(r,t);default:throw new Error("invalid poly")}}function q(e,t){return e.length>1?y(e,t):f(e[0],t)}function W(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(X(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function z(e,t,r){for(const r of t.coordinates)if(I(r,e))return!0;return H(t,Y(e),{ignoreSelfIntersections:r}).features.length>0}function X(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])}var J=function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return K(e,e=>{K(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!W(t,e);case"Polygon":return!I(e,t)}break;case"LineString":switch(t.type){case"Point":return!W(e,t);case"LineString":return!function(e,t,r){const n=H(e,t,{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(e,t,r);case"Polygon":return!z(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!I(t,e);case"LineString":return!z(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(I(r,t))return!0;for(const r of t.coordinates[0])if(I(r,e))return!0;const n=H(Y(e),Y(t),{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n};function Z(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 p({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return p({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return f(t.coordinates);case"MultiLineString":return y(t.coordinates);case"Point":return d(t.coordinates);case"MultiPoint":return function(e,t,r={}){return p({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function Q(e,t){return t.some(t=>!J(Z(t),Z(e)))}function $(e){if(e.length<2)return!1;if(e.some(e=>{var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=[...t].map(t=>e[t]);Q(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}var ee=e=>{var t={};for(var r of e)t[r.layerId]=r;return t},te=(e,t,r)=>{try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},re=e=>{var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r};var ne=window.matchMedia("(pointer: coarse)").matches?"touch":"unknown",oe=new Set;var ie,ae;var le=/mac/i.test(null!==(ie=null===(ae=navigator.userAgentData)||void 0===ae?void 0:ae.platform)&&void 0!==ie?ie:navigator.platform)?"<kbd>Option</kbd>":"<kbd>Alt</kbd>";"".concat(le," + <kbd>Enter</kbd>"),"".concat(le," + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>"),new Set;function se(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ue(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?se(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):se(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var ce={slot:"middle",open:!1,dismissible:!0,modal:!0};ue({},ce),ue(ue({},ce),{},{width:"500px"}),ue(ue({},ce),{},{width:"500px"});var pe={small:1,medium:1.5,large:2},de=e=>!!e.label&&(!e.symbol&&!e.symbolSvgContent&&(null===e.symbol||null===e.symbolSvgContent));function fe(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 ve(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?fe(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):fe(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var ye=(e,t,r,n)=>({featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}),ge=e=>{var t,{featureId:r,feature:n,config:o,selectedFeatures:i,dispatch:a,multiSelect:l}=e;if(!i.length)return!1;var s=i.findIndex(e=>e.featureId===r&&e.layerId===o.layerId);if(-1!==s){if(i.length<3)return!1;var u=(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=[...t].map(t=>e[t]);null!==(o=e[n].geometry)&&void 0!==o&&o.type&&Q(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:[...t].map(t=>e[t])})(i.filter((e,t)=>t!==s));return!!u&&(a({type:"SET_SELECTED_FEATURES",payload:u}),!0)}var c=i.filter(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||!c.length)&&(!Q(n,c)&&(a({type:"TOGGLE_SELECTED_FEATURES",payload:ve(ve({},ye(r,l,o,n)),{},{replaceAll:!0})}),!0))},Ee=e=>{var{mapProvider:t,layers:r,interactionModes:n,multiSelect:i,dispatch:a,markers:l,layerConfigMap:s,debug:u,tolerance:c,processFeatureMatch:p,processFallback:d,scale:f}=e;return o(e=>{var{point:o,coords:v}=e,y=u?te(t,o,{radius:c}):null;if(y&&((e,t)=>{var[r,n]=e;console.groupCollapsed("[interact] click (".concat(r.toFixed(4),", ").concat(n.toFixed(4),") — ").concat(t.length," feature").concat(1!==t.length?"s":"")),t.forEach(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()})(v,y),n.includes("selectMarker")){var g=((e,t,r)=>{for(var n of e.items){var o,i=null===(o=e.markerRefs)||void 0===o?void 0:o.get(n.id);if(i&&!de(n)){var a=i.closest(".im-c-viewport__markers")||i.parentElement,l=a?a.getBoundingClientRect():{left:0,top:0},{left:s,top:u,right:c,bottom:p}=i.getBoundingClientRect(),d=t.x*r,f=t.y*r;if(d>=s-l.left&&d<=c-l.left&&f>=u-l.top&&f<=p-l.top)return n.id}}return null})(l,o,f);if(g)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:g,multiSelect:i}})}if(n.includes("selectFeature")&&r.length>0){var E=((e,t)=>{var r=e.filter(e=>{var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(re);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!=y?y:te(t,o,{radius:c}),s);if(E)return void p(E)}d({coords:v})},[t,r,n,i,a,l,s,u,c,p,d,f])},me=e=>{var t,{mapState:r,pluginState:n,services:l,mapProvider:s}=e,{markers:u,mapSize:c}=r,{dispatch:p,layers:d,interactionModes:f,multiSelect:v,contiguous:y,marker:g,tolerance:E,selectedFeatures:m,selectedMarkers:h,selectionBounds:S,deselectOnClickOutside:b}=n,{eventBus:P}=l,A=ee(d),O=null!==(t=pe[c])&&void 0!==t?t:1,_=o(e=>{var t,r,n,{feature:o,config:i}=e;u.remove("location");var a=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=a){var l=null===(n=s.getFeatureGeometry)||void 0===n?void 0:n.call(s,i.layerId,a,i.idProperty),c=l?ve(ve({},o),{},{geometry:l}):o;if(y&&v)if(ge({featureId:a,feature:c,config:i,selectedFeatures:m,dispatch:p,multiSelect:v}))return;p({type:"TOGGLE_SELECTED_FEATURES",payload:ye(a,v,i,c)})}},[u,p,v,y,m,s]),w=o(e=>{var{coords:t}=e,r=f.includes("placeMarker");(r||b)&&(p({type:"CLEAR_SELECTED_FEATURES"}),r&&(u.add("location",t,g),P.emit("interact:markerchange",{coords:t})))},[f,p,u,g,P,b]),k=Ee({mapProvider:s,layers:d,interactionModes:f,multiSelect:v,dispatch:p,markers:u,layerConfigMap:A,debug:null==n?void 0:n.debug,tolerance:E,processFeatureMatch:_,processFallback:w,scale:O});return((e,t,r,n)=>{var o=i(null);a(()=>{if(!(t.length>0)||n){var i=o.current;(null===i||0===i.features.length&&0===i.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t,selectedMarkers:r,selectionBounds:n,contiguous:$(t)}),o.current={features:t,markers:r})}},[t,r,n])})(P,m,h,S),{handleInteraction:k}};function he(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Se(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?he(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var be=(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},Pe=e=>{var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),{left:n,right:o,top:i,bottom:a}=e.getBoundingClientRect();return o>r.left&&n<r.right&&a>r.top&&i<r.bottom},Ae=(e,t,r)=>{var n,o,i,a=t[null===(n=e.layer)||void 0===n?void 0:n.id];if(null==a||!a.labelProperty)return null;var l=be(e,a),s=null==l?null:String(l);return null==s||r.has(s)?null:(r.add(s),{id:s,label:null!==(o=null===(i=e.properties)||void 0===i?void 0:i[a.labelProperty])&&void 0!==o?o:s})};function Oe(e){var{markers:t,interactionModes:r,layers:n,mapProvider:o,multiSelect:i,eventBus:l}=e;a(()=>{var e=()=>{var e=[];null!=r&&r.includes("selectMarker")&&e.push(...(e=>{var t=[];for(var r of e.items){var n;if(r.label){var o=null===(n=e.markerRefs)||void 0===n?void 0:n.get(r.id);!de(r)&&o&&Pe(o)&&t.push({id:r.id,label:r.label})}}return t})(t)),null!=r&&r.includes("selectFeature")&&n.length>0&&e.push(...((e,t)=>{var r=[],n=new Set,o=t.map(e=>e.layerId),i=ee(t),a=e.getVisibleFeatures(o);for(var l of a){var s=Ae(l,i,n);s&&r.push(s)}return r})(o,n)),l.emit(c.MAP_SET_FEATURES,{items:e,multiselectable:i})};return e(),l.on(c.MAP_MOVE_END,e),l.on(c.MAP_DATA_CHANGE,e),()=>{l.off(c.MAP_MOVE_END,e),l.off(c.MAP_DATA_CHANGE,e)}},[t,r,n,o,i,l])}function _e(e){var{markers:t,interactionModes:r,layers:n,mapProvider:o,eventBus:i,dispatch:l,listboxActiveItemRef:s}=e;a(()=>{var e=e=>{var{id:i}=e;if(null===i)return s.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.find(e=>e.id===i))return s.current={id:i,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&n.length>0){var a=n.map(e=>e.layerId),u=ee(n),c=((e,t,r)=>{for(var n of e){var o,i=t[null===(o=n.layer)||void 0===o?void 0:o.id],a=be(n,i);if(null!=a&&String(a)===String(r))return{feature:n,config:i,rawId:a}}return null})(o.getVisibleFeatures(a),u,i);if(c){var p={featureId:c.rawId,layerId:c.config.layerId,idProperty:c.config.idProperty,geometry:c.feature.geometry};s.current=Se(Se({id:i,isMarker:!1},p),{},{properties:c.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:p})}}};return i.on(c.MAP_SET_ACTIVE_FEATURE,e),()=>{i.off(c.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,n,o,i,l,s])}function we(e){var{mapState:t,pluginState:r,services:n,mapProvider:o}=e,{markers:l}=t,{dispatch:s,interactionModes:u,layers:p,multiSelect:d}=r,{eventBus:f}=n,v=i(null);Oe({markers:l,interactionModes:u,layers:p,mapProvider:o,multiSelect:d,eventBus:f}),_e({markers:l,interactionModes:u,layers:p,mapProvider:o,eventBus:f,dispatch:s,listboxActiveItemRef:v}),function(e){var{eventBus:t,dispatch:r,listboxActiveItemRef:n,multiSelect:o}=e;a(()=>{var e=()=>{var e=n.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:o}});else{var{featureId:t,layerId:i,idProperty:a,geometry:l,properties:s}=e;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:i,idProperty:a,geometry:l,properties:s,multiSelect:o,replaceAll:!o}})}};return t.on(c.MAP_SELECT_FEATURE,e),()=>{t.off(c.MAP_SELECT_FEATURE,e)}},[t,r,n,o])}({eventBus:f,dispatch:s,listboxActiveItemRef:v,multiSelect:d})}var ke=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},Me={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},Te=e=>{var{mapProvider:t,mapStyle:r,pluginState:n,selectedFeatures:o,dispatch:i,events:s,eventBus:u}=e,{layers:c,listboxActiveItem:p}=n,d=l(()=>r?((e,t)=>{var r,n,o,i={};if(!t)return i;var a=null!==(r=Me[t.mapColorScheme])&&void 0!==r?r:Me.light,l=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,s=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(e=>{var r=e.activeStroke||l,n=e.selectedStroke||s,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,u=a+6;i[e.layerId]={stroke:ke(r,t.id),selectionStroke:ke(n,t.id),fill:ke(o,t.id),strokeWidth:a,activeStrokeWidth:u}}),i})(c,r):null,[c,r]),f=()=>{var e,r=p?[{featureId:p.featureId,layerId:p.layerId,idProperty:p.idProperty,geometry:p.geometry}]:[],n=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,o,r,d);i({type:"UPDATE_SELECTED_BOUNDS",payload:n})};a(()=>{if(t&&d){f();var e=()=>{u.once(s.MAP_DATA_CHANGE,f)};return u.on(s.MAP_STYLE_CHANGE,e),()=>{u.off(s.MAP_STYLE_CHANGE,e)}}},[o,p,t,d,u])};function Ie(e){var{crossHair:t,enabled:r,selectMarkerOnly:n,appState:l}=e,s=i(r);s.current=r;var u=i(n);u.current=n;var c=i(t);c.current=t;var p=i(!1),d=o(()=>{var e="unknown"===ne?(ne="mouse","mouse"):ne,t=["touch","keyboard"].includes(e);!s.current||p.current||!t||"touch"===e&&u.current?c.current.hide():c.current.fixAtCenter()},[]);a(()=>{d()},[r,n,d]),a(()=>{return e=d,oe.add(e),()=>{oe.delete(e)};var e},[d]),a(()=>{var e,t=null===(e=l.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(t){var r=e=>{var t=!!e.target.closest('[role="listbox"], [role="option"]');p.current!==t&&(p.current=t,d())};return t.addEventListener("focusin",r),()=>{t.removeEventListener("focusin",r)}}},[l.layoutRefs,d])}function Le(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 Ce(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Le(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Le(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function Fe(e){var t,r,n,{getAppState:o,mapState:i,getPluginState:a,buttonConfig:l,events:s,eventBus:u,handleInteraction:c,clickReadyRef:p}=e,{selectAtTarget:d}=l,f=()=>c(i.crossHair.getDetail()),v=e=>{p.current&&c(e)},{handleKeydown:y,handleKeyup:g}=(t=o().layoutRefs.viewportRef,r=f,n=!1,{handleKeydown:e=>{n="Enter"===e.key&&t.current===e.target},handleKeyup:e=>{"Enter"===e.key&&n&&(e.preventDefault(),r())}}),E=((e,t)=>(r,n)=>{var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:Ce({multiSelect:o.multiSelect,addToExisting:n},r)})})(i,a),m=e=>E(e,!0),h=e=>E(e,!1);return document.addEventListener("keydown",y),document.addEventListener("keyup",g),u.on(s.MAP_CLICK,v),u.on("interact:selectFeature",m),u.on("interact:unselectFeature",h),d.onClick=f,()=>{d.onClick=null,document.removeEventListener("keydown",y),document.removeEventListener("keyup",g),u.off(s.MAP_CLICK,v),u.off("interact:selectFeature",m),u.off("interact:unselectFeature",h)}}var De=e=>1===(null==e?void 0:e.length)&&e.includes("selectMarker");function Re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function je(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Re(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Re(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var xe={ENABLE:(e,t)=>je(je(je({},e),t),{},{enabled:!0}),DISABLE:e=>je(je({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,listboxActiveItem:null}),TOGGLE_SELECTED_FEATURES:(e,t)=>{var{featureId:r,multiSelect:n,layerId:o,idProperty:i,addToExisting:a=!0,replaceAll:l=!1,properties:s,geometry:u}=t,c=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],p=c.findIndex(e=>e.featureId===r&&e.layerId===o);if(!1===a){var d=c.filter((e,t)=>t!==p);return je(je({},e),{},{selectedFeatures:d,selectionBounds:null})}var f,v={featureId:r,layerId:o,idProperty:i,properties:s,geometry:u};if(n&&!l){var y=[...c];-1===p?y.push(v):y.splice(p,1),f=y}else{f=-1!==p&&1===c.length?[]:[v]}return je(je({},e),{},{selectedFeatures:f,selectedMarkers:n&&!l?e.selectedMarkers:[],selectionBounds:null})},TOGGLE_SELECTED_MARKERS:(e,t)=>{var{markerId:r,multiSelect:n}=t,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(e=>e!==r):[...o,r];return je(je({},e),{},{selectedMarkers:a})}return je(je({},e),{},{selectedFeatures:[],selectionBounds:null,selectedMarkers:i&&1===o.length?[]:[r]})},UPDATE_SELECTED_BOUNDS:(e,t)=>JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:je(je({},e),{},{selectionBounds:t}),CLEAR_SELECTED_FEATURES:e=>je(je({},e),{},{selectedFeatures:[],selectedMarkers:[],selectionBounds:null}),SET_SELECTED_FEATURES:(e,t)=>je(je({},e),{},{selectedFeatures:t,selectionBounds:null}),SELECT_MARKER:(e,t)=>{var{markerId:r,multiSelect:n}=t,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[...o,r]:[r];return je(je({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectionBounds:null,selectedMarkers:i})},UNSELECT_MARKER:(e,t)=>{var{markerId:r}=t,n=e.selectedMarkers;return n.includes(r)?je(je({},e),{},{selectedMarkers:n.filter(e=>e!==r)}):e},SET_LISTBOX_ACTIVE:(e,t)=>je(je({},e),{},{listboxActiveItem:null!=t?t:null})},Be={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};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 Ge(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Ne(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ne(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Ue="Select features",Ve={InitComponent:e=>{var{appState:t,mapState:r,services:n,buttonConfig:o,mapProvider:l,pluginState:s}=e,{dispatch:u,enabled:p,selectedFeatures:d,interactionModes:f,layers:v}=s,{eventBus:y}=n,{crossHair:g,mapStyle:E,markers:m}=r,h=De(f);we({mapState:r,pluginState:s,services:n,mapProvider:l});var{handleInteraction:S}=me({mapState:r,pluginState:s,services:n,mapProvider:l});return Te({mapProvider:l,mapStyle:E,pluginState:s,selectedFeatures:d,dispatch:u,events:c,eventBus:y}),a(()=>{y.emit("interact:active",{active:p,interactionModes:f})},[p,f]),function(e){var{enabled:t,interactionModes:r,markers:n,layers:o,eventBus:i}=e;a(()=>{if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&n.items.some(e=>e.label),a=(null==r?void 0:r.includes("selectFeature"))&&o.some(e=>e.labelProperty);(e||a)&&i.emit("interact:listboxcapable")}},[t,r,n,o,i])}({enabled:p,interactionModes:f,markers:m,layers:v,eventBus:y}),((e,t,r,n)=>{a(()=>{var o,i=t&&(null==r?void 0:r.includes("selectFeature"))?n.map(e=>e.layerId):[];return null===(o=e.setHoverCursor)||void 0===o||o.call(e,i),()=>{var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,n])})(l,p,f,v),Ie({crossHair:g,enabled:p,selectMarkerOnly:h,appState:t}),function(e){var{pluginState:t,appState:r,mapState:n,buttonConfig:o,eventBus:l,handleInteraction:s}=e,u=i(s);u.current=s;var p=i(t);p.current=t;var d=i(r);d.current=r;var f=i(!1);a(()=>{f.current=!1;var e=setTimeout(()=>{f.current=!0},0);return()=>clearTimeout(e)},[t.enabled]),a(()=>{if(t.enabled)return Fe({getAppState:()=>d.current,mapState:n,getPluginState:()=>p.current,buttonConfig:o,events:c,eventBus:l,handleInteraction:e=>u.current(e),clickReadyRef:f})},[t.enabled,o,l])}({pluginState:s,appState:t,mapState:r,buttonConfig:o,eventBus:y,handleInteraction:S}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,closeOnAction:!0,listboxActiveItem:null},actions:xe},buttons:[{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:e=>{var{appState:t,pluginState:r}=e;return!r.enabled||"touch"!==t.interfaceType||De(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:Ue,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:Ue,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:Ue,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:Ue,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:(e,t)=>{var{pluginState:r,pluginConfig:n}=e;r.dispatch({type:"ENABLE",payload:Ge(Ge(Ge({},Be),n),t)})},disable:e=>{var{pluginState:t}=e;t.dispatch({type:"DISABLE"})},clear:e=>{var{pluginState:t,mapState:r}=e;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})},selectMarker:(e,t)=>{var{pluginState:r}=e;r.dispatch({type:"SELECT_MARKER",payload:{markerId:t,multiSelect:r.multiSelect}})},unselectMarker:(e,t)=>{var{pluginState:r}=e;r.dispatch({type:"UNSELECT_MARKER",payload:{markerId:t}})}}};export{Ve as manifest};
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import"@babel/runtime/helpers/objectWithoutProperties";import{useContext as t,createContext as r,useState as n,useCallback as o,useRef as i,useEffect as a,useMemo as l}from"preact/compat";import{jsxs as s,jsx as c}from"preact/jsx-runtime";var u={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_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_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 p(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 d(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(!g(e[0])||!g(e[1]))throw new Error("coordinates must contain numbers");return p({type:"Point",coordinates:e},t,r)}function f(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return p({type:"LineString",coordinates:e},t,r)}function y(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function v(e,t,r={}){return p({type:"MultiLineString",coordinates:e},t,r)}function g(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}const E=11102230246251565e-32,m=134217729,h=(3+8*E)*E;function S(e,t,r,n,o){let i,a,l,s,c=t[0],u=n[0],p=0,d=0;u>c==u>-c?(i=c,c=t[++p]):(i=u,u=n[++d]);let f=0;if(p<e&&d<r)for(u>c==u>-c?(a=c+i,l=i-(a-c),c=t[++p]):(a=u+i,l=i-(a-u),u=n[++d]),i=a,0!==l&&(o[f++]=l);p<e&&d<r;)u>c==u>-c?(a=i+c,s=a-i,l=i-(a-s)+(c-s),c=t[++p]):(a=i+u,s=a-i,l=i-(a-s)+(u-s),u=n[++d]),i=a,0!==l&&(o[f++]=l);for(;p<e;)a=i+c,s=a-i,l=i-(a-s)+(c-s),c=t[++p],i=a,0!==l&&(o[f++]=l);for(;d<r;)a=i+u,s=a-i,l=i-(a-s)+(u-s),u=n[++d],i=a,0!==l&&(o[f++]=l);return 0===i&&0!==f||(o[f++]=i),f}function b(e){return new Float64Array(e)}const P=b(4),A=b(8),O=b(12),_=b(16),w=b(4);function k(e,t,r,n,o,i){const a=(t-i)*(r-o),l=(e-o)*(n-i),s=a-l,c=Math.abs(a+l);return Math.abs(s)>=33306690738754716e-32*c?s:-function(e,t,r,n,o,i,a){let l,s,c,u,p,d,f,y,v,g,E,b,k,M,T,I,L,C;const F=e-o,D=r-o,R=t-i,j=n-i;M=F*j,d=m*F,f=d-(d-F),y=F-f,d=m*j,v=d-(d-j),g=j-v,T=y*g-(M-f*v-y*v-f*g),I=R*D,d=m*R,f=d-(d-R),y=R-f,d=m*D,v=d-(d-D),g=D-v,L=y*g-(I-f*v-y*v-f*g),E=T-L,p=T-E,P[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,P[1]=k-(E+p)+(p-I),C=b+E,p=C-b,P[2]=b-(C-p)+(E-p),P[3]=C;let x=function(e,t){let r=t[0];for(let n=1;n<e;n++)r+=t[n];return r}(4,P),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(p=e-F,l=e-(F+p)+(p-o),p=r-D,c=r-(D+p)+(p-o),p=t-R,s=t-(R+p)+(p-i),p=n-j,u=n-(j+p)+(p-i),0===l&&0===s&&0===c&&0===u)return x;if(B=11093356479670487e-47*a+h*Math.abs(x),x+=F*u+j*l-(R*c+D*s),x>=B||-x>=B)return x;M=l*j,d=m*l,f=d-(d-l),y=l-f,d=m*j,v=d-(d-j),g=j-v,T=y*g-(M-f*v-y*v-f*g),I=s*D,d=m*s,f=d-(d-s),y=s-f,d=m*D,v=d-(d-D),g=D-v,L=y*g-(I-f*v-y*v-f*g),E=T-L,p=T-E,w[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,w[1]=k-(E+p)+(p-I),C=b+E,p=C-b,w[2]=b-(C-p)+(E-p),w[3]=C;const N=S(4,P,4,w,A);M=F*u,d=m*F,f=d-(d-F),y=F-f,d=m*u,v=d-(d-u),g=u-v,T=y*g-(M-f*v-y*v-f*g),I=R*c,d=m*R,f=d-(d-R),y=R-f,d=m*c,v=d-(d-c),g=c-v,L=y*g-(I-f*v-y*v-f*g),E=T-L,p=T-E,w[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,w[1]=k-(E+p)+(p-I),C=b+E,p=C-b,w[2]=b-(C-p)+(E-p),w[3]=C;const G=S(N,A,4,w,O);M=l*u,d=m*l,f=d-(d-l),y=l-f,d=m*u,v=d-(d-u),g=u-v,T=y*g-(M-f*v-y*v-f*g),I=s*c,d=m*s,f=d-(d-s),y=s-f,d=m*c,v=d-(d-c),g=c-v,L=y*g-(I-f*v-y*v-f*g),E=T-L,p=T-E,w[0]=T-(E+p)+(p-L),b=M+E,p=b-M,k=M-(b-p)+(E-p),E=k-I,p=k-E,w[1]=k-(E+p)+(p-I),C=b+E,p=C-b,w[2]=b-(C-p)+(E-p),w[3]=C;const U=S(G,O,4,w,_);return _[U-1]}(e,t,r,n,o,i,c)}function M(e,t){var r,n,o,i,a,l,s,c,u,p=0,d=e[0],f=e[1],y=t.length;for(r=0;r<y;r++){n=0;var v=t[r],g=v.length-1;if((c=v[0])[0]!==v[g][0]&&c[1]!==v[g][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-d,a=c[1]-f;n<g;n++){if(l=(u=v[n+1])[0]-d,s=u[1]-f,0===a&&0===s){if(l<=0&&i>=0||i<=0&&l>=0)return 0}else if(s>=0&&a<=0||s<=0&&a>=0){if(0===(o=k(i,l,a,s,0,0)))return 0;(o>0&&s>0&&a<=0||o<0&&s<=0&&a>0)&&p++}c=u,a=s,i=l}}return p%2!=0}function T(e){return"Feature"===e.type?e.geometry:e}function I(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=T(t),i=o.type,a=t.bbox;let l=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&&(l=[l]);let s=!1;for(var c=0;c<l.length;++c){const e=M(n,l[c]);if(0===e)return!r.ignoreBoundary;e&&(s=!0)}return s}class L{constructor(e=[],t=C){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 C(e,t){return e<t?-1:e>t?1:0}function F(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function D(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 R{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 j=0,x=0,B=0;function N(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;x+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const l=new R(o,j,x,B),s=new R(i,j,x,B+1);l.otherEvent=s,s.otherEvent=l,F(l,s)>0?(s.isLeftEndpoint=!0,l.isLeftEndpoint=!1):(l.isLeftEndpoint=!0,s.isLeftEndpoint=!1),t.push(l),t.push(s),o=i,B+=1}}j+=1}class G{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function U(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,l=t.leftSweepEvent.p.y,s=t.rightSweepEvent.p.x,c=t.rightSweepEvent.p.y,u=(c-l)*(o-r)-(s-a)*(i-n),p=(s-a)*(n-l)-(c-l)*(r-a),d=(o-r)*(n-l)-(i-n)*(r-a);if(0===u)return!1;const f=p/u,y=d/u;if(f>=0&&f<=1&&y>=0&&y<=1){return[r+f*(o-r),n+f*(i-n)]}return!1}var V=function(e,t){const r=new L([],F);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)N(r[e],t)}else N(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new L([],D);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new G(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const l=U(e,a);!1!==l&&r.push(l)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)};function H(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let i=[];"FeatureCollection"===e.type?i=i.concat(e.features):"Feature"===e.type?i.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||i.push(p(e)),"FeatureCollection"===t.type?i=i.concat(t.features):"Feature"===t.type?i.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||i.push(p(t));const a=V(y(i),o);let l=[];if(n){const e={};a.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,l.push(t))})}else l=a;return y(l.map(e=>d(e)))}function K(e,t){!function(e,t){var r,n,o,i,a,l,s,c,u,p,d=0,f="FeatureCollection"===e.type,y="Feature"===e.type,v=f?e.features.length:1;for(r=0;r<v;r++){for(l=f?e.features[r].geometry:y?e.geometry:e,c=f?e.features[r].properties:y?e.properties:{},u=f?e.features[r].bbox:y?e.bbox:void 0,p=f?e.features[r].id:y?e.id:void 0,a=(s=!!l&&"GeometryCollection"===l.type)?l.geometries.length:1,o=0;o<a;o++)if(null!==(i=s?l.geometries[o]:l))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,d,c,u,p))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],d,c,u,p))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,d,c,u,p))return!1;d++}}(e,function(e,r,n,o,i){var a,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(p(e,n,{bbox:o,id:i}),r,0)&&void 0}switch(l){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}for(var s=0;s<e.coordinates.length;s++){var c=e.coordinates[s];if(!1===t(p({type:a,coordinates:c},n),r,s))return!1}})}function Y(e,t={}){const r=T(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){const r=T(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{};return q(n,o)}(r,t);case"MultiPolygon":return function(e,t={}){const r=T(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{},i=[];return n.forEach(e=>{i.push(q(e,o))}),y(i)}(r,t);default:throw new Error("invalid poly")}}function q(e,t){return e.length>1?v(e,t):f(e[0],t)}function W(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(X(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function z(e,t,r){for(const r of t.coordinates)if(I(r,e))return!0;return H(t,Y(e),{ignoreSelfIntersections:r}).features.length>0}function X(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])}var Z=function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return K(e,e=>{K(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!W(t,e);case"Polygon":return!I(e,t)}break;case"LineString":switch(t.type){case"Point":return!W(e,t);case"LineString":return!function(e,t,r){const n=H(e,t,{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(e,t,r);case"Polygon":return!z(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!I(t,e);case"LineString":return!z(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(I(r,t))return!0;for(const r of t.coordinates[0])if(I(r,e))return!0;const n=H(Y(e),Y(t),{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n};function J(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 p({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return p({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return f(t.coordinates);case"MultiLineString":return v(t.coordinates);case"Point":return d(t.coordinates);case"MultiPoint":return function(e,t,r={}){return p({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function Q(e,t){return t.some(t=>!Z(J(t),J(e)))}function $(e){if(e.length<2)return!1;if(e.some(e=>{var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=[...t].map(t=>e[t]);Q(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}var ee=e=>{var t={};for(var r of e)t[r.layerId]=r;return t},te=(e,t,r)=>{try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},re=e=>{var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r};var ne,oe;var ie=/mac/i.test(null!==(ne=null===(oe=navigator.userAgentData)||void 0===oe?void 0:oe.platform)&&void 0!==ne?ne:navigator.platform)?"<kbd>Option</kbd>":"<kbd>Alt</kbd>";"".concat(ie," + <kbd>Enter</kbd>"),"".concat(ie," + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>"),new Set;function ae(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function le(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?ae(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ae(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var se={slot:"middle",open:!1,dismissible:!0,modal:!0};le({},se),le(le({},se),{},{width:"500px"}),le(le({},se),{},{width:"500px"});var ce={small:1,medium:1.5,large:2},ue=e=>!!e.label&&(!e.symbol&&!e.symbolSvgContent&&(null===e.symbol||null===e.symbolSvgContent));function pe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function de(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?pe(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var fe=(e,t,r,n)=>({featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}),ye=e=>{var t,{featureId:r,feature:n,config:o,selectedFeatures:i,dispatch:a,multiSelect:l}=e;if(!i.length)return!1;var s=i.findIndex(e=>e.featureId===r&&e.layerId===o.layerId);if(-1!==s){if(i.length<3)return!1;var c=(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=[...t].map(t=>e[t]);null!==(o=e[n].geometry)&&void 0!==o&&o.type&&Q(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:[...t].map(t=>e[t])})(i.filter((e,t)=>t!==s));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var u=i.filter(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||!u.length)&&(!Q(n,u)&&(a({type:"TOGGLE_SELECTED_FEATURES",payload:de(de({},fe(r,l,o,n)),{},{replaceAll:!0})}),!0))},ve=e=>{var{mapProvider:t,layers:r,interactionModes:n,multiSelect:i,dispatch:a,markers:l,layerConfigMap:s,debug:c,tolerance:u,processFeatureMatch:p,processFallback:d,scale:f}=e;return o(e=>{var{point:o,coords:y}=e,v=c?te(t,o,{radius:u}):null;if(v&&((e,t)=>{var[r,n]=e;console.groupCollapsed("[interact] click (".concat(r.toFixed(4),", ").concat(n.toFixed(4),") — ").concat(t.length," feature").concat(1!==t.length?"s":"")),t.forEach(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,v),n.includes("selectMarker")){var g=((e,t,r)=>{for(var n of e.items){var o,i=null===(o=e.markerRefs)||void 0===o?void 0:o.get(n.id);if(i&&!ue(n)){var a=i.closest(".im-c-viewport__markers")||i.parentElement,l=a?a.getBoundingClientRect():{left:0,top:0},{left:s,top:c,right:u,bottom:p}=i.getBoundingClientRect(),d=t.x*r,f=t.y*r;if(d>=s-l.left&&d<=u-l.left&&f>=c-l.top&&f<=p-l.top)return n.id}}return null})(l,o,f);if(g)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:g,multiSelect:i}})}if(n.includes("selectFeature")&&r.length>0){var E=((e,t)=>{var r=e.filter(e=>{var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(re);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null})(null!=v?v:te(t,o,{radius:u}),s);if(E)return void p(E)}d({coords:y})},[t,r,n,i,a,l,s,c,u,p,d,f])},ge=e=>{var t,{mapState:r,pluginState:n,services:l,mapProvider:s}=e,{markers:c,mapSize:u}=r,{dispatch:p,layers:d,interactionModes:f,multiSelect:y,contiguous:v,marker:g,tolerance:E,selectedFeatures:m,selectedMarkers:h,deselectOnClickOutside:S}=n,{eventBus:b}=l,P=ee(d),A=null!==(t=ce[u])&&void 0!==t?t:1,O=o(e=>{var t,r,n,{feature:o,config:i}=e;c.remove("location");var a=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=a){var l=null===(n=s.getFeatureGeometry)||void 0===n?void 0:n.call(s,i.layerId,a,i.idProperty),u=l?de(de({},o),{},{geometry:l}):o;if(v&&y)if(ye({featureId:a,feature:u,config:i,selectedFeatures:m,dispatch:p,multiSelect:y}))return;p({type:"TOGGLE_SELECTED_FEATURES",payload:fe(a,y,i,u)})}},[c,p,y,v,m,s]),_=o(e=>{var{coords:t}=e,r=f.includes("placeMarker");(r||S)&&(p({type:"CLEAR_SELECTED_FEATURES"}),r&&(c.add("location",t,g),b.emit("interact:markerchange",{coords:t})))},[f,p,c,g,b,S]),w=ve({mapProvider:s,layers:d,interactionModes:f,multiSelect:y,dispatch:p,markers:c,layerConfigMap:P,debug:null==n?void 0:n.debug,tolerance:E,processFeatureMatch:O,processFallback:_,scale:A});return((e,t,r)=>{var n=i(null);a(()=>{var o=n.current;(null===o||0===o.features.length&&0===o.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t.map(e=>{var{featureId:t,layerId:r,idProperty:n,properties:o}=e;return{featureId:t,layerId:r,idProperty:n,properties:o}}),selectedMarkers:r,contiguous:$(t)}),n.current={features:t,markers:r})},[t,r])})(b,m,h),{handleInteraction:w}};function Ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function me(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Ee(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ee(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var he=(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},Se=e=>{var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),{left:n,right:o,top:i,bottom:a}=e.getBoundingClientRect();return o>r.left&&n<r.right&&a>r.top&&i<r.bottom},be=(e,t,r)=>{var n,o,i,a=t[null===(n=e.layer)||void 0===n?void 0:n.id];if(null==a||!a.labelProperty)return null;var l=he(e,a),s=null==l?null:String(l);return null==s||r.has(s)?null:(r.add(s),{id:s,label:null!==(o=null===(i=e.properties)||void 0===i?void 0:i[a.labelProperty])&&void 0!==o?o:s})};function Pe(e){var{markers:t,interactionModes:r,layers:n,mapProvider:o,multiSelect:i,eventBus:l}=e;a(()=>{var e=()=>{var e=[];null!=r&&r.includes("selectMarker")&&e.push(...(e=>{var t=[];for(var r of e.items){var n;if(r.label){var o=null===(n=e.markerRefs)||void 0===n?void 0:n.get(r.id);!ue(r)&&o&&Se(o)&&t.push({id:r.id,label:r.label})}}return t})(t)),null!=r&&r.includes("selectFeature")&&n.length>0&&e.push(...((e,t)=>{var r=[],n=new Set,o=t.map(e=>e.layerId),i=ee(t),a=e.getVisibleFeatures(o);for(var l of a){var s=be(l,i,n);s&&r.push(s)}return r})(o,n)),l.emit(u.MAP_SET_FEATURES,{items:e,multiselectable:i})};return e(),l.on(u.MAP_MOVE_END,e),l.on(u.MAP_DATA_CHANGE,e),()=>{l.off(u.MAP_MOVE_END,e),l.off(u.MAP_DATA_CHANGE,e)}},[t,r,n,o,i,l])}function Ae(e){var{markers:t,interactionModes:r,layers:n,mapProvider:o,eventBus:i,dispatch:l,listboxActiveItemRef:s}=e;a(()=>{var e=e=>{var{id:i}=e;if(null===i)return s.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.find(e=>e.id===i))return s.current={id:i,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&n.length>0){var a=n.map(e=>e.layerId),c=ee(n),u=((e,t,r)=>{for(var n of e){var o,i=t[null===(o=n.layer)||void 0===o?void 0:o.id],a=he(n,i);if(null!=a&&String(a)===String(r))return{feature:n,config:i,rawId:a}}return null})(o.getVisibleFeatures(a),c,i);if(u){var p={featureId:u.rawId,layerId:u.config.layerId,idProperty:u.config.idProperty,geometry:u.feature.geometry};s.current=me(me({id:i,isMarker:!1},p),{},{properties:u.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:p})}}};return i.on(u.MAP_SET_ACTIVE_FEATURE,e),()=>{i.off(u.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,n,o,i,l,s])}function Oe(e){var{mapState:t,pluginState:r,services:n,mapProvider:o}=e,{markers:l}=t,{dispatch:s,interactionModes:c,layers:p,multiSelect:d}=r,{eventBus:f}=n,y=i(null);Pe({markers:l,interactionModes:c,layers:p,mapProvider:o,multiSelect:d,eventBus:f}),Ae({markers:l,interactionModes:c,layers:p,mapProvider:o,eventBus:f,dispatch:s,listboxActiveItemRef:y}),function(e){var{eventBus:t,dispatch:r,listboxActiveItemRef:n,multiSelect:o}=e;a(()=>{var e=()=>{var e=n.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:o}});else{var{featureId:t,layerId:i,idProperty:a,geometry:l,properties:s}=e;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:i,idProperty:a,geometry:l,properties:s,multiSelect:o,replaceAll:!o}})}};return t.on(u.MAP_SELECT_FEATURE,e),()=>{t.off(u.MAP_SELECT_FEATURE,e)}},[t,r,n,o])}({eventBus:f,dispatch:s,listboxActiveItemRef:y,multiSelect:d})}var _e=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},we={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},ke=e=>{var{mapProvider:t,mapStyle:r,pluginState:n,selectedFeatures:o,events:i,eventBus:s}=e,{layers:c,listboxActiveItem:u}=n,p=l(()=>r?((e,t)=>{var r,n,o,i={};if(!t)return i;var a=null!==(r=we[t.mapColorScheme])&&void 0!==r?r:we.light,l=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,s=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(e=>{var r=e.activeStroke||l,n=e.selectedStroke||s,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:_e(r,t.id),selectionStroke:_e(n,t.id),fill:_e(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i})(c,r):null,[c,r]),d=()=>{var e,r=u?[{featureId:u.featureId,layerId:u.layerId,idProperty:u.idProperty,geometry:u.geometry}]:[];null===(e=t.updateHighlightedFeatures)||void 0===e||e.call(t,o,r,p)};a(()=>{if(t&&p){d();var e=()=>{s.once(i.MAP_DATA_CHANGE,d)};return s.on(i.MAP_STYLE_CHANGE,e),()=>{s.off(i.MAP_STYLE_CHANGE,e)}}},[o,u,t,p,s])};function Me(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Te(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Me(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Me(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function Ie(e){var t,r,n,{getAppState:o,mapState:i,getPluginState:a,buttonConfig:l,events:s,eventBus:c,handleInteraction:u,clickReadyRef:p}=e,{selectAtTarget:d}=l,f=()=>u(i.crossHair.getDetail()),y=e=>{p.current&&u(e)},{handleKeydown:v,handleKeyup:g}=(t=o().layoutRefs.viewportRef,r=f,n=!1,{handleKeydown:e=>{n="Enter"===e.key&&t.current===e.target},handleKeyup:e=>{"Enter"===e.key&&n&&(e.preventDefault(),r())}}),E=((e,t)=>(r,n)=>{var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:Te({multiSelect:o.multiSelect,addToExisting:n},r)})})(i,a),m=e=>E(e,!0),h=e=>E(e,!1);return document.addEventListener("keydown",v),document.addEventListener("keyup",g),c.on(s.MAP_CLICK,y),c.on("interact:selectFeature",m),c.on("interact:unselectFeature",h),d.onClick=f,()=>{d.onClick=null,document.removeEventListener("keydown",v),document.removeEventListener("keyup",g),c.off(s.MAP_CLICK,y),c.off("interact:selectFeature",m),c.off("interact:unselectFeature",h)}}var Le=e=>1===(null==e?void 0:e.length)&&e.includes("selectMarker");function Ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Fe(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Ce(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ce(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var De={ENABLE:(e,t)=>Fe(Fe(Fe({},e),t),{},{enabled:!0}),DISABLE:e=>Fe(Fe({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],listboxActiveItem:null}),TOGGLE_SELECTED_FEATURES:(e,t)=>{var{featureId:r,multiSelect:n,layerId:o,idProperty:i,addToExisting:a=!0,replaceAll:l=!1,properties:s,geometry:c}=t,u=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],p=u.findIndex(e=>e.featureId===r&&e.layerId===o);if(!1===a){var d=u.filter((e,t)=>t!==p);return Fe(Fe({},e),{},{selectedFeatures:d})}var f,y={featureId:r,layerId:o,idProperty:i,properties:s,geometry:c};if(n&&!l){var v=[...u];-1===p?v.push(y):v.splice(p,1),f=v}else{f=-1!==p&&1===u.length?[]:[y]}return Fe(Fe({},e),{},{selectedFeatures:f,selectedMarkers:n&&!l?e.selectedMarkers:[]})},TOGGLE_SELECTED_MARKERS:(e,t)=>{var{markerId:r,multiSelect:n}=t,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(e=>e!==r):[...o,r];return Fe(Fe({},e),{},{selectedMarkers:a})}return Fe(Fe({},e),{},{selectedFeatures:[],selectedMarkers:i&&1===o.length?[]:[r]})},CLEAR_SELECTED_FEATURES:e=>Fe(Fe({},e),{},{selectedFeatures:[],selectedMarkers:[]}),SET_SELECTED_FEATURES:(e,t)=>Fe(Fe({},e),{},{selectedFeatures:t}),SELECT_MARKER:(e,t)=>{var{markerId:r,multiSelect:n}=t,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[...o,r]:[r];return Fe(Fe({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectedMarkers:i})},UNSELECT_MARKER:(e,t)=>{var{markerId:r}=t,n=e.selectedMarkers;return n.includes(r)?Fe(Fe({},e),{},{selectedMarkers:n.filter(e=>e!==r)}):e},SET_LISTBOX_ACTIVE:(e,t)=>Fe(Fe({},e),{},{listboxActiveItem:null!=t?t:null})},Re={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};function je(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function xe(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?je(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):je(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Be="Select features",Ne={InitComponent:e=>{var{appState:t,mapState:r,services:n,buttonConfig:l,mapProvider:s,pluginState:c}=e,{enabled:p,selectedFeatures:d,interactionModes:f,layers:y}=c,{eventBus:v}=n,{crossHair:g,mapStyle:E,markers:m}=r,h=Le(f);Oe({mapState:r,pluginState:c,services:n,mapProvider:s});var{handleInteraction:S}=ge({mapState:r,pluginState:c,services:n,mapProvider:s});return ke({mapProvider:s,mapStyle:E,pluginState:c,selectedFeatures:d,events:u,eventBus:v}),a(()=>{v.emit("interact:active",{active:p,interactionModes:f})},[p,f]),function(e){var{enabled:t,interactionModes:r,markers:n,layers:o,eventBus:i}=e;a(()=>{if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&n.items.some(e=>e.label),a=(null==r?void 0:r.includes("selectFeature"))&&o.some(e=>e.labelProperty);(e||a)&&i.emit("interact:listboxcapable")}},[t,r,n,o,i])}({enabled:p,interactionModes:f,markers:m,layers:y,eventBus:v}),((e,t,r,n)=>{a(()=>{var o,i=t&&(null==r?void 0:r.includes("selectFeature"))?n.map(e=>e.layerId):[];return null===(o=e.setHoverCursor)||void 0===o||o.call(e,i),()=>{var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,n])})(s,p,f,y),function(e){var{crossHair:t,enabled:r,selectMarkerOnly:n,appState:l}=e,s=i(r);s.current=r;var c=i(n);c.current=n;var u=i(t);u.current=t;var p=i(!1),d=i(l.interfaceType);d.current=l.interfaceType;var f=o(()=>{var e=d.current,t=["touch","keyboard"].includes(e);!s.current||p.current||!t||"touch"===e&&c.current?u.current.hide():u.current.fixAtCenter()},[]);a(()=>{f()},[r,n,l.interfaceType,f]),a(()=>{var e,t=null===(e=l.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(t){var r=e=>{var t=!!e.target.closest('[role="listbox"], [role="option"]');p.current!==t&&(p.current=t,f())};return t.addEventListener("focusin",r),()=>{t.removeEventListener("focusin",r)}}},[l.layoutRefs,f])}({crossHair:g,enabled:p,selectMarkerOnly:h,appState:t}),function(e){var{pluginState:t,appState:r,mapState:n,buttonConfig:o,eventBus:l,handleInteraction:s}=e,c=i(s);c.current=s;var p=i(t);p.current=t;var d=i(r);d.current=r;var f=i(!1);a(()=>{f.current=!1;var e=setTimeout(()=>{f.current=!0},0);return()=>clearTimeout(e)},[t.enabled]),a(()=>{if(t.enabled)return Ie({getAppState:()=>d.current,mapState:n,getPluginState:()=>p.current,buttonConfig:o,events:u,eventBus:l,handleInteraction:e=>c.current(e),clickReadyRef:f})},[t.enabled,o,l])}({pluginState:c,appState:t,mapState:r,buttonConfig:l,eventBus:v,handleInteraction:S}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],closeOnAction:!0,listboxActiveItem:null},actions:De},buttons:[{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:e=>{var{appState:t,pluginState:r}=e;return!r.enabled||"touch"!==t.interfaceType||Le(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:Be,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:Be,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:Be,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:Be,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:(e,t)=>{var{pluginState:r,pluginConfig:n}=e;r.dispatch({type:"ENABLE",payload:xe(xe(xe({},Re),n),t)})},disable:e=>{var{pluginState:t}=e;t.dispatch({type:"DISABLE"})},clear:e=>{var{pluginState:t,mapState:r}=e;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})},selectMarker:(e,t)=>{var{pluginState:r}=e;r.dispatch({type:"SELECT_MARKER",payload:{markerId:t,multiSelect:r.multiSelect}})},unselectMarker:(e,t)=>{var{pluginState:r}=e;r.dispatch({type:"UNSELECT_MARKER",payload:{markerId:t}})}}};export{Ne as manifest};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[936],{559(e,t,r){r.r(t),r.d(t,{manifest:()=>Qe});var n=r(738),o={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!s(e[0])||!s(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function u(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const f=11102230246251565e-32,p=134217729,d=(3+8*f)*f;function y(e,t,r,n,o){let i,a,u,l,c=t[0],s=n[0],f=0,p=0;s>c==s>-c?(i=c,c=t[++f]):(i=s,s=n[++p]);let d=0;if(f<e&&p<r)for(s>c==s>-c?(a=c+i,u=i-(a-c),c=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[d++]=u);f<e&&p<r;)s>c==s>-c?(a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f]):(a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p]),i=a,0!==u&&(o[d++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[d++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[d++]=u);return 0===i&&0!==d||(o[d++]=i),d}function v(e){return new Float64Array(e)}const m=v(4),b=v(8),g=v(12),h=v(16),S=v(4);function E(e,t,r,n,o,i){const a=(t-i)*(r-o),u=(e-o)*(n-i),l=a-u,c=Math.abs(a+u);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let u,l,c,s,f,v,E,P,A,w,O,_,k,M,T,I,C,j;const L=e-o,F=r-o,D=t-i,R=n-i;M=L*R,v=p*L,E=v-(v-L),P=L-E,v=p*R,A=v-(v-R),w=R-A,T=P*w-(M-E*A-P*A-E*w),I=D*F,v=p*D,E=v-(v-D),P=D-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,m[0]=T-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-I,f=k-O,m[1]=k-(O+f)+(f-I),j=_+O,f=j-_,m[2]=_-(j-f)+(O-f),m[3]=j;let x=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,m),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(f=e-L,u=e-(L+f)+(f-o),f=r-F,c=r-(F+f)+(f-o),f=t-D,l=t-(D+f)+(f-i),f=n-R,s=n-(R+f)+(f-i),0===u&&0===l&&0===c&&0===s)return x;if(B=11093356479670487e-47*a+d*Math.abs(x),x+=L*s+R*u-(D*c+F*l),x>=B||-x>=B)return x;M=u*R,v=p*u,E=v-(v-u),P=u-E,v=p*R,A=v-(v-R),w=R-A,T=P*w-(M-E*A-P*A-E*w),I=l*F,v=p*l,E=v-(v-l),P=l-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-I,f=k-O,S[1]=k-(O+f)+(f-I),j=_+O,f=j-_,S[2]=_-(j-f)+(O-f),S[3]=j;const N=y(4,m,4,S,b);M=L*s,v=p*L,E=v-(v-L),P=L-E,v=p*s,A=v-(v-s),w=s-A,T=P*w-(M-E*A-P*A-E*w),I=D*c,v=p*D,E=v-(v-D),P=D-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-I,f=k-O,S[1]=k-(O+f)+(f-I),j=_+O,f=j-_,S[2]=_-(j-f)+(O-f),S[3]=j;const U=y(N,b,4,S,g);M=u*s,v=p*u,E=v-(v-u),P=u-E,v=p*s,A=v-(v-s),w=s-A,T=P*w-(M-E*A-P*A-E*w),I=l*c,v=p*l,E=v-(v-l),P=l-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(I-E*A-P*A-E*w),O=T-C,f=T-O,S[0]=T-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-I,f=k-O,S[1]=k-(O+f)+(f-I),j=_+O,f=j-_,S[2]=_-(j-f)+(O-f),S[3]=j;const G=y(U,g,4,S,h);return h[G-1]}(e,t,r,n,o,i,c)}function P(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],d=e[1],y=t.length;for(r=0;r<y;r++){n=0;var v=t[r],m=v.length-1;if((c=v[0])[0]!==v[m][0]&&c[1]!==v[m][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-p,a=c[1]-d;n<m;n++){if(u=(s=v[n+1])[0]-p,l=s[1]-d,0===a&&0===l){if(u<=0&&i>=0||i<=0&&u>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=E(i,u,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&f++}c=s,a=l,i=u}}return f%2!=0}function A(e){return"Feature"===e.type?e.geometry:e}function w(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=A(t),i=o.type,a=t.bbox;let u=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(u=[u]);let l=!1;for(var c=0;c<u.length;++c){const e=P(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(4),v(8),v(8),v(8),v(12),v(192),v(192),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(4),v(4),v(4),v(8),v(16),v(16),v(16),v(32),v(32),v(48),v(64),v(1152),v(1152),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(1152),v(1152),v(1152),v(1152),v(1152),v(2304),v(2304),v(3456),v(5760),v(8),v(8),v(8),v(16),v(24),v(48),v(48),v(96),v(192),v(384),v(384),v(384),v(768),v(96),v(96),v(96),v(1152);class O{constructor(e=[],t=_){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:r}=this,n=t[e];for(;e>0;){const o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}_down(e){const{data:t,compare:r}=this,n=this.length>>1,o=t[e];for(;e<n;){let n=1+(e<<1),i=t[n];const a=n+1;if(a<this.length&&r(t[a],i)<0&&(n=a,i=t[a]),r(i,o)>=0)break;t[e]=i,e=n}t[e]=o}}function _(e,t){return e<t?-1:e>t?1:0}function k(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function M(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class T{constructor(e,t,r,n){this.p={x:e[0],y:e[1]},this.featureId=t,this.ringId=r,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(e){return this.p.x===e.p.x&&this.p.y===e.p.y}}let I=0,C=0,j=0;function L(e,t){const r="Feature"===e.type?e.geometry:e;let n=r.coordinates;"Polygon"!==r.type&&"MultiLineString"!==r.type||(n=[n]),"LineString"===r.type&&(n=[[n]]);for(let e=0;e<n.length;e++)for(let r=0;r<n[e].length;r++){let o=n[e][r][0],i=null;C+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new T(o,I,C,j),l=new T(i,I,C,j+1);u.otherEvent=l,l.otherEvent=u,k(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,j+=1}}I+=1}class F{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function D(e,t){if(null===e||null===t)return!1;if(e.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.rightSweepEvent)||e.leftSweepEvent.isSamePoint(t.leftSweepEvent)||e.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const r=e.leftSweepEvent.p.x,n=e.leftSweepEvent.p.y,o=e.rightSweepEvent.p.x,i=e.rightSweepEvent.p.y,a=t.leftSweepEvent.p.x,u=t.leftSweepEvent.p.y,l=t.rightSweepEvent.p.x,c=t.rightSweepEvent.p.y,s=(c-u)*(o-r)-(l-a)*(i-n);if(0===s)return!1;const f=((l-a)*(n-u)-(c-u)*(r-a))/s,p=((o-r)*(n-u)-(i-n)*(r-a))/s;return f>=0&&f<=1&&p>=0&&p<=1&&[r+f*(o-r),n+f*(i-n)]}function R(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let u=[];"FeatureCollection"===e.type?u=u.concat(e.features):"Feature"===e.type?u.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||u.push(i(e)),"FeatureCollection"===t.type?u=u.concat(t.features):"Feature"===t.type?u.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||u.push(i(t));const c=function(e,t){const r=new O([],k);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)L(r[e],t)}else L(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new O([],M);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new F(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const u=D(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(l(u),o);let s=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,s.push(t))})}else s=c;return l(s.map(e=>a(e)))}function x(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,d="FeatureCollection"===e.type,y="Feature"===e.type,v=d?e.features.length:1;for(r=0;r<v;r++){for(u=d?e.features[r].geometry:y?e.geometry:e,c=d?e.features[r].properties:y?e.properties:{},s=d?e.features[r].bbox:y?e.bbox:void 0,f=d?e.features[r].id:y?e.id:void 0,a=(l=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,c,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,c,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,c,s,f))return!1;p++}}(e,function(e,r,n,o,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var s=e.coordinates[c];if(!1===t(i({type:u,coordinates:s},n),r,c))return!1}})}function B(e,t={}){const r=A(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return N(A(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=A(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(N(e,n))}),l(o)}(r,t);default:throw new Error("invalid poly")}}function N(e,t){return e.length>1?c(e,t):u(e[0],t)}function U(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(V(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function G(e,t,r){for(const r of t.coordinates)if(w(r,e))return!0;return R(t,B(e),{ignoreSelfIntersections:r}).features.length>0}function V(e,t,r){const n=r[0]-e[0],o=r[1]-e[1],i=t[0]-e[0],a=t[1]-e[1];return 0===n*a-o*i&&(Math.abs(i)>=Math.abs(a)?i>0?e[0]<=r[0]&&r[0]<=t[0]:t[0]<=r[0]&&r[0]<=e[0]:a>0?e[1]<=r[1]&&r[1]<=t[1]:t[1]<=r[1]&&r[1]<=e[1])}function H(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return K(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Y(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 q(e,t){return t.some(function(t){return!function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return x(e,e=>{x(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!U(t,e);case"Polygon":return!w(e,t)}break;case"LineString":switch(t.type){case"Point":return!U(e,t);case"LineString":return!function(e,t,r){return R(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!G(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!w(t,e);case"LineString":return!G(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(w(r,t))return!0;for(const r of t.coordinates[0])if(w(r,e))return!0;return R(B(e),B(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(Y(t),Y(e))})}function W(e){if(e.length<2)return!1;if(e.some(function(e){var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=H(t).map(function(t){return e[t]});q(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var X,$,J=function(e){var t,r={},n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return z(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;r[o.layerId]=o}}catch(e){n.e(e)}finally{n.f()}return r},Z=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},Q=function(e){var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r},ee=(r(287),/mac/i.test(null!==(X=null===($=navigator.userAgentData)||void 0===$?void 0:$.platform)&&void 0!==X?X:navigator.platform)?"<kbd>Option</kbd>":"<kbd>Alt</kbd>");"".concat(ee," + <kbd>Enter</kbd>"),"".concat(ee," + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>");new Set,new Set;function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach(function(t){oe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function oe(e,t,r){return(t=function(e){var t=function(e){if("object"!=te(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=te(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==te(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ie={slot:"middle",open:!1,dismissible:!0,modal:!0},ae=(ne({},ie),ne(ne({},ie),{},{width:"500px"}),ne(ne({},ie),{},{width:"500px"}),{small:1,medium:1.5,large:2}),ue=(new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),function(e){return!(!e.label||e.symbol||e.symbolSvgContent||null!==e.symbol&&null!==e.symbolSvgContent)});function le(e){return le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(e)}function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function se(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(r),!0).forEach(function(t){fe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function fe(e,t,r){return(t=function(e){var t=function(e){if("object"!=le(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==le(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pe(e){return function(e){if(Array.isArray(e))return ye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||de(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(e,t){if(e){if("string"==typeof e)return ye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ye(e,t):void 0}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var ve=function(e,t,r,n){return{featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}},me=function(e){var t=e.mapProvider,r=e.layers,o=e.interactionModes,i=e.multiSelect,a=e.dispatch,u=e.markers,l=e.layerConfigMap,c=e.debug,s=e.tolerance,f=e.processFeatureMatch,p=e.processFallback,d=e.scale;return(0,n.useCallback)(function(e){var n=e.point,y=e.coords,v=c?Z(t,n,{radius:s}):null;if(v&&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)||de(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,v),o.includes("selectMarker")){var m=function(e,t,r){var n,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=de(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e.items);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=null===(i=e.markerRefs)||void 0===i?void 0:i.get(a.id);if(u&&!ue(a)){var l=u.closest(".im-c-viewport__markers")||u.parentElement,c=l?l.getBoundingClientRect():{left:0,top:0},s=u.getBoundingClientRect(),f=s.left,p=s.top,d=s.right,y=s.bottom,v=t.x*r,m=t.y*r;if(v>=f-c.left&&v<=d-c.left&&m>=p-c.top&&m<=y-c.top)return a.id}}}catch(e){o.e(e)}finally{o.f()}return null}(u,n,d);if(m)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:m,multiSelect:i}})}if(o.includes("selectFeature")&&r.length>0){var b=function(e,t){var r=e.filter(function(e){var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(Q);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null}(null!=v?v:Z(t,n,{radius:s}),l);if(b)return void f(b)}p({coords:y})},[t,r,o,i,a,u,l,c,s,f,p,d])},be=function(e){var t,r=e.mapState,o=e.pluginState,i=e.services,a=e.mapProvider,u=r.markers,l=r.mapSize,c=o.dispatch,s=o.layers,f=o.interactionModes,p=o.multiSelect,d=o.contiguous,y=o.marker,v=o.tolerance,m=o.selectedFeatures,b=o.selectedMarkers,g=o.selectionBounds,h=o.deselectOnClickOutside,S=i.eventBus,E=J(s),P=null!==(t=ae[l])&&void 0!==t?t:1,A=(0,n.useCallback)(function(e){var t,r,n,o=e.feature,i=e.config;u.remove("location");var l=null!==(t=null===(r=o.properties)||void 0===r?void 0:r[i.idProperty])&&void 0!==t?t:o.id;if(null!=l){var s=null===(n=a.getFeatureGeometry)||void 0===n?void 0:n.call(a,i.layerId,l,i.idProperty),f=s?se(se({},o),{},{geometry:s}):o;if(d&&p&&function(e){var t,r=e.featureId,n=e.feature,o=e.config,i=e.selectedFeatures,a=e.dispatch,u=e.multiSelect;if(!i.length)return!1;var l=i.findIndex(function(e){return e.featureId===r&&e.layerId===o.layerId});if(-1!==l){if(i.length<3)return!1;var c=function(e){for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++){var o;if(!t.has(n)){var i=pe(t).map(function(t){return e[t]});null!==(o=e[n].geometry)&&void 0!==o&&o.type&&q(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:pe(t).map(function(t){return e[t]})}(i.filter(function(e,t){return t!==l}));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var s=i.filter(function(e){var t;return null===(t=e.geometry)||void 0===t?void 0:t.type});return!(null===(t=n.geometry)||void 0===t||!t.type||!s.length||q(n,s)||(a({type:"TOGGLE_SELECTED_FEATURES",payload:se(se({},ve(r,u,o,n)),{},{replaceAll:!0})}),0))}({featureId:l,feature:f,config:i,selectedFeatures:m,dispatch:c,multiSelect:p}))return;c({type:"TOGGLE_SELECTED_FEATURES",payload:ve(l,p,i,f)})}},[u,c,p,d,m,a]),w=(0,n.useCallback)(function(e){var t=e.coords,r=f.includes("placeMarker");(r||h)&&(c({type:"CLEAR_SELECTED_FEATURES"}),r&&(u.add("location",t,y),S.emit("interact:markerchange",{coords:t})))},[f,c,u,y,S,h]),O=me({mapProvider:a,layers:s,interactionModes:f,multiSelect:p,dispatch:c,markers:u,layerConfigMap:E,debug:null==o?void 0:o.debug,tolerance:v,processFeatureMatch:A,processFallback:w,scale:P});return function(e,t,r,o){var i=(0,n.useRef)(null);(0,n.useEffect)(function(){if(!(t.length>0)||o){var n=i.current;(null===n||0===n.features.length&&0===n.markers.length)&&0===t.length&&0===r.length||(e.emit("interact:selectionchange",{selectedFeatures:t,selectedMarkers:r,selectionBounds:o,contiguous:W(t)}),i.current={features:t,markers:r})}},[t,r,o])}(S,m,b,g),{handleInteraction:O}};function ge(e){return ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ge(e)}function he(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Se(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?he(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):he(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ee(e,t,r){return(t=function(e){var t=function(e){if("object"!=ge(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ge(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ge(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pe(e){return function(e){if(Array.isArray(e))return Oe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||we(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=we(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function we(e,t){if(e){if("string"==typeof e)return Oe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Oe(e,t):void 0}}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var _e=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},ke=function(e){var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),o=n.left,i=n.right,a=n.top,u=n.bottom;return i>r.left&&o<r.right&&u>r.top&&a<r.bottom},Me=function(e,t,r){var n,o,i,a=t[null===(n=e.layer)||void 0===n?void 0:n.id];if(null==a||!a.labelProperty)return null;var u=_e(e,a),l=null==u?null:String(u);return null==l||r.has(l)?null:(r.add(l),{id:l,label:null!==(o=null===(i=e.properties)||void 0===i?void 0:i[a.labelProperty])&&void 0!==o?o:l})};function Te(e){var t=e.mapState,r=e.pluginState,i=e.services,a=e.mapProvider,u=t.markers,l=r.dispatch,c=r.interactionModes,s=r.layers,f=r.multiSelect,p=i.eventBus,d=(0,n.useRef)(null);(function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.multiSelect,l=e.eventBus;(0,n.useEffect)(function(){var e=function(){var e=[];null!=r&&r.includes("selectMarker")&&e.push.apply(e,Pe(function(e){var t,r=[],n=Ae(e.items);try{for(n.s();!(t=n.n()).done;){var o,i=t.value;if(i.label){var a=null===(o=e.markerRefs)||void 0===o?void 0:o.get(i.id);!ue(i)&&a&&ke(a)&&r.push({id:i.id,label:i.label})}}}catch(e){n.e(e)}finally{n.f()}return r}(t))),null!=r&&r.includes("selectFeature")&&i.length>0&&e.push.apply(e,Pe(function(e,t){var r,n=[],o=new Set,i=t.map(function(e){return e.layerId}),a=J(t),u=Ae(e.getVisibleFeatures(i));try{for(u.s();!(r=u.n()).done;){var l=r.value,c=Me(l,a,o);c&&n.push(c)}}catch(e){u.e(e)}finally{u.f()}return n}(a,i))),l.emit(o.MAP_SET_FEATURES,{items:e,multiselectable:u})};return e(),l.on(o.MAP_MOVE_END,e),l.on(o.MAP_DATA_CHANGE,e),function(){l.off(o.MAP_MOVE_END,e),l.off(o.MAP_DATA_CHANGE,e)}},[t,r,i,a,u,l])})({markers:u,interactionModes:c,layers:s,mapProvider:a,multiSelect:f,eventBus:p}),function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.eventBus,l=e.dispatch,c=e.listboxActiveItemRef;(0,n.useEffect)(function(){var e=function(e){var n=e.id;if(null===n)return c.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.find(function(e){return e.id===n}))return c.current={id:n,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&i.length>0){var o=i.map(function(e){return e.layerId}),u=J(i),s=function(e,t,r){var n,o=Ae(e);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=t[null===(i=a.layer)||void 0===i?void 0:i.id],l=_e(a,u);if(null!=l&&String(l)===String(r))return{feature:a,config:u,rawId:l}}}catch(e){o.e(e)}finally{o.f()}return null}(a.getVisibleFeatures(o),u,n);if(s){var f={featureId:s.rawId,layerId:s.config.layerId,idProperty:s.config.idProperty,geometry:s.feature.geometry};c.current=Se(Se({id:n,isMarker:!1},f),{},{properties:s.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:f})}}};return u.on(o.MAP_SET_ACTIVE_FEATURE,e),function(){u.off(o.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,i,a,u,l,c])}({markers:u,interactionModes:c,layers:s,mapProvider:a,eventBus:p,dispatch:l,listboxActiveItemRef:d}),function(e){var t=e.eventBus,r=e.dispatch,i=e.listboxActiveItemRef,a=e.multiSelect;(0,n.useEffect)(function(){var e=function(){var e=i.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:a}});else{var t=e.featureId,n=e.layerId,o=e.idProperty,u=e.geometry,l=e.properties;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:n,idProperty:o,geometry:u,properties:l,multiSelect:a,replaceAll:!a}})}};return t.on(o.MAP_SELECT_FEATURE,e),function(){t.off(o.MAP_SELECT_FEATURE,e)}},[t,r,i,a])}({eventBus:p,dispatch:l,listboxActiveItemRef:d,multiSelect:f})}function Ie(e){return Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ie(e)}var Ce=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===Ie(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},je={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}},Le=window.matchMedia("(pointer: coarse)").matches?"touch":"unknown",Fe=(new Set,new Set);function De(e){return De="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function xe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Re(Object(r),!0).forEach(function(t){Be(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Be(e,t,r){return(t=function(e){var t=function(e){if("object"!=De(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=De(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==De(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ne=function(e){return 1===(null==e?void 0:e.length)&&e.includes("selectMarker")};function Ue(e){return Ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ue(e)}function Ge(e){return function(e){if(Array.isArray(e))return Ve(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ve(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ve(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function He(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Ke(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?He(Object(r),!0).forEach(function(t){Ye(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):He(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ye(e,t,r){return(t=function(e){var t=function(e){if("object"!=Ue(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ue(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ue(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var qe={ENABLE:function(e,t){return Ke(Ke(Ke({},e),t),{},{enabled:!0})},DISABLE:function(e){return Ke(Ke({},e),{},{enabled:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,listboxActiveItem:null})},TOGGLE_SELECTED_FEATURES:function(e,t){var r=t.featureId,n=t.multiSelect,o=t.layerId,i=t.idProperty,a=t.addToExisting,u=void 0===a||a,l=t.replaceAll,c=void 0!==l&&l,s=t.properties,f=t.geometry,p=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],d=p.findIndex(function(e){return e.featureId===r&&e.layerId===o});if(!1===u){var y=p.filter(function(e,t){return t!==d});return Ke(Ke({},e),{},{selectedFeatures:y,selectionBounds:null})}var v,m={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=Ge(p);-1===d?b.push(m):b.splice(d,1),v=b}else v=-1!==d&&1===p.length?[]:[m];return Ke(Ke({},e),{},{selectedFeatures:v,selectedMarkers:n&&!c?e.selectedMarkers:[],selectionBounds:null})},TOGGLE_SELECTED_MARKERS:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers,i=o.includes(r);if(n){var a=i?o.filter(function(e){return e!==r}):[].concat(Ge(o),[r]);return Ke(Ke({},e),{},{selectedMarkers:a})}return Ke(Ke({},e),{},{selectedFeatures:[],selectionBounds:null,selectedMarkers:i&&1===o.length?[]:[r]})},UPDATE_SELECTED_BOUNDS:function(e,t){return JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:Ke(Ke({},e),{},{selectionBounds:t})},CLEAR_SELECTED_FEATURES:function(e){return Ke(Ke({},e),{},{selectedFeatures:[],selectedMarkers:[],selectionBounds:null})},SET_SELECTED_FEATURES:function(e,t){return Ke(Ke({},e),{},{selectedFeatures:t,selectionBounds:null})},SELECT_MARKER:function(e,t){var r=t.markerId,n=t.multiSelect,o=e.selectedMarkers;if(o.includes(r))return e;var i=n?[].concat(Ge(o),[r]):[r];return Ke(Ke({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectionBounds:null,selectedMarkers:i})},UNSELECT_MARKER:function(e,t){var r=t.markerId,n=e.selectedMarkers;return n.includes(r)?Ke(Ke({},e),{},{selectedMarkers:n.filter(function(e){return e!==r})}):e},SET_LISTBOX_ACTIVE:function(e,t){return Ke(Ke({},e),{},{listboxActiveItem:null!=t?t:null})}},We={tolerance:10,interactionModes:["selectMarker"],multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,marker:{}};function ze(e){return ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ze(e)}function Xe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function $e(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xe(Object(r),!0).forEach(function(t){Je(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Je(e,t,r){return(t=function(e){var t=function(e){if("object"!=ze(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ze(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ze="Select features",Qe={InitComponent:function(e){var t=e.appState,r=e.mapState,i=e.services,a=e.buttonConfig,u=e.mapProvider,l=e.pluginState,c=l.dispatch,s=l.enabled,f=l.selectedFeatures,p=l.interactionModes,d=l.layers,y=i.eventBus,v=r.crossHair,m=r.mapStyle,b=r.markers,g=Ne(p);Te({mapState:r,pluginState:l,services:i,mapProvider:u});var h=be({appState:t,mapState:r,pluginState:l,services:i,mapProvider:u}).handleInteraction;return function(e){var t=e.mapProvider,r=e.mapStyle,o=e.pluginState,i=e.selectedFeatures,a=e.dispatch,u=e.events,l=e.eventBus,c=o.layers,s=o.listboxActiveItem,f=(0,n.useMemo)(function(){return r?function(e,t){var r,n,o,i={};if(!t)return i;var a=null!==(r=je[t.mapColorScheme])&&void 0!==r?r:je.light,u=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,l=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(function(e){var r=e.activeStroke||u,n=e.selectedStroke||l,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:Ce(r,t.id),selectionStroke:Ce(n,t.id),fill:Ce(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i}(c,r):null},[c,r]),p=function(){var e,r=s?[{featureId:s.featureId,layerId:s.layerId,idProperty:s.idProperty,geometry:s.geometry}]:[],n=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,i,r,f);a({type:"UPDATE_SELECTED_BOUNDS",payload:n})};(0,n.useEffect)(function(){if(t&&f){p();var e=function(){l.once(u.MAP_DATA_CHANGE,p)};return l.on(u.MAP_STYLE_CHANGE,e),function(){l.off(u.MAP_STYLE_CHANGE,e)}}},[i,s,t,f,l])}({mapProvider:u,mapStyle:m,pluginState:l,selectedFeatures:f,dispatch:c,events:o,eventBus:y}),(0,n.useEffect)(function(){y.emit("interact:active",{active:s,interactionModes:p})},[s,p]),function(e){var t=e.enabled,r=e.interactionModes,o=e.markers,i=e.layers,a=e.eventBus;(0,n.useEffect)(function(){if(t){var e=(null==r?void 0:r.includes("selectMarker"))&&o.items.some(function(e){return e.label}),n=(null==r?void 0:r.includes("selectFeature"))&&i.some(function(e){return e.labelProperty});(e||n)&&a.emit("interact:listboxcapable")}},[t,r,o,i,a])}({enabled:s,interactionModes:p,markers:b,layers:d,eventBus:y}),function(e,t,r,o){(0,n.useEffect)(function(){var n,i=t&&(null==r?void 0:r.includes("selectFeature"))?o.map(function(e){return e.layerId}):[];return null===(n=e.setHoverCursor)||void 0===n||n.call(e,i),function(){var t;return null===(t=e.setHoverCursor)||void 0===t?void 0:t.call(e,[])}},[t,r,o])}(u,s,p,d),function(e){var t=e.crossHair,r=e.enabled,o=e.selectMarkerOnly,i=e.appState,a=(0,n.useRef)(r);a.current=r;var u=(0,n.useRef)(o);u.current=o;var l=(0,n.useRef)(t);l.current=t;var c=(0,n.useRef)(!1),s=(0,n.useCallback)(function(){var e="unknown"===Le?(Le="mouse","mouse"):Le,t=["touch","keyboard"].includes(e);!a.current||c.current||!t||"touch"===e&&u.current?l.current.hide():l.current.fixAtCenter()},[]);(0,n.useEffect)(function(){s()},[r,o,s]),(0,n.useEffect)(function(){return e=s,Fe.add(e),function(){Fe.delete(e)};var e},[s]),(0,n.useEffect)(function(){var e,t=null===(e=i.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(t){var r=function(e){var t=!!e.target.closest('[role="listbox"], [role="option"]');c.current!==t&&(c.current=t,s())};return t.addEventListener("focusin",r),function(){t.removeEventListener("focusin",r)}}},[i.layoutRefs,s])}({crossHair:v,enabled:s,selectMarkerOnly:g,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)},v=(t=o().layoutRefs.viewportRef,r=d,n=!1,{handleKeydown:function(e){n="Enter"===e.key&&t.current===e.target},handleKeyup:function(e){"Enter"===e.key&&n&&(e.preventDefault(),r())}}),m=v.handleKeydown,b=v.handleKeyup,g=function(e,t){return function(r,n){var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:xe({multiSelect:o.multiSelect,addToExisting:n},r)})}}(i,a),h=function(e){return g(e,!0)},S=function(e){return g(e,!1)};return document.addEventListener("keydown",m),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",m),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])}({pluginState:l,appState:t,mapState:r,buttonConfig:a,eventBus:y,handleInteraction:h}),null},reducer:{initialState:{enabled:!1,layers:[],marker:null,interactionModes:null,multiSelect:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectedMarkers:[],selectionBounds:null,closeOnAction:!0,listboxActiveItem:null},actions:qe},buttons:[{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState,r=e.pluginState;return!r.enabled||"touch"!==t.interfaceType||Ne(r.interactionModes)},mobile:{slot:"actions"},tablet:{slot:"actions"},desktop:{slot:"actions"}}],keyboardShortcuts:[{id:"clickAtTarget",title:"Click at target",command:"<kbd>Enter</kbd>"},{id:"selectFeatures",group:Ze,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:Ze,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:Ze,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:Ze,context:"listbox",title:"Dismiss hint / return to map",command:"<kbd>Escape</kbd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:function(e,t){var r=e.pluginState,n=e.pluginConfig;r.dispatch({type:"ENABLE",payload:$e($e($e({},We),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],{262(e,t,r){r.r(t),r.d(t,{manifest:()=>Ze});var n=r(738),o={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_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_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"};function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!s(e[0])||!s(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function u(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Math.PI;const f=11102230246251565e-32,p=134217729,d=(3+8*f)*f;function y(e,t,r,n,o){let i,a,u,l,c=t[0],s=n[0],f=0,p=0;s>c==s>-c?(i=c,c=t[++f]):(i=s,s=n[++p]);let d=0;if(f<e&&p<r)for(s>c==s>-c?(a=c+i,u=i-(a-c),c=t[++f]):(a=s+i,u=i-(a-s),s=n[++p]),i=a,0!==u&&(o[d++]=u);f<e&&p<r;)s>c==s>-c?(a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f]):(a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p]),i=a,0!==u&&(o[d++]=u);for(;f<e;)a=i+c,l=a-i,u=i-(a-l)+(c-l),c=t[++f],i=a,0!==u&&(o[d++]=u);for(;p<r;)a=i+s,l=a-i,u=i-(a-l)+(s-l),s=n[++p],i=a,0!==u&&(o[d++]=u);return 0===i&&0!==d||(o[d++]=i),d}function v(e){return new Float64Array(e)}const m=v(4),b=v(8),g=v(12),h=v(16),S=v(4);function E(e,t,r,n,o,i){const a=(t-i)*(r-o),u=(e-o)*(n-i),l=a-u,c=Math.abs(a+u);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let u,l,c,s,f,v,E,P,A,w,O,_,k,M,I,T,C,j;const L=e-o,F=r-o,R=t-i,D=n-i;M=L*D,v=p*L,E=v-(v-L),P=L-E,v=p*D,A=v-(v-D),w=D-A,I=P*w-(M-E*A-P*A-E*w),T=R*F,v=p*R,E=v-(v-R),P=R-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(T-E*A-P*A-E*w),O=I-C,f=I-O,m[0]=I-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-T,f=k-O,m[1]=k-(O+f)+(f-T),j=_+O,f=j-_,m[2]=_-(j-f)+(O-f),m[3]=j;let x=function(e,t){let r=t[0];for(let e=1;e<4;e++)r+=t[e];return r}(0,m),B=22204460492503146e-32*a;if(x>=B||-x>=B)return x;if(f=e-L,u=e-(L+f)+(f-o),f=r-F,c=r-(F+f)+(f-o),f=t-R,l=t-(R+f)+(f-i),f=n-D,s=n-(D+f)+(f-i),0===u&&0===l&&0===c&&0===s)return x;if(B=11093356479670487e-47*a+d*Math.abs(x),x+=L*s+D*u-(R*c+F*l),x>=B||-x>=B)return x;M=u*D,v=p*u,E=v-(v-u),P=u-E,v=p*D,A=v-(v-D),w=D-A,I=P*w-(M-E*A-P*A-E*w),T=l*F,v=p*l,E=v-(v-l),P=l-E,v=p*F,A=v-(v-F),w=F-A,C=P*w-(T-E*A-P*A-E*w),O=I-C,f=I-O,S[0]=I-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-T,f=k-O,S[1]=k-(O+f)+(f-T),j=_+O,f=j-_,S[2]=_-(j-f)+(O-f),S[3]=j;const N=y(4,m,4,S,b);M=L*s,v=p*L,E=v-(v-L),P=L-E,v=p*s,A=v-(v-s),w=s-A,I=P*w-(M-E*A-P*A-E*w),T=R*c,v=p*R,E=v-(v-R),P=R-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(T-E*A-P*A-E*w),O=I-C,f=I-O,S[0]=I-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-T,f=k-O,S[1]=k-(O+f)+(f-T),j=_+O,f=j-_,S[2]=_-(j-f)+(O-f),S[3]=j;const G=y(N,b,4,S,g);M=u*s,v=p*u,E=v-(v-u),P=u-E,v=p*s,A=v-(v-s),w=s-A,I=P*w-(M-E*A-P*A-E*w),T=l*c,v=p*l,E=v-(v-l),P=l-E,v=p*c,A=v-(v-c),w=c-A,C=P*w-(T-E*A-P*A-E*w),O=I-C,f=I-O,S[0]=I-(O+f)+(f-C),_=M+O,f=_-M,k=M-(_-f)+(O-f),O=k-T,f=k-O,S[1]=k-(O+f)+(f-T),j=_+O,f=j-_,S[2]=_-(j-f)+(O-f),S[3]=j;const U=y(G,g,4,S,h);return h[U-1]}(e,t,r,n,o,i,c)}function P(e,t){var r,n,o,i,a,u,l,c,s,f=0,p=e[0],d=e[1],y=t.length;for(r=0;r<y;r++){n=0;var v=t[r],m=v.length-1;if((c=v[0])[0]!==v[m][0]&&c[1]!==v[m][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-p,a=c[1]-d;n<m;n++){if(u=(s=v[n+1])[0]-p,l=s[1]-d,0===a&&0===l){if(u<=0&&i>=0||i<=0&&u>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=E(i,u,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&f++}c=s,a=l,i=u}}return f%2!=0}function A(e){return"Feature"===e.type?e.geometry:e}function w(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=A(t),i=o.type,a=t.bbox;let u=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(u=[u]);let l=!1;for(var c=0;c<u.length;++c){const e=P(n,u[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(4),v(8),v(8),v(8),v(12),v(192),v(192),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(8),v(4),v(4),v(4),v(8),v(16),v(16),v(16),v(32),v(32),v(48),v(64),v(1152),v(1152),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(4),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(24),v(1152),v(1152),v(1152),v(1152),v(1152),v(2304),v(2304),v(3456),v(5760),v(8),v(8),v(8),v(16),v(24),v(48),v(48),v(96),v(192),v(384),v(384),v(384),v(768),v(96),v(96),v(96),v(1152);class O{constructor(e=[],t=_){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:r}=this,n=t[e];for(;e>0;){const o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}_down(e){const{data:t,compare:r}=this,n=this.length>>1,o=t[e];for(;e<n;){let n=1+(e<<1),i=t[n];const a=n+1;if(a<this.length&&r(t[a],i)<0&&(n=a,i=t[a]),r(i,o)>=0)break;t[e]=i,e=n}t[e]=o}}function _(e,t){return e<t?-1:e>t?1:0}function k(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 T=0,C=0,j=0;function L(e,t){const r="Feature"===e.type?e.geometry:e;let n=r.coordinates;"Polygon"!==r.type&&"MultiLineString"!==r.type||(n=[n]),"LineString"===r.type&&(n=[[n]]);for(let e=0;e<n.length;e++)for(let r=0;r<n[e].length;r++){let o=n[e][r][0],i=null;C+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const u=new I(o,T,C,j),l=new I(i,T,C,j+1);u.otherEvent=l,l.otherEvent=u,k(u,l)>0?(l.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(u),t.push(l),o=i,j+=1}}T+=1}class F{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function R(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 D(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let u=[];"FeatureCollection"===e.type?u=u.concat(e.features):"Feature"===e.type?u.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||u.push(i(e)),"FeatureCollection"===t.type?u=u.concat(t.features):"Feature"===t.type?u.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||u.push(i(t));const c=function(e,t){const r=new O([],k);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)L(r[e],t)}else L(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new O([],M);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new F(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const u=R(e,a);!1!==u&&r.push(u)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)}(l(u),o);let s=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,s.push(t))})}else s=c;return l(s.map(e=>a(e)))}function x(e,t){!function(e,t){var r,n,o,i,a,u,l,c,s,f,p=0,d="FeatureCollection"===e.type,y="Feature"===e.type,v=d?e.features.length:1;for(r=0;r<v;r++){for(u=d?e.features[r].geometry:y?e.geometry:e,c=d?e.features[r].properties:y?e.properties:{},s=d?e.features[r].bbox:y?e.bbox:void 0,f=d?e.features[r].id:y?e.id:void 0,a=(l=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,p,c,s,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],p,c,s,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,p,c,s,f))return!1;p++}}(e,function(e,r,n,o,a){var u,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var s=e.coordinates[c];if(!1===t(i({type:u,coordinates:s},n),r,c))return!1}})}function B(e,t={}){const r=A(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){return N(A(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}(r,t);case"MultiPolygon":return function(e,t={}){const r=A(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},o=[];return r.forEach(e=>{o.push(N(e,n))}),l(o)}(r,t);default:throw new Error("invalid poly")}}function N(e,t){return e.length>1?c(e,t):u(e[0],t)}function G(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(H(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function U(e,t,r){for(const r of t.coordinates)if(w(r,e))return!0;return D(t,B(e),{ignoreSelfIntersections:r}).features.length>0}function H(e,t,r){const n=r[0]-e[0],o=r[1]-e[1],i=t[0]-e[0],a=t[1]-e[1];return 0===n*a-o*i&&(Math.abs(i)>=Math.abs(a)?i>0?e[0]<=r[0]&&r[0]<=t[0]:t[0]<=r[0]&&r[0]<=e[0]:a>0?e[1]<=r[1]&&r[1]<=t[1]:t[1]<=r[1]&&r[1]<=e[1])}function V(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return K(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?K(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Y(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 q(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!G(t,e);case"Polygon":return!w(e,t)}break;case"LineString":switch(t.type){case"Point":return!G(e,t);case"LineString":return!function(e,t,r){return D(e,t,{ignoreSelfIntersections:r}).features.length>0}(e,t,r);case"Polygon":return!U(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!w(t,e);case"LineString":return!U(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(w(r,t))return!0;for(const r of t.coordinates[0])if(w(r,e))return!0;return D(B(e),B(t),{ignoreSelfIntersections:r}).features.length>0}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n}(Y(t),Y(e))})}function W(e){if(e.length<2)return!1;if(e.some(function(e){var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=V(t).map(function(t){return e[t]});q(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var X,$,Z=function(e){var t,r={},n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return z(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;r[o.layerId]=o}}catch(e){n.e(e)}finally{n.f()}return r},J=function(e,t,r){try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}},Q=function(e){var t,r=null===(t=e.geometry)||void 0===t?void 0:t.type;return"Point"===r||"MultiPoint"===r},ee=(r(287),/mac/i.test(null!==(X=null===($=navigator.userAgentData)||void 0===$?void 0:$.platform)&&void 0!==X?X:navigator.platform)?"<kbd>Option</kbd>":"<kbd>Alt</kbd>");"".concat(ee," + <kbd>Enter</kbd>"),"".concat(ee," + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>");new Set,new Set;function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach(function(t){oe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function oe(e,t,r){return(t=function(e){var t=function(e){if("object"!=te(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=te(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==te(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ie={slot:"middle",open:!1,dismissible:!0,modal:!0},ae=(ne({},ie),ne(ne({},ie),{},{width:"500px"}),ne(ne({},ie),{},{width:"500px"}),{small:1,medium:1.5,large:2}),ue=(new Set(["symbolBackgroundColor","symbolForegroundColor","symbolHaloWidth","symbolGraphic"]),function(e){return!(!e.label||e.symbol||e.symbolSvgContent||null!==e.symbol&&null!==e.symbolSvgContent)});function le(e){return le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(e)}function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function se(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(r),!0).forEach(function(t){fe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function fe(e,t,r){return(t=function(e){var t=function(e){if("object"!=le(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==le(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pe(e){return function(e){if(Array.isArray(e))return ye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||de(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(e,t){if(e){if("string"==typeof e)return ye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ye(e,t):void 0}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var ve=function(e,t,r,n){return{featureId:e,multiSelect:t,layerId:r.layerId,idProperty:r.idProperty,properties:n.properties,geometry:n.geometry}},me=function(e){var t=e.mapProvider,r=e.layers,o=e.interactionModes,i=e.multiSelect,a=e.dispatch,u=e.markers,l=e.layerConfigMap,c=e.debug,s=e.tolerance,f=e.processFeatureMatch,p=e.processFallback,d=e.scale;return(0,n.useCallback)(function(e){var n=e.point,y=e.coords,v=c?J(t,n,{radius:s}):null;if(v&&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)||de(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,v),o.includes("selectMarker")){var m=function(e,t,r){var n,o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=de(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(a)throw o}}}}(e.items);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=null===(i=e.markerRefs)||void 0===i?void 0:i.get(a.id);if(u&&!ue(a)){var l=u.closest(".im-c-viewport__markers")||u.parentElement,c=l?l.getBoundingClientRect():{left:0,top:0},s=u.getBoundingClientRect(),f=s.left,p=s.top,d=s.right,y=s.bottom,v=t.x*r,m=t.y*r;if(v>=f-c.left&&v<=d-c.left&&m>=p-c.top&&m<=y-c.top)return a.id}}}catch(e){o.e(e)}finally{o.f()}return null}(u,n,d);if(m)return void a({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:m,multiSelect:i}})}if(o.includes("selectFeature")&&r.length>0){var b=function(e,t){var r=e.filter(function(e){var r;return t[null===(r=e.layer)||void 0===r?void 0:r.id]}),n=r.find(Q);if(n)return{feature:n,config:t[n.layer.id]};var o=r[0];return o?{feature:o,config:t[o.layer.id]}:null}(null!=v?v:J(t,n,{radius:s}),l);if(b)return void f(b)}p({coords:y})},[t,r,o,i,a,u,l,c,s,f,p,d])},be=function(e){var t,r=e.mapState,o=e.pluginState,i=e.services,a=e.mapProvider,u=r.markers,l=r.mapSize,c=o.dispatch,s=o.layers,f=o.interactionModes,p=o.multiSelect,d=o.contiguous,y=o.marker,v=o.tolerance,m=o.selectedFeatures,b=o.selectedMarkers,g=o.deselectOnClickOutside,h=i.eventBus,S=Z(s),E=null!==(t=ae[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?se(se({},o),{},{geometry:s}):o;if(d&&p&&function(e){var t,r=e.featureId,n=e.feature,o=e.config,i=e.selectedFeatures,a=e.dispatch,u=e.multiSelect;if(!i.length)return!1;var l=i.findIndex(function(e){return e.featureId===r&&e.layerId===o.layerId});if(-1!==l){if(i.length<3)return!1;var c=function(e){for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++){var o;if(!t.has(n)){var i=pe(t).map(function(t){return e[t]});null!==(o=e[n].geometry)&&void 0!==o&&o.type&&q(e[n],i)&&(t.add(n),r=!0)}}}return t.size===e.length?null:pe(t).map(function(t){return e[t]})}(i.filter(function(e,t){return t!==l}));return!!c&&(a({type:"SET_SELECTED_FEATURES",payload:c}),!0)}var s=i.filter(function(e){var t;return null===(t=e.geometry)||void 0===t?void 0:t.type});return!(null===(t=n.geometry)||void 0===t||!t.type||!s.length||q(n,s)||(a({type:"TOGGLE_SELECTED_FEATURES",payload:se(se({},ve(r,u,o,n)),{},{replaceAll:!0})}),0))}({featureId:l,feature:f,config:i,selectedFeatures:m,dispatch:c,multiSelect:p}))return;c({type:"TOGGLE_SELECTED_FEATURES",payload:ve(l,p,i,f)})}},[u,c,p,d,m,a]),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]),w=me({mapProvider:a,layers:s,interactionModes:f,multiSelect:p,dispatch:c,markers:u,layerConfigMap:S,debug:null==o?void 0:o.debug,tolerance:v,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){return{featureId:e.featureId,layerId:e.layerId,idProperty:e.idProperty,properties:e.properties}}),selectedMarkers:r,contiguous:W(t)}),o.current={features:t,markers:r})},[t,r])}(h,m,b),{handleInteraction:w}};function ge(e){return ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ge(e)}function he(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Se(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?he(Object(r),!0).forEach(function(t){Ee(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):he(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ee(e,t,r){return(t=function(e){var t=function(e){if("object"!=ge(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ge(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ge(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Pe(e){return function(e){if(Array.isArray(e))return Oe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||we(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=we(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function we(e,t){if(e){if("string"==typeof e)return Oe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Oe(e,t):void 0}}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var _e=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},ke=function(e){var t=e.closest(".im-c-viewport__markers");if(!t)return!1;var r=t.getBoundingClientRect(),n=e.getBoundingClientRect(),o=n.left,i=n.right,a=n.top,u=n.bottom;return i>r.left&&o<r.right&&u>r.top&&a<r.bottom},Me=function(e,t,r){var n,o,i,a=t[null===(n=e.layer)||void 0===n?void 0:n.id];if(null==a||!a.labelProperty)return null;var u=_e(e,a),l=null==u?null:String(u);return null==l||r.has(l)?null:(r.add(l),{id:l,label:null!==(o=null===(i=e.properties)||void 0===i?void 0:i[a.labelProperty])&&void 0!==o?o:l})};function Ie(e){var t=e.mapState,r=e.pluginState,i=e.services,a=e.mapProvider,u=t.markers,l=r.dispatch,c=r.interactionModes,s=r.layers,f=r.multiSelect,p=i.eventBus,d=(0,n.useRef)(null);(function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.multiSelect,l=e.eventBus;(0,n.useEffect)(function(){var e=function(){var e=[];null!=r&&r.includes("selectMarker")&&e.push.apply(e,Pe(function(e){var t,r=[],n=Ae(e.items);try{for(n.s();!(t=n.n()).done;){var o,i=t.value;if(i.label){var a=null===(o=e.markerRefs)||void 0===o?void 0:o.get(i.id);!ue(i)&&a&&ke(a)&&r.push({id:i.id,label:i.label})}}}catch(e){n.e(e)}finally{n.f()}return r}(t))),null!=r&&r.includes("selectFeature")&&i.length>0&&e.push.apply(e,Pe(function(e,t){var r,n=[],o=new Set,i=t.map(function(e){return e.layerId}),a=Z(t),u=Ae(e.getVisibleFeatures(i));try{for(u.s();!(r=u.n()).done;){var l=r.value,c=Me(l,a,o);c&&n.push(c)}}catch(e){u.e(e)}finally{u.f()}return n}(a,i))),l.emit(o.MAP_SET_FEATURES,{items:e,multiselectable:u})};return e(),l.on(o.MAP_MOVE_END,e),l.on(o.MAP_DATA_CHANGE,e),function(){l.off(o.MAP_MOVE_END,e),l.off(o.MAP_DATA_CHANGE,e)}},[t,r,i,a,u,l])})({markers:u,interactionModes:c,layers:s,mapProvider:a,multiSelect:f,eventBus:p}),function(e){var t=e.markers,r=e.interactionModes,i=e.layers,a=e.mapProvider,u=e.eventBus,l=e.dispatch,c=e.listboxActiveItemRef;(0,n.useEffect)(function(){var e=function(e){var n=e.id;if(null===n)return c.current=null,void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(t.items.find(function(e){return e.id===n}))return c.current={id:n,isMarker:!0},void l({type:"SET_LISTBOX_ACTIVE",payload:null});if(null!=r&&r.includes("selectFeature")&&i.length>0){var o=i.map(function(e){return e.layerId}),u=Z(i),s=function(e,t,r){var n,o=Ae(e);try{for(o.s();!(n=o.n()).done;){var i,a=n.value,u=t[null===(i=a.layer)||void 0===i?void 0:i.id],l=_e(a,u);if(null!=l&&String(l)===String(r))return{feature:a,config:u,rawId:l}}}catch(e){o.e(e)}finally{o.f()}return null}(a.getVisibleFeatures(o),u,n);if(s){var f={featureId:s.rawId,layerId:s.config.layerId,idProperty:s.config.idProperty,geometry:s.feature.geometry};c.current=Se(Se({id:n,isMarker:!1},f),{},{properties:s.feature.properties}),l({type:"SET_LISTBOX_ACTIVE",payload:f})}}};return u.on(o.MAP_SET_ACTIVE_FEATURE,e),function(){u.off(o.MAP_SET_ACTIVE_FEATURE,e)}},[t,r,i,a,u,l,c])}({markers:u,interactionModes:c,layers:s,mapProvider:a,eventBus:p,dispatch:l,listboxActiveItemRef:d}),function(e){var t=e.eventBus,r=e.dispatch,i=e.listboxActiveItemRef,a=e.multiSelect;(0,n.useEffect)(function(){var e=function(){var e=i.current;if(e)if(e.isMarker)r({type:"TOGGLE_SELECTED_MARKERS",payload:{markerId:e.id,multiSelect:a}});else{var t=e.featureId,n=e.layerId,o=e.idProperty,u=e.geometry,l=e.properties;r({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:t,layerId:n,idProperty:o,geometry:u,properties:l,multiSelect:a,replaceAll:!a}})}};return t.on(o.MAP_SELECT_FEATURE,e),function(){t.off(o.MAP_SELECT_FEATURE,e)}},[t,r,i,a])}({eventBus:p,dispatch:l,listboxActiveItemRef:d,multiSelect:f})}function Te(e){return Te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Te(e)}var Ce=function(e,t){if(!e)return null;if("string"==typeof e)return e.trim();if("object"===Te(e)){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},je={light:{haloColor:"#ffffff",selectedColor:"#0b0c0c",activeColor:"#ffdd00",foregroundColor:"#0b0c0c"},dark:{haloColor:"#0b0c0c",selectedColor:"#ffffff",activeColor:"#ffdd00",foregroundColor:"#ffffff"}};function Le(e){return Le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Le(e)}function Fe(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 Re(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Fe(Object(r),!0).forEach(function(t){De(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function De(e,t,r){return(t=function(e){var t=function(e){if("object"!=Le(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Le(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var xe=function(e){return 1===(null==e?void 0:e.length)&&e.includes("selectMarker")};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 Ne(e){return function(e){if(Array.isArray(e))return Ge(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 Ge(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)?Ge(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 Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function He(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(r),!0).forEach(function(t){Ve(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ue(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ve(e,t,r){return(t=function(e){var t=function(e){if("object"!=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 Ke={ENABLE:function(e,t){return He(He(He({},e),t),{},{enabled:!0})},DISABLE:function(e){return He(He({},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 He(He({},e),{},{selectedFeatures:y})}var v,m={featureId:r,layerId:o,idProperty:i,properties:s,geometry:f};if(n&&!c){var b=Ne(p);-1===d?b.push(m):b.splice(d,1),v=b}else v=-1!==d&&1===p.length?[]:[m];return He(He({},e),{},{selectedFeatures:v,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(Ne(o),[r]);return He(He({},e),{},{selectedMarkers:a})}return He(He({},e),{},{selectedFeatures:[],selectedMarkers:i&&1===o.length?[]:[r]})},CLEAR_SELECTED_FEATURES:function(e){return He(He({},e),{},{selectedFeatures:[],selectedMarkers:[]})},SET_SELECTED_FEATURES:function(e,t){return He(He({},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(Ne(o),[r]):[r];return He(He({},e),{},{selectedFeatures:n?e.selectedFeatures:[],selectedMarkers:i})},UNSELECT_MARKER:function(e,t){var r=t.markerId,n=e.selectedMarkers;return n.includes(r)?He(He({},e),{},{selectedMarkers:n.filter(function(e){return e!==r})}):e},SET_LISTBOX_ACTIVE:function(e,t){return He(He({},e),{},{listboxActiveItem:null!=t?t:null})}},Ye={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 We(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 ze(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?We(Object(r),!0).forEach(function(t){Xe(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):We(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"!=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 $e="Select features",Ze={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,v=r.mapStyle,m=r.markers,b=xe(f);Ie({mapState:r,pluginState:l,services:i,mapProvider:u});var g=be({appState:t,mapState:r,pluginState:l,services:i,mapProvider:u}).handleInteraction;return function(e){var t=e.mapProvider,r=e.mapStyle,o=e.pluginState,i=e.selectedFeatures,a=e.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 i;var a=null!==(r=je[t.mapColorScheme])&&void 0!==r?r:je.light,u=null!==(n=t.activeColor)&&void 0!==n?n:a.activeColor,l=null!==(o=t.selectedColor)&&void 0!==o?o:a.selectedColor;return e.forEach(function(e){var r=e.activeStroke||u,n=e.selectedStroke||l,o=e.selectedFill||"transparent",a=e.selectedStrokeWidth||3,c=a+6;i[e.layerId]={stroke:Ce(r,t.id),selectionStroke:Ce(n,t.id),fill:Ce(o,t.id),strokeWidth:a,activeStrokeWidth:c}}),i}(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=function(){u.once(a.MAP_DATA_CHANGE,f)};return u.on(a.MAP_STYLE_CHANGE,e),function(){u.off(a.MAP_STYLE_CHANGE,e)}}},[i,c,t,s,u])}({mapProvider:u,mapStyle:v,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:m,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)(i.interfaceType);s.current=i.interfaceType;var f=(0,n.useCallback)(function(){var e=s.current,t=["touch","keyboard"].includes(e);!a.current||c.current||!t||"touch"===e&&u.current?l.current.hide():l.current.fixAtCenter()},[]);(0,n.useEffect)(function(){f()},[r,o,i.interfaceType,f]),(0,n.useEffect)(function(){var e,t=null===(e=i.layoutRefs)||void 0===e||null===(e=e.appContainerRef)||void 0===e?void 0:e.current;if(t){var r=function(e){var t=!!e.target.closest('[role="listbox"], [role="option"]');c.current!==t&&(c.current=t,f())};return t.addEventListener("focusin",r),function(){t.removeEventListener("focusin",r)}}},[i.layoutRefs,f])}({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)},v=(t=o().layoutRefs.viewportRef,r=d,n=!1,{handleKeydown:function(e){n="Enter"===e.key&&t.current===e.target},handleKeyup:function(e){"Enter"===e.key&&n&&(e.preventDefault(),r())}}),m=v.handleKeydown,b=v.handleKeyup,g=function(e,t){return function(r,n){var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:Re({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",m),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",m),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])}({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:Ke},buttons:[{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:function(e){var t=e.appState,r=e.pluginState;return!r.enabled||"touch"!==t.interfaceType||xe(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:$e,context:"listbox",title:"Select features",command:"<kbd>Tab</kbd>"},{id:"navigateFeatures",group:$e,context:"listbox",title:"Navigate features",command:"<kbd>↑</kbd> or <kbd>↓</kbd>"},{id:"selectFeature",group:$e,context:"listbox",title:"Select a feature",command:"<kbd>Enter</kbd> or <kbd>Space</kbd>"},{id:"dismissHintOrReturn",group:$e,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:ze(ze(ze({},Ye),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.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 c,u;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){c=l;break}}c||(u=!0,(c=document.createElement("script")).charset="utf-8",o.nc&&c.setAttribute("nonce",o.nc),c.setAttribute("data-webpack",t+i),c.src=r),e[r]=[n];var s=(t,n)=>{c.onerror=c.onload=null,clearTimeout(b);var o=e[r];if(delete e[r],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach(e=>e(n)),t)return t(n)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),u&&document.head.appendChild(c)}},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),c=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;c.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",c.name="ChunkLoadError",c.type=i,c.request=a,n[1](c)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,c,u]=r,f=0;if(a.some(t=>0!==e[t])){for(n in c)o.o(c,n)&&(o.m[n]=c[n]);u&&u(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 c(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof f?n:f,p=Object.create(c.prototype);return u(p,"_invoke",function(r,n,o){var i,c,u,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:b,f:b.bind(e,4),d:function(t,r){return i=t,c=0,u=e,s.n=r,a}};function b(r,n){for(c=r,u=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],b=s.p,d=i[2];r>3?(o=d===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=b&&((o=r<2&&b<i[1])?(c=0,s.v=n,s.n=i[1]):b<d&&(o=r<3||i[0]>n||n>d)&&(i[4]=r,i[5]=n,s.n=d,c=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,d){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&b(p,d),c=p,u=d;(t=c<2?e:u)||!l;){i||(c?c<3?(c>1&&(s.n=-1),b(c,u)):s.n=u:s.v=u);try{if(f=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(l=s.n<0)?u:r.call(n,s))!==a)break}catch(t){i=e,c=1,u=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]())):(u(t={},n,function(){return this}),t),b=l.prototype=f.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,u(e,o,"GeneratorFunction")),e.prototype=Object.create(b),e}return p.prototype=l,u(b,"constructor",l),u(l,"constructor",p),p.displayName="GeneratorFunction",u(l,o,"GeneratorFunction"),u(b),u(b,o,"Generator"),u(b,n,function(){return this}),u(b,"toString",function(){return"[object Generator]"}),(c=function(){return{w:i,m:d}})()}function u(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}u=function(e,t,r,n){function i(t,r){u(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))},u(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function 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 b(){var e,t;return l(l({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"interact",load:(e=c().m(function e(){var t;return c().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(936).then(o.bind(o,
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("defra",[],t):"object"==typeof exports?exports.defra=t():(e.defra=e.defra||{},e.defra.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.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 c,u;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){c=l;break}}c||(u=!0,(c=document.createElement("script")).charset="utf-8",o.nc&&c.setAttribute("nonce",o.nc),c.setAttribute("data-webpack",t+i),c.src=r),e[r]=[n];var s=(t,n)=>{c.onerror=c.onload=null,clearTimeout(b);var o=e[r];if(delete e[r],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach(e=>e(n)),t)return t(n)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),u&&document.head.appendChild(c)}},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),c=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;c.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",c.name="ChunkLoadError",c.type=i,c.request=a,n[1](c)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,i,[a,c,u]=r,f=0;if(a.some(t=>0!==e[t])){for(n in c)o.o(c,n)&&(o.m[n]=c[n]);u&&u(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 c(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof f?n:f,p=Object.create(c.prototype);return u(p,"_invoke",function(r,n,o){var i,c,u,f=0,p=o||[],l=!1,s={p:0,n:0,v:e,a:b,f:b.bind(e,4),d:function(t,r){return i=t,c=0,u=e,s.n=r,a}};function b(r,n){for(c=r,u=n,t=0;!l&&f&&!o&&t<p.length;t++){var o,i=p[t],b=s.p,d=i[2];r>3?(o=d===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=b&&((o=r<2&&b<i[1])?(c=0,s.v=n,s.n=i[1]):b<d&&(o=r<3||i[0]>n||n>d)&&(i[4]=r,i[5]=n,s.n=d,c=0))}if(o||r>1)return a;throw l=!0,n}return function(o,p,d){if(f>1)throw TypeError("Generator is already running");for(l&&1===p&&b(p,d),c=p,u=d;(t=c<2?e:u)||!l;){i||(c?c<3?(c>1&&(s.n=-1),b(c,u)):s.n=u:s.v=u);try{if(f=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(l=s.n<0)?u:r.call(n,s))!==a)break}catch(t){i=e,c=1,u=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]())):(u(t={},n,function(){return this}),t),b=l.prototype=f.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,u(e,o,"GeneratorFunction")),e.prototype=Object.create(b),e}return p.prototype=l,u(b,"constructor",l),u(l,"constructor",p),p.displayName="GeneratorFunction",u(l,o,"GeneratorFunction"),u(b),u(b,o,"Generator"),u(b,n,function(){return this}),u(b,"toString",function(){return"[object Generator]"}),(c=function(){return{w:i,m:d}})()}function u(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}u=function(e,t,r,n){function i(t,r){u(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))},u(e,t,r,n)}function f(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function 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 b(){var e,t;return l(l({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"interact",load:(e=c().m(function e(){var t;return c().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.e(936).then(o.bind(o,262));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,c,"next",e)}function c(e){f(i,n,o,a,c,"throw",e)}a(void 0)})},function(){return t.apply(this,arguments)})})}return o.d(i,{default:()=>b}),i.default})());
|
|
@@ -27,7 +27,7 @@ export const InteractInit = ({
|
|
|
27
27
|
mapProvider,
|
|
28
28
|
pluginState
|
|
29
29
|
}) => {
|
|
30
|
-
const {
|
|
30
|
+
const { enabled, selectedFeatures, interactionModes, layers } = pluginState
|
|
31
31
|
const { eventBus } = services
|
|
32
32
|
const { crossHair, mapStyle, markers } = mapState
|
|
33
33
|
|
|
@@ -44,13 +44,11 @@ export const InteractInit = ({
|
|
|
44
44
|
mapProvider
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
// Highlight features and sync state selectedBounds from mapProvider
|
|
48
47
|
useHighlightSync({
|
|
49
48
|
mapProvider,
|
|
50
49
|
mapStyle,
|
|
51
50
|
pluginState,
|
|
52
51
|
selectedFeatures,
|
|
53
|
-
dispatch,
|
|
54
52
|
events: EVENTS,
|
|
55
53
|
eventBus
|
|
56
54
|
})
|
|
@@ -37,7 +37,6 @@ beforeEach(() => {
|
|
|
37
37
|
enabled: true,
|
|
38
38
|
selectedFeatures: [],
|
|
39
39
|
selectedMarkers: [],
|
|
40
|
-
selectionBounds: {},
|
|
41
40
|
interactionModes: ['selectFeature'],
|
|
42
41
|
layers: []
|
|
43
42
|
}
|
|
@@ -63,7 +62,6 @@ describe('InteractInit — hook delegation', () => {
|
|
|
63
62
|
mapStyle: props.mapState.mapStyle,
|
|
64
63
|
pluginState: props.pluginState,
|
|
65
64
|
selectedFeatures: props.pluginState.selectedFeatures,
|
|
66
|
-
dispatch: props.pluginState.dispatch,
|
|
67
65
|
events: EVENTS,
|
|
68
66
|
eventBus: props.services.eventBus
|
|
69
67
|
}))
|
|
@@ -5,7 +5,7 @@ const MOCK_COORDS = [1, 2]
|
|
|
5
5
|
|
|
6
6
|
const createParams = () => {
|
|
7
7
|
const appState = { layoutRefs: { viewportRef: { current: document.body } }, disabledButtons: new Set() }
|
|
8
|
-
const pluginState = { dispatch: jest.fn(),
|
|
8
|
+
const pluginState = { dispatch: jest.fn(), selectedFeatures: [], selectedMarkers: [], multiSelect: false }
|
|
9
9
|
const clickReadyRef = { current: false }
|
|
10
10
|
return {
|
|
11
11
|
appState,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef } from 'react'
|
|
2
|
-
import { getInterfaceType, subscribeToInterfaceChangesImmediate } from '../../../../src/utils/detectInterfaceType.js'
|
|
3
2
|
|
|
4
3
|
export function useCrossHairVisibility ({ crossHair, enabled, selectMarkerOnly, appState }) {
|
|
5
4
|
const enabledRef = useRef(enabled)
|
|
@@ -9,9 +8,11 @@ export function useCrossHairVisibility ({ crossHair, enabled, selectMarkerOnly,
|
|
|
9
8
|
const crossHairRef = useRef(crossHair)
|
|
10
9
|
crossHairRef.current = crossHair
|
|
11
10
|
const listboxFocusRef = useRef(false)
|
|
11
|
+
const interfaceTypeRef = useRef(appState.interfaceType)
|
|
12
|
+
interfaceTypeRef.current = appState.interfaceType
|
|
12
13
|
|
|
13
14
|
const updateCrossHair = useCallback(() => {
|
|
14
|
-
const type =
|
|
15
|
+
const type = interfaceTypeRef.current
|
|
15
16
|
const isToK = ['touch', 'keyboard'].includes(type)
|
|
16
17
|
if (enabledRef.current && !listboxFocusRef.current && isToK && !(type === 'touch' && selectMarkerOnlyRef.current)) {
|
|
17
18
|
crossHairRef.current.fixAtCenter()
|
|
@@ -20,17 +21,10 @@ export function useCrossHairVisibility ({ crossHair, enabled, selectMarkerOnly,
|
|
|
20
21
|
}
|
|
21
22
|
}, [])
|
|
22
23
|
|
|
23
|
-
// Toggle target marker visibility on enabled/interactionModes changes
|
|
24
24
|
useEffect(() => {
|
|
25
25
|
updateCrossHair()
|
|
26
|
-
}, [enabled, selectMarkerOnly, updateCrossHair])
|
|
26
|
+
}, [enabled, selectMarkerOnly, appState.interfaceType, updateCrossHair])
|
|
27
27
|
|
|
28
|
-
// Toggle target marker visibility immediately on interface type change (no 150ms React delay)
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
return subscribeToInterfaceChangesImmediate(updateCrossHair)
|
|
31
|
-
}, [updateCrossHair])
|
|
32
|
-
|
|
33
|
-
// Hide crosshair when listbox has focus
|
|
34
28
|
useEffect(() => {
|
|
35
29
|
const container = appState.layoutRefs?.appContainerRef?.current
|
|
36
30
|
if (!container) { return undefined }
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { act, renderHook } from '@testing-library/react'
|
|
2
2
|
import { useCrossHairVisibility } from './useCrossHairVisibility.js'
|
|
3
|
-
import { getInterfaceType } from '../../../../src/utils/detectInterfaceType.js'
|
|
4
|
-
|
|
5
|
-
jest.mock('../../../../src/utils/detectInterfaceType.js', () => ({
|
|
6
|
-
getInterfaceType: jest.fn(() => 'mouse'),
|
|
7
|
-
subscribeToInterfaceChangesImmediate: jest.fn(() => () => {})
|
|
8
|
-
}))
|
|
9
3
|
|
|
10
4
|
let crossHair
|
|
11
5
|
let appState
|
|
12
6
|
|
|
13
7
|
beforeEach(() => {
|
|
14
|
-
jest.clearAllMocks()
|
|
15
8
|
crossHair = { fixAtCenter: jest.fn(), hide: jest.fn() }
|
|
16
|
-
appState = {
|
|
17
|
-
|
|
9
|
+
appState = {
|
|
10
|
+
interfaceType: 'mouse',
|
|
11
|
+
layoutRefs: { appContainerRef: { current: document.createElement('div') } }
|
|
12
|
+
}
|
|
18
13
|
})
|
|
19
14
|
|
|
20
15
|
describe('useCrossHairVisibility', () => {
|
|
@@ -26,7 +21,7 @@ describe('useCrossHairVisibility', () => {
|
|
|
26
21
|
|
|
27
22
|
it('shows crosshair on touch/keyboard and hides when listbox has focus', () => {
|
|
28
23
|
const container = appState.layoutRefs.appContainerRef.current
|
|
29
|
-
|
|
24
|
+
appState.interfaceType = 'touch'
|
|
30
25
|
renderHook(() => useCrossHairVisibility({ crossHair, enabled: true, selectMarkerOnly: false, appState }))
|
|
31
26
|
|
|
32
27
|
expect(crossHair.fixAtCenter).toHaveBeenCalled()
|