@defra/interactive-map 0.0.9-alpha → 0.0.11-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/DOCS_README.md +39 -0
- package/README.md +1 -1
- 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/button-definition.md +21 -3
- package/docs/api/panel-definition.md +10 -12
- package/docs/api.md +81 -8
- package/docs/architecture/architecture-diagrams.md +1 -3
- package/docs/architecture/diagrams-viewer.mdx +12 -0
- package/docs/demo.mdx +70 -0
- package/docs/govuk-prototype.md +23 -0
- package/docs/index.md +19 -0
- package/docs/plugins/plugin-context.md +3 -3
- package/docs/plugins/plugin-manifest.md +1 -1
- package/docusaurus.config.cjs +136 -0
- package/mise.toml +2 -0
- package/package.json +27 -5
- package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -1
- package/plugins/beta/datasets/dist/umd/im-datasets-plugin.js +1 -1
- package/plugins/beta/datasets/src/manifest.js +3 -3
- package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
- package/plugins/beta/draw-es/src/api/newPolygon.js +1 -3
- package/plugins/beta/draw-es/src/events.js +2 -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/api/newLine.js +2 -2
- package/plugins/beta/draw-ml/src/api/newPolygon.js +2 -2
- package/plugins/beta/draw-ml/src/events.js +18 -10
- package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +1 -1
- package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
- package/plugins/beta/map-styles/src/manifest.js +3 -3
- package/plugins/beta/use-location/dist/esm/im-use-location-plugin.js +1 -1
- package/plugins/beta/use-location/dist/umd/im-use-location-plugin.js +1 -1
- package/plugins/beta/use-location/src/manifest.js +7 -7
- package/plugins/search/dist/css/index.css +1 -1
- package/plugins/search/dist/esm/im-search-plugin.js +1 -1
- package/plugins/search/dist/esm/index.js +1 -1
- package/plugins/search/dist/umd/im-search-plugin.js +1 -1
- package/plugins/search/dist/umd/index.js +1 -1
- package/plugins/search/src/Search.jsx +9 -3
- package/plugins/search/src/Search.test.jsx +190 -0
- package/plugins/search/src/components/CloseButton/CloseButton.test.jsx +67 -0
- package/plugins/search/src/components/Form/Form.jsx +35 -7
- package/plugins/search/src/components/Form/Form.module.scss +27 -0
- package/plugins/search/src/components/Form/Form.test.jsx +255 -0
- package/plugins/search/src/components/OpenButton/OpenButton.test.jsx +47 -0
- package/plugins/search/src/components/SubmitButton/SubmitButton.jsx +28 -0
- package/plugins/search/src/components/SubmitButton/SubmitButton.module.scss +8 -0
- package/plugins/search/src/components/SubmitButton/SubmitButton.test.jsx +33 -0
- package/plugins/search/src/components/Suggestions/Suggestions.test.jsx +79 -0
- package/plugins/search/src/datasets.js +15 -11
- package/plugins/search/src/datasets.test.js +61 -0
- package/plugins/search/src/events/fetchSuggestions.js +1 -1
- package/plugins/search/src/events/fetchSuggestions.test.js +212 -0
- package/plugins/search/src/events/formHandlers.test.js +232 -0
- package/plugins/search/src/events/index.test.js +118 -0
- package/plugins/search/src/events/inputHandlers.test.js +104 -0
- package/plugins/search/src/events/suggestionHandlers.test.js +166 -0
- package/plugins/search/src/index.js +1 -1
- package/plugins/search/src/index.test.js +47 -0
- package/plugins/search/src/reducer.js +9 -4
- package/plugins/search/src/reducer.test.js +85 -0
- package/plugins/search/src/search.scss +5 -1
- package/plugins/search/src/utils/parseOsNamesResults.js +20 -3
- package/plugins/search/src/utils/parseOsNamesResults.test.js +158 -0
- package/plugins/search/src/utils/updateMap.test.js +52 -0
- package/providers/beta/esri/dist/esm/im-esri-provider.js +1 -1
- package/providers/beta/esri/src/appEvents.js +8 -2
- package/providers/beta/esri/src/esriProvider.js +6 -14
- package/providers/beta/esri/src/mapEvents.js +7 -1
- package/providers/beta/esri/src/utils/coords.js +33 -1
- package/providers/beta/esri/src/utils/coords.test.js +126 -0
- package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
- package/providers/maplibre/dist/esm/index.js +1 -1
- package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
- package/providers/maplibre/dist/umd/index.js +1 -1
- package/providers/maplibre/src/appEvents.js +10 -1
- package/providers/maplibre/src/appEvents.test.js +13 -4
- package/providers/maplibre/src/index.js +5 -13
- package/providers/maplibre/src/index.test.js +34 -15
- package/providers/maplibre/src/mapEvents.js +9 -1
- package/providers/maplibre/src/maplibreProvider.js +14 -15
- package/providers/maplibre/src/maplibreProvider.test.js +14 -1
- package/providers/maplibre/src/utils/spatial.js +11 -0
- package/providers/maplibre/src/utils/spatial.test.js +12 -0
- package/src/App/components/Actions/Actions.module.scss +5 -4
- package/src/App/components/MapButton/MapButton.jsx +4 -16
- package/src/App/components/MapButton/MapButton.module.scss +12 -12
- package/src/App/components/MapButton/MapButton.test.jsx +0 -9
- package/src/App/components/Panel/Panel.jsx +6 -6
- package/src/App/components/Panel/Panel.test.jsx +14 -15
- package/src/App/components/Viewport/MapController.jsx +2 -1
- package/src/App/hooks/useLayoutMeasurements.js +1 -1
- package/src/App/hooks/useLayoutMeasurements.test.js +1 -1
- package/src/App/hooks/useMapProviderOverrides.js +21 -1
- package/src/App/hooks/useMapProviderOverrides.test.js +51 -2
- package/src/App/layout/Layout.jsx +4 -4
- package/src/App/layout/layout.module.scss +1 -0
- package/src/App/registry/panelRegistry.js +1 -10
- package/src/App/registry/panelRegistry.test.js +6 -11
- package/src/App/renderer/HtmlElementHost.jsx +11 -3
- package/src/App/renderer/HtmlElementHost.test.jsx +89 -0
- package/src/App/renderer/mapButtons.js +128 -28
- package/src/App/renderer/mapButtons.test.js +119 -19
- package/src/App/store/MapProvider.jsx +18 -5
- package/src/App/store/MapProvider.test.jsx +56 -1
- package/src/App/store/appActionsMap.js +17 -9
- package/src/App/store/appActionsMap.test.js +33 -7
- package/src/App/store/mapActionsMap.js +4 -7
- package/src/InteractiveMap/InteractiveMap.js +18 -0
- package/src/InteractiveMap/InteractiveMap.test.js +12 -0
- package/src/config/appConfig.js +17 -15
- package/src/config/events.js +41 -4
- package/src/config/getInitialOpenPanels.js +2 -2
- package/src/config/getInitialOpenPanels.test.js +7 -7
- package/src/types.js +13 -11
- package/src/utils/getValueForStyle.js +1 -1
package/dist/esm/im-core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/objectWithoutProperties";import r from"@babel/runtime/helpers/asyncToGenerator";import{createRoot as n}from"preact/compat/client";import{g as o,E as i,s as a,r as l,t as c,a as s}from"./im-shell.js";import p,{useContext as d,createContext as u,useEffect as f,useRef as v,useReducer as m,useCallback as b,useMemo as g,useLayoutEffect as y,useState as h,createPortal as O,cloneElement as P}from"preact/compat";import{jsx as E,jsxs as _,Fragment as w}from"preact/jsx-runtime";var j=u(null);function S(){return d(j)}var R=[{id:"showKeyboardHelp",group:"General",title:"Show keyboard help",command:"<kbd>Alt</kbd> + <kbd>K</kbd>",enabled:!0},{id:"selectControl",group:"General",title:"Select a map control",command:"<kbd>Tab</kbd> or <kbd>Shift</kbd> + <kbd>Tab</kbd>",enabled:!0},{id:"moveLarge",group:"Navigation",title:"Move in large steps",command:"<kbd>←</kbd>, <kbd>↑</kbd>, <kbd>→</kbd> or <kbd>↓</kbd>",enabled:!0},{id:"nudgeMap",group:"Navigation",title:"Nudge map",command:"<kbd>Shift</kbd> + <kbd>←</kbd>, <kbd>↑</kbd>, <kbd>→</kbd> or <kbd>↓</kbd>",enabled:!1},{id:"zoomLarge",group:"Navigation",title:"Zoom in large steps",command:"<kbd>+</kbd> or <kbd>-</kbd>",enabled:!0},{id:"nudgeZoom",group:"Navigation",title:"Nudge zoom",command:"<kbd>Shift</kbd> + <kbd>+</kbd> or <kbd>-</kbd>",enabled:!1},{id:"highlightLabelAtCenter",group:"Labels",title:"Highlight label at centre",command:"<kbd>Alt</kbd> + <kbd>Enter</kbd>",enabled:!1,requiredConfig:["readMapText"]},{id:"highlightNextLabel",group:"Labels",title:"Highlight nearby label",command:"<kbd>Alt</kbd> + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>",enabled:!1,requiredConfig:["readMapText"]}],T=[],D=new Set,k=new Set,A=()=>{var e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[...R.filter(t=>!!k.has(t.id)&&(!t.requiredConfig||t.requiredConfig.every(t=>e[t]))),...T]}(S()).reduce((e,t)=>(e[t.group]=e[t.group]||[],e[t.group].push(t),e),{});return E("div",{className:"im-c-keyboard-help",children:Object.entries(e).map(e=>{var[t,r]=e;return E("div",{className:"im-c-keyboard-help__group",children:E("dl",{className:"im-c-keyboard-help__list",children:r.map(e=>_("div",{className:"im-c-keyboard-help__item",children:[E("dt",{className:"im-c-keyboard-help__title",children:e.title}),E("dd",{className:"im-c-keyboard-help__description",dangerouslySetInnerHTML:{__html:e.command}})]},e.id))})},t)})})};function M(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 C(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?M(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var I={slot:"middle",initiallyOpen:!1,dismissable:!0,modal:!0},L={slot:"right-top",showLabel:!1},N={slot:"top-left",showLabel:!1},B={buttons:[{id:"exit",label:"Exit",iconId:"close",onClick:(e,t)=>{var{services:r}=t;return r.closeApp()},excludeWhen:e=>{var{appConfig:t,appState:r}=e;return!t.hasExitButton||!(r.isFullscreen&&new URL(window.location.href).searchParams.has(t.mapViewParamKey))},mobile:N,tablet:N,desktop:N},{id:"fullscreen",label:()=>"".concat(document.fullscreenElement?"Exit":"Enter"," fullscreen"),iconId:()=>document.fullscreenElement?"minimise":"maximise",onClick:(e,t)=>{var{appState:r}=t,n=r.layoutRefs.appContainerRef.current;document.fullscreenElement?document.exitFullscreen():n.requestFullscreen()},excludeWhen:e=>{var{appState:t,appConfig:r}=e;return!r.enableFullscreen||t.isFullscreen},mobile:L,tablet:L,desktop:L},{id:"zoomIn",group:"zoom",label:"Zoom in",iconId:"plus",onClick:(e,t)=>{var{mapProvider:r,appConfig:n}=t;return r.zoomIn(n.zoomDelta)},excludeWhen:e=>{var{appState:t,appConfig:r}=e;return!r.enableZoomControls||"touch"===t.interfaceType},enableWhen:e=>{var{mapState:t}=e;return!t.isAtMaxZoom},mobile:L,tablet:L,desktop:L},{id:"zoomOut",group:"zoom",label:"Zoom out",iconId:"minus",onClick:(e,t)=>{var{mapProvider:r,appConfig:n}=t;return r.zoomOut(n.zoomDelta)},excludeWhen:e=>{var{appState:t,appConfig:r}=e;return!r.enableZoomControls||"touch"===t.interfaceType},enableWhen:e=>{var{mapState:t}=e;return!t.isAtMinZoom},mobile:L,tablet:L,desktop:L}],panels:[{id:"keyboardHelp",label:"Keyboard shortcuts",mobile:C({},I),tablet:C(C({},I),{},{width:"500px"}),desktop:C(C({},I),{},{width:"500px"}),render:()=>E(A,{})}],icons:[{id:"maximise",svgContent:'<path d="M15 3h6v6"/><path d="m21 3-7 7"/><path d="m3 21 7-7"/><path d="M9 21H3v-6"/>'},{id:"minimise",svgContent:'<path d="m14 10 7-7"/><path d="M20 10h-6V4"/><path d="m3 21 7-7"/><path d="M4 14h6v6"/>'},{id:"plus",svgContent:'<path d="M5 12h14"/><path d="M12 5v14"/>'},{id:"minus",svgContent:'<path d="M5 12h14"/>'}]},x={slot:"right-top",showLabel:!1},z={label:"Button",mobile:x,tablet:x,desktop:x},H={showLabel:!0,label:"Panel",mobile:{slot:"bottom",initiallyOpen:!0,dismissable:!0,modal:!1},tablet:{slot:"inset",initiallyOpen:!0,dismissable:!0,modal:!1},desktop:{slot:"inset",initiallyOpen:!0,dismissable:!0,modal:!1},render:null,html:null},F={label:"Control",mobile:{slot:"bottom"},tablet:{slot:"inset"},desktop:{slot:"inset"}},U={small:1,medium:1.5,large:2},G=[{shape:"pin",backgroundPath:"M31 16.001c0 7.489-8.308 15.289-11.098 17.698-.533.4-1.271.4-1.803 0C15.309 31.29 7 23.49 7 16.001c0-6.583 5.417-12 12-12s12 5.417 12 12z",graphicPath:"M19 11.001c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z"}];function V(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}var W=(t,r)=>{var n=function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?V(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},t);for(var o in r)"object"!=typeof r[o]||Array.isArray(r[o])||null===r[o]?n[o]=r[o]:n[o]=W(t[o]||{},r[o]);return n};function Z(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 K(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Z(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Y=(e,t)=>K(K({},e),t),q=(e,t,r)=>{var n=W(z,r);return K(K({},e),{},{[t]:n})};function X(){var e={};return{registerButton:t=>{e=Y(e,t)},addButton:(t,r)=>(e=q(e,t,r),t),getButtonConfig:t=>((e,t)=>t?Object.fromEntries(Object.entries(e).filter(e=>{var[r,n]=e;return n.pluginId===t})):e)(e,t),clear:()=>{e={}}}}function $(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function J(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 Q(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?J(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var ee=(e,t)=>{var r=Object.fromEntries(Object.entries(t).map(e=>{var[t,r]=e;return[t,Q({showLabel:!0},r)]}));return Q(Q({},e),r)},te=(e,t,r)=>{var n=W(H,r);return Q(Q({},e),{},{[t]:Q(Q({},n),{},{html:n.html,render:n.render})})},re=(e,r)=>{var{[r]:n}=e;return t(e,[r].map($))};function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function oe(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 ie=(e,t)=>oe(oe({},e),t),ae=(e,t,r)=>{var n=W(F,r);return oe(oe({},e),{},{[t]:oe({id:t},n)})};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}var se={close:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>'},pe=()=>se;function de(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?de(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):de(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var fe=e=>Array.isArray(e)?e:[e];function ve(e){var{registerButton:t,registerPanel:r,registerControl:n}=e,o=[];return{registeredPlugins:o,registerPlugin:function(e){var i,a,{manifest:l}=e,c={pluginId:e.id,includeModes:null===(i=e.config)||void 0===i?void 0:i.includeModes,excludeModes:null===(a=e.config)||void 0===a?void 0:a.excludeModes};l.buttons&&fe(l.buttons).forEach(e=>{var r;t({[e.id]:ue(ue({},c),e)}),null==e||null===(r=e.menuItems)||void 0===r||r.forEach(e=>{t({[e.id]:ue(ue(ue({},c),e),{},{isMenuItem:!0})})})}),l.panels&&fe(l.panels).forEach(e=>{r({[e.id]:ue(ue({},c),e)})}),l.controls&&fe(l.controls).forEach(e=>{n({[e.id]:ue(ue({},c),e)})}),l.icons&&fe(l.icons).forEach(e=>(e=>{se=ce(ce({},se),e)})({[e.id]:e.svgContent})),l.keyboardShortcuts&&fe(l.keyboardShortcuts).forEach(e=>(e=>{var{shortcut:t}=e;D.has(t.id)||(D.add(t.id),T.push(t))})(ue(ue({},c),{},{shortcut:e}))),o.push(e)},clear:function(){o.length=0}}}function me(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function be(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 ge(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];Array.isArray(e)||(e=[]),Array.isArray(t)||(t=[]);var r=new Map(e.map(e=>[e.id,e]));return t.forEach(e=>{null!=e&&e.id&&(r.has(e.id)?r.set(e.id,be(be({},r.get(e.id)),e)):r.set(e.id,e))}),Array.from(r.values())},n=be(be({},e),t);return(e.buttons||t.buttons)&&(n.buttons=r(e.buttons,t.buttons)),(e.panels||t.panels)&&(n.panels=r(e.panels,t.panels)),(e.controls||t.controls)&&(n.controls=r(e.controls,t.controls)),(e.icons||t.icons)&&(n.icons=r(e.icons,t.icons)),n}function ye(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={};return Object.keys(e).forEach(o=>{var i,a=e[o][t];null!==(i=null==a?void 0:a.initiallyOpen)&&void 0!==i&&i&&(n[o]=r[o]||{props:{}})}),n}function he(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Oe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Pe(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Oe(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Oe(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function Ee(e,t,r,n){var o,i=e.panelConfig||e.panelRegistry.getPanelConfig(),a=null===(o=i[t])||void 0===o?void 0:o[r],l=!!a.exclusive&&!a.modal,c=!!a.modal,s=Object.fromEntries(Object.entries(e.openPanels).filter(e=>{var t,[n]=e;return!(null!==(t=i[n])&&void 0!==t&&null!==(t=t[r])&&void 0!==t&&t.exclusive)}));return Pe(Pe(Pe({},l?{}:s),c?e.openPanels:{}),{},{[t]:{props:n}})}var _e={SET_BREAKPOINT:(e,t)=>{var r,{behaviour:n,hybridWidth:i,maxMobileWidth:a}=t,l=Object.keys(e.openPanels),c=l[l.length-1],s="hybrid"===n?e.isFullscreen:o({behaviour:n,hybridWidth:i,maxMobileWidth:a});return Pe(Pe({},e),{},{breakpoint:t.breakpoint,isFullscreen:s,previousOpenPanels:e.openPanels,openPanels:c?Ee(e,c,t.breakpoint,(null===(r=e.openPanels[c])||void 0===r?void 0:r.props)||{}):{}})},SET_MEDIA:(e,t)=>Pe(Pe({},e),t),SET_HYBRID_FULLSCREEN:(e,t)=>Pe(Pe({},e),{},{isFullscreen:t}),SET_INTERFACE_TYPE:(e,t)=>e.interfaceType===t?e:Pe(Pe({},e),{},{interfaceType:t}),SET_MODE:(e,t)=>{var r=e.panelConfig||e.panelRegistry.getPanelConfig();return Pe(Pe({},e),{},{mode:t,previousMode:e.mode,openPanels:ye(r,e.breakpoint,e.openPanels)})},SET_SAFE_ZONE_INSET:(e,t)=>{var{safeZoneInset:r,syncMapPadding:n=!0}=t;return((e,t)=>{if(e===t)return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;var r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&r.every(r=>Object.is(e[r],t[r]))})(e.safeZoneInset,r)?e:Pe(Pe({},e),{},{safeZoneInset:r,syncMapPadding:n,isLayoutReady:!0})},REVERT_MODE:e=>{var t=e.panelConfig||e.panelRegistry.getPanelConfig();return Pe(Pe({},e),{},{mode:e.previousMode,previousMode:e.mode,openPanels:ye(t,e.breakpoint,e.openPanels)})},OPEN_PANEL:(e,t)=>{var{panelId:r,props:n={}}=t;return Pe(Pe({},e),{},{previousOpenPanels:e.openPanels,openPanels:Ee(e,r,e.breakpoint,n)})},CLOSE_PANEL:(e,r)=>{var n=e.openPanels,{[r]:o}=n,i=t(n,[r].map(he));return Pe(Pe({},e),{},{previousOpenPanels:e.openPanels,openPanels:i})},CLOSE_ALL_PANELS:e=>Pe(Pe({},e),{},{previousOpenPanels:e.openPanels,openPanels:{}}),RESTORE_PREVIOUS_PANELS:e=>Pe(Pe({},e),{},{openPanels:e.previousOpenPanels||{},previousOpenPanels:e.openPanels}),TOGGLE_HAS_EXCLUSIVE_CONTROL:(e,t)=>Pe(Pe({},e),{},{hasExclusiveControl:t}),TOGGLE_BUTTON_DISABLED:(e,t)=>{var{id:r,isDisabled:n}=t,o=new Set(e.disabledButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{disabledButtons:o})},TOGGLE_BUTTON_HIDDEN:(e,t)=>{var{id:r,isHidden:n}=t,o=new Set(e.hiddenButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{hiddenButtons:o})},TOGGLE_BUTTON_PRESSED:(e,t)=>{var{id:r,isPressed:n}=t,o=new Set(e.pressedButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{pressedButtons:o})},TOGGLE_BUTTON_EXPANDED:(e,t)=>{var{id:r,isExpanded:n}=t,o=new Set(e.expandedButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{expandedButtons:o})},REGISTER_BUTTON:(e,t)=>Pe(Pe({},e),{},{buttonConfig:Y(e.buttonConfig,t)}),ADD_BUTTON:(e,t)=>{var r,{id:n,config:o}=t,i=q(e.buttonConfig,n,o),a=new Set(e.hiddenButtons);o.isHidden&&a.add(n);var l=new Set(e.disabledButtons);o.isDisabled&&l.add(n);var c=new Set(e.pressedButtons);o.isPressed&&c.add(n);var s=new Set(e.expandedButtons);return o.isExpanded&&s.add(n),null!==(r=e.buttonRegistry)&&void 0!==r&&r.addButton&&e.buttonRegistry.addButton(n,o),Pe(Pe({},e),{},{buttonConfig:i,hiddenButtons:a,disabledButtons:l,pressedButtons:c,expandedButtons:s})},REGISTER_PANEL:(e,t)=>Pe(Pe({},e),{},{panelConfig:ee(e.panelConfig,t)}),ADD_PANEL:(e,t)=>{var r,{id:n,config:o}=t,i=te(e.panelConfig,n,o),a=i[n];null!==(r=e.panelRegistry)&&void 0!==r&&r.addPanel&&e.panelRegistry.addPanel(n,o);var l=null==a?void 0:a[e.breakpoint],c=null==l?void 0:l.initiallyOpen;return Pe(Pe({},e),{},{panelConfig:i,openPanels:c?Ee(Pe(Pe({},e),{},{panelConfig:i}),n,e.breakpoint,{}):e.openPanels})},REMOVE_PANEL:(e,r)=>{var n,o=r,i=e.openPanels,{[o]:a}=i,l=t(i,[o].map(he));return null!==(n=e.panelRegistry)&&void 0!==n&&n.removePanel&&e.panelRegistry.removePanel(o),Pe(Pe({},e),{},{panelConfig:re(e.panelConfig,o),openPanels:l})},REGISTER_CONTROL:(e,t)=>Pe(Pe({},e),{},{controlConfig:ie(e.controlConfig,t)}),ADD_CONTROL:(e,t)=>{var r,{id:n,config:o}=t,i=ae(e.controlConfig,n,o);return null!==(r=e.controlRegistry)&&void 0!==r&&r.addControl&&e.controlRegistry.addControl(n,o),Pe(Pe({},e),{},{controlConfig:i})}};function we(){return{preferredColorScheme:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",prefersReducedMotion:window.matchMedia("(prefers-reduced-motion: reduce)").matches}}var je=(e,t)=>{var{type:r,payload:n}=t,o=_e[r];return o?o(e,n):e};function Se(e,t,r,n){var{type:o,payload:a}=e;if("CLOSE_PANEL"===o&&queueMicrotask(()=>{n.emit(i.APP_PANEL_CLOSED,{panelId:a})}),"CLOSE_ALL_PANELS"===o&&queueMicrotask(()=>{Object.keys(t.openPanels).forEach(e=>{n.emit(i.APP_PANEL_CLOSED,{panelId:e})})}),"OPEN_PANEL"===o){var{panelId:l,props:c}=a,s=function(e,t,r,n){var o,i=null===(o=n[e])||void 0===o?void 0:o[r],a=!(null==i||!i.exclusive||null!=i&&i.modal),l=!(null==i||!i.modal),c=[];if(l)return c;var s=Object.keys(t);return a?s.forEach(e=>{var t,o=null===(t=n[e])||void 0===t?void 0:t[r];null!=o&&o.exclusive||c.push(e)}):s.forEach(e=>{var t,o=null===(t=n[e])||void 0===t?void 0:t[r];null==o||!o.exclusive||null!=o&&o.modal||c.push(e)}),c}(l,t.openPanels,t.breakpoint,r);queueMicrotask(()=>{s.forEach(e=>{n.emit(i.APP_PANEL_CLOSED,{panelId:e})}),n.emit(i.APP_PANEL_OPENED,{panelId:l,props:c})})}}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 Te(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 De=u(null),ke=e=>{var{options:t,children:r}=e,{pluginRegistry:n,buttonRegistry:l,panelRegistry:c,controlRegistry:s,eventBus:p,breakpointDetector:d}=t,u={appContainerRef:v(null),sideRef:v(null),mainRef:v(null),topRef:v(null),topLeftColRef:v(null),topRightColRef:v(null),insetRef:v(null),rightRef:v(null),middleRef:v(null),bottomRef:v(null),footerRef:v(null),actionsRef:v(null),bannerRef:v(null),modalRef:v(null),viewportRef:v(null)},y=v({}),[h,O]=m(je,(e=>{var{initialBreakpoint:t,initialInterfaceType:r,appColorScheme:n,autoColorScheme:i,pluginRegistry:a,buttonRegistry:l,panelRegistry:c,controlRegistry:s,mode:p}=e,{preferredColorScheme:d,prefersReducedMotion:u}=we(),f=o(e),v=ye(c.getPanelConfig(),t);return{isLayoutReady:!1,breakpoint:t,interfaceType:r,preferredColorScheme:i?d:n,prefersReducedMotion:u,isFullscreen:f,mode:p||null,previousMode:null,safeZoneInset:null,disabledButtons:new Set,hiddenButtons:new Set,pressedButtons:new Set,expandedButtons:new Set,hasExclusiveControl:!1,openPanels:v,previousOpenPanels:{},syncMapPadding:!0,pluginRegistry:a,buttonRegistry:l,panelRegistry:c,controlRegistry:s,buttonConfig:l.getButtonConfig(),panelConfig:c.getPanelConfig(),controlConfig:s.getControlConfig()}})(t)),P=b(e=>{var r=h.panelConfig||t.panelRegistry.getPanelConfig(),n=h;O(e),Se(e,n,r,p)},[h,t,p]);!function(e,t){var{appColorScheme:r,autoColorScheme:n,behaviour:o,hybridWidth:i,maxMobileWidth:a}=t;f(()=>{var t=[window.matchMedia("(prefers-color-scheme: dark)"),window.matchMedia("(prefers-reduced-motion: reduce)")];function l(){var{preferredColorScheme:t,prefersReducedMotion:o}=we();e({type:"SET_MEDIA",payload:{preferredColorScheme:n?t:r,prefersReducedMotion:o}})}t.forEach(e=>e.addEventListener("change",l));var c=null,s=null;if("hybrid"===o){var p=null!=i?i:a;c=window.matchMedia("(max-width: ".concat(p,"px)")),s=t=>{e({type:"SET_HYBRID_FULLSCREEN",payload:t.matches})},c.addEventListener("change",s)}return()=>{t.forEach(e=>e.removeEventListener("change",l)),c&&s&&c.removeEventListener("change",s)}},[e,o,i,a])}(O,t);var _=e=>{P({type:"SET_MODE",payload:e})},w=()=>{P({type:"REVERT_MODE"})};f(()=>{p.on(i.APP_SET_MODE,_),p.on(i.APP_REVERT_MODE,w);var e=d.subscribe(e=>{P({type:"SET_BREAKPOINT",payload:{behaviour:t.behaviour,breakpoint:e,hybridWidth:t.hybridWidth,maxMobileWidth:t.maxMobileWidth}})}),r=a(e=>{P({type:"SET_INTERFACE_TYPE",payload:e})});return()=>{p.off(i.APP_SET_MODE,_),p.off(i.APP_REVERT_MODE,w),e(),r()}},[]);var S=g(()=>Te(Te({},h),{},{dispatch:P,layoutRefs:u,buttonRefs:y,pluginRegistry:n,buttonRegistry:l,panelRegistry:c,controlRegistry:s}),[h,P]);return E(j.Provider,{value:t,children:E(De.Provider,{value:S,children:r})})};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 Me(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 Ce=(e,t)=>Me(Me({},e),t),Ie={SET_MAP_READY:(e,t)=>Me(Me({},e),{},{isMapReady:!0,mapProvider:t}),MAP_MOVE:Ce,MAP_MOVE_END:Ce,MAP_FIRST_IDLE:Ce,SET_MAP_STYLE:(e,t)=>Me(Me({},e),{},{mapStyle:t}),SET_MAP_SIZE:(e,t)=>Me(Me({},e),{},{mapSize:t}),UPDATE_CROSS_HAIR:(e,t)=>Me(Me({},e),{},{crossHair:Me(Me({},e.crossHair),t)}),UPSERT_LOCATION_MARKER:(e,t)=>{var r=new Map(e.markers.items.map(e=>[e.id,e]));r.set(t.id,t);var n=Array.from(r.values());return Me(Me({},e),{},{markers:Me(Me({},e.markers),{},{items:n})})},REMOVE_LOCATION_MARKER:(e,t)=>{var r=e.markers.items.filter(e=>e.id!==t);return Me(Me({},e),{},{markers:Me(Me({},e.markers),{},{items:r})})}},Le=(e,t)=>{var{type:r,payload:n}=t,o=Ie[r];return o?o(e,n):e};function Ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Be(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 xe=u(null),ze=e=>{var{options:t,children:r}=e,[n,o]=m(Le,(e=>{var{center:t,zoom:r,bounds:n,extent:o,mapStyle:i,mapSize:a,markers:l}=e,{registeredPlugins:c}=e.pluginRegistry;return{isMapReady:!1,mapProvider:null,mapStyle:null!=c&&c.find(e=>{var t;return null===(t=e.config)||void 0===t?void 0:t.handlesMapStyle})?null:i,mapSize:a,center:t,zoom:r,bounds:n||o,resolution:null,isAtMaxZoom:null,isAtMinZoom:null,crossHair:{isVisible:!1,isPinnedToMap:!1,state:"active"},markers:{items:l||[]}}})(t)),a=e=>{o({type:"SET_MAP_READY",payload:e})},l=e=>{var r=localStorage.getItem("".concat(t.id,":mapStyleId")),n=e.find(e=>e.id===r)||e[0],i=localStorage.getItem("".concat(t.id,":mapSize"))||t.mapSize;o({type:"SET_MAP_STYLE",payload:n}),o({type:"SET_MAP_SIZE",payload:i})},c=e=>{o({type:"SET_MAP_STYLE",payload:e})},s=e=>{o({type:"SET_MAP_SIZE",payload:e})},{eventBus:p}=t;f(()=>(p.on(i.MAP_READY,a),p.on(i.MAP_INIT_MAP_STYLES,l),p.on(i.MAP_SET_STYLE,c),p.on(i.MAP_SET_SIZE,s),()=>{p.off(i.MAP_READY,a),p.off(i.MAP_INIT_MAP_STYLES,l),p.off(i.MAP_SET_STYLE,c),p.off(i.MAP_SET_SIZE,s)}),[]),f(()=>{n.mapStyle&&n.mapSize&&(localStorage.setItem("".concat(t.id,":mapStyleId"),n.mapStyle.id),localStorage.setItem("".concat(t.id,":mapSize"),n.mapSize))},[n.mapStyle,n.mapSize]);var d=g(()=>Be(Be({},n),{},{dispatch:o}),[n]);return E(xe.Provider,{value:d,children:r})};function He(e){var t,r,n,o,i=!1,a=t=>{null!=e&&e.current&&t&&(e.current.textContent="",setTimeout(()=>{e.current&&(e.current.textContent=t)},100))},l=(t=a,r=500,n=null,o=function(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];clearTimeout(n),n=setTimeout(()=>{t(...o)},r)},o.cancel=()=>{n&&(clearTimeout(n),n=null)},o);return function(e){if(e)return"plugin"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"core")?(i=!0,void a(e)):void(i?i=!1:l(e))}}var Fe=u(null),Ue=e=>{var{eventBus:t,children:r}=e,{id:n,handleExitClick:o}=S(),a=v(null),c=g(()=>He(a),[]),s=g(()=>({announce:c,reverseGeocode:(e,t)=>l(e,t),events:i,eventBus:t,mapStatusRef:a,closeApp:()=>function(e,t,r){var n;r.emit(i.MAP_EXIT,{mapId:e}),null!==(n=history.state)&&void 0!==n&&n.isBack?history.back():t()}(n,o,t)}),[c]);return E(Fe.Provider,{value:s,children:r})};function Ge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Ve(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Ge(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var We=u(null);var Ze=e=>{var{children:t}=e,{pluginRegistry:r}=S(),n={},o={},i=v({});r.registeredPlugins.forEach(e=>{var t=e.reducer;if(t){var{initialState:r,actions:a}=t;n[e.id]=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=null==e?void 0:e[null==r?void 0:r.type];return n?n(t,r.payload):t}}(a),o[e.id]=r}i.current[e.id]||(i.current[e.id]={})});var[a,l]=m((e,t)=>{var{pluginId:r}=t;return r&&n[r]?Ve(Ve({},e),{},{[r]:n[r](e[r],t)}):e},o),c=(e,t)=>(i.current[e]||(i.current[e]={}),i.current[e][t]||(i.current[e][t]=p.createRef()),i.current[e][t]),s=g(()=>({state:a,dispatch:l,refs:i,getPluginRef:c}),[a,l]);return E(We.Provider,{value:s,children:t})},Ke=e=>{var t=d(We);if(!t)throw new Error("usePlugin must be used within PluginProvider");var{state:r,dispatch:n,refs:o,getPluginRef:i}=t;return o.current[e]||(o.current[e]={}),Ve(Ve({},r[e]),{},{dispatch:t=>n(Ve(Ve({},t),{},{pluginId:e})),refs:o.current[e],useRef:t=>i(e,t)})};function Ye(){return d(De)}function qe(){return d(xe)}function Xe(){return d(Fe)}function $e(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?$e(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Qe=new Map;function et(e,t){var{pluginId:r,pluginConfig:n}=t,o=e;return Qe.has(o)||Qe.set(o,function(t){var o=S(),i=Ye(),a=qe(),l=Xe(),c=Ke(r);return E(e,Je(Je({},t),{},{pluginConfig:n,pluginState:c,appConfig:o,appState:i,mapState:a,services:l,mapProvider:o.mapProvider,iconRegistry:pe(),buttonConfig:Object.fromEntries(Object.entries(i.buttonConfig).filter(e=>{var[t,n]=e;return n.pluginId===r}))}))}),Qe.get(o)}function tt(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 rt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?tt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):tt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function nt(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 ot(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?nt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function it(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 at(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?it(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):it(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function lt(){var e=S(),t=Ye(),r=qe(),n=Xe(),o=d(We),i={appConfig:e,appState:t,mapState:r,services:n,mapProvider:null==e?void 0:e.mapProvider,iconRegistry:pe()};function a(t,r){var n,a;if(r){var l,c,s=e.pluginRegistry.registeredPlugins.find(e=>e.id===r);n=s?at({pluginId:s.id},s.config):{},a=at(at({},null!==(l=null==o||null===(c=o.state)||void 0===c?void 0:c[r])&&void 0!==l?l:{}),{},{dispatch:null==o?void 0:o.dispatch})}var p=at(at({},i),{},{pluginConfig:n,pluginState:a});return"function"==typeof t?t(p):t}return a.ctx=i,a}function ct(e){var t=Ye(),{pluginRegistry:r}=S(),n=d(We);y(()=>{if(null!=t&&t.dispatch&&n){var{dispatch:o}=t;r.registeredPlugins.forEach(r=>{var n,i;(null!==(n=null==r||null===(i=r.manifest)||void 0===i?void 0:i.buttons)&&void 0!==n?n:[]).flatMap(e=>{var t;return[e,...null!==(t=e.menuItems)&&void 0!==t?t:[]]}).forEach(n=>function(e){var{btn:t,pluginId:r,appState:n,dispatch:o,evaluateProp:i}=e;[{prop:"enableWhen",state:n.disabledButtons,action:"TOGGLE_BUTTON_DISABLED",invert:!0,key:"isDisabled"},{prop:"hiddenWhen",state:n.hiddenButtons,action:"TOGGLE_BUTTON_HIDDEN",key:"isHidden"},{prop:"pressedWhen",state:n.pressedButtons,action:"TOGGLE_BUTTON_PRESSED",key:"isPressed"},{prop:"expandedWhen",state:n.expandedButtons,action:"TOGGLE_BUTTON_EXPANDED",key:"isExpanded"}].forEach(e=>{var{prop:n,state:a,action:l,key:c,invert:s}=e;if("function"==typeof t[n])try{var p=i(t[n],r),d=s?!p:p;a.has(t.id)!==d&&o({type:l,payload:{id:t.id,[c]:d}})}catch(e){console.warn("".concat(n," error for button ").concat(t.id,":"),e)}})}({btn:n,pluginId:r.id,appState:t,dispatch:o,evaluateProp:e}))})}},[t,n,e])}var st=["api"],pt=e=>{var r,n,{plugin:o,mode:i}=e,a=function(e){var t=v(null),r=S(),n=Ye(),o=qe(),i=Xe(),a=Ke(e);return f(()=>{t.current={appConfig:r,appState:n,mapState:o,services:i,mapProvider:r.mapProvider,pluginState:a}}),t}(o.id);f(()=>{o.api&&o._originalPlugin&&Object.entries(o.api).forEach(e=>{var[t,r]=e;o._originalPlugin[t]=function(e,t){var{pluginId:r,pluginConfig:n,stateRef:o}=t;return function(){var t=o.current;if(!t)throw new Error('Plugin API "'.concat(r,'" called before state is initialized'));for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return e(rt(rt({},t),{},{pluginConfig:n,pluginId:r}),...a)}}(r,{pluginId:o.id,pluginConfig:(null==o?void 0:o.config)||{},stateRef:a})})},[o,a]);var{InitComponent:l}=o,c=(null==o?void 0:o.config)||{},{api:s}=c,p=t(c,st),{includeModes:d,excludeModes:u}=o.config||{},m=null===(r=null==d?void 0:d.includes(i))||void 0===r||r,b=null!==(n=null==u?void 0:u.includes(i))&&void 0!==n&&n;if(!m||b||!l)return null;var g=et(l,{pluginId:o.id,pluginConfig:p});return E(g,{})},dt=()=>{var{mode:e}=Ye(),{pluginRegistry:t}=S();(()=>{var{dispatch:e,hiddenButtons:t,disabledButtons:r,pressedButtons:n,expandedButtons:o}=Ye(),{eventBus:a}=Xe(),l=v(e),c=v({hiddenButtons:t,disabledButtons:r,pressedButtons:n,expandedButtons:o});l.current=e,c.current={hiddenButtons:t,disabledButtons:r,pressedButtons:n,expandedButtons:o},f(()=>{var e=e=>{var{id:t,config:r}=e;l.current({type:"ADD_BUTTON",payload:{id:t,config:r}}),Array.isArray(r.menuItems)&&r.menuItems.forEach(e=>{l.current({type:"ADD_BUTTON",payload:{id:e.id,config:ot(ot({},e),{},{isMenuItem:!0})}})})},t=e=>{var{id:t,prop:r,value:n}=e,{hiddenButtons:o,disabledButtons:i,pressedButtons:a,expandedButtons:s}=c.current;switch(r){case"hidden":var p="boolean"==typeof n?n:!o.has(t);l.current({type:"TOGGLE_BUTTON_HIDDEN",payload:{id:t,isHidden:p}});break;case"disabled":var d="boolean"==typeof n?n:!i.has(t);l.current({type:"TOGGLE_BUTTON_DISABLED",payload:{id:t,isDisabled:d}});break;case"pressed":var u="boolean"==typeof n?n:!a.has(t);l.current({type:"TOGGLE_BUTTON_PRESSED",payload:{id:t,isPressed:u}});break;case"expanded":var f="boolean"==typeof n?n:!s.has(t);l.current({type:"TOGGLE_BUTTON_EXPANDED",payload:{id:t,isExpanded:f}})}},r=e=>{var{id:t,config:r}=e;return l.current({type:"ADD_PANEL",payload:{id:t,config:r}})},n=e=>l.current({type:"REMOVE_PANEL",payload:e}),o=e=>l.current({type:"OPEN_PANEL",payload:{panelId:e}}),s=e=>l.current({type:"CLOSE_PANEL",payload:e}),p=e=>{var{id:t,config:r}=e;return l.current({type:"ADD_CONTROL",payload:{id:t,config:r}})};return a.on(i.APP_ADD_BUTTON,e),a.on(i.APP_TOGGLE_BUTTON_STATE,t),a.on(i.APP_ADD_PANEL,r),a.on(i.APP_REMOVE_PANEL,n),a.on(i.APP_SHOW_PANEL,o),a.on(i.APP_HIDE_PANEL,s),a.on(i.APP_ADD_CONTROL,p),()=>{a.off(i.APP_ADD_BUTTON,e),a.off(i.APP_TOGGLE_BUTTON_STATE,t),a.off(i.APP_ADD_PANEL,r),a.off(i.APP_REMOVE_PANEL,n),a.off(i.APP_SHOW_PANEL,o),a.off(i.APP_HIDE_PANEL,s),a.off(i.APP_ADD_CONTROL,p)}},[a])})();var r=lt();return ct(r),E(w,{children:t.registeredPlugins.map((t,n)=>E(pt,{plugin:t,mode:e,evaluateProp:r},"init-".concat(t.id,"-").concat(n)))})};var ut=function(e){var{id:t,center:r,zoom:n,bounds:o}=e,i=((e,t)=>{var r=new URLSearchParams(t),n=r.get("".concat(e,":center")),o=r.get("".concat(e,":zoom"));if(!n||!o)return null;var[i,a]=n.split(",").map(Number);return{center:[i,a],zoom:Number(o)}})(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location.search);return i?{center:i.center,zoom:i.zoom}:o?{bounds:o}:{center:r,zoom:n}};function ft(){var{id:e}=S(),{eventBus:t}=Xe();f(()=>{if(e){var r=t=>{var{current:r}=t;!function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.location.href,n=new URL(r||"http://localhost"),o=[...new URLSearchParams(n.search)].map(e=>{var[t,r]=e;return"".concat(t,"=").concat(r)}),i=[];t.center&&i.push("".concat(e,":center=").concat(t.center[0],",").concat(t.center[1])),null!=t.zoom&&i.push("".concat(e,":zoom=").concat(t.zoom));var a=o.filter(e=>!i.some(t=>t.split("=")[0]===e.split("=")[0])),l=n.hash||"",c="".concat(n.origin).concat(n.pathname,"?").concat([...a,...i].join("&")).concat(l);window.history.replaceState(window.history.state,"",c)}(e,{center:r.center,zoom:r.zoom})};return t.on(i.MAP_STATE_UPDATED,r),()=>t.off(i.MAP_STATE_UPDATED,r)}},[e])}var vt=e=>{var{direction:t}=e;return"Map moved ".concat(t,".")},mt=e=>{var{from:t,to:r,areaDimensions:n,isAtMaxZoom:o,isAtMinZoom:i}=e;return"Map zoomed ".concat(r>t?"in":"out").concat(o?" (Maximum zoom)":"").concat(i?" (Minimum zoom)":"",". New area approximately ").concat(n,".")},bt=e=>{var{areaDimensions:t,isAtMaxZoom:r,isAtMinZoom:n}=e;return"New area approximately ".concat(t).concat(r?" (Maximum zoom)":"").concat(n?" (Minimum zoom)":"",".")},gt=e=>{var{isAtMaxZoom:t,isAtMinZoom:r}=e;return"No change, ".concat(t?"maximum zoom reached":"").concat(r?"minimum zoom reached":"",".")};function yt(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 ht(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?yt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):yt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function Ot(){var{mapProvider:e}=S(),{eventBus:t,announce:r}=Xe();f(()=>{var n=t=>{var{previous:n,current:o}=t;if(null!=n&&n.center&&null!=o&&o.center){var i=((e,t,r)=>{var n=e.zoom!==t.zoom,o=e.center[0]!==t.center[0]||e.center[1]!==t.center[1],i=r.getAreaDimensions();if(o&&!n){var a=r.getCardinalMove(e.center,t.center);return vt({direction:a,areaDimensions:i})}return!o&&n?mt(ht(ht({},t),{},{from:e.zoom,to:t.zoom,areaDimensions:i})):o||n?bt(ht(ht({},t),{},{areaDimensions:i})):gt(ht({},t))})(n,o,e);i&&r(i,"core")}};return t.on(i.MAP_STATE_UPDATED,n),()=>{t.off(i.MAP_STATE_UPDATED,n)}},[e,r])}var Pt=e=>{var{mainRef:t,insetRef:r,rightRef:n,actionsRef:o,footerRef:i}=e,a=[t,r,n,o,i];if(!a.some(e=>!e.current)){var[l,c,s,p,d]=a.map(e=>e.current),u=document.documentElement,f=Number.parseInt(getComputedStyle(u).getPropertyValue("--divider-gap"),10),v=p.offsetTop-c.offsetTop-f,m=c.offsetLeft+s.offsetWidth+f,b=l.offsetWidth-2*m,g=c.offsetWidth-m+c.offsetLeft,y=b-g>v-c.offsetHeight,h=c.offsetTop+(!y&&c.offsetHeight>0?c.offsetHeight+f:0),O=y?c.offsetWidth+c.offsetLeft+f:m,P=l.offsetHeight-p.offsetTop,E=l.offsetHeight-d.offsetTop,_=g<b/2&&c.offsetHeight<v/2;return{top:_?c.offsetTop:h,right:m,left:l.offsetLeft+(_?m:Math.max(O,m)),bottom:Math.max(P,E)+f}}},Et=(e,t)=>Object.entries(e).reduce((e,r)=>{var[n,o]=r;return e[n]=Math.round(o/t),e},{});function _t(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 wt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?_t(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var jt=e=>{var{mapContainerRef:t}=e,r=S(),{id:n,mapProvider:o}=r,{safeZoneInset:a,breakpoint:l,isLayoutReady:c,syncMapPadding:s}=Ye(),{isMapReady:p,mapStyle:d,mapSize:u,center:m,zoom:b,bounds:g}=qe(),y=v(!1),h=ut({id:n,center:m,zoom:b,bounds:g});return f(()=>{if(a&&c&&d&&u&&!y.current)return requestAnimationFrame(()=>{o.initMap(wt(wt({},r),{},{pixelRatio:window.devicePixelRatio*U[u],container:t.current,padding:a,center:h.center,zoom:h.zoom,bounds:h.bounds,mapStyle:d}))}),y.current=!0,()=>{}},[a,c,d,u]),function(){var{mapProvider:e}=S(),{dispatch:t}=qe(),{eventBus:r}=Xe(),n=v(null),o=v(!1);f(()=>{if(e){var a=e=>{t({type:"MAP_MOVE",payload:e})},l=e=>{t({type:"MAP_MOVE_END",payload:e}),r.emit(i.MAP_STATE_UPDATED,{previous:n.current,current:e}),n.current=e},c=r=>{o.current||(n.current={center:e.getCenter(),zoom:e.getZoom()},o.current=!0),t({type:"MAP_FIRST_IDLE",payload:r})};return r.on(i.MAP_MOVE,a),r.on(i.MAP_MOVE_END,l),r.on(i.MAP_FIRST_IDLE,c),()=>{r.off(i.MAP_MOVE,a),r.off(i.MAP_MOVE_END,l),r.off(i.MAP_FIRST_IDLE,c)}}},[e,t])}(),ft(),Ot(),(()=>{var{mapProvider:e}=S(),{dispatch:t,layoutRefs:r}=Ye(),{mapSize:n}=qe(),o=v(n);o.current=n;var i=()=>{var n=Pt(r),i=Et(n,U[o.current]);"function"==typeof t&&t({type:"SET_SAFE_ZONE_INSET",payload:{safeZoneInset:n,syncMapPadding:!1}}),"function"==typeof e.setPadding&&e.setPadding(i)};f(()=>{if(e){var t=e.fitToBounds;e.fitToBounds=function(r){if(r)return arguments.length>1&&void 0!==arguments[1]&&arguments[1]||i(),t.call(e,r)};var r=e.setView;return e.setView=t=>{var{center:n,zoom:o}=t;if(n)return i(),r.call(e,{center:n,zoom:o})},()=>{e.fitToBounds=t,e.setView=r}}},[e,t,r,n])})(),f(()=>{p&&s&&o.setPadding(Et(a,U[u]))},[p,u,l,a]),null};var St={keydown:{ArrowUp:"panUp",ArrowDown:"panDown",ArrowLeft:"panLeft",ArrowRight:"panRight","+":"zoomIn","=":"zoomIn","-":"zoomOut",_:"zoomOut"},keyup:{"Alt+k":"showKeyboardControls","Alt+K":"showKeyboardControls","Alt+ArrowRight":"highlightNextLabel","Alt+ArrowLeft":"highlightNextLabel","Alt+ArrowUp":"highlightNextLabel","Alt+ArrowDown":"highlightNextLabel","Alt+Enter":"highlightLabelAtCenter","Alt+i":"getInfo","Alt+I":"getInfo",Escape:"clearSelection"}},Rt=(e,t,n)=>{var o,{containerRef:i,dispatch:a,panDelta:c,nudgePanDelta:s,zoomDelta:p,nudgeZoomDelta:d,readMapText:u}=n,f=e=>e?s:c,v=e=>e?d:p;return{showKeyboardControls:()=>{a({type:"OPEN_PANEL",payload:{panelId:"keyboardHelp",props:{triggeringElement:i.current}}})},panUp:t=>e.panBy([0,-f(t.shiftKey)]),panDown:t=>e.panBy([0,f(t.shiftKey)]),panLeft:t=>e.panBy([-f(t.shiftKey),0]),panRight:t=>e.panBy([f(t.shiftKey),0]),zoomIn:t=>e.zoomIn(v(t.shiftKey)),zoomOut:t=>e.zoomOut(v(t.shiftKey)),getInfo:(o=r(function*(r){var n,o=e.getCenter(),i=yield l(e.getZoom(),o),a=null===(n=e.getAreaDimensions)||void 0===n?void 0:n.call(e),c=a?"".concat(i,". Covering ").concat(a,"."):"".concat(i,".");t(c,"core")}),function(e){return o.apply(this,arguments)}),highlightNextLabel:r=>{if(u||!e.highlightNextLabel){var n=e.highlightNextLabel(r.key);t(n,"core")}},highlightLabelAtCenter:()=>{if(u||!e.highlightNextLabel){var r=e.highlightLabelAtCenter();t(r,"core")}},clearSelection:()=>{var t;return null==e||null===(t=e.clearHighlightedLabel)||void 0===t?void 0:t.call(e)}}};var Tt=()=>{var{mapStatusRef:e}=Xe();return E("div",{ref:e,role:"status",className:"im-c-viewport__status","aria-live":"polite","aria-atomic":"true","aria-label":"Map updates"})},Dt={active:"M5.035 20H1v-2h4.035C5.525 11.069 11.069 5.525 18 5.035V1h2v4.035c6.931.49 12.475 6.034 12.965 12.965H37v2h-4.035c-.49 6.931-6.034 12.475-12.965 12.965V37h-2v-4.035C11.069 32.475 5.525 26.931 5.035 20zM19 7c-6.581.005-11.995 5.419-12 12 .005 6.581 5.419 11.995 12 12 6.581-.005 11.995-5.419 12-12-.005-6.581-5.419-11.995-12-12zm0 10a2.01 2.01 0 0 1 2 2 2.01 2.01 0 0 1-2 2 2.01 2.01 0 0 1-2-2 2.01 2.01 0 0 1 2-2z",inactive:"M5.035 20H1v-2h4.035a13.98 13.98 0 0 1 .246-1.8l1.96.399C7.083 17.375 7 18.178 7 19s.083 1.625.241 2.401l-1.96.399a13.98 13.98 0 0 1-.246-1.8zM20 5.035a13.98 13.98 0 0 1 1.8.246l-.399 1.96C20.625 7.083 19.822 7 19 7s-1.625.083-2.401.241l-.399-1.96a13.98 13.98 0 0 1 1.8-.246V1h2v4.035zm-2 27.93a13.98 13.98 0 0 1-1.8-.246l.399-1.96c.776.158 1.579.241 2.401.241s1.625-.083 2.401-.241l.399 1.96a13.98 13.98 0 0 1-1.8.246V37h-2v-4.035zM32.965 20a13.98 13.98 0 0 1-.246 1.8l-1.96-.399c.158-.776.241-1.579.241-2.401s-.083-1.625-.241-2.401l1.96-.399a13.98 13.98 0 0 1 .246 1.8H37v2h-4.035zM19 17a2.01 2.01 0 0 1 2 2 2.01 2.01 0 0 1-2 2 2.01 2.01 0 0 1-2-2 2.01 2.01 0 0 1 2-2zm3.8-9.385l.634-1.897c1.789.598 3.438 1.553 4.848 2.805l-1.327 1.496c-1.196-1.06-2.605-1.886-4.155-2.404zm5.181 3.43l1.496-1.327c1.252 1.41 2.207 3.059 2.805 4.848l-1.897.634c-.518-1.55-1.344-2.959-2.404-4.155zM30.385 22.8l1.897.634c-.598 1.789-1.553 3.438-2.805 4.848l-1.496-1.327c1.06-1.196 1.886-2.605 2.404-4.155zm-3.43 5.181l1.327 1.496c-1.41 1.252-3.059 2.207-4.848 2.805l-.634-1.897c1.55-.518 2.959-1.344 4.155-2.404zM15.2 30.385l-.634 1.897c-1.789-.598-3.438-1.553-4.848-2.805l1.327-1.496c1.196 1.06 2.605 1.886 4.155 2.404zm-5.181-3.43l-1.496 1.327c-1.252-1.41-2.207-3.059-2.805-4.848l1.897-.634c.518 1.55 1.344 2.959 2.404 4.155zM7.615 15.2l-1.897-.634c.598-1.789 1.553-3.438 2.805-4.848l1.496 1.327c-1.06 1.196-1.886 2.605-2.404 4.155zm3.43-5.181L9.718 8.523c1.41-1.252 3.059-2.207 4.848-2.805l.634 1.897c-1.55.518-2.959 1.344-4.155 2.404z"},kt=()=>{var{id:e}=S(),{crossHairRef:t,crossHair:r}=(()=>{var{mapProvider:e}=S(),{safeZoneInset:t}=Ye(),{eventBus:r}=Xe(),{crossHair:n,dispatch:o,mapSize:a}=qe(),l=(e,r,n)=>{if(t){var o=r*U[a],i=n*U[a];e.style.transform="translate(".concat(o-t.left,"px, ").concat(i-t.top,"px)"),e.style.left="0",e.style.top="0",e.style.display="block"}},c=b(t=>{if(t){((e,t,r,n,o)=>{e.pinToMap=(i,a)=>{var{x:l,y:c}=r.mapToScreen(i);e.coords=i,n({type:"UPDATE_CROSS_HAIR",payload:{isPinnedToMap:!0,isVisible:!0,coords:i,state:a}}),o(t,l,c)},e.fixAtCenter=()=>{t.style.left="50%",t.style.top="50%",t.style.transform="translate(0,0)",t.style.display="block",n({type:"UPDATE_CROSS_HAIR",payload:{isPinnedToMap:!1,isVisible:!0}})},e.remove=()=>{t.style.display="none",n({type:"UPDATE_CROSS_HAIR",payload:{isPinnedToMap:!1,isVisible:!1}})},e.show=()=>{t.style.display="block",n({type:"UPDATE_CROSS_HAIR",payload:{isVisible:!0}})},e.hide=()=>{t.style.display="none",n({type:"UPDATE_CROSS_HAIR",payload:{isVisible:!1}})},e.setStyle=e=>{n({type:"UPDATE_CROSS_HAIR",payload:{state:e}})},e.getDetail=()=>{var t=e.isPinnedToMap?e.coords:r.getCenter();return{state:e.state,point:r.mapToScreen(t),zoom:r.getZoom(),coords:t}}})(n,t,e,o,l);var a=()=>{if(n.coords&&n.isPinnedToMap){var{x:r,y:o}=e.mapToScreen(n.coords);l(t,r,o)}};return r.on(i.MAP_RENDER,a),()=>{r.off(i.MAP_RENDER,a)}}},[n,e,a,o,t]);return f(()=>{n.coords&&n.isPinnedToMap&&n.pinToMap(n.coords,n.state)},[a]),{crossHair:n,crossHairRef:c}})(),{isVisible:n,isPinnedToMap:o,state:a}=r;return E("svg",{id:"".concat(e,"-cross-hair"),ref:t,className:"im-c-cross-hair",width:"38",height:"38",viewBox:"0 0 38 38",fillRule:"evenodd",fill:"currentColor",style:{position:"absolute",left:o?0:"50%",top:o?0:"50%",pointerEvents:"none",display:n?"block":"none"},children:E("path",{d:Dt[a||"active"]})})};function At(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 Mt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?At(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Ct=(e,t,r,n)=>{if(!t||!n)return{x:0,y:0};var{x:o,y:i}=t.mapToScreen(e);return{x:o*U[r],y:i*U[r]-19}},It=(e,t,r,n,o)=>{e.forEach(e=>{var i=t.get(e.id);if(i&&e.coords){var{x:a,y:l}=Ct(e.coords,r,n,o);i.style.transform="translate(".concat(a,"px, ").concat(l,"px)"),i.style.display="block"}})},Lt=()=>{var{mapProvider:e}=S(),{eventBus:t}=Xe(),{markers:r,dispatch:n,mapSize:o,isMapReady:a}=qe(),l=v(new Map);f(()=>{e&&(r.markerRefs=l.current,r.add=(t,r,i)=>{var{x:l,y:c}=Ct(r,e,o,a);n({type:"UPSERT_LOCATION_MARKER",payload:Mt(Mt({id:t,coords:r},i),{},{x:l,y:c,isVisible:!0})})},r.remove=e=>{n({type:"REMOVE_LOCATION_MARKER",payload:e})},r.getMarker=e=>r.items.find(t=>t.id===e))},[e,r,n,o]);var c=b(n=>c=>{if(c){l.current.set(n,c);var s=()=>{a&&e&&It(r.items,l.current,e,o,a)};return t.on(i.MAP_RENDER,s),()=>{t.off(i.MAP_RENDER,s)}}l.current.delete(n)},[r,e,a,o]);return f(()=>{a&&e&&It(r.items,l.current,e,o,a)},[o,r.items,e,a]),((e,t)=>{f(()=>{var r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null!=e&&e.id&&null!=e&&e.coords){var{id:r,coords:n,options:o}=e;t.add(r,n,o)}};e.on(i.APP_ADD_MARKER,r);var n=e=>{e&&t.remove(e)};return e.on(i.APP_REMOVE_MARKER,n),()=>{e.off(i.APP_ADD_MARKER,r),e.off(i.APP_REMOVE_MARKER,n)}},[])})(t,r),{markers:r,markerRef:c}},Nt=(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};function Bt(e){return null==e?void 0:e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}var xt=()=>{var{id:e,markerShape:t,markerColor:r}=S(),{mapStyle:n}=qe(),{markers:o,markerRef:i}=Lt();if(n){var a=G.find(e=>e.shape===t);return E(w,{children:o.items.map(o=>_("svg",{ref:i(o.id),id:"".concat(e,"-marker-").concat(o.id),className:"im-c-marker im-c-marker--".concat(o.markerShape||Bt(t)),width:"38",height:"38",viewBox:"0 0 38 38",style:{display:o.isVisible?"block":"none"},children:[E("path",{className:"im-c-marker__background",d:a.backgroundPath,fill:Nt(o.color||r,n.id)}),E("path",{className:"im-c-marker__graphic",d:a.graphicPath})]},o.id))})}},zt=e=>{var{keyboardHintPortalRef:t}=e,{id:r,mapProvider:n,mapLabel:o,keyboardHintText:a}=S(),{interfaceType:l,mode:c,previousMode:s,layoutRefs:p,safeZoneInset:d}=Ye(),{mapSize:u}=qe(),m=v(null),b=v(null),[g,y]=h(!1);!function(e){var{mapProvider:t,panDelta:r,nudgePanDelta:n,zoomDelta:o,nudgeZoomDelta:i,readMapText:a}=S(),{interfaceType:l,dispatch:c}=Ye(),{announce:s}=Xe();f(()=>{var p=e.current;if(p&&"keyboard"===l){var d=Rt(t,s,{containerRef:e,dispatch:c,panDelta:r,nudgePanDelta:n,zoomDelta:o,nudgeZoomDelta:i,readMapText:a}),u=e=>t=>{var r=St[e][(e=>{var t;return"Add"===(t=/^Key[A-Z]$/.test(e.code)?e.code.slice(3):e.key)||"NumpadAdd"===t?t="+":"Subtract"!==t&&"NumpadSubtract"!==t||(t="-"),e.altKey?"Alt+".concat(t):t})(t)];r&&d[r]&&(d[r](t),t.preventDefault())},f=u("keydown"),v=u("keyup");return p.addEventListener("keydown",f),p.addEventListener("keyup",v),()=>{p.removeEventListener("keydown",f),p.removeEventListener("keyup",v)}}},[e,l,t,r,n,o,i])}(p.viewportRef),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{mapProvider:t}=S(),{eventBus:r}=Xe();f(()=>{if(t){var n={};return Object.entries(e).forEach(e=>{var[t,o]=e,i=e=>o(e);n[t]=i,r.on(t,i)}),()=>{Object.entries(n).forEach(e=>{var[t,n]=e;r.off(t,n)})}}},[t,e])}({[i.MAP_CLICK]:()=>{var e;return null==n||null===(e=n.clearHighlightedLabel)||void 0===e?void 0:e.call(n)}});var{showHint:P,handleFocus:j,handleBlur:R}=function(e){var{interfaceType:t,containerRef:r,keyboardHintRef:n,keyboardHintVisible:o,onViewportFocusChange:i}=e,a=o;return f(()=>{if(a&&r.current){var e=r.current,t=e=>{["Escape","Tab"].includes(e.key)&&i(!1)},o=t=>{var r,o=e.contains(t.target),a=null===(r=n.current)||void 0===r?void 0:r.contains(t.target);o&&!a&&i(!1)};return e.addEventListener("keydown",t),e.addEventListener("mousedown",o),()=>{e.removeEventListener("keydown",t),e.removeEventListener("mousedown",o)}}},[a,r,n,i]),{showHint:a,handleFocus:()=>{"keyboard"===t&&i(!0)},handleBlur:()=>{i(!1)}}}({interfaceType:l,containerRef:p.viewportRef,keyboardHintRef:b,keyboardHintVisible:g,onViewportFocusChange:y});return f(()=>{var e;c&&s&&c!==s&&(null===(e=p.viewportRef)||void 0===e||e.current.focus())},[c]),f(()=>{var e,t=null===(e=p.mainRef)||void 0===e?void 0:e.current;if(t)return t.classList.toggle("im-o-app__main--keyboard-hint-visible",P),()=>null==t?void 0:t.classList.remove("im-o-app__main--keyboard-hint-visible")},[P]),_(w,{children:[E(jt,{mapContainerRef:m}),_("div",{id:"".concat(r,"-viewport"),className:"im-c-viewport im-c-viewport--".concat(u),"aria-label":o,role:"application",tabIndex:"0",onFocus:j,onBlur:R,ref:p.viewportRef,children:[P&&(null==t?void 0:t.current)&&O(E("div",{className:"im-c-viewport__keyboard-hint","aria-hidden":"true",ref:b,dangerouslySetInnerHTML:{__html:a}}),t.current),E("div",{className:"im-c-viewport__map-container",ref:m}),E("div",{className:"im-c-viewport__features"}),E(Tt,{}),E("div",{className:"im-c-viewport__safezone",style:d,ref:p.safeZoneRef,children:E(kt,{})}),E(xt,{})]})]})};function Ht(e,t){var r=v(),n=v(new WeakMap);return f(()=>{var o=(Array.isArray(e)?e:[e]).map(e=>null==e?void 0:e.current).filter(Boolean);if(o.length&&t){var i=new window.ResizeObserver(e=>{for(var r of e){var{width:o,height:i}=r.contentRect,a=n.current.get(r.target)||{};a.width===o&&a.height===i||(n.current.set(r.target,{width:o,height:i}),t(r))}});return o.forEach(e=>i.observe(e)),()=>{i.disconnect(),r.current&&cancelAnimationFrame(r.current)}}},[e,t]),{frameRef:r}}var Ft=()=>{var{mapStyle:e}=qe();if(null!=e&&e.logo)return E("img",{className:"im-c-logo",src:e.logo,alt:e.logoAltText})},Ut=()=>{var{breakpoint:e}=Ye(),{mapStyle:t}=qe();return t?"mobile"!==e&&E("div",{className:"im-c-attributions",dangerouslySetInnerHTML:{__html:t.attribution}}):null},Gt=Object.freeze({SIDE:"side",BANNER:"banner",TOP_LEFT:"top-left",TOP_MIDDLE:"top-middle",TOP_RIGHT:"top-right",INSET:"inset",RIGHT_TOP:"right-top",RIGHT_BOTTOM:"right-bottom",MIDDLE:"middle",FOOTER_RIGHT:"footer-right",BOTTOM:"bottom",ACTIONS:"actions",MODAL:"modal"}),Vt=Object.freeze({control:[Gt.BANNER,Gt.TOP_LEFT,Gt.TOP_RIGHT,Gt.INSET,Gt.MIDDLE,Gt.FOOTER_RIGHT,Gt.BOTTOM,Gt.ACTIONS],panel:[Gt.SIDE,Gt.BANNER,Gt.INSET,Gt.MIDDLE,Gt.BOTTOM,Gt.ACTIONS,Gt.DRAWER,Gt.MODAL],button:[Gt.TOP_LEFT,Gt.TOP_MIDDLE,Gt.TOP_RIGHT,Gt.RIGHT_TOP,Gt.RIGHT_BOTTOM,Gt.ACTIONS]}),Wt=(e,t)=>e.modal?"modal":"bottom"===e.slot&&["tablet","desktop"].includes(t)?"inset":e.slot,Zt=(e,t)=>{var r;return!(e.includeModes&&!e.includeModes.includes(t))&&(null===(r=e.excludeModes)||void 0===r||!r.includes(t))},Kt=e=>"string"==typeof e.html&&!e.pluginId;var Yt=(e,t,r)=>{f(()=>{if(t){var n=t=>{"Escape"===t.key&&(t.stopPropagation(),t.preventDefault(),r()),"Tab"===t.key&&e.current&&function(e,t){if("Tab"===t.key){var r=Array.from(e.querySelectorAll(["a[href]:not([disabled])","button:not([disabled])","textarea:not([disabled])","input:not([disabled])","select:not([disabled])",'*[tabindex="0"]:not([disabled])'].join(",")));if(0!==(r=r.filter(e=>!!e.offsetParent)).length){var n=r[0],o=r[r.length-1];!t.shiftKey||document.activeElement!==e&&document.activeElement!==n||(o.focus(),t.preventDefault()),t.shiftKey||document.activeElement!==o||(n.focus(),t.preventDefault())}}}(e.current,t)},o=e.current;return null==o||o.addEventListener("keydown",n),()=>{null==o||o.removeEventListener("keydown",n)}}},[t,e,r])};function qt(e){var{mainRef:t,panelRef:r,isModal:n,rootEl:o,buttonContainerEl:i,handleClose:a}=e;Yt(r,n,a);var l=document.documentElement,s=Number.parseInt(getComputedStyle(l).getPropertyValue("--divider-gap"),10);Ht([t],()=>{if(n&&i&&t.current){var e=t.current.getBoundingClientRect(),r=i.getBoundingClientRect(),o=r.top-e.top,a=Math.round(e.right-r.right+r.width+s);l.style.setProperty("--modal-inset","".concat(o,"px ").concat(a,"px auto auto"))}}),f(()=>{if(n){var e=e=>{var t=e.target.closest(".im-o-app__modal-backdrop");o&&t&&o.contains(t)&&a()};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}},[n,o,a]),f(()=>{if(n&&r.current&&o)return c({containerEl:r.current,isFullscreen:!0,boundaryEl:o}),()=>{c({containerEl:r.current,isFullscreen:!1,boundaryEl:o})}},[n,r,o]),((e,t,r)=>{f(()=>{if(e){var n=e=>{var n=e.target,o=t.current;if(n&&o&&r){var i=r.contains(n),a=o.contains(n);i&&!a&&o.focus()}};return document.addEventListener("focusin",n),()=>{document.removeEventListener("focusin",n)}}},[e,t,r])})(n,r,o)}var Xt=e=>{var{id:t,svgContent:r}=e,n=pe()[t]||r;return E("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",dangerouslySetInnerHTML:{__html:n}})};function $t(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 Jt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?$t(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$t(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Qt=(e,t)=>e?"dialog":t?"complementary":"region",er=e=>{var{panelId:t,panelConfig:r,props:n,WrappedChild:o,label:i,html:a,children:l,isOpen:c=!0,rootRef:s}=e,{id:p}=S(),{dispatch:d,breakpoint:u,layoutRefs:m}=Ye(),y=document.getElementById("".concat(p,"-im-app")),O=r[u],P="".concat(p,"-panel-").concat(Bt(t)),{isDialog:w,isModal:j,isDismissable:R,shouldFocus:T,buttonContainerEl:D}=((e,t)=>{var r="side"===e.slot&&e.initiallyOpen&&!e.modal,n=!r&&e.dismissable,o=!0===e.modal;return{isAside:r,isDialog:n,isModal:o,isDismissable:!1!==e.dismissable,shouldFocus:Boolean(o||t),buttonContainerEl:e.slot.endsWith("button")?null==t?void 0:t.parentNode:void 0}})(O,null==n?void 0:n.triggeringElement),k=j&&c,A=m.mainRef,M=v(null),C=v(null),I=v(c),L=function(e){var[t,r]=h(!1),n=b(()=>{var t=null==e?void 0:e.current;t&&r(t.scrollHeight>t.clientHeight)},[e]);return Ht(e,n),t}(C),N=s||M,B=()=>{requestAnimationFrame(()=>{var e,t;null===(e=(t=(null==n?void 0:n.triggeringElement)||m.viewportRef.current).focus)||void 0===e||e.call(t)}),d({type:"CLOSE_PANEL",payload:t})};qt({mainRef:A,panelRef:N,isModal:k,rootEl:y,buttonContainerEl:D,handleClose:B}),f(()=>{var e,t=c&&!I.current;(I.current=c,T&&(t||c))&&(null===(e=N.current)||void 0===e||e.focus())},[c]);var x,z,H=(x=O.slot,z=r.showLabel,["im-c-panel","im-c-panel--".concat(x),!z&&"im-c-panel--no-heading"].filter(Boolean).join(" ")),F=((e,t)=>["im-c-panel__body",!e&&t&&"im-c-panel__body--offset"].filter(Boolean).join(" "))(r.showLabel,R),U=g(()=>a?{__html:a}:null,[a]),G=(e=>{var{elementId:t,shouldFocus:r,isDialog:n,isDismissable:o,isModal:i,width:a,panelClass:l}=e;return{id:t,"aria-labelledby":"".concat(t,"-label"),tabIndex:r?-1:void 0,role:Qt(n,o),"aria-modal":n&&i?"true":void 0,style:a?{width:a}:void 0,className:l}})({elementId:P,shouldFocus:T,isDialog:w,isDismissable:R,isModal:j,width:O.width,panelClass:H}),V=(e=>{var{bodyRef:t,panelBodyClass:r,isBodyScrollable:n,elementId:o}=e;return{ref:t,className:r,tabIndex:n?0:void 0,role:n?"region":void 0,"aria-labelledby":n?"".concat(o,"-label"):void 0}})({bodyRef:C,panelBodyClass:F,isBodyScrollable:L,elementId:P});return _("div",Jt(Jt({ref:N},G),{},{children:[E("h2",{id:"".concat(P,"-label"),className:r.showLabel?"im-c-panel__heading im-e-heading-m":"im-u-visually-hidden",children:i}),R&&E("button",{"aria-label":"Close ".concat(i),className:"im-c-panel__close",onClick:B,children:E(Xt,{id:"close"})}),U?E("div",Jt(Jt({},V),{},{dangerouslySetInnerHTML:U})):_("div",Jt(Jt({},V),{},{children:[" ",o?E(o,Jt({},n)):l]}))]}))};function tr(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 rr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?tr(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):tr(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function nr(e){var{slot:t,appState:r,evaluateProp:n}=e,{breakpoint:o,pluginRegistry:i,panelConfig:a,mode:l,openPanels:c}=r,s=Object.entries(c),p=s.filter(e=>{var t,[r]=e,n=null===(t=a[r])||void 0===t?void 0:t[o];return null==n?void 0:n.modal}),d=p.length>0?p[p.length-1][0]:null;return s.map(e=>{var c,[s,{props:p}]=e,u=a[s];if(!u)return null;if(Kt(u))return null;var f=u[o];if(!f)return null;var v=Wt(f,o);if(!((e,t,r,n)=>{var{targetSlot:o,slot:i,mode:a,isFullscreen:l,allowedModalPanelId:c}=n,s="".concat(Bt(e),"-button")===o;return!(!Vt.panel.includes(o)&&!s||!Zt(t,a)||!1===t.inline&&!l||o!==i||r.modal&&e!==c)})(s,u,f,{targetSlot:v,slot:t,mode:l,isFullscreen:r.isFullscreen,allowedModalPanelId:d}))return null;var m=i.registeredPlugins.find(e=>e.id===u.pluginId),b=null==m?void 0:m.id,g=u.render?et(u.render,rr(rr({},p),{},{pluginId:b,pluginConfig:null==m?void 0:m.config})):null;return{id:s,type:"panel",order:null!==(c=f.order)&&void 0!==c?c:0,element:E(er,{panelId:s,panelConfig:u,props:p,WrappedChild:g,label:n(u.label,b),html:b?n(u.html,b):u.html},s)}}).filter(Boolean)}var or=0,ir=e=>{var{children:t,content:r}=e,{interfaceType:n}=Ye(),o=v(null),i=v(null),[a,l]=h(!1),[c,s]=h(!1),[p,d]=h(null),[u]=h(()=>"tooltip-".concat(or+=1)),m=v(null),b=v(null),g=()=>{clearTimeout(m.current),l(!1)},y=()=>{clearTimeout(b.current),m.current=setTimeout(()=>l(!0),500)},O=()=>{clearTimeout(m.current),b.current=setTimeout(()=>l(!1),0)};f(()=>{var e=e=>{"Escape"===e.key&&(clearTimeout(m.current),clearTimeout(b.current),l(!1))};if(window.addEventListener("keydown",e),a){var t=function(e,t){if(!e)return"bottom";t||(t=e.closest(".im-o-app__main"));var r=e.getBoundingClientRect(),n=t.getBoundingClientRect(),o={top:r.top-n.top,bottom:n.bottom-r.bottom,left:r.left-n.left,right:n.right-r.right},i=Object.entries(o),a=i.toSorted((e,t)=>{var[,r]=e,[,n]=t;return r-n}),[l,c]=a[0];if("top"===l||"bottom"===l)for(var[s,p]of i)if(("left"===s||"right"===s)&&Math.abs(p-c)<=50)return"left"===s?"right":"left";return{top:"bottom",bottom:"top",left:"right",right:"left"}[l]}(o.current);d(t)}return()=>{window.removeEventListener("keydown",e),clearTimeout(m.current),clearTimeout(b.current)}},[a]);var w=P(t,{ref:e=>{var r;o.current=e;var n=null===(r=t.props)||void 0===r?void 0:r.ref;"function"==typeof n?n(e):n&&"object"==typeof n&&(n.current=e)},onMouseEnter:y,onMouseLeave:O,onMouseDown:g,onKeyDown:g,onFocus:()=>{"keyboard"===n&&y(),s(!0)},onBlur:()=>{O(),s(!1)},"aria-labelledby":u});return _("div",{className:"im-c-tooltip-wrapper".concat(c?" im-c-tooltip-wrapper--has-focus":""),children:[w,E("div",{id:u,ref:i,className:"im-c-tooltip im-c-tooltip--".concat(p||"hidden"," ").concat(a?"im-c-tooltip--is-visible":""),role:"tooltip","aria-hidden":!a,children:r})]})},ar=e=>{var{popupMenuId:t,buttonId:r,instigatorId:n,pluginId:o,startPos:i,startIndex:a,menuRef:l,items:c,setIsOpen:s}=e,{id:p}=S(),{buttonRefs:d,buttonConfig:u,hiddenButtons:v,disabledButtons:m,pressedButtons:b}=Ye(),y=null!=r?r:n,O=d.current[y],P=lt(),w=g(()=>{var e=[];return c.forEach((t,r)=>{v.has(t.id)||e.push(r)}),e},[c,v]),[j,R]=h(()=>{return"number"==typeof a?a:"first"===i?null!==(e=w[0])&&void 0!==e?e:-1:"last"===i&&null!==(t=w[w.length-1])&&void 0!==t?t:-1;var e,t}),T=function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&null!=e&&e.preventDefault&&e.preventDefault(),O.focus(),s(!1)},D=(e,t)=>{var r=u[t.id];if("function"==typeof(null==r?void 0:r.onClick)?r.onClick(e,P(e=>e,o)):"function"==typeof t.onClick&&t.onClick(e.nativeEvent),e.nativeEvent instanceof KeyboardEvent){var n=document.getElementById("".concat(p,"-").concat(Bt(t.id)));if(n){var i=new MouseEvent("click",{bubbles:!0,cancelable:!0});i._fromKeyboardActivation=!0,n.dispatchEvent(i)}}},k=e=>{var t,r;null!==(t=l.current)&&void 0!==t&&t.contains(e.target)||null!==(r=d.current[y])&&void 0!==r&&r.contains(e.target)||s(!1)};return f(()=>{var e,t;if(null===(e=l.current)||void 0===e||e.focus(),"first"===i)R(null!==(t=w[0])&&void 0!==t?t:-1);else if("last"===i){var r;R(null!==(r=w[w.length-1])&&void 0!==r?r:-1)}return document.addEventListener("focusin",k),document.addEventListener("pointerdown",k),()=>{document.removeEventListener("focusin",k),document.removeEventListener("pointerdown",k)}},[]),E("ul",{ref:l,id:t,className:"im-c-popup-menu",role:"menu",tabIndex:"-1","aria-labelledby":y,"aria-activedescendant":j>=0?"".concat(p,"-").concat(Bt(c[j].id)):void 0,onKeyDown:e=>{["Escape","Esc"].includes(e.key)?T(e,!0):"Tab"!==e.key?["ArrowDown","ArrowUp"].includes(e.key)?(e=>{e.preventDefault();var t=w,r=t.length;if(0!==r){var n,o=t.indexOf(j);n="ArrowDown"===e.key?-1===o?0:(o+1)%r:-1===o?r-1:(o-1+r)%r,R(t[n])}})(e):"Home"===e.key&&w.length?R(w[0]):"End"===e.key&&w.length?R(w[w.length-1]):("Enter"===e.key&&(e=>{e.preventDefault();var t=c[j];t&&!m.has(t.id)&&D(e,t),O.focus(),s(!1)})(e)," "===e.key&&(e=>{e.preventDefault();var t=c[j];if(t&&!m.has(t.id)){var r=void 0!==t.isPressed||t.pressedWhen;D(e,t),r||(O.focus(),s(!1))}})(e)):T(e)},children:c.map((e,t)=>_("li",{id:"".concat(p,"-").concat(Bt(c[t].id)),className:"im-c-popup-menu__item".concat(j===t?" im-c-popup-menu__item--selected":""),role:void 0!==c[t].isPressed||c[t].pressedWhen?"menuitemcheckbox":"menuitem","aria-disabled":m.has(c[t].id)||void 0,"aria-checked":void 0!==c[t].isPressed||c[t].pressedWhen?b.has(c[t].id):void 0,style:v.has(c[t].id)?{display:"none"}:void 0,onClick:e=>((e,t)=>{e.nativeEvent._fromKeyboardActivation||m.has(t.id)||(s(!1),D(e,t))})(e,c[t]),children:[(e.iconId||e.iconSvgContent)&&E(Xt,{id:e.iconId,svgContent:e.iconSvgContent}),E("span",{className:"im-c-popup-menu__item-label",children:e.label})]},e.id))})};function lr(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 cr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?lr(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var sr=(e,t,r)=>["im-c-map-button",e&&"im-c-map-button--".concat(Bt(e)),t&&"im-c-map-button--".concat(t),r&&"im-c-map-button--with-label"].filter(Boolean).join(" "),pr=(e,t,r,n,o)=>["im-c-button-wrapper",e&&"im-c-button-wrapper--".concat(Bt(e)),t&&"im-c-button-wrapper--wide",r&&"im-c-button-wrapper--group-start",n&&"im-c-button-wrapper--group-middle",o&&"im-c-button-wrapper--group-end"].filter(Boolean).join(" "),dr=e=>{" "!==e.key&&"Spacebar"!==e.key||(e.preventDefault(),e.currentTarget.click())},ur=e=>{var{buttonId:t,iconId:r,iconSvgContent:n,label:o,showLabel:i,isDisabled:a,isPressed:l,isExpanded:c,isHidden:s,isPanelOpen:p,variant:d,onClick:u,panelId:f,menuItems:m,idPrefix:b,href:g,groupMiddle:y,groupStart:O,groupEnd:P}=e,{id:w}=S(),{buttonRefs:j}=Ye(),[R,T]=h(!1),[D,k]=h(null),A=v(null),M=g?"a":"button",C=(null==m?void 0:m.length)>=1,I=(e=>{var{idPrefix:t,panelId:r,buttonId:n,hasMenu:o}=e;return r?{id:"".concat(t,"-panel-").concat(Bt(r)),type:"panel"}:o?{id:"".concat(t,"-popup-").concat(Bt(n)),type:"popup"}:null})({idPrefix:b,panelId:f,buttonId:t,hasMenu:C}),L=(e=>{var t,{appId:r,buttonId:n,className:o,onClick:i,onKeyUp:a,buttonRefs:l,isDisabled:c,isPressed:s,isExpanded:p,isPanelOpen:d,isPopupOpen:u,controlledElement:f,href:v}=e;return"panel"===(null==f?void 0:f.type)?t=String(d):"popup"===(null==f?void 0:f.type)?t=u:"boolean"==typeof p&&(t=p),cr({id:"".concat(r,"-").concat(Bt(n)),className:o,onClick:i,onKeyUp:a,ref:e=>{l.current&&n&&(l.current[n]=e)},"aria-disabled":c||void 0,"aria-expanded":t,"aria-pressed":"boolean"==typeof s?s:void 0,"aria-controls":null==f?void 0:f.id,"aria-haspopup":"popup"===(null==f?void 0:f.type)||void 0},v?{href:v,target:"_blank",onKeyUp:dr,role:"button"}:{type:"button"})})({appId:w,buttonId:t,className:sr(t,d,i),onClick:e=>{if(!a){if("popup"===(null==I?void 0:I.type)){var t=""===e.nativeEvent.pointerType;k(t?"first":null),T(e=>!e)}u&&u(e)}},onKeyUp:e=>{C&&["ArrowDown","ArrowUp"].includes(e.key)&&(e.preventDefault(),k("ArrowUp"===e.key?"last":"first"),T(!0))},buttonRefs:j,isDisabled:a,isPressed:l,isExpanded:c,isPanelOpen:p,isPopupOpen:R,controlledElement:I,href:g}),N=_(M,cr(cr({},L),{},{children:[(r||n)&&E(Xt,{id:r,svgContent:n}),i&&E("span",{children:o})]}));return _("div",{className:pr(t,i,O,y,P),style:s?{display:"none"}:void 0,children:[i?N:E(ir,{content:o,children:N}),f&&E(Or,{slot:"".concat(Bt(t),"-button")}),R&&E(ar,{popupMenuId:I.id,buttonId:t,startPos:D,menuRef:A,items:m,setIsOpen:T})]})};function fr(e){var t,{btn:r,appState:n,appConfig:o,evaluateProp:i,groupStart:a,groupMiddle:l,groupEnd:c}=e,[s,p]=r,d=null!==(t=p[n.breakpoint])&&void 0!==t?t:{},u=function(e,t,r){var[,n]=e,o=!(!n.panelId||!t.openPanels[n.panelId]);return e=>{if("function"!=typeof n.onClick){if(n.panelId){var i=e.currentTarget;t.dispatch({type:o?"CLOSE_PANEL":"OPEN_PANEL",payload:o?n.panelId:{panelId:n.panelId,props:{triggeringElement:i}}})}}else n.onClick(e,r(e=>e,n.pluginId))}}(r,n,i),f=!(!p.panelId||!n.openPanels[p.panelId]);return E(ur,{buttonId:s,iconId:i(p.iconId,p.pluginId),iconSvgContent:i(p.iconSvgContent,p.pluginId),variant:p.variant,label:i(p.label,p.pluginId),href:i(p.href,p.pluginId),showLabel:d.showLabel,isDisabled:n.disabledButtons.has(s),isHidden:n.hiddenButtons.has(s),isPressed:void 0!==p.isPressed||p.pressedWhen?n.pressedButtons.has(s):void 0,isExpanded:void 0!==p.isExpanded||p.expandedWhen?n.expandedButtons.has(s):void 0,isPanelOpen:f,onClick:u,panelId:p.panelId,menuItems:p.menuItems,idPrefix:o.id,groupStart:a,groupMiddle:l,groupEnd:c},s)}function vr(e){var{slot:t,appState:r,appConfig:n,evaluateProp:o}=e,{buttonConfig:i,breakpoint:a}=r,l=function(e){var{appState:t,buttonConfig:r,slot:n,evaluateProp:o}=e,{breakpoint:i,mode:a}=t;return r?Object.entries(r).filter(e=>{var r,l,[c,s]=e,p=s[i];return!(s.isMenuItem||"function"==typeof s.excludeWhen&&o(s.excludeWhen,s.pluginId)||s.includeModes&&(null===(r=s.includeModes)||void 0===r||!r.includes(a))||null!==(l=s.excludeModes)&&void 0!==l&&l.includes(a)||!1===s.inline&&!t.isFullscreen||(null==p?void 0:p.slot)!==n||!Vt.button.includes(p.slot))}):[]}({appState:r,buttonConfig:i,slot:t,evaluateProp:o});if(!l.length)return[];var c=new Map;for(var[s,p]of(l.forEach((e,t)=>{var[,r]=e,n=r.group;null!=n&&(c.has(n)||c.set(n,[]),c.get(n).push(t))}),c))p.length<2&&c.delete(s);return l.map((e,t)=>{var i,l,[s,p]=e,d=p.group,u=null==d?null:c.get(d),f=!!u&&t===u[0],v=!!u&&t===u[u.length-1],m=u&&u.length>=3&&!f&&!v;return{id:s,type:"button",order:null!==(i=null===(l=p[a])||void 0===l?void 0:l.order)&&void 0!==i?i:0,element:fr({btn:e,appState:r,appConfig:n,evaluateProp:o,groupStart:f,groupMiddle:m,groupEnd:v})}})}var mr=["evaluateProp"];function br(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 gr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?br(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):br(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function yr(e){var{evaluateProp:r}=e,n=t(e,mr),o=function(e){var{slot:t,appState:r,evaluateProp:n}=e,{breakpoint:o,mode:i,pluginRegistry:a,controlConfig:l}=r;return Object.values(l).filter(e=>{var n,a,l,c;if(Kt(e))return!1;var s=e[o];if(!s)return!1;var p=Vt.control.includes(s.slot),d=null===(n=null===(a=e.includeModes)||void 0===a?void 0:a.includes(i))||void 0===n||n,u=null!==(l=null===(c=e.excludeModes)||void 0===c?void 0:c.includes(i))&&void 0!==l&&l;return!(!1===e.inline&&!r.isFullscreen)&&d&&!u&&s.slot===t&&p}).map(e=>{var t,r,i,l=a.registeredPlugins.find(t=>{var r;return null===(r=t.manifest)||void 0===r||null===(r=r.controls)||void 0===r?void 0:r.some(t=>t.id===e.id)}),c=null==l?void 0:l.id;if(e.html)i=E("div",{className:"im-c-control",dangerouslySetInnerHTML:{__html:n(e.html,c)}},e.id);else{var s=et(e.render,{pluginId:c,pluginConfig:null==l?void 0:l.config});i=E(s,{},e.id)}return{id:e.id,type:"control",order:null!==(t=null===(r=e[o])||void 0===r?void 0:r.order)&&void 0!==t?t:0,element:i}})}(gr({evaluateProp:r},n)),i=[...o,...nr(gr({evaluateProp:r},n)),...vr(gr({evaluateProp:r},n))],a=i.filter(e=>null==e.order||0===e.order),l=i.filter(e=>null!=e.order&&0!==e.order);l.sort((e,t)=>e.order-t.order);var c=[...a];for(var s of l){var p=Math.min(Math.max(s.order-1,0),c.length);c.splice(p,0,s)}return c}var hr=e=>{var{children:t}=e,{openPanels:r,panelConfig:n,breakpoint:o}=Ye(),i=["im-c-panel","im-c-actions",!p.Children.toArray(t).find(e=>{var t;return!1===(null===(t=e.props)||void 0===t?void 0:t.isHidden)})&&"im-c-actions--hidden",Object.keys(r).some(e=>{var t;return"mobile"===o&&"bottom"===(null===(t=n[e])||void 0===t||null===(t=t[o])||void 0===t?void 0:t.slot)})&&"im-c-actions--border-top"].filter(Boolean).join(" ");return E("div",{className:i,children:t})},Or=e=>{var{slot:t}=e,r=yr({slot:t,appConfig:S(),appState:Ye(),evaluateProp:lt()});return r.length?E(w,{children:"actions"===t?E(hr,{slot:t,children:r.map(e=>e.element)}):E(w,{children:r.map(e=>e.element)})}):null},Pr=(e,t,r,n,o)=>{f(()=>{var o=e.current;if(r){var i=((e,t)=>({side:t.sideRef,banner:t.bannerRef,"top-left":t.topLeftColRef,"top-right":t.topRightColRef,inset:t.insetRef,middle:t.middleRef,bottom:t.bottomRef,actions:t.actionsRef,modal:t.modalRef}[e]||null))(t,n);null!=i&&i.current&&(i.current.appendChild(o),o.style.display="")}else o.style.display="none";return()=>{o.style.display="none"}},[r,t,n,o,e])},Er=e=>{var{panelId:t,config:r,isOpen:n,openPanelProps:o,allowedModalPanelId:i,appState:a}=e,l=v(null),{breakpoint:c,mode:s,isFullscreen:p,layoutRefs:d}=a,u=r[c],f=u?Wt(u,c):null,m=(()=>{if(!n||!u||!f)return!1;var e="".concat(Bt(t),"-button")===f;if(!(Vt.panel.includes(f)||e))return!1;var o=u.modal&&t!==i,a=!1===r.inline&&!p,l=!Zt(r,s);return!(o||a||l)})();return Pr(l,f,m,d,c),E(er,{panelId:t,panelConfig:r,props:o,html:r.html,label:r.label,isOpen:n,rootRef:l})},_r=e=>{var{control:t,appState:r}=e,n=v(null),{breakpoint:o,mode:i,isFullscreen:a,layoutRefs:l}=r,c=t[o],s=((e,t)=>{var{breakpoint:r,mode:n,isFullscreen:o}=t,i=e[r];return!(!i||!Vt.control.includes(i.slot)||!Zt(e,n)||!1===e.inline&&!o)})(t,{breakpoint:o,mode:i,isFullscreen:a}),p=(null==c?void 0:c.slot)||null;Pr(n,p,s,l,o);var d=g(()=>({__html:t.html}),[t.html]);return E("div",{ref:n,className:"im-c-control",style:{display:"none"},dangerouslySetInnerHTML:d})},wr=()=>{var e=Ye(),{panelConfig:t={},controlConfig:r={},openPanels:n={},breakpoint:o}=e,i=g(()=>Object.entries(t).filter(e=>{var[t,r]=e;return Kt(r)}),[t]),a=g(()=>Object.values(r).filter(e=>Kt(e)),[r]),l=g(()=>{var e=Object.entries(n).filter(e=>{var r,[n]=e,i=null===(r=t[n])||void 0===r?void 0:r[o];return null==i?void 0:i.modal});return e.length>0?e[e.length-1][0]:null},[n,t,o]);return i.length||a.length?_(w,{children:[i.map(t=>{var r,[o,i]=t;return E(Er,{panelId:o,config:i,isOpen:!!n[o],openPanelProps:null===(r=n[o])||void 0===r?void 0:r.props,allowedModalPanelId:l,appState:e},o)}),a.map(t=>E(_r,{control:t,appState:e},t.id))]}):null},jr=()=>{var{id:e}=S(),{breakpoint:t,interfaceType:r,preferredColorScheme:n,layoutRefs:o,isLayoutReady:i,hasExclusiveControl:a,isFullscreen:l}=Ye(),{mapStyle:c}=qe();return function(){var{dispatch:e,breakpoint:t,layoutRefs:r}=Ye(),{mapSize:n,isMapReady:o}=qe(),{appContainerRef:i,mainRef:a,bannerRef:l,topRef:c,topLeftColRef:s,topRightColRef:p,insetRef:d,footerRef:u,actionsRef:f}=r,v=()=>{var e=i.current,t=a.current,r=c.current,n=s.current,o=p.current,l=d.current,v=u.current,m=f.current;if(t&&r&&l&&v){var b=document.documentElement,g=Number.parseInt(getComputedStyle(b).getPropertyValue("--divider-gap"),10),y=n.offsetHeight+r.offsetTop,h=t.offsetHeight-y-r.offsetTop;e.style.setProperty("--inset-offset-top","".concat(y,"px")),e.style.setProperty("--inset-max-height","".concat(h,"px"));var O=l.offsetHeight+y,P=Math.min(v.offsetTop,m.offsetTop)-g>O?0:l.offsetLeft+l.offsetWidth;e.style.setProperty("--offset-left","".concat(P,"px"));var E=o.offsetHeight+r.offsetTop,_=t.offsetHeight-v.offsetTop+g;e.style.setProperty("--right-offset-top","".concat(E,"px")),e.style.setProperty("--right-offset-bottom","".concat(_,"px"));var w=n.offsetWidth||0,j=o.offsetWidth||0,S=w||j?Math.max(w,j):0;e.style.setProperty("--top-col-width","".concat(S,"px"))}};y(()=>{requestAnimationFrame(()=>{v();var t=Pt(r);e({type:"SET_SAFE_ZONE_INSET",payload:{safeZoneInset:t}})})},[t,n,o]),Ht([l,a,c,f,u],()=>{requestAnimationFrame(()=>{v()})})}(),function(){var{interfaceType:e,layoutRefs:t}=Ye(),r=v(e);r.current=e,f(()=>{if(t.appContainerRef.current)return document.addEventListener("focusin",e),document.addEventListener("focusout",n),document.addEventListener("pointerdown",o),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",n),document.removeEventListener("pointerdown",o)};function e(e){e.target.dataset.focusVisible="keyboard"===r.current}function n(e){delete e.target.dataset.focusVisible}function o(){delete document.activeElement.dataset.focusVisible}},[t.appContainerRef])}(),_("div",{id:"".concat(e,"-im-app"),className:["im-o-app","im-o-app--".concat(t),"im-o-app--".concat(r),"im-o-app--".concat(l?"fullscreen":"inline"),"im-o-app--".concat((null==c?void 0:c.appColorScheme)||n,"-app"),"im-o-app--".concat((null==c?void 0:c.mapColorScheme)||"light","-map"),a&&"im-o-app--exclusive-control"].filter(Boolean).join(" "),style:{backgroundColor:(null==c?void 0:c.backgroundColor)||void 0},ref:o.appContainerRef,children:[E(zt,{keyboardHintPortalRef:o.topRef}),_("div",{className:"im-o-app__overlay".concat(i?"":" im-o-app__overlay--not-ready"),children:[E("div",{className:"im-o-app__side",ref:o.sideRef,children:E(Or,{slot:Gt.SIDE})}),_("div",{className:"im-o-app__main",ref:o.mainRef,children:[["mobile","tablet"].includes(t)&&E("div",{className:"im-o-app__banner",ref:o.bannerRef,children:E(Or,{slot:Gt.BANNER})}),_("div",{className:"im-o-app__top",ref:o.topRef,children:[E("div",{className:"im-o-app__top-col",ref:o.topLeftColRef,children:E(Or,{slot:Gt.TOP_LEFT})}),_("div",{className:"im-o-app__top-col",children:[E(Or,{slot:Gt.TOP_MIDDLE}),["desktop"].includes(t)&&E("div",{className:"im-o-app__banner",ref:o.bannerRef,children:E(Or,{slot:Gt.BANNER})})]}),E("div",{className:"im-o-app__top-col",ref:o.topRightColRef,children:E(Or,{slot:Gt.TOP_RIGHT})})]}),E("div",{className:"im-o-app__inset",ref:o.insetRef,children:E(Or,{slot:Gt.INSET})}),_("div",{className:"im-o-app__right",ref:o.rightRef,children:[E("div",{className:"im-o-app__right-top",children:E(Or,{slot:Gt.RIGHT_TOP})}),E("div",{className:"im-o-app__right-bottom",children:E(Or,{slot:Gt.RIGHT_BOTTOM})})]}),E("div",{className:"im-o-app__middle",ref:o.middleRef,children:E(Or,{slot:Gt.MIDDLE})}),_("div",{className:"im-o-app__footer",ref:o.footerRef,children:[E("div",{className:"im-o-app__footer-col",children:E(Ft,{})}),_("div",{className:"im-o-app__footer-col",children:[E(Or,{slot:Gt.FOOTER_RIGHT}),E("div",{className:"im-o-app__attributions",children:E(Ut,{})})]})]}),E("div",{className:"im-o-app__bottom",ref:o.bottomRef,children:E(Or,{slot:Gt.BOTTOM})}),E("div",{className:"im-o-app__actions",ref:o.actionsRef,children:E(Or,{slot:Gt.ACTIONS})})]})]}),E(wr,{}),_("div",{className:"im-o-app__modal",ref:o.modalRef,children:[E(Or,{slot:Gt.MODAL}),E("div",{className:"im-o-app__modal-backdrop"})]})]})},Sr=e=>(f(()=>{s(),e.eventBus.emit(i.APP_READY)},[]),E(ke,{options:e,children:E(ze,{options:e,children:E(Ue,{eventBus:e.eventBus,children:_(Ze,{children:[E(dt,{}),E(jr,{})]})})})})),Rr=["id","load","manifest"],Tr=["InitComponent","api","reducer"],Dr=["MapProvider","mapProviderConfig","mapFramework","plugins"];function kr(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 Ar(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?kr(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):kr(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Mr=new WeakMap,Cr=new WeakMap,Ir=new WeakMap,Lr=e=>{var t,r,n=Ir.get(e);if(!n){var o=X(),i=(r={},{registerPanel:e=>{r=ee(r,e)},addPanel:(e,t)=>(r=te(r,e,t))[e],removePanel:e=>{r=re(r,e)},getPanelConfig:()=>r,clear:()=>{r={}}}),a=(t={},{registerControl:e=>{t=ie(t,e)},addControl:(e,r)=>(t=ae(t,e,r))[e],getControlConfig:()=>t,clear:()=>{t={}}});n={buttonRegistry:o,panelRegistry:i,controlRegistry:a,pluginRegistry:ve({registerButton:o.registerButton,registerPanel:i.registerPanel,registerControl:a.registerControl})},Ir.set(e,n)}return n},Nr=function(){var e=r(function*(e,r){for(var n of e)if("function"==typeof n.load){var o=yield n.load(),{id:i,load:a,manifest:l}=n,c=t(n,Rr),{InitComponent:s,api:p,reducer:d}=o;r({id:i,InitComponent:s,api:p,reducer:d,config:c,manifest:ge(t(o,Tr),l),_originalPlugin:n})}});return function(t,r){return e.apply(this,arguments)}}();function Br(e,t){return xr.apply(this,arguments)}function xr(){return xr=r(function*(e,r){var o,{MapProvider:a,mapProviderConfig:l,mapFramework:c,plugins:s=[]}=r,p=t(r,Dr),{eventBus:d}=p,u=Cr.get(e);u||(u=new a({mapFramework:c,mapProviderConfig:l,events:i,eventBus:d}),Cr.set(e,u)),null!==(o=u.capabilities)&&void 0!==o&&o.supportedShortcuts&&function(){k=new Set(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}(u.capabilities.supportedShortcuts);var{buttonRegistry:f,panelRegistry:v,controlRegistry:m,pluginRegistry:b}=Lr(e),{registerPlugin:g}=b;b.clear(),g({id:"appConfig",manifest:B});var y=Mr.get(e);y||(y=n(e),Mr.set(e,y));var h={_root:y,on:d.on,off:d.off,emit:d.emit,unmount(){var t,r;y.unmount(),Mr.delete(e),null===(t=(r=u).destroyMap)||void 0===t||t.call(r),Cr.delete(e),b.clear()}};return yield Nr(s,g),y.render(E(Sr,Ar(Ar({},p),{},{buttonRegistry:f,panelRegistry:v,controlRegistry:m,pluginRegistry:b,mapProvider:u}))),h}),xr.apply(this,arguments)}export{Br as initialiseApp};
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/objectWithoutProperties";import r from"@babel/runtime/helpers/asyncToGenerator";import{createRoot as n}from"preact/compat/client";import{g as o,E as i,s as a,r as l,t as c,a as s}from"./im-shell.js";import p,{useContext as d,createContext as u,useEffect as f,useRef as v,useReducer as m,useCallback as b,useMemo as g,useLayoutEffect as y,useState as h,createPortal as O,cloneElement as P}from"preact/compat";import{jsx as E,jsxs as _,Fragment as w}from"preact/jsx-runtime";var j=u(null);function S(){return d(j)}var R=[{id:"showKeyboardHelp",group:"General",title:"Show keyboard help",command:"<kbd>Alt</kbd> + <kbd>K</kbd>",enabled:!0},{id:"selectControl",group:"General",title:"Select a map control",command:"<kbd>Tab</kbd> or <kbd>Shift</kbd> + <kbd>Tab</kbd>",enabled:!0},{id:"moveLarge",group:"Navigation",title:"Move in large steps",command:"<kbd>←</kbd>, <kbd>↑</kbd>, <kbd>→</kbd> or <kbd>↓</kbd>",enabled:!0},{id:"nudgeMap",group:"Navigation",title:"Nudge map",command:"<kbd>Shift</kbd> + <kbd>←</kbd>, <kbd>↑</kbd>, <kbd>→</kbd> or <kbd>↓</kbd>",enabled:!1},{id:"zoomLarge",group:"Navigation",title:"Zoom in large steps",command:"<kbd>+</kbd> or <kbd>-</kbd>",enabled:!0},{id:"nudgeZoom",group:"Navigation",title:"Nudge zoom",command:"<kbd>Shift</kbd> + <kbd>+</kbd> or <kbd>-</kbd>",enabled:!1},{id:"highlightLabelAtCenter",group:"Labels",title:"Highlight label at centre",command:"<kbd>Alt</kbd> + <kbd>Enter</kbd>",enabled:!1,requiredConfig:["readMapText"]},{id:"highlightNextLabel",group:"Labels",title:"Highlight nearby label",command:"<kbd>Alt</kbd> + <kbd>→</kbd>, <kbd>←</kbd>, <kbd>↑</kbd> or <kbd>↓</kbd>",enabled:!1,requiredConfig:["readMapText"]}],T=[],D=new Set,A=new Set,k=()=>{var e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[...R.filter(t=>!!A.has(t.id)&&(!t.requiredConfig||t.requiredConfig.every(t=>e[t]))),...T]}(S()).reduce((e,t)=>(e[t.group]=e[t.group]||[],e[t.group].push(t),e),{});return E("div",{className:"im-c-keyboard-help",children:Object.entries(e).map(e=>{var[t,r]=e;return E("div",{className:"im-c-keyboard-help__group",children:E("dl",{className:"im-c-keyboard-help__list",children:r.map(e=>_("div",{className:"im-c-keyboard-help__item",children:[E("dt",{className:"im-c-keyboard-help__title",children:e.title}),E("dd",{className:"im-c-keyboard-help__description",dangerouslySetInnerHTML:{__html:e.command}})]},e.id))})},t)})})};function C(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 M(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?C(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var I={slot:"middle",open:!1,dismissible:!0,modal:!0},L={slot:"right-top",showLabel:!1},N={slot:"top-left",showLabel:!1},B={buttons:[{id:"exit",label:"Exit",iconId:"close",onClick:(e,t)=>{var{services:r}=t;return r.closeApp()},excludeWhen:e=>{var{appConfig:t,appState:r}=e;return!t.hasExitButton||!(r.isFullscreen&&new URL(window.location.href).searchParams.has(t.mapViewParamKey))},mobile:N,tablet:N,desktop:N},{id:"fullscreen",label:()=>"".concat(document.fullscreenElement?"Exit":"Enter"," fullscreen"),iconId:()=>document.fullscreenElement?"minimise":"maximise",onClick:(e,t)=>{var{appState:r}=t,n=r.layoutRefs.appContainerRef.current;document.fullscreenElement?document.exitFullscreen():n.requestFullscreen()},excludeWhen:e=>{var{appState:t,appConfig:r}=e;return!r.enableFullscreen||t.isFullscreen},mobile:L,tablet:L,desktop:L},{id:"zoomIn",group:{name:"zoom",label:"Zoom controls",order:0},label:"Zoom in",iconId:"plus",onClick:(e,t)=>{var{mapProvider:r,appConfig:n}=t;return r.zoomIn(n.zoomDelta)},excludeWhen:e=>{var{appState:t,appConfig:r}=e;return!r.enableZoomControls||"touch"===t.interfaceType},enableWhen:e=>{var{mapState:t}=e;return!t.isAtMaxZoom},mobile:L,tablet:L,desktop:L},{id:"zoomOut",group:{name:"zoom",label:"Zoom controls",order:0},label:"Zoom out",iconId:"minus",onClick:(e,t)=>{var{mapProvider:r,appConfig:n}=t;return r.zoomOut(n.zoomDelta)},excludeWhen:e=>{var{appState:t,appConfig:r}=e;return!r.enableZoomControls||"touch"===t.interfaceType},enableWhen:e=>{var{mapState:t}=e;return!t.isAtMinZoom},mobile:L,tablet:L,desktop:L}],panels:[{id:"keyboardHelp",label:"Keyboard shortcuts",mobile:M({},I),tablet:M(M({},I),{},{width:"500px"}),desktop:M(M({},I),{},{width:"500px"}),render:()=>E(k,{})}],icons:[{id:"maximise",svgContent:'<path d="M15 3h6v6"/><path d="m21 3-7 7"/><path d="m3 21 7-7"/><path d="M9 21H3v-6"/>'},{id:"minimise",svgContent:'<path d="m14 10 7-7"/><path d="M20 10h-6V4"/><path d="m3 21 7-7"/><path d="M4 14h6v6"/>'},{id:"plus",svgContent:'<path d="M5 12h14"/><path d="M12 5v14"/>'},{id:"minus",svgContent:'<path d="M5 12h14"/>'}]},x={slot:"right-top",showLabel:!0},z={label:"Button",mobile:x,tablet:x,desktop:x},H={label:"Panel",mobile:{slot:"bottom",open:!0,dismissible:!0,modal:!1,showLabel:!0},tablet:{slot:"inset",open:!0,dismissible:!0,modal:!1,showLabel:!0},desktop:{slot:"inset",open:!0,dismissible:!0,modal:!1,showLabel:!0},render:null,html:null},F={label:"Control",mobile:{slot:"bottom"},tablet:{slot:"inset"},desktop:{slot:"inset"}},U={small:1,medium:1.5,large:2},V=[{shape:"pin",backgroundPath:"M31 16.001c0 7.489-8.308 15.289-11.098 17.698-.533.4-1.271.4-1.803 0C15.309 31.29 7 23.49 7 16.001c0-6.583 5.417-12 12-12s12 5.417 12 12z",graphicPath:"M19 11.001c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.241 5-5-2.24-5-5-5z"}];function G(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}var W=(t,r)=>{var n=function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?G(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},t);for(var o in r)"object"!=typeof r[o]||Array.isArray(r[o])||null===r[o]?n[o]=r[o]:n[o]=W(t[o]||{},r[o]);return n};function Z(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 K(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Z(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Y=(e,t)=>K(K({},e),t),q=(e,t,r)=>{var n=W(z,r);return K(K({},e),{},{[t]:n})};function X(){var e={};return{registerButton:t=>{e=Y(e,t)},addButton:(t,r)=>(e=q(e,t,r),t),getButtonConfig:t=>((e,t)=>t?Object.fromEntries(Object.entries(e).filter(e=>{var[r,n]=e;return n.pluginId===t})):e)(e,t),clear:()=>{e={}}}}function $(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function J(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 Q(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?J(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var ee=(e,t)=>Q(Q({},e),t),te=(e,t,r)=>{var n=W(H,r);return Q(Q({},e),{},{[t]:Q(Q({},n),{},{html:n.html,render:n.render})})},re=(e,r)=>{var{[r]:n}=e;return t(e,[r].map($))};function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function oe(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 ie=(e,t)=>oe(oe({},e),t),ae=(e,t,r)=>{var n=W(F,r);return oe(oe({},e),{},{[t]:oe({id:t},n)})};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}var se={close:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>'},pe=()=>se;function de(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?de(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):de(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var fe=e=>Array.isArray(e)?e:[e];function ve(e){var{registerButton:t,registerPanel:r,registerControl:n}=e,o=[];return{registeredPlugins:o,registerPlugin:function(e){var i,a,{manifest:l}=e,c={pluginId:e.id,includeModes:null===(i=e.config)||void 0===i?void 0:i.includeModes,excludeModes:null===(a=e.config)||void 0===a?void 0:a.excludeModes};l.buttons&&fe(l.buttons).forEach(e=>{var r;t({[e.id]:ue(ue({},c),e)}),null==e||null===(r=e.menuItems)||void 0===r||r.forEach(e=>{t({[e.id]:ue(ue(ue({},c),e),{},{isMenuItem:!0})})})}),l.panels&&fe(l.panels).forEach(e=>{r({[e.id]:ue(ue({},c),e)})}),l.controls&&fe(l.controls).forEach(e=>{n({[e.id]:ue(ue({},c),e)})}),l.icons&&fe(l.icons).forEach(e=>(e=>{se=ce(ce({},se),e)})({[e.id]:e.svgContent})),l.keyboardShortcuts&&fe(l.keyboardShortcuts).forEach(e=>(e=>{var{shortcut:t}=e;D.has(t.id)||(D.add(t.id),T.push(t))})(ue(ue({},c),{},{shortcut:e}))),o.push(e)},clear:function(){o.length=0}}}function me(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function be(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 ge(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];Array.isArray(e)||(e=[]),Array.isArray(t)||(t=[]);var r=new Map(e.map(e=>[e.id,e]));return t.forEach(e=>{null!=e&&e.id&&(r.has(e.id)?r.set(e.id,be(be({},r.get(e.id)),e)):r.set(e.id,e))}),Array.from(r.values())},n=be(be({},e),t);return(e.buttons||t.buttons)&&(n.buttons=r(e.buttons,t.buttons)),(e.panels||t.panels)&&(n.panels=r(e.panels,t.panels)),(e.controls||t.controls)&&(n.controls=r(e.controls,t.controls)),(e.icons||t.icons)&&(n.icons=r(e.icons,t.icons)),n}function ye(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={};return Object.keys(e).forEach(o=>{var i,a=e[o][t];null!==(i=null==a?void 0:a.open)&&void 0!==i&&i&&(n[o]=r[o]||{props:{}})}),n}function he(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Oe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Pe(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Oe(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Oe(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function Ee(e,t,r,n){var o,i=e.panelConfig||e.panelRegistry.getPanelConfig(),a=null===(o=i[t])||void 0===o?void 0:o[r],l=!!a.exclusive&&!a.modal,c=!!a.modal,s=Object.fromEntries(Object.entries(e.openPanels).filter(e=>{var t,[n]=e;return!(null!==(t=i[n])&&void 0!==t&&null!==(t=t[r])&&void 0!==t&&t.exclusive)}));return Pe(Pe(Pe({},l?{}:s),c?e.openPanels:{}),{},{[t]:{props:n}})}var _e={SET_BREAKPOINT:(e,t)=>{var r,{behaviour:n,hybridWidth:i,maxMobileWidth:a}=t,l=Object.keys(e.openPanels),c=l[l.length-1],s="hybrid"===n?e.isFullscreen:o({behaviour:n,hybridWidth:i,maxMobileWidth:a}),p=c?Ee(e,c,t.breakpoint,(null===(r=e.openPanels[c])||void 0===r?void 0:r.props)||{}):{},d=e.panelConfig||e.panelRegistry.getPanelConfig(),u=Object.fromEntries(Object.entries(d).filter(e=>{var[r,n]=e,o=n[t.breakpoint];return!0===(null==o?void 0:o.open)&&!1===(null==o?void 0:o.dismissible)&&!p[r]}).map(t=>{var[r]=t;return[r,e.openPanels[r]||{props:{}}]}));return Pe(Pe({},e),{},{breakpoint:t.breakpoint,isFullscreen:s,previousOpenPanels:e.openPanels,openPanels:Pe(Pe({},p),u)})},SET_MEDIA:(e,t)=>Pe(Pe({},e),t),SET_HYBRID_FULLSCREEN:(e,t)=>Pe(Pe({},e),{},{isFullscreen:t}),SET_INTERFACE_TYPE:(e,t)=>e.interfaceType===t?e:Pe(Pe({},e),{},{interfaceType:t}),SET_MODE:(e,t)=>{var r=e.panelConfig||e.panelRegistry.getPanelConfig();return Pe(Pe({},e),{},{mode:t,previousMode:e.mode,openPanels:ye(r,e.breakpoint,e.openPanels)})},SET_SAFE_ZONE_INSET:(e,t)=>{var{safeZoneInset:r,syncMapPadding:n=!0}=t;return((e,t)=>{if(e===t)return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;var r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&r.every(r=>Object.is(e[r],t[r]))})(e.safeZoneInset,r)?e:Pe(Pe({},e),{},{safeZoneInset:r,syncMapPadding:n,isLayoutReady:!0})},REVERT_MODE:e=>{var t=e.panelConfig||e.panelRegistry.getPanelConfig();return Pe(Pe({},e),{},{mode:e.previousMode,previousMode:e.mode,openPanels:ye(t,e.breakpoint,e.openPanels)})},OPEN_PANEL:(e,t)=>{var{panelId:r,props:n={}}=t;return Pe(Pe({},e),{},{previousOpenPanels:e.openPanels,openPanels:Ee(e,r,e.breakpoint,n)})},CLOSE_PANEL:(e,r)=>{var n=e.openPanels,{[r]:o}=n,i=t(n,[r].map(he));return Pe(Pe({},e),{},{previousOpenPanels:e.openPanels,openPanels:i})},CLOSE_ALL_PANELS:e=>Pe(Pe({},e),{},{previousOpenPanels:e.openPanels,openPanels:{}}),RESTORE_PREVIOUS_PANELS:e=>Pe(Pe({},e),{},{openPanels:e.previousOpenPanels||{},previousOpenPanels:e.openPanels}),TOGGLE_HAS_EXCLUSIVE_CONTROL:(e,t)=>Pe(Pe({},e),{},{hasExclusiveControl:t}),TOGGLE_BUTTON_DISABLED:(e,t)=>{var{id:r,isDisabled:n}=t,o=new Set(e.disabledButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{disabledButtons:o})},TOGGLE_BUTTON_HIDDEN:(e,t)=>{var{id:r,isHidden:n}=t,o=new Set(e.hiddenButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{hiddenButtons:o})},TOGGLE_BUTTON_PRESSED:(e,t)=>{var{id:r,isPressed:n}=t,o=new Set(e.pressedButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{pressedButtons:o})},TOGGLE_BUTTON_EXPANDED:(e,t)=>{var{id:r,isExpanded:n}=t,o=new Set(e.expandedButtons);return n?o.add(r):o.delete(r),Pe(Pe({},e),{},{expandedButtons:o})},REGISTER_BUTTON:(e,t)=>Pe(Pe({},e),{},{buttonConfig:Y(e.buttonConfig,t)}),ADD_BUTTON:(e,t)=>{var r,{id:n,config:o}=t,i=q(e.buttonConfig,n,o),a=new Set(e.hiddenButtons);o.isHidden&&a.add(n);var l=new Set(e.disabledButtons);o.isDisabled&&l.add(n);var c=new Set(e.pressedButtons);o.isPressed&&c.add(n);var s=new Set(e.expandedButtons);return o.isExpanded&&s.add(n),null!==(r=e.buttonRegistry)&&void 0!==r&&r.addButton&&e.buttonRegistry.addButton(n,o),Pe(Pe({},e),{},{buttonConfig:i,hiddenButtons:a,disabledButtons:l,pressedButtons:c,expandedButtons:s})},REGISTER_PANEL:(e,t)=>Pe(Pe({},e),{},{panelConfig:ee(e.panelConfig,t)}),ADD_PANEL:(e,t)=>{var r,{id:n,config:o}=t,i=te(e.panelConfig,n,o),a=i[n];null!==(r=e.panelRegistry)&&void 0!==r&&r.addPanel&&e.panelRegistry.addPanel(n,o);var l=null==a?void 0:a[e.breakpoint],c=null==l?void 0:l.open;return Pe(Pe({},e),{},{panelConfig:i,openPanels:c?Ee(Pe(Pe({},e),{},{panelConfig:i}),n,e.breakpoint,{}):e.openPanels})},REMOVE_PANEL:(e,r)=>{var n,o=r,i=e.openPanels,{[o]:a}=i,l=t(i,[o].map(he));return null!==(n=e.panelRegistry)&&void 0!==n&&n.removePanel&&e.panelRegistry.removePanel(o),Pe(Pe({},e),{},{panelConfig:re(e.panelConfig,o),openPanels:l})},REGISTER_CONTROL:(e,t)=>Pe(Pe({},e),{},{controlConfig:ie(e.controlConfig,t)}),ADD_CONTROL:(e,t)=>{var r,{id:n,config:o}=t,i=ae(e.controlConfig,n,o);return null!==(r=e.controlRegistry)&&void 0!==r&&r.addControl&&e.controlRegistry.addControl(n,o),Pe(Pe({},e),{},{controlConfig:i})}};function we(){return{preferredColorScheme:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",prefersReducedMotion:window.matchMedia("(prefers-reduced-motion: reduce)").matches}}var je=(e,t)=>{var{type:r,payload:n}=t,o=_e[r];return o?o(e,n):e};function Se(e,t,r,n){var{type:o,payload:a}=e;if("CLOSE_PANEL"===o&&queueMicrotask(()=>{n.emit(i.APP_PANEL_CLOSED,{panelId:a})}),"CLOSE_ALL_PANELS"===o&&queueMicrotask(()=>{Object.keys(t.openPanels).forEach(e=>{n.emit(i.APP_PANEL_CLOSED,{panelId:e})})}),"OPEN_PANEL"===o){var{panelId:l,props:c}=a,s=function(e,t,r,n){var o,i=null===(o=n[e])||void 0===o?void 0:o[r],a=!(null==i||!i.exclusive||null!=i&&i.modal),l=!(null==i||!i.modal),c=[];if(l)return c;var s=Object.keys(t);return a?s.forEach(e=>{var t,o=null===(t=n[e])||void 0===t?void 0:t[r];null!=o&&o.exclusive||c.push(e)}):s.forEach(e=>{var t,o=null===(t=n[e])||void 0===t?void 0:t[r];null==o||!o.exclusive||null!=o&&o.modal||c.push(e)}),c}(l,t.openPanels,t.breakpoint,r);queueMicrotask(()=>{s.forEach(e=>{n.emit(i.APP_PANEL_CLOSED,{panelId:e})}),n.emit(i.APP_PANEL_OPENED,{panelId:l,props:c})})}}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 Te(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 De=u(null),Ae=e=>{var{options:t,children:r}=e,{pluginRegistry:n,buttonRegistry:l,panelRegistry:c,controlRegistry:s,eventBus:p,breakpointDetector:d}=t,u={appContainerRef:v(null),sideRef:v(null),mainRef:v(null),topRef:v(null),topLeftColRef:v(null),topRightColRef:v(null),insetRef:v(null),rightRef:v(null),middleRef:v(null),bottomRef:v(null),footerRef:v(null),actionsRef:v(null),bannerRef:v(null),modalRef:v(null),viewportRef:v(null)},y=v({}),[h,O]=m(je,(e=>{var{initialBreakpoint:t,initialInterfaceType:r,appColorScheme:n,autoColorScheme:i,pluginRegistry:a,buttonRegistry:l,panelRegistry:c,controlRegistry:s,mode:p}=e,{preferredColorScheme:d,prefersReducedMotion:u}=we(),f=o(e),v=ye(c.getPanelConfig(),t);return{isLayoutReady:!1,breakpoint:t,interfaceType:r,preferredColorScheme:i?d:n,prefersReducedMotion:u,isFullscreen:f,mode:p||null,previousMode:null,safeZoneInset:null,disabledButtons:new Set,hiddenButtons:new Set,pressedButtons:new Set,expandedButtons:new Set,hasExclusiveControl:!1,openPanels:v,previousOpenPanels:{},syncMapPadding:!0,pluginRegistry:a,buttonRegistry:l,panelRegistry:c,controlRegistry:s,buttonConfig:l.getButtonConfig(),panelConfig:c.getPanelConfig(),controlConfig:s.getControlConfig()}})(t)),P=b(e=>{var r=h.panelConfig||t.panelRegistry.getPanelConfig(),n=h;O(e),Se(e,n,r,p)},[h,t,p]);!function(e,t){var{appColorScheme:r,autoColorScheme:n,behaviour:o,hybridWidth:i,maxMobileWidth:a}=t;f(()=>{var t=[window.matchMedia("(prefers-color-scheme: dark)"),window.matchMedia("(prefers-reduced-motion: reduce)")];function l(){var{preferredColorScheme:t,prefersReducedMotion:o}=we();e({type:"SET_MEDIA",payload:{preferredColorScheme:n?t:r,prefersReducedMotion:o}})}t.forEach(e=>e.addEventListener("change",l));var c=null,s=null;if("hybrid"===o){var p=null!=i?i:a;c=window.matchMedia("(max-width: ".concat(p,"px)")),s=t=>{e({type:"SET_HYBRID_FULLSCREEN",payload:t.matches})},c.addEventListener("change",s)}return()=>{t.forEach(e=>e.removeEventListener("change",l)),c&&s&&c.removeEventListener("change",s)}},[e,o,i,a])}(O,t);var _=e=>{P({type:"SET_MODE",payload:e})},w=()=>{P({type:"REVERT_MODE"})};f(()=>{p.on(i.APP_SET_MODE,_),p.on(i.APP_REVERT_MODE,w);var e=d.subscribe(e=>{P({type:"SET_BREAKPOINT",payload:{behaviour:t.behaviour,breakpoint:e,hybridWidth:t.hybridWidth,maxMobileWidth:t.maxMobileWidth}})}),r=a(e=>{P({type:"SET_INTERFACE_TYPE",payload:e})});return()=>{p.off(i.APP_SET_MODE,_),p.off(i.APP_REVERT_MODE,w),e(),r()}},[]);var S=g(()=>Te(Te({},h),{},{dispatch:P,layoutRefs:u,buttonRefs:y,pluginRegistry:n,buttonRegistry:l,panelRegistry:c,controlRegistry:s}),[h,P]);return E(j.Provider,{value:t,children:E(De.Provider,{value:S,children:r})})};function ke(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?ke(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ke(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Me=(e,t)=>Ce(Ce({},e),t),Ie={SET_MAP_READY:e=>Ce(Ce({},e),{},{isMapReady:!0}),MAP_MOVE:Me,MAP_MOVE_END:Me,MAP_FIRST_IDLE:Me,SET_MAP_STYLE:(e,t)=>Ce(Ce({},e),{},{mapStyle:t}),SET_MAP_SIZE:(e,t)=>Ce(Ce({},e),{},{mapSize:t}),UPDATE_CROSS_HAIR:(e,t)=>Ce(Ce({},e),{},{crossHair:Ce(Ce({},e.crossHair),t)}),UPSERT_LOCATION_MARKER:(e,t)=>{var r=new Map(e.markers.items.map(e=>[e.id,e]));r.set(t.id,t);var n=Array.from(r.values());return Ce(Ce({},e),{},{markers:Ce(Ce({},e.markers),{},{items:n})})},REMOVE_LOCATION_MARKER:(e,t)=>{var r=e.markers.items.filter(e=>e.id!==t);return Ce(Ce({},e),{},{markers:Ce(Ce({},e.markers),{},{items:r})})}},Le=(e,t)=>{var{type:r,payload:n}=t,o=Ie[r];return o?o(e,n):e};function Ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Be(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 xe=u(null),ze=e=>{var{options:t,children:r}=e,[n,o]=m(Le,(e=>{var{center:t,zoom:r,bounds:n,extent:o,mapStyle:i,mapSize:a,markers:l}=e,{registeredPlugins:c}=e.pluginRegistry;return{isMapReady:!1,mapProvider:null,mapStyle:null!=c&&c.find(e=>{var t;return null===(t=e.config)||void 0===t?void 0:t.handlesMapStyle})?null:i,mapSize:a,center:t,zoom:r,bounds:n||o,resolution:null,isAtMaxZoom:null,isAtMinZoom:null,crossHair:{isVisible:!1,isPinnedToMap:!1,state:"active"},markers:{items:l||[]}}})(t)),{eventBus:a}=t,l=v(!1),c=()=>{o({type:"SET_MAP_READY"})},s=e=>{var r=localStorage.getItem("".concat(t.id,":mapStyleId")),n=e.find(e=>e.id===r)||e[0],i=localStorage.getItem("".concat(t.id,":mapSize"))||t.mapSize;o({type:"SET_MAP_STYLE",payload:n}),o({type:"SET_MAP_SIZE",payload:i})},p=e=>{o({type:"SET_MAP_STYLE",payload:e})},d=e=>{o({type:"SET_MAP_SIZE",payload:e})};f(()=>(a.on(i.MAP_READY,c),a.on(i.MAP_INIT_MAP_STYLES,s),a.on(i.MAP_SET_STYLE,p),a.on(i.MAP_SET_SIZE,d),()=>{a.off(i.MAP_READY,c),a.off(i.MAP_INIT_MAP_STYLES,s),a.off(i.MAP_SET_STYLE,p),a.off(i.MAP_SET_SIZE,d)}),[]),f(()=>{n.mapSize&&(l.current?a.emit(i.MAP_SIZE_CHANGE,{mapSize:n.mapSize}):l.current=!0)},[n.mapSize]),f(()=>{n.mapStyle&&n.mapSize&&(localStorage.setItem("".concat(t.id,":mapStyleId"),n.mapStyle.id),localStorage.setItem("".concat(t.id,":mapSize"),n.mapSize))},[n.mapStyle,n.mapSize]);var u=g(()=>Be(Be({},n),{},{dispatch:o}),[n]);return E(xe.Provider,{value:u,children:r})};function He(e){var t,r,n,o,i=!1,a=t=>{null!=e&&e.current&&t&&(e.current.textContent="",setTimeout(()=>{e.current&&(e.current.textContent=t)},100))},l=(t=a,r=500,n=null,o=function(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];clearTimeout(n),n=setTimeout(()=>{t(...o)},r)},o.cancel=()=>{n&&(clearTimeout(n),n=null)},o);return function(e){if(e)return"plugin"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"core")?(i=!0,void a(e)):void(i?i=!1:l(e))}}var Fe=u(null),Ue=e=>{var{eventBus:t,children:r}=e,{id:n,handleExitClick:o}=S(),a=v(null),c=g(()=>He(a),[]),s=g(()=>({announce:c,reverseGeocode:(e,t)=>l(e,t),events:i,eventBus:t,mapStatusRef:a,closeApp:()=>function(e,t,r){var n;r.emit(i.MAP_EXIT,{mapId:e}),null!==(n=history.state)&&void 0!==n&&n.isBack?history.back():t()}(n,o,t)}),[c]);return E(Fe.Provider,{value:s,children:r})};function Ve(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?Ve(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ve(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var We=u(null);var Ze=e=>{var{children:t}=e,{pluginRegistry:r}=S(),n={},o={},i=v({});r.registeredPlugins.forEach(e=>{var t=e.reducer;if(t){var{initialState:r,actions:a}=t;n[e.id]=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=null==e?void 0:e[null==r?void 0:r.type];return n?n(t,r.payload):t}}(a),o[e.id]=r}i.current[e.id]||(i.current[e.id]={})});var[a,l]=m((e,t)=>{var{pluginId:r}=t;return r&&n[r]?Ge(Ge({},e),{},{[r]:n[r](e[r],t)}):e},o),c=(e,t)=>(i.current[e]||(i.current[e]={}),i.current[e][t]||(i.current[e][t]=p.createRef()),i.current[e][t]),s=g(()=>({state:a,dispatch:l,refs:i,getPluginRef:c}),[a,l]);return E(We.Provider,{value:s,children:t})},Ke=e=>{var t=d(We);if(!t)throw new Error("usePlugin must be used within PluginProvider");var{state:r,dispatch:n,refs:o,getPluginRef:i}=t;return o.current[e]||(o.current[e]={}),Ge(Ge({},r[e]),{},{dispatch:t=>n(Ge(Ge({},t),{},{pluginId:e})),refs:o.current[e],useRef:t=>i(e,t)})};function Ye(){return d(De)}function qe(){return d(xe)}function Xe(){return d(Fe)}function $e(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?$e(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Qe=new Map;function et(e,t){var{pluginId:r,pluginConfig:n}=t,o=e;return Qe.has(o)||Qe.set(o,function(t){var o=S(),i=Ye(),a=qe(),l=Xe(),c=Ke(r);return E(e,Je(Je({},t),{},{pluginConfig:n,pluginState:c,appConfig:o,appState:i,mapState:a,services:l,mapProvider:o.mapProvider,iconRegistry:pe(),buttonConfig:Object.fromEntries(Object.entries(i.buttonConfig).filter(e=>{var[t,n]=e;return n.pluginId===r}))}))}),Qe.get(o)}function tt(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 rt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?tt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):tt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function nt(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 ot(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?nt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function it(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 at(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?it(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):it(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function lt(){var e=S(),t=Ye(),r=qe(),n=Xe(),o=d(We),i={appConfig:e,appState:t,mapState:r,services:n,mapProvider:null==e?void 0:e.mapProvider,iconRegistry:pe()};function a(t,r){var n,a;if(r){var l,c,s=e.pluginRegistry.registeredPlugins.find(e=>e.id===r);n=s?at({pluginId:s.id},s.config):{},a=at(at({},null!==(l=null==o||null===(c=o.state)||void 0===c?void 0:c[r])&&void 0!==l?l:{}),{},{dispatch:null==o?void 0:o.dispatch})}var p=at(at({},i),{},{pluginConfig:n,pluginState:a});return"function"==typeof t?t(p):t}return a.ctx=i,a}function ct(e){var t=Ye(),{pluginRegistry:r}=S(),n=d(We);y(()=>{if(null!=t&&t.dispatch&&n){var{dispatch:o}=t;r.registeredPlugins.forEach(r=>{var n,i;(null!==(n=null==r||null===(i=r.manifest)||void 0===i?void 0:i.buttons)&&void 0!==n?n:[]).flatMap(e=>{var t;return[e,...null!==(t=e.menuItems)&&void 0!==t?t:[]]}).forEach(n=>function(e){var{btn:t,pluginId:r,appState:n,dispatch:o,evaluateProp:i}=e;[{prop:"enableWhen",state:n.disabledButtons,action:"TOGGLE_BUTTON_DISABLED",invert:!0,key:"isDisabled"},{prop:"hiddenWhen",state:n.hiddenButtons,action:"TOGGLE_BUTTON_HIDDEN",key:"isHidden"},{prop:"pressedWhen",state:n.pressedButtons,action:"TOGGLE_BUTTON_PRESSED",key:"isPressed"},{prop:"expandedWhen",state:n.expandedButtons,action:"TOGGLE_BUTTON_EXPANDED",key:"isExpanded"}].forEach(e=>{var{prop:n,state:a,action:l,key:c,invert:s}=e;if("function"==typeof t[n])try{var p=i(t[n],r),d=s?!p:p;a.has(t.id)!==d&&o({type:l,payload:{id:t.id,[c]:d}})}catch(e){console.warn("".concat(n," error for button ").concat(t.id,":"),e)}})}({btn:n,pluginId:r.id,appState:t,dispatch:o,evaluateProp:e}))})}},[t,n,e])}var st=["api"],pt=e=>{var r,n,{plugin:o,mode:i}=e,a=function(e){var t=v(null),r=S(),n=Ye(),o=qe(),i=Xe(),a=Ke(e);return f(()=>{t.current={appConfig:r,appState:n,mapState:o,services:i,mapProvider:r.mapProvider,pluginState:a}}),t}(o.id);f(()=>{o.api&&o._originalPlugin&&Object.entries(o.api).forEach(e=>{var[t,r]=e;o._originalPlugin[t]=function(e,t){var{pluginId:r,pluginConfig:n,stateRef:o}=t;return function(){var t=o.current;if(!t)throw new Error('Plugin API "'.concat(r,'" called before state is initialized'));for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return e(rt(rt({},t),{},{pluginConfig:n,pluginId:r}),...a)}}(r,{pluginId:o.id,pluginConfig:(null==o?void 0:o.config)||{},stateRef:a})})},[o,a]);var{InitComponent:l}=o,c=(null==o?void 0:o.config)||{},{api:s}=c,p=t(c,st),{includeModes:d,excludeModes:u}=o.config||{},m=null===(r=null==d?void 0:d.includes(i))||void 0===r||r,b=null!==(n=null==u?void 0:u.includes(i))&&void 0!==n&&n;if(!m||b||!l)return null;var g=et(l,{pluginId:o.id,pluginConfig:p});return E(g,{})},dt=()=>{var{mode:e}=Ye(),{pluginRegistry:t}=S();(()=>{var{dispatch:e,hiddenButtons:t,disabledButtons:r,pressedButtons:n,expandedButtons:o}=Ye(),{eventBus:a}=Xe(),l=v(e),c=v({hiddenButtons:t,disabledButtons:r,pressedButtons:n,expandedButtons:o});l.current=e,c.current={hiddenButtons:t,disabledButtons:r,pressedButtons:n,expandedButtons:o},f(()=>{var e=e=>{var{id:t,config:r}=e;l.current({type:"ADD_BUTTON",payload:{id:t,config:r}}),Array.isArray(r.menuItems)&&r.menuItems.forEach(e=>{l.current({type:"ADD_BUTTON",payload:{id:e.id,config:ot(ot({},e),{},{isMenuItem:!0})}})})},t=e=>{var{id:t,prop:r,value:n}=e,{hiddenButtons:o,disabledButtons:i,pressedButtons:a,expandedButtons:s}=c.current;switch(r){case"hidden":var p="boolean"==typeof n?n:!o.has(t);l.current({type:"TOGGLE_BUTTON_HIDDEN",payload:{id:t,isHidden:p}});break;case"disabled":var d="boolean"==typeof n?n:!i.has(t);l.current({type:"TOGGLE_BUTTON_DISABLED",payload:{id:t,isDisabled:d}});break;case"pressed":var u="boolean"==typeof n?n:!a.has(t);l.current({type:"TOGGLE_BUTTON_PRESSED",payload:{id:t,isPressed:u}});break;case"expanded":var f="boolean"==typeof n?n:!s.has(t);l.current({type:"TOGGLE_BUTTON_EXPANDED",payload:{id:t,isExpanded:f}})}},r=e=>{var{id:t,config:r}=e;return l.current({type:"ADD_PANEL",payload:{id:t,config:r}})},n=e=>l.current({type:"REMOVE_PANEL",payload:e}),o=e=>l.current({type:"OPEN_PANEL",payload:{panelId:e}}),s=e=>l.current({type:"CLOSE_PANEL",payload:e}),p=e=>{var{id:t,config:r}=e;return l.current({type:"ADD_CONTROL",payload:{id:t,config:r}})};return a.on(i.APP_ADD_BUTTON,e),a.on(i.APP_TOGGLE_BUTTON_STATE,t),a.on(i.APP_ADD_PANEL,r),a.on(i.APP_REMOVE_PANEL,n),a.on(i.APP_SHOW_PANEL,o),a.on(i.APP_HIDE_PANEL,s),a.on(i.APP_ADD_CONTROL,p),()=>{a.off(i.APP_ADD_BUTTON,e),a.off(i.APP_TOGGLE_BUTTON_STATE,t),a.off(i.APP_ADD_PANEL,r),a.off(i.APP_REMOVE_PANEL,n),a.off(i.APP_SHOW_PANEL,o),a.off(i.APP_HIDE_PANEL,s),a.off(i.APP_ADD_CONTROL,p)}},[a])})();var r=lt();return ct(r),E(w,{children:t.registeredPlugins.map((t,n)=>E(pt,{plugin:t,mode:e,evaluateProp:r},"init-".concat(t.id,"-").concat(n)))})};var ut=function(e){var{id:t,center:r,zoom:n,bounds:o}=e,i=((e,t)=>{var r=new URLSearchParams(t),n=r.get("".concat(e,":center")),o=r.get("".concat(e,":zoom"));if(!n||!o)return null;var[i,a]=n.split(",").map(Number);return{center:[i,a],zoom:Number(o)}})(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location.search);return i?{center:i.center,zoom:i.zoom}:o?{bounds:o}:{center:r,zoom:n}};function ft(){var{id:e}=S(),{eventBus:t}=Xe();f(()=>{if(e){var r=t=>{var{current:r}=t;!function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.location.href,n=new URL(r||"http://localhost"),o=[...new URLSearchParams(n.search)].map(e=>{var[t,r]=e;return"".concat(t,"=").concat(r)}),i=[];t.center&&i.push("".concat(e,":center=").concat(t.center[0],",").concat(t.center[1])),null!=t.zoom&&i.push("".concat(e,":zoom=").concat(t.zoom));var a=o.filter(e=>!i.some(t=>t.split("=")[0]===e.split("=")[0])),l=n.hash||"",c="".concat(n.origin).concat(n.pathname,"?").concat([...a,...i].join("&")).concat(l);window.history.replaceState(window.history.state,"",c)}(e,{center:r.center,zoom:r.zoom})};return t.on(i.MAP_STATE_UPDATED,r),()=>t.off(i.MAP_STATE_UPDATED,r)}},[e])}var vt=e=>{var{direction:t}=e;return"Map moved ".concat(t,".")},mt=e=>{var{from:t,to:r,areaDimensions:n,isAtMaxZoom:o,isAtMinZoom:i}=e;return"Map zoomed ".concat(r>t?"in":"out").concat(o?" (Maximum zoom)":"").concat(i?" (Minimum zoom)":"",". New area approximately ").concat(n,".")},bt=e=>{var{areaDimensions:t,isAtMaxZoom:r,isAtMinZoom:n}=e;return"New area approximately ".concat(t).concat(r?" (Maximum zoom)":"").concat(n?" (Minimum zoom)":"",".")},gt=e=>{var{isAtMaxZoom:t,isAtMinZoom:r}=e;return"No change, ".concat(t?"maximum zoom reached":"").concat(r?"minimum zoom reached":"",".")};function yt(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 ht(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?yt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):yt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function Ot(){var{mapProvider:e}=S(),{eventBus:t,announce:r}=Xe();f(()=>{var n=t=>{var{previous:n,current:o}=t;if(null!=n&&n.center&&null!=o&&o.center){var i=((e,t,r)=>{var n=e.zoom!==t.zoom,o=e.center[0]!==t.center[0]||e.center[1]!==t.center[1],i=r.getAreaDimensions();if(o&&!n){var a=r.getCardinalMove(e.center,t.center);return vt({direction:a,areaDimensions:i})}return!o&&n?mt(ht(ht({},t),{},{from:e.zoom,to:t.zoom,areaDimensions:i})):o||n?bt(ht(ht({},t),{},{areaDimensions:i})):gt(ht({},t))})(n,o,e);i&&r(i,"core")}};return t.on(i.MAP_STATE_UPDATED,n),()=>{t.off(i.MAP_STATE_UPDATED,n)}},[e,r])}var Pt=e=>{var{mainRef:t,insetRef:r,rightRef:n,actionsRef:o,footerRef:i}=e,a=[t,r,n,o,i];if(!a.some(e=>!e.current)){var[l,c,s,p,d]=a.map(e=>e.current),u=document.documentElement,f=Number.parseInt(getComputedStyle(u).getPropertyValue("--divider-gap"),10),v=p.offsetTop-c.offsetTop-f,m=c.offsetLeft+s.offsetWidth+f,b=l.offsetWidth-2*m,g=c.offsetWidth-m+c.offsetLeft,y=b-g>v-c.offsetHeight,h=c.offsetTop+(!y&&c.offsetHeight>0?c.offsetHeight+f:0),O=y?c.offsetWidth+c.offsetLeft+f:m,P=l.offsetHeight-p.offsetTop,E=l.offsetHeight-d.offsetTop,_=g<b/2&&c.offsetHeight<v/2;return{top:_?c.offsetTop:h,right:m,left:l.offsetLeft+(_?m:Math.max(O,m)),bottom:Math.max(P,E)+f}}},Et=(e,t)=>Object.entries(e).reduce((e,r)=>{var[n,o]=r;return e[n]=Math.round(o/t),e},{});function _t(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 wt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?_t(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var jt=e=>{var{mapContainerRef:t}=e,r=S(),{id:n,mapProvider:o}=r,{safeZoneInset:a,breakpoint:l,isLayoutReady:c,syncMapPadding:s}=Ye(),{isMapReady:p,mapStyle:d,mapSize:u,center:m,zoom:b,bounds:g}=qe(),y=v(!1),h=ut({id:n,center:m,zoom:b,bounds:g});return f(()=>{if(a&&c&&d&&u&&!y.current)return requestAnimationFrame(()=>{o.initMap(wt(wt({},r),{},{pixelRatio:window.devicePixelRatio*U[u],container:t.current,padding:a,center:h.center,zoom:h.zoom,bounds:h.bounds,mapStyle:d,mapSize:u}))}),y.current=!0,()=>{}},[a,c,d,u]),function(){var{mapProvider:e}=S(),{dispatch:t}=qe(),{eventBus:r}=Xe(),n=v(null),o=v(!1);f(()=>{if(e){var a=e=>{t({type:"MAP_MOVE",payload:e})},l=e=>{t({type:"MAP_MOVE_END",payload:e}),r.emit(i.MAP_STATE_UPDATED,{previous:n.current,current:e}),n.current=e},c=r=>{o.current||(n.current={center:e.getCenter(),zoom:e.getZoom()},o.current=!0),t({type:"MAP_FIRST_IDLE",payload:r})};return r.on(i.MAP_MOVE,a),r.on(i.MAP_MOVE_END,l),r.on(i.MAP_FIRST_IDLE,c),()=>{r.off(i.MAP_MOVE,a),r.off(i.MAP_MOVE_END,l),r.off(i.MAP_FIRST_IDLE,c)}}},[e,t])}(),ft(),Ot(),(()=>{var{mapProvider:e,eventBus:t}=S(),{dispatch:r,layoutRefs:n}=Ye(),{mapSize:o}=qe(),a=v(o);a.current=o;var l=()=>{var t=Pt(n),o=Et(t,U[a.current]);"function"==typeof r&&r({type:"SET_SAFE_ZONE_INSET",payload:{safeZoneInset:t,syncMapPadding:!1}}),"function"==typeof e.setPadding&&e.setPadding(o)};f(()=>{if(e){var t=e.fitToBounds;e.fitToBounds=function(r){if(r)return arguments.length>1&&void 0!==arguments[1]&&arguments[1]||l(),t.call(e,r)};var r=e.setView;return e.setView=t=>{var{center:n,zoom:o}=t;if(n)return l(),r.call(e,{center:n,zoom:o})},()=>{e.fitToBounds=t,e.setView=r}}},[e,r,n,o]),f(()=>{if(e&&t){var r=t=>e.fitToBounds(t),n=t=>e.setView(t);return t.on(i.MAP_FIT_TO_BOUNDS,r),t.on(i.MAP_SET_VIEW,n),()=>{t.off(i.MAP_FIT_TO_BOUNDS,r),t.off(i.MAP_SET_VIEW,n)}}},[e,t])})(),f(()=>{p&&s&&o.setPadding(Et(a,U[u]))},[p,u,l,a]),null};var St={keydown:{ArrowUp:"panUp",ArrowDown:"panDown",ArrowLeft:"panLeft",ArrowRight:"panRight","+":"zoomIn","=":"zoomIn","-":"zoomOut",_:"zoomOut"},keyup:{"Alt+k":"showKeyboardControls","Alt+K":"showKeyboardControls","Alt+ArrowRight":"highlightNextLabel","Alt+ArrowLeft":"highlightNextLabel","Alt+ArrowUp":"highlightNextLabel","Alt+ArrowDown":"highlightNextLabel","Alt+Enter":"highlightLabelAtCenter","Alt+i":"getInfo","Alt+I":"getInfo",Escape:"clearSelection"}},Rt=(e,t,n)=>{var o,{containerRef:i,dispatch:a,panDelta:c,nudgePanDelta:s,zoomDelta:p,nudgeZoomDelta:d,readMapText:u}=n,f=e=>e?s:c,v=e=>e?d:p;return{showKeyboardControls:()=>{a({type:"OPEN_PANEL",payload:{panelId:"keyboardHelp",props:{triggeringElement:i.current}}})},panUp:t=>e.panBy([0,-f(t.shiftKey)]),panDown:t=>e.panBy([0,f(t.shiftKey)]),panLeft:t=>e.panBy([-f(t.shiftKey),0]),panRight:t=>e.panBy([f(t.shiftKey),0]),zoomIn:t=>e.zoomIn(v(t.shiftKey)),zoomOut:t=>e.zoomOut(v(t.shiftKey)),getInfo:(o=r(function*(r){var n,o=e.getCenter(),i=yield l(e.getZoom(),o),a=null===(n=e.getAreaDimensions)||void 0===n?void 0:n.call(e),c=a?"".concat(i,". Covering ").concat(a,"."):"".concat(i,".");t(c,"core")}),function(e){return o.apply(this,arguments)}),highlightNextLabel:r=>{if(u||!e.highlightNextLabel){var n=e.highlightNextLabel(r.key);t(n,"core")}},highlightLabelAtCenter:()=>{if(u||!e.highlightNextLabel){var r=e.highlightLabelAtCenter();t(r,"core")}},clearSelection:()=>{var t;return null==e||null===(t=e.clearHighlightedLabel)||void 0===t?void 0:t.call(e)}}};var Tt=()=>{var{mapStatusRef:e}=Xe();return E("div",{ref:e,role:"status",className:"im-c-viewport__status","aria-live":"polite","aria-atomic":"true","aria-label":"Map updates"})},Dt={active:"M5.035 20H1v-2h4.035C5.525 11.069 11.069 5.525 18 5.035V1h2v4.035c6.931.49 12.475 6.034 12.965 12.965H37v2h-4.035c-.49 6.931-6.034 12.475-12.965 12.965V37h-2v-4.035C11.069 32.475 5.525 26.931 5.035 20zM19 7c-6.581.005-11.995 5.419-12 12 .005 6.581 5.419 11.995 12 12 6.581-.005 11.995-5.419 12-12-.005-6.581-5.419-11.995-12-12zm0 10a2.01 2.01 0 0 1 2 2 2.01 2.01 0 0 1-2 2 2.01 2.01 0 0 1-2-2 2.01 2.01 0 0 1 2-2z",inactive:"M5.035 20H1v-2h4.035a13.98 13.98 0 0 1 .246-1.8l1.96.399C7.083 17.375 7 18.178 7 19s.083 1.625.241 2.401l-1.96.399a13.98 13.98 0 0 1-.246-1.8zM20 5.035a13.98 13.98 0 0 1 1.8.246l-.399 1.96C20.625 7.083 19.822 7 19 7s-1.625.083-2.401.241l-.399-1.96a13.98 13.98 0 0 1 1.8-.246V1h2v4.035zm-2 27.93a13.98 13.98 0 0 1-1.8-.246l.399-1.96c.776.158 1.579.241 2.401.241s1.625-.083 2.401-.241l.399 1.96a13.98 13.98 0 0 1-1.8.246V37h-2v-4.035zM32.965 20a13.98 13.98 0 0 1-.246 1.8l-1.96-.399c.158-.776.241-1.579.241-2.401s-.083-1.625-.241-2.401l1.96-.399a13.98 13.98 0 0 1 .246 1.8H37v2h-4.035zM19 17a2.01 2.01 0 0 1 2 2 2.01 2.01 0 0 1-2 2 2.01 2.01 0 0 1-2-2 2.01 2.01 0 0 1 2-2zm3.8-9.385l.634-1.897c1.789.598 3.438 1.553 4.848 2.805l-1.327 1.496c-1.196-1.06-2.605-1.886-4.155-2.404zm5.181 3.43l1.496-1.327c1.252 1.41 2.207 3.059 2.805 4.848l-1.897.634c-.518-1.55-1.344-2.959-2.404-4.155zM30.385 22.8l1.897.634c-.598 1.789-1.553 3.438-2.805 4.848l-1.496-1.327c1.06-1.196 1.886-2.605 2.404-4.155zm-3.43 5.181l1.327 1.496c-1.41 1.252-3.059 2.207-4.848 2.805l-.634-1.897c1.55-.518 2.959-1.344 4.155-2.404zM15.2 30.385l-.634 1.897c-1.789-.598-3.438-1.553-4.848-2.805l1.327-1.496c1.196 1.06 2.605 1.886 4.155 2.404zm-5.181-3.43l-1.496 1.327c-1.252-1.41-2.207-3.059-2.805-4.848l1.897-.634c.518 1.55 1.344 2.959 2.404 4.155zM7.615 15.2l-1.897-.634c.598-1.789 1.553-3.438 2.805-4.848l1.496 1.327c-1.06 1.196-1.886 2.605-2.404 4.155zm3.43-5.181L9.718 8.523c1.41-1.252 3.059-2.207 4.848-2.805l.634 1.897c-1.55.518-2.959 1.344-4.155 2.404z"},At=()=>{var{id:e}=S(),{crossHairRef:t,crossHair:r}=(()=>{var{mapProvider:e}=S(),{safeZoneInset:t}=Ye(),{eventBus:r}=Xe(),{crossHair:n,dispatch:o,mapSize:a}=qe(),l=(e,r,n)=>{if(t){var o=r*U[a],i=n*U[a];e.style.transform="translate(".concat(o-t.left,"px, ").concat(i-t.top,"px)"),e.style.left="0",e.style.top="0",e.style.display="block"}},c=b(t=>{if(t){((e,t,r,n,o)=>{e.pinToMap=(i,a)=>{var{x:l,y:c}=r.mapToScreen(i);e.coords=i,n({type:"UPDATE_CROSS_HAIR",payload:{isPinnedToMap:!0,isVisible:!0,coords:i,state:a}}),o(t,l,c)},e.fixAtCenter=()=>{t.style.left="50%",t.style.top="50%",t.style.transform="translate(0,0)",t.style.display="block",n({type:"UPDATE_CROSS_HAIR",payload:{isPinnedToMap:!1,isVisible:!0}})},e.remove=()=>{t.style.display="none",n({type:"UPDATE_CROSS_HAIR",payload:{isPinnedToMap:!1,isVisible:!1}})},e.show=()=>{t.style.display="block",n({type:"UPDATE_CROSS_HAIR",payload:{isVisible:!0}})},e.hide=()=>{t.style.display="none",n({type:"UPDATE_CROSS_HAIR",payload:{isVisible:!1}})},e.setStyle=e=>{n({type:"UPDATE_CROSS_HAIR",payload:{state:e}})},e.getDetail=()=>{var t=e.isPinnedToMap?e.coords:r.getCenter();return{state:e.state,point:r.mapToScreen(t),zoom:r.getZoom(),coords:t}}})(n,t,e,o,l);var a=()=>{if(n.coords&&n.isPinnedToMap){var{x:r,y:o}=e.mapToScreen(n.coords);l(t,r,o)}};return r.on(i.MAP_RENDER,a),()=>{r.off(i.MAP_RENDER,a)}}},[n,e,a,o,t]);return f(()=>{n.coords&&n.isPinnedToMap&&n.pinToMap(n.coords,n.state)},[a]),{crossHair:n,crossHairRef:c}})(),{isVisible:n,isPinnedToMap:o,state:a}=r;return E("svg",{id:"".concat(e,"-cross-hair"),ref:t,className:"im-c-cross-hair",width:"38",height:"38",viewBox:"0 0 38 38",fillRule:"evenodd",fill:"currentColor",style:{position:"absolute",left:o?0:"50%",top:o?0:"50%",pointerEvents:"none",display:n?"block":"none"},children:E("path",{d:Dt[a||"active"]})})};function kt(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 Ct(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?kt(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):kt(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Mt=(e,t,r,n)=>{if(!t||!n)return{x:0,y:0};var{x:o,y:i}=t.mapToScreen(e);return{x:o*U[r],y:i*U[r]-19}},It=(e,t,r,n,o)=>{e.forEach(e=>{var i=t.get(e.id);if(i&&e.coords){var{x:a,y:l}=Mt(e.coords,r,n,o);i.style.transform="translate(".concat(a,"px, ").concat(l,"px)"),i.style.display="block"}})},Lt=()=>{var{mapProvider:e}=S(),{eventBus:t}=Xe(),{markers:r,dispatch:n,mapSize:o,isMapReady:a}=qe(),l=v(new Map);f(()=>{e&&(r.markerRefs=l.current,r.add=(t,r,i)=>{var{x:l,y:c}=Mt(r,e,o,a);n({type:"UPSERT_LOCATION_MARKER",payload:Ct(Ct({id:t,coords:r},i),{},{x:l,y:c,isVisible:!0})})},r.remove=e=>{n({type:"REMOVE_LOCATION_MARKER",payload:e})},r.getMarker=e=>r.items.find(t=>t.id===e))},[e,r,n,o]);var c=b(n=>c=>{if(c){l.current.set(n,c);var s=()=>{a&&e&&It(r.items,l.current,e,o,a)};return t.on(i.MAP_RENDER,s),()=>{t.off(i.MAP_RENDER,s)}}l.current.delete(n)},[r,e,a,o]);return f(()=>{a&&e&&It(r.items,l.current,e,o,a)},[o,r.items,e,a]),((e,t)=>{f(()=>{var r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null!=e&&e.id&&null!=e&&e.coords){var{id:r,coords:n,options:o}=e;t.add(r,n,o)}};e.on(i.APP_ADD_MARKER,r);var n=e=>{e&&t.remove(e)};return e.on(i.APP_REMOVE_MARKER,n),()=>{e.off(i.APP_ADD_MARKER,r),e.off(i.APP_REMOVE_MARKER,n)}},[])})(t,r),{markers:r,markerRef:c}},Nt=(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};function Bt(e){return null==e?void 0:e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}var xt=()=>{var{id:e,markerShape:t,markerColor:r}=S(),{mapStyle:n}=qe(),{markers:o,markerRef:i}=Lt();if(n){var a=V.find(e=>e.shape===t);return E(w,{children:o.items.map(o=>_("svg",{ref:i(o.id),id:"".concat(e,"-marker-").concat(o.id),className:"im-c-marker im-c-marker--".concat(o.markerShape||Bt(t)),width:"38",height:"38",viewBox:"0 0 38 38",style:{display:o.isVisible?"block":"none"},children:[E("path",{className:"im-c-marker__background",d:a.backgroundPath,fill:Nt(o.color||r,n.id)}),E("path",{className:"im-c-marker__graphic",d:a.graphicPath})]},o.id))})}},zt=e=>{var{keyboardHintPortalRef:t}=e,{id:r,mapProvider:n,mapLabel:o,keyboardHintText:a}=S(),{interfaceType:l,mode:c,previousMode:s,layoutRefs:p,safeZoneInset:d}=Ye(),{mapSize:u}=qe(),m=v(null),b=v(null),[g,y]=h(!1);!function(e){var{mapProvider:t,panDelta:r,nudgePanDelta:n,zoomDelta:o,nudgeZoomDelta:i,readMapText:a}=S(),{interfaceType:l,dispatch:c}=Ye(),{announce:s}=Xe();f(()=>{var p=e.current;if(p&&"keyboard"===l){var d=Rt(t,s,{containerRef:e,dispatch:c,panDelta:r,nudgePanDelta:n,zoomDelta:o,nudgeZoomDelta:i,readMapText:a}),u=e=>t=>{var r=St[e][(e=>{var t;return"Add"===(t=/^Key[A-Z]$/.test(e.code)?e.code.slice(3):e.key)||"NumpadAdd"===t?t="+":"Subtract"!==t&&"NumpadSubtract"!==t||(t="-"),e.altKey?"Alt+".concat(t):t})(t)];r&&d[r]&&(d[r](t),t.preventDefault())},f=u("keydown"),v=u("keyup");return p.addEventListener("keydown",f),p.addEventListener("keyup",v),()=>{p.removeEventListener("keydown",f),p.removeEventListener("keyup",v)}}},[e,l,t,r,n,o,i])}(p.viewportRef),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{mapProvider:t}=S(),{eventBus:r}=Xe();f(()=>{if(t){var n={};return Object.entries(e).forEach(e=>{var[t,o]=e,i=e=>o(e);n[t]=i,r.on(t,i)}),()=>{Object.entries(n).forEach(e=>{var[t,n]=e;r.off(t,n)})}}},[t,e])}({[i.MAP_CLICK]:()=>{var e;return null==n||null===(e=n.clearHighlightedLabel)||void 0===e?void 0:e.call(n)}});var{showHint:P,handleFocus:j,handleBlur:R}=function(e){var{interfaceType:t,containerRef:r,keyboardHintRef:n,keyboardHintVisible:o,onViewportFocusChange:i}=e,a=o;return f(()=>{if(a&&r.current){var e=r.current,t=e=>{["Escape","Tab"].includes(e.key)&&i(!1)},o=t=>{var r,o=e.contains(t.target),a=null===(r=n.current)||void 0===r?void 0:r.contains(t.target);o&&!a&&i(!1)};return e.addEventListener("keydown",t),e.addEventListener("mousedown",o),()=>{e.removeEventListener("keydown",t),e.removeEventListener("mousedown",o)}}},[a,r,n,i]),{showHint:a,handleFocus:()=>{"keyboard"===t&&i(!0)},handleBlur:()=>{i(!1)}}}({interfaceType:l,containerRef:p.viewportRef,keyboardHintRef:b,keyboardHintVisible:g,onViewportFocusChange:y});return f(()=>{var e;c&&s&&c!==s&&(null===(e=p.viewportRef)||void 0===e||e.current.focus())},[c]),f(()=>{var e,t=null===(e=p.mainRef)||void 0===e?void 0:e.current;if(t)return t.classList.toggle("im-o-app__main--keyboard-hint-visible",P),()=>null==t?void 0:t.classList.remove("im-o-app__main--keyboard-hint-visible")},[P]),_(w,{children:[E(jt,{mapContainerRef:m}),_("div",{id:"".concat(r,"-viewport"),className:"im-c-viewport im-c-viewport--".concat(u),"aria-label":o,role:"application",tabIndex:"0",onFocus:j,onBlur:R,ref:p.viewportRef,children:[P&&(null==t?void 0:t.current)&&O(E("div",{className:"im-c-viewport__keyboard-hint","aria-hidden":"true",ref:b,dangerouslySetInnerHTML:{__html:a}}),t.current),E("div",{className:"im-c-viewport__map-container",ref:m}),E("div",{className:"im-c-viewport__features"}),E(Tt,{}),E("div",{className:"im-c-viewport__safezone",style:d,ref:p.safeZoneRef,children:E(At,{})}),E(xt,{})]})]})};function Ht(e,t){var r=v(),n=v(new WeakMap);return f(()=>{var o=(Array.isArray(e)?e:[e]).map(e=>null==e?void 0:e.current).filter(Boolean);if(o.length&&t){var i=new window.ResizeObserver(e=>{for(var r of e){var{width:o,height:i}=r.contentRect,a=n.current.get(r.target)||{};a.width===o&&a.height===i||(n.current.set(r.target,{width:o,height:i}),t(r))}});return o.forEach(e=>i.observe(e)),()=>{i.disconnect(),r.current&&cancelAnimationFrame(r.current)}}},[e,t]),{frameRef:r}}var Ft=()=>{var{mapStyle:e}=qe();if(null!=e&&e.logo)return E("img",{className:"im-c-logo",src:e.logo,alt:e.logoAltText})},Ut=()=>{var{breakpoint:e}=Ye(),{mapStyle:t}=qe();return t?"mobile"!==e&&E("div",{className:"im-c-attributions",dangerouslySetInnerHTML:{__html:t.attribution}}):null},Vt=Object.freeze({SIDE:"side",BANNER:"banner",TOP_LEFT:"top-left",TOP_MIDDLE:"top-middle",TOP_RIGHT:"top-right",INSET:"inset",RIGHT_TOP:"right-top",RIGHT_BOTTOM:"right-bottom",MIDDLE:"middle",FOOTER_RIGHT:"footer-right",BOTTOM:"bottom",ACTIONS:"actions",MODAL:"modal"}),Gt=Object.freeze({control:[Vt.BANNER,Vt.TOP_LEFT,Vt.TOP_RIGHT,Vt.INSET,Vt.MIDDLE,Vt.FOOTER_RIGHT,Vt.BOTTOM,Vt.ACTIONS],panel:[Vt.SIDE,Vt.BANNER,Vt.INSET,Vt.MIDDLE,Vt.BOTTOM,Vt.ACTIONS,Vt.DRAWER,Vt.MODAL],button:[Vt.TOP_LEFT,Vt.TOP_MIDDLE,Vt.TOP_RIGHT,Vt.RIGHT_TOP,Vt.RIGHT_BOTTOM,Vt.ACTIONS]}),Wt=(e,t)=>e.modal?"modal":"bottom"===e.slot&&["tablet","desktop"].includes(t)?"inset":e.slot,Zt=(e,t)=>{var r;return!(e.includeModes&&!e.includeModes.includes(t))&&(null===(r=e.excludeModes)||void 0===r||!r.includes(t))},Kt=e=>"string"==typeof e.html&&!e.pluginId;var Yt=(e,t,r)=>{f(()=>{if(t){var n=t=>{"Escape"===t.key&&(t.stopPropagation(),t.preventDefault(),r()),"Tab"===t.key&&e.current&&function(e,t){if("Tab"===t.key){var r=Array.from(e.querySelectorAll(["a[href]:not([disabled])","button:not([disabled])","textarea:not([disabled])","input:not([disabled])","select:not([disabled])",'*[tabindex="0"]:not([disabled])'].join(",")));if(0!==(r=r.filter(e=>!!e.offsetParent)).length){var n=r[0],o=r[r.length-1];!t.shiftKey||document.activeElement!==e&&document.activeElement!==n||(o.focus(),t.preventDefault()),t.shiftKey||document.activeElement!==o||(n.focus(),t.preventDefault())}}}(e.current,t)},o=e.current;return null==o||o.addEventListener("keydown",n),()=>{null==o||o.removeEventListener("keydown",n)}}},[t,e,r])};function qt(e){var{mainRef:t,panelRef:r,isModal:n,rootEl:o,buttonContainerEl:i,handleClose:a}=e;Yt(r,n,a);var l=document.documentElement,s=Number.parseInt(getComputedStyle(l).getPropertyValue("--divider-gap"),10);Ht([t],()=>{if(n&&i&&t.current){var e=t.current.getBoundingClientRect(),r=i.getBoundingClientRect(),o=r.top-e.top,a=Math.round(e.right-r.right+r.width+s);l.style.setProperty("--modal-inset","".concat(o,"px ").concat(a,"px auto auto"))}}),f(()=>{if(n){var e=e=>{var t=e.target.closest(".im-o-app__modal-backdrop");o&&t&&o.contains(t)&&a()};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}},[n,o,a]),f(()=>{if(n&&r.current&&o)return c({containerEl:r.current,isFullscreen:!0,boundaryEl:o}),()=>{c({containerEl:r.current,isFullscreen:!1,boundaryEl:o})}},[n,r,o]),((e,t,r)=>{f(()=>{if(e){var n=e=>{var n=e.target,o=t.current;if(n&&o&&r){var i=r.contains(n),a=o.contains(n);i&&!a&&o.focus()}};return document.addEventListener("focusin",n),()=>{document.removeEventListener("focusin",n)}}},[e,t,r])})(n,r,o)}var Xt=e=>{var{id:t,svgContent:r}=e,n=pe()[t]||r;return E("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",dangerouslySetInnerHTML:{__html:n}})};function $t(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 Jt(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?$t(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$t(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Qt=(e,t)=>e?"dialog":t?"complementary":"region",er=e=>{var t,r,n,{panelId:o,panelConfig:i,props:a,WrappedChild:l,label:c,html:s,children:p,isOpen:d=!0,rootRef:u}=e,{id:m}=S(),{dispatch:y,breakpoint:O,layoutRefs:P}=Ye(),w=document.getElementById("".concat(m,"-im-app")),j=i[O],R="".concat(m,"-panel-").concat(Bt(o)),{isDialog:T,isModal:D,isDismissable:A,shouldFocus:k,buttonContainerEl:C}=((e,t)=>{var r="side"===e.slot&&e.open&&!e.modal,n=!r&&e.dismissible,o=!0===e.modal;return{isAside:r,isDialog:n,isModal:o,isDismissable:!1!==e.dismissible,shouldFocus:Boolean(o||t),buttonContainerEl:e.slot.endsWith("button")?null==t?void 0:t.parentNode:void 0}})(j,null==a?void 0:a.triggeringElement),M=D&&d,I=P.mainRef,L=v(null),N=v(null),B=v(d),x=function(e){var[t,r]=h(!1),n=b(()=>{var t=null==e?void 0:e.current;t&&r(t.scrollHeight>t.clientHeight)},[e]);return Ht(e,n),t}(N),z=u||L,H=()=>{requestAnimationFrame(()=>{var e,t;null===(e=(t=(null==a?void 0:a.triggeringElement)||P.viewportRef.current).focus)||void 0===e||e.call(t)}),y({type:"CLOSE_PANEL",payload:o})};qt({mainRef:I,panelRef:z,isModal:M,rootEl:w,buttonContainerEl:C,handleClose:H}),f(()=>{var e,t=d&&!B.current;(B.current=d,k&&(t||d))&&(null===(e=z.current)||void 0===e||e.focus())},[d]);var F,U,V=(F=j.slot,U=null===(t=j.showLabel)||void 0===t||t,["im-c-panel","im-c-panel--".concat(F),!U&&"im-c-panel--no-heading"].filter(Boolean).join(" ")),G=((e,t)=>["im-c-panel__body",!e&&t&&"im-c-panel__body--offset"].filter(Boolean).join(" "))(null===(r=j.showLabel)||void 0===r||r,A),W=g(()=>s?{__html:s}:null,[s]),Z=(e=>{var{elementId:t,shouldFocus:r,isDialog:n,isDismissable:o,isModal:i,width:a,panelClass:l}=e;return{id:t,"aria-labelledby":"".concat(t,"-label"),tabIndex:r?-1:void 0,role:Qt(n,o),"aria-modal":n&&i?"true":void 0,style:a?{width:a}:void 0,className:l}})({elementId:R,shouldFocus:k,isDialog:T,isDismissable:A,isModal:D,width:j.width,panelClass:V}),K=(e=>{var{bodyRef:t,panelBodyClass:r,isBodyScrollable:n,elementId:o}=e;return{ref:t,className:r,tabIndex:n?0:void 0,role:n?"region":void 0,"aria-labelledby":n?"".concat(o,"-label"):void 0}})({bodyRef:N,panelBodyClass:G,isBodyScrollable:x,elementId:R});return _("div",Jt(Jt({ref:z},Z),{},{children:[E("h2",{id:"".concat(R,"-label"),className:null===(n=j.showLabel)||void 0===n||n?"im-c-panel__heading im-e-heading-m":"im-u-visually-hidden",children:c}),A&&E("button",{"aria-label":"Close ".concat(c),className:"im-c-panel__close",onClick:H,children:E(Xt,{id:"close"})}),W?E("div",Jt(Jt({},K),{},{dangerouslySetInnerHTML:W})):_("div",Jt(Jt({},K),{},{children:[" ",l?E(l,Jt({},a)):p]}))]}))};function tr(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 rr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?tr(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):tr(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function nr(e){var{slot:t,appState:r,evaluateProp:n}=e,{breakpoint:o,pluginRegistry:i,panelConfig:a,mode:l,openPanels:c}=r,s=Object.entries(c),p=s.filter(e=>{var t,[r]=e,n=null===(t=a[r])||void 0===t?void 0:t[o];return null==n?void 0:n.modal}),d=p.length>0?p[p.length-1][0]:null;return s.map(e=>{var c,[s,{props:p}]=e,u=a[s];if(!u)return null;if(Kt(u))return null;var f=u[o];if(!f)return null;var v=Wt(f,o);if(!((e,t,r,n)=>{var{targetSlot:o,slot:i,mode:a,isFullscreen:l,allowedModalPanelId:c}=n,s="".concat(Bt(e),"-button")===o;return!(!Gt.panel.includes(o)&&!s||!Zt(t,a)||!1===t.inline&&!l||o!==i||r.modal&&e!==c)})(s,u,f,{targetSlot:v,slot:t,mode:l,isFullscreen:r.isFullscreen,allowedModalPanelId:d}))return null;var m=i.registeredPlugins.find(e=>e.id===u.pluginId),b=null==m?void 0:m.id,g=u.render?et(u.render,rr(rr({},p),{},{pluginId:b,pluginConfig:null==m?void 0:m.config})):null;return{id:s,type:"panel",order:null!==(c=f.order)&&void 0!==c?c:0,element:E(er,{panelId:s,panelConfig:u,props:p,WrappedChild:g,label:n(u.label,b),html:b?n(u.html,b):u.html},s)}}).filter(Boolean)}var or=0,ir=e=>{var{children:t,content:r}=e,{interfaceType:n}=Ye(),o=v(null),i=v(null),[a,l]=h(!1),[c,s]=h(!1),[p,d]=h(null),[u]=h(()=>"tooltip-".concat(or+=1)),m=v(null),b=v(null),g=()=>{clearTimeout(m.current),l(!1)},y=()=>{clearTimeout(b.current),m.current=setTimeout(()=>l(!0),500)},O=()=>{clearTimeout(m.current),b.current=setTimeout(()=>l(!1),0)};f(()=>{var e=e=>{"Escape"===e.key&&(clearTimeout(m.current),clearTimeout(b.current),l(!1))};if(window.addEventListener("keydown",e),a){var t=function(e,t){if(!e)return"bottom";t||(t=e.closest(".im-o-app__main"));var r=e.getBoundingClientRect(),n=t.getBoundingClientRect(),o={top:r.top-n.top,bottom:n.bottom-r.bottom,left:r.left-n.left,right:n.right-r.right},i=Object.entries(o),a=i.toSorted((e,t)=>{var[,r]=e,[,n]=t;return r-n}),[l,c]=a[0];if("top"===l||"bottom"===l)for(var[s,p]of i)if(("left"===s||"right"===s)&&Math.abs(p-c)<=50)return"left"===s?"right":"left";return{top:"bottom",bottom:"top",left:"right",right:"left"}[l]}(o.current);d(t)}return()=>{window.removeEventListener("keydown",e),clearTimeout(m.current),clearTimeout(b.current)}},[a]);var w=P(t,{ref:e=>{var r;o.current=e;var n=null===(r=t.props)||void 0===r?void 0:r.ref;"function"==typeof n?n(e):n&&"object"==typeof n&&(n.current=e)},onMouseEnter:y,onMouseLeave:O,onMouseDown:g,onKeyDown:g,onFocus:()=>{"keyboard"===n&&y(),s(!0)},onBlur:()=>{O(),s(!1)},"aria-labelledby":u});return _("div",{className:"im-c-tooltip-wrapper".concat(c?" im-c-tooltip-wrapper--has-focus":""),children:[w,E("div",{id:u,ref:i,className:"im-c-tooltip im-c-tooltip--".concat(p||"hidden"," ").concat(a?"im-c-tooltip--is-visible":""),role:"tooltip","aria-hidden":!a,children:r})]})},ar=e=>{var{popupMenuId:t,buttonId:r,instigatorId:n,pluginId:o,startPos:i,startIndex:a,menuRef:l,items:c,setIsOpen:s}=e,{id:p}=S(),{buttonRefs:d,buttonConfig:u,hiddenButtons:v,disabledButtons:m,pressedButtons:b}=Ye(),y=null!=r?r:n,O=d.current[y],P=lt(),w=g(()=>{var e=[];return c.forEach((t,r)=>{v.has(t.id)||e.push(r)}),e},[c,v]),[j,R]=h(()=>{return"number"==typeof a?a:"first"===i?null!==(e=w[0])&&void 0!==e?e:-1:"last"===i&&null!==(t=w[w.length-1])&&void 0!==t?t:-1;var e,t}),T=function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&null!=e&&e.preventDefault&&e.preventDefault(),O.focus(),s(!1)},D=(e,t)=>{var r=u[t.id];if("function"==typeof(null==r?void 0:r.onClick)?r.onClick(e,P(e=>e,o)):"function"==typeof t.onClick&&t.onClick(e.nativeEvent),e.nativeEvent instanceof KeyboardEvent){var n=document.getElementById("".concat(p,"-").concat(Bt(t.id)));if(n){var i=new MouseEvent("click",{bubbles:!0,cancelable:!0});i._fromKeyboardActivation=!0,n.dispatchEvent(i)}}},A=e=>{var t,r;null!==(t=l.current)&&void 0!==t&&t.contains(e.target)||null!==(r=d.current[y])&&void 0!==r&&r.contains(e.target)||s(!1)};return f(()=>{var e,t;if(null===(e=l.current)||void 0===e||e.focus(),"first"===i)R(null!==(t=w[0])&&void 0!==t?t:-1);else if("last"===i){var r;R(null!==(r=w[w.length-1])&&void 0!==r?r:-1)}return document.addEventListener("focusin",A),document.addEventListener("pointerdown",A),()=>{document.removeEventListener("focusin",A),document.removeEventListener("pointerdown",A)}},[]),E("ul",{ref:l,id:t,className:"im-c-popup-menu",role:"menu",tabIndex:"-1","aria-labelledby":y,"aria-activedescendant":j>=0?"".concat(p,"-").concat(Bt(c[j].id)):void 0,onKeyDown:e=>{["Escape","Esc"].includes(e.key)?T(e,!0):"Tab"!==e.key?["ArrowDown","ArrowUp"].includes(e.key)?(e=>{e.preventDefault();var t=w,r=t.length;if(0!==r){var n,o=t.indexOf(j);n="ArrowDown"===e.key?-1===o?0:(o+1)%r:-1===o?r-1:(o-1+r)%r,R(t[n])}})(e):"Home"===e.key&&w.length?R(w[0]):"End"===e.key&&w.length?R(w[w.length-1]):("Enter"===e.key&&(e=>{e.preventDefault();var t=c[j];t&&!m.has(t.id)&&D(e,t),O.focus(),s(!1)})(e)," "===e.key&&(e=>{e.preventDefault();var t=c[j];if(t&&!m.has(t.id)){var r=void 0!==t.isPressed||t.pressedWhen;D(e,t),r||(O.focus(),s(!1))}})(e)):T(e)},children:c.map((e,t)=>_("li",{id:"".concat(p,"-").concat(Bt(c[t].id)),className:"im-c-popup-menu__item".concat(j===t?" im-c-popup-menu__item--selected":""),role:void 0!==c[t].isPressed||c[t].pressedWhen?"menuitemcheckbox":"menuitem","aria-disabled":m.has(c[t].id)||void 0,"aria-checked":void 0!==c[t].isPressed||c[t].pressedWhen?b.has(c[t].id):void 0,style:v.has(c[t].id)?{display:"none"}:void 0,onClick:e=>((e,t)=>{e.nativeEvent._fromKeyboardActivation||m.has(t.id)||(s(!1),D(e,t))})(e,c[t]),children:[(e.iconId||e.iconSvgContent)&&E(Xt,{id:e.iconId,svgContent:e.iconSvgContent}),E("span",{className:"im-c-popup-menu__item-label",children:e.label})]},e.id))})};function lr(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 cr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?lr(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var sr=(e,t,r)=>["im-c-map-button",e&&"im-c-map-button--".concat(Bt(e)),t&&"im-c-map-button--".concat(t),r&&"im-c-map-button--with-label"].filter(Boolean).join(" "),pr=(e,t)=>["im-c-button-wrapper",e&&"im-c-button-wrapper--".concat(Bt(e)),t&&"im-c-button-wrapper--wide"].filter(Boolean).join(" "),dr=e=>{" "!==e.key&&"Spacebar"!==e.key||(e.preventDefault(),e.currentTarget.click())},ur=e=>{var{buttonId:t,iconId:r,iconSvgContent:n,label:o,showLabel:i,isDisabled:a,isPressed:l,isExpanded:c,isHidden:s,isPanelOpen:p,variant:d,onClick:u,panelId:f,menuItems:m,idPrefix:b,href:g}=e,{id:y}=S(),{buttonRefs:O}=Ye(),[P,w]=h(!1),[j,R]=h(null),T=v(null),D=g?"a":"button",A=(null==m?void 0:m.length)>=1,k=(e=>{var{idPrefix:t,panelId:r,buttonId:n,hasMenu:o}=e;return r?{id:"".concat(t,"-panel-").concat(Bt(r)),type:"panel"}:o?{id:"".concat(t,"-popup-").concat(Bt(n)),type:"popup"}:null})({idPrefix:b,panelId:f,buttonId:t,hasMenu:A}),C=(e=>{var t,{appId:r,buttonId:n,className:o,onClick:i,onKeyUp:a,buttonRefs:l,isDisabled:c,isPressed:s,isExpanded:p,isPanelOpen:d,isPopupOpen:u,controlledElement:f,href:v}=e;return"panel"===(null==f?void 0:f.type)?t=String(d):"popup"===(null==f?void 0:f.type)?t=u:"boolean"==typeof p&&(t=p),cr({id:"".concat(r,"-").concat(Bt(n)),className:o,onClick:i,onKeyUp:a,ref:e=>{l.current&&n&&(l.current[n]=e)},"aria-disabled":c||void 0,"aria-expanded":t,"aria-pressed":"boolean"==typeof s?s:void 0,"aria-controls":null==f?void 0:f.id,"aria-haspopup":"popup"===(null==f?void 0:f.type)||void 0},v?{href:v,target:"_blank",onKeyUp:dr,role:"button"}:{type:"button"})})({appId:y,buttonId:t,className:sr(t,d,i),onClick:e=>{if(!a){if("popup"===(null==k?void 0:k.type)){var t=""===e.nativeEvent.pointerType;R(t?"first":null),w(e=>!e)}u&&u(e)}},onKeyUp:e=>{A&&["ArrowDown","ArrowUp"].includes(e.key)&&(e.preventDefault(),R("ArrowUp"===e.key?"last":"first"),w(!0))},buttonRefs:O,isDisabled:a,isPressed:l,isExpanded:c,isPanelOpen:p,isPopupOpen:P,controlledElement:k,href:g}),M=_(D,cr(cr({},C),{},{children:[(r||n)&&E(Xt,{id:r,svgContent:n}),i&&E("span",{children:o})]}));return _("div",{className:pr(t,i),style:s?{display:"none"}:void 0,children:[i?M:E(ir,{content:o,children:M}),f&&E(Or,{slot:"".concat(Bt(t),"-button")}),P&&E(ar,{popupMenuId:k.id,buttonId:t,startPos:j,menuRef:T,items:m,setIsOpen:w})]})};function fr(e){var t,r,{btn:n,appState:o,appConfig:i,evaluateProp:a}=e,[l,c]=n,s=null!==(t=c[o.breakpoint])&&void 0!==t?t:{},p=function(e,t,r){var[,n]=e,o=!(!n.panelId||!t.openPanels[n.panelId]);return e=>{if("function"!=typeof n.onClick){if(n.panelId){var i=e.currentTarget;t.dispatch({type:o?"CLOSE_PANEL":"OPEN_PANEL",payload:o?n.panelId:{panelId:n.panelId,props:{triggeringElement:i}}})}}else n.onClick(e,r(e=>e,n.pluginId))}}(n,o,a),d=!(!c.panelId||!o.openPanels[c.panelId]);return E(ur,{buttonId:l,iconId:a(c.iconId,c.pluginId),iconSvgContent:a(c.iconSvgContent,c.pluginId),variant:c.variant,label:a(c.label,c.pluginId),href:a(c.href,c.pluginId),showLabel:null===(r=s.showLabel)||void 0===r||r,isDisabled:o.disabledButtons.has(l),isHidden:o.hiddenButtons.has(l),isPressed:void 0!==c.isPressed||c.pressedWhen?o.pressedButtons.has(l):void 0,isExpanded:void 0!==c.isExpanded||c.expandedWhen?o.expandedButtons.has(l):void 0,isPanelOpen:d,onClick:p,panelId:c.panelId,menuItems:c.menuItems,idPrefix:i.id},l)}function vr(e){var{slot:t,appState:r,appConfig:n,evaluateProp:o}=e,{buttonConfig:i,breakpoint:a}=r,l=function(e){var{appState:t,buttonConfig:r,slot:n,evaluateProp:o}=e,{breakpoint:i,mode:a}=t;return r?Object.entries(r).filter(e=>{var r,l,[c,s]=e,p=s[i];if(s.isMenuItem)return!1;if("function"==typeof s.excludeWhen&&o(s.excludeWhen,s.pluginId))return!1;if(s.includeModes&&(null===(r=s.includeModes)||void 0===r||!r.includes(a)))return!1;if(null!==(l=s.excludeModes)&&void 0!==l&&l.includes(a))return!1;if(!1===s.inline&&!t.isFullscreen)return!1;if(s.panelId){var d,u=null===(d=t.panelConfig)||void 0===d||null===(d=d[s.panelId])||void 0===d?void 0:d[i];if(!0===(null==u?void 0:u.open)&&!1===(null==u?void 0:u.dismissible))return!1}return!((null==p?void 0:p.slot)!==n||!Gt.button.includes(p.slot))}):[]}({appState:r,buttonConfig:i,slot:t,evaluateProp:o});if(!l.length)return[];var c=new Map,s=[];l.forEach(e=>{var[t,r]=e,{group:n}=r;if(null!=n){var o=function(e){var t;return null==e?null:"string"==typeof e?e:null!==(t=e.name)&&void 0!==t?t:null}(n),i=function(e){var t,r;return e?"string"==typeof e?e:null!==(t=null!==(r=e.label)&&void 0!==r?r:e.name)&&void 0!==t?t:"":""}(n),a=function(e){var t;return e&&"string"!=typeof e&&null!==(t=e.order)&&void 0!==t?t:0}(n);c.has(o)?c.get(o):c.set(o,{label:i,order:a,members:[]}),c.get(o).members.push([t,r])}else s.push([t,r])});var p=[];for(var d of s){var u,f,[v,m]=d,b=null!==(u=null===(f=m[a])||void 0===f?void 0:f.order)&&void 0!==u?u:0;p.push({id:v,type:"button",order:b,element:fr({btn:d,appState:r,appConfig:n,evaluateProp:o})})}for(var[g,{label:y,order:h,members:O}]of c)if(O.length<2){var P,_=O[0],[w,j]=_,S=h||(null===(P=j[a])||void 0===P?void 0:P.order)||0;p.push({id:w,type:"button",order:S,element:fr({btn:_,appState:r,appConfig:n,evaluateProp:o})})}else{var R=[...O].sort((e,t)=>{var r,n,o,i;return(null!==(r=null===(n=e[1][a])||void 0===n?void 0:n.order)&&void 0!==r?r:0)-(null!==(o=null===(i=t[1][a])||void 0===i?void 0:i.order)&&void 0!==o?o:0)});p.push({id:"group-".concat(g),type:"group",order:h,element:E("div",{role:"group","aria-label":y,className:"im-c-button-group",children:R.map(e=>fr({btn:e,appState:r,appConfig:n,evaluateProp:o}))},"group-".concat(g))})}return p}var mr=["evaluateProp"];function br(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 gr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?br(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):br(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function yr(e){var{evaluateProp:r}=e,n=t(e,mr),o=function(e){var{slot:t,appState:r,evaluateProp:n}=e,{breakpoint:o,mode:i,pluginRegistry:a,controlConfig:l}=r;return Object.values(l).filter(e=>{var n,a,l,c;if(Kt(e))return!1;var s=e[o];if(!s)return!1;var p=Gt.control.includes(s.slot),d=null===(n=null===(a=e.includeModes)||void 0===a?void 0:a.includes(i))||void 0===n||n,u=null!==(l=null===(c=e.excludeModes)||void 0===c?void 0:c.includes(i))&&void 0!==l&&l;return!(!1===e.inline&&!r.isFullscreen)&&d&&!u&&s.slot===t&&p}).map(e=>{var t,r,i,l=a.registeredPlugins.find(t=>{var r;return null===(r=t.manifest)||void 0===r||null===(r=r.controls)||void 0===r?void 0:r.some(t=>t.id===e.id)}),c=null==l?void 0:l.id;if(e.html)i=E("div",{className:"im-c-control",dangerouslySetInnerHTML:{__html:n(e.html,c)}},e.id);else{var s=et(e.render,{pluginId:c,pluginConfig:null==l?void 0:l.config});i=E(s,{},e.id)}return{id:e.id,type:"control",order:null!==(t=null===(r=e[o])||void 0===r?void 0:r.order)&&void 0!==t?t:0,element:i}})}(gr({evaluateProp:r},n)),i=[...o,...nr(gr({evaluateProp:r},n)),...vr(gr({evaluateProp:r},n))],a=i.filter(e=>null==e.order||0===e.order),l=i.filter(e=>null!=e.order&&0!==e.order);l.sort((e,t)=>e.order-t.order);var c=[...a];for(var s of l){var p=Math.min(Math.max(s.order-1,0),c.length);c.splice(p,0,s)}return c}var hr=e=>{var{children:t}=e,{openPanels:r,panelConfig:n,breakpoint:o}=Ye(),i=["im-c-panel","im-c-actions",!p.Children.toArray(t).find(e=>{var t;return!1===(null===(t=e.props)||void 0===t?void 0:t.isHidden)})&&"im-c-actions--hidden",Object.keys(r).some(e=>{var t;return"mobile"===o&&"bottom"===(null===(t=n[e])||void 0===t||null===(t=t[o])||void 0===t?void 0:t.slot)})&&"im-c-actions--border-top"].filter(Boolean).join(" ");return E("div",{className:i,children:t})},Or=e=>{var{slot:t}=e,r=yr({slot:t,appConfig:S(),appState:Ye(),evaluateProp:lt()});return r.length?E(w,{children:"actions"===t?E(hr,{slot:t,children:r.map(e=>e.element)}):E(w,{children:r.map(e=>e.element)})}):null},Pr=(e,t,r,n,o)=>{y(()=>{var o=e.current;if(r){var i=((e,t)=>({side:t.sideRef,banner:t.bannerRef,"top-left":t.topLeftColRef,"top-right":t.topRightColRef,inset:t.insetRef,middle:t.middleRef,bottom:t.bottomRef,actions:t.actionsRef,modal:t.modalRef}[e]||null))(t,n);if(null!=i&&i.current){var a=i.current.querySelector(":scope > .im-o-app__modal-backdrop");a?i.current.insertBefore(o,a):i.current.appendChild(o),o.style.display=""}}else{var l,c;if(o.parentElement===(null===(l=n.modalRef)||void 0===l?void 0:l.current))null===(c=n.appContainerRef)||void 0===c||null===(c=c.current)||void 0===c||c.appendChild(o);o.style.display="none"}return()=>{o.style.display="none"}},[r,t,n,o,e])},Er=e=>{var{panelId:t,config:r,isOpen:n,openPanelProps:o,allowedModalPanelId:i,appState:a}=e,l=v(null),{breakpoint:c,mode:s,isFullscreen:p,layoutRefs:d}=a,u=r[c],f=u?Wt(u,c):null,m=(()=>{if(!n||!u||!f)return!1;var e="".concat(Bt(t),"-button")===f;if(!(Gt.panel.includes(f)||e))return!1;var o=u.modal&&t!==i,a=!1===r.inline&&!p,l=!Zt(r,s);return!(o||a||l)})();return Pr(l,f,m,d,c),E(er,{panelId:t,panelConfig:r,props:o,html:r.html,label:r.label,isOpen:n,rootRef:l})},_r=e=>{var{control:t,appState:r}=e,n=v(null),{breakpoint:o,mode:i,isFullscreen:a,layoutRefs:l}=r,c=t[o],s=((e,t)=>{var{breakpoint:r,mode:n,isFullscreen:o}=t,i=e[r];return!(!i||!Gt.control.includes(i.slot)||!Zt(e,n)||!1===e.inline&&!o)})(t,{breakpoint:o,mode:i,isFullscreen:a}),p=(null==c?void 0:c.slot)||null;Pr(n,p,s,l,o);var d=g(()=>({__html:t.html}),[t.html]);return E("div",{ref:n,className:"im-c-control",style:{display:"none"},dangerouslySetInnerHTML:d})},wr=()=>{var e=Ye(),{panelConfig:t={},controlConfig:r={},openPanels:n={},breakpoint:o}=e,i=g(()=>Object.entries(t).filter(e=>{var[t,r]=e;return Kt(r)}),[t]),a=g(()=>Object.values(r).filter(e=>Kt(e)),[r]),l=g(()=>{var e=Object.entries(n).filter(e=>{var r,[n]=e,i=null===(r=t[n])||void 0===r?void 0:r[o];return null==i?void 0:i.modal});return e.length>0?e[e.length-1][0]:null},[n,t,o]);return i.length||a.length?_(w,{children:[i.map(t=>{var r,[o,i]=t;return E(Er,{panelId:o,config:i,isOpen:!!n[o],openPanelProps:null===(r=n[o])||void 0===r?void 0:r.props,allowedModalPanelId:l,appState:e},o)}),a.map(t=>E(_r,{control:t,appState:e},t.id))]}):null},jr=()=>{var{id:e}=S(),{breakpoint:t,interfaceType:r,preferredColorScheme:n,layoutRefs:o,isLayoutReady:i,hasExclusiveControl:a,isFullscreen:l}=Ye(),{mapStyle:c}=qe();return function(){var{dispatch:e,breakpoint:t,layoutRefs:r}=Ye(),{mapSize:n,isMapReady:o}=qe(),{appContainerRef:i,mainRef:a,bannerRef:l,topRef:c,topLeftColRef:s,topRightColRef:p,insetRef:d,footerRef:u,actionsRef:f}=r,v=()=>{var e=i.current,t=a.current,r=c.current,n=s.current,o=p.current,l=d.current,v=u.current,m=f.current;if(t&&r&&l&&v){var b=document.documentElement,g=Number.parseInt(getComputedStyle(b).getPropertyValue("--divider-gap"),10),y=n.offsetHeight+r.offsetTop,h=t.offsetHeight-y-r.offsetTop;e.style.setProperty("--inset-offset-top","".concat(y,"px")),e.style.setProperty("--inset-max-height","".concat(h,"px"));var O=l.offsetHeight+y,P=Math.min(v.offsetTop,m.offsetTop)-g>O?0:l.offsetLeft+l.offsetWidth;e.style.setProperty("--offset-left","".concat(P,"px"));var E=o.offsetHeight+r.offsetTop,_=t.offsetHeight-v.offsetTop+g;e.style.setProperty("--right-offset-top","".concat(E,"px")),e.style.setProperty("--right-offset-bottom","".concat(_,"px"));var w=n.offsetWidth||0,j=o.offsetWidth||0,S=w||j?Math.max(w,j):0;e.style.setProperty("--top-col-width","".concat(S,"px"))}};y(()=>{requestAnimationFrame(()=>{v();var t=Pt(r);e({type:"SET_SAFE_ZONE_INSET",payload:{safeZoneInset:t}})})},[t,n,o]),Ht([l,a,c,s,p,f,u],()=>{requestAnimationFrame(()=>{v()})})}(),function(){var{interfaceType:e,layoutRefs:t}=Ye(),r=v(e);r.current=e,f(()=>{if(t.appContainerRef.current)return document.addEventListener("focusin",e),document.addEventListener("focusout",n),document.addEventListener("pointerdown",o),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",n),document.removeEventListener("pointerdown",o)};function e(e){e.target.dataset.focusVisible="keyboard"===r.current}function n(e){delete e.target.dataset.focusVisible}function o(){delete document.activeElement.dataset.focusVisible}},[t.appContainerRef])}(),_("div",{id:"".concat(e,"-im-app"),className:["im-o-app","im-o-app--".concat(t),"im-o-app--".concat(r),"im-o-app--".concat(l?"fullscreen":"inline"),"im-o-app--".concat((null==c?void 0:c.appColorScheme)||n,"-app"),"im-o-app--".concat((null==c?void 0:c.mapColorScheme)||"light","-map"),a&&"im-o-app--exclusive-control"].filter(Boolean).join(" "),style:{backgroundColor:(null==c?void 0:c.backgroundColor)||void 0},ref:o.appContainerRef,children:[E(zt,{keyboardHintPortalRef:o.topRef}),_("div",{className:"im-o-app__overlay".concat(i?"":" im-o-app__overlay--not-ready"),children:[E("div",{className:"im-o-app__side",ref:o.sideRef,children:E(Or,{slot:Vt.SIDE})}),_("div",{className:"im-o-app__main",ref:o.mainRef,children:[["mobile","tablet"].includes(t)&&E("div",{className:"im-o-app__banner",ref:o.bannerRef,children:E(Or,{slot:Vt.BANNER})}),_("div",{className:"im-o-app__top",ref:o.topRef,children:[E("div",{className:"im-o-app__top-col",ref:o.topLeftColRef,children:E(Or,{slot:Vt.TOP_LEFT})}),_("div",{className:"im-o-app__top-col",children:[E(Or,{slot:Vt.TOP_MIDDLE}),["desktop"].includes(t)&&E("div",{className:"im-o-app__banner",ref:o.bannerRef,children:E(Or,{slot:Vt.BANNER})})]}),E("div",{className:"im-o-app__top-col",ref:o.topRightColRef,children:E(Or,{slot:Vt.TOP_RIGHT})})]}),E("div",{className:"im-o-app__inset",ref:o.insetRef,children:E(Or,{slot:Vt.INSET})}),_("div",{className:"im-o-app__right",ref:o.rightRef,children:[E("div",{className:"im-o-app__right-top",children:E(Or,{slot:Vt.RIGHT_TOP})}),E("div",{className:"im-o-app__right-bottom",children:E(Or,{slot:Vt.RIGHT_BOTTOM})})]}),E("div",{className:"im-o-app__middle",ref:o.middleRef,children:E(Or,{slot:Vt.MIDDLE})}),_("div",{className:"im-o-app__footer",ref:o.footerRef,children:[E("div",{className:"im-o-app__footer-col",children:E(Ft,{})}),_("div",{className:"im-o-app__footer-col",children:[E(Or,{slot:Vt.FOOTER_RIGHT}),E("div",{className:"im-o-app__attributions",children:E(Ut,{})})]})]}),E("div",{className:"im-o-app__bottom",ref:o.bottomRef,children:E(Or,{slot:Vt.BOTTOM})}),E("div",{className:"im-o-app__actions",ref:o.actionsRef,children:E(Or,{slot:Vt.ACTIONS})}),_("div",{className:"im-o-app__modal",ref:o.modalRef,children:[E(Or,{slot:Vt.MODAL}),E("div",{className:"im-o-app__modal-backdrop"})]})]})]}),E(wr,{})]})},Sr=e=>(f(()=>{s(),e.eventBus.emit(i.APP_READY)},[]),E(Ae,{options:e,children:E(ze,{options:e,children:E(Ue,{eventBus:e.eventBus,children:_(Ze,{children:[E(dt,{}),E(jr,{})]})})})})),Rr=["id","load","manifest"],Tr=["InitComponent","api","reducer"],Dr=["MapProvider","mapProviderConfig","mapFramework","plugins"];function Ar(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 kr(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?Ar(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ar(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Cr=new WeakMap,Mr=new WeakMap,Ir=new WeakMap,Lr=e=>{var t,r,n=Ir.get(e);if(!n){var o=X(),i=(r={},{registerPanel:e=>{r=ee(r,e)},addPanel:(e,t)=>(r=te(r,e,t))[e],removePanel:e=>{r=re(r,e)},getPanelConfig:()=>r,clear:()=>{r={}}}),a=(t={},{registerControl:e=>{t=ie(t,e)},addControl:(e,r)=>(t=ae(t,e,r))[e],getControlConfig:()=>t,clear:()=>{t={}}});n={buttonRegistry:o,panelRegistry:i,controlRegistry:a,pluginRegistry:ve({registerButton:o.registerButton,registerPanel:i.registerPanel,registerControl:a.registerControl})},Ir.set(e,n)}return n},Nr=function(){var e=r(function*(e,r){for(var n of e)if("function"==typeof n.load){var o=yield n.load(),{id:i,load:a,manifest:l}=n,c=t(n,Rr),{InitComponent:s,api:p,reducer:d}=o;r({id:i,InitComponent:s,api:p,reducer:d,config:c,manifest:ge(t(o,Tr),l),_originalPlugin:n})}});return function(t,r){return e.apply(this,arguments)}}();function Br(e,t){return xr.apply(this,arguments)}function xr(){return xr=r(function*(e,r){var o,{MapProvider:a,mapProviderConfig:l,mapFramework:c,plugins:s=[]}=r,p=t(r,Dr),{eventBus:d}=p,u=Mr.get(e);u||(u=new a({mapFramework:c,mapProviderConfig:l,events:i,eventBus:d}),Mr.set(e,u)),null!==(o=u.capabilities)&&void 0!==o&&o.supportedShortcuts&&function(){A=new Set(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}(u.capabilities.supportedShortcuts);var{buttonRegistry:f,panelRegistry:v,controlRegistry:m,pluginRegistry:b}=Lr(e),{registerPlugin:g}=b;b.clear(),g({id:"appConfig",manifest:B});var y=Cr.get(e);y||(y=n(e),Cr.set(e,y));var h={_root:y,on:d.on,off:d.off,emit:d.emit,unmount(){var t,r;y.unmount(),Cr.delete(e),null===(t=(r=u).destroyMap)||void 0===t||t.call(r),Mr.delete(e),b.clear()}};return yield Nr(s,g),y.render(E(Sr,kr(kr({},p),{},{buttonRegistry:f,panelRegistry:v,controlRegistry:m,pluginRegistry:b,mapProvider:u}))),h}),xr.apply(this,arguments)}export{Br as initialiseApp};
|
package/dist/esm/im-shell.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";var r=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null===(t=window.location)||void 0===t?void 0:t.search;return new URLSearchParams(r).get(e)},n=e=>{var{behaviour:t,hybridWidth:r,maxMobileWidth:n}=e;if("hybrid"!==t)return!1;var i=null!=r?r:n;return window.matchMedia("(max-width: ".concat(i,"px)")).matches},i=e=>{var{behaviour:t}=e;return["mapOnly","buttonFirst"].includes(t)||n(e)},o={appColorScheme:"light",autoColorScheme:!1,backgroundColor:"var(--background-color)",behaviour:"buttonFirst",buttonClass:"im-c-open-map-button",buttonText:"Map view",containerHeight:"600px",deviceNotSupportedText:"Your device is not supported. A map is available with a more up-to-date browser or device.",enableFullscreen:!1,enableZoomControls:!1,genericErrorText:"There was a problem loading the map. Please try again later.",hasExitButton:!1,hybridWidth:null,keyboardHintText:'<span class="im-u-visually-hidden">Press </span><kbd>Alt</kbd> + <kbd>K</kbd> <span class="im-u-visually-hidden">to view </span>keyboard shortcuts',mapLabel:"Interactive map",mapProvider:null,mapSize:"small",mapViewParamKey:"mv",maxMobileWidth:640,minDesktopWidth:835,markerColor:"#ff0000",markerShape:"pin",nudgePanDelta:5,nudgeZoomDelta:.1,panDelta:100,pageTitle:"Map view",preserveStateOnClose:!1,readMapText:!1,reverseGeocodeProvider:null,zoomDelta:1};function a(e){var t,r;e._isHidden?null===(t=e.showApp)||void 0===t||t.call(e):null===(r=e.loadApp)||void 0===r||r.call(e)}function s(e){var t,r;e.config.preserveStateOnClose?null===(t=e.hideApp)||void 0===t||t.call(e):null===(r=e.removeApp)||void 0===r||r.call(e)}function l(){var e=r(o.mapViewParamKey);for(var t of c.values()){var i,l=t.id===e,d="hybrid"===t.config.behaviour&&!n(t.config),p=null===(i=t.rootEl)||void 0===i?void 0:i.children.length;!l||p&&!t._isHidden?l||!p||d||s(t):a(t)}}var c=new Map,d=!1;var p={register:function(e){d||(window.addEventListener("popstate",l),d=!0),c.set(e.id,e)},unregister:function(e){c.delete(e.id)}};function u(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 h(e){try{return JSON.parse(e)}catch(e){return console.log(e),null}}function v(e){var r=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?u(Object(n),!0).forEach(function(r){t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},null==e?void 0:e.dataset),n={};for(var i of Object.keys(r))n[i]=h(r[i]);return n}function m(e,t){e.innerHTML='<div class="im-c-error">'.concat(t,"</div>")}var f=(e,t,r,n)=>e!==t&&!(null!=r&&r.contains(e))&&e.matches(":not([aria-hidden]):not([data-fm-inert])")&&n.contains(e);function b(e){var t,{containerEl:r,isFullscreen:n,boundaryEl:i=document.body}=e,o=Array.from(i.querySelectorAll("[data-fm-inert]"));if(r&&(o=o.filter(e=>!r.contains(e))),o.forEach(e=>{e.removeAttribute("aria-hidden"),delete e.dataset.fmInert}),n){null===(t=document.activeElement)||void 0===t||t.blur();for(var a=r;null!==(s=a)&&void 0!==s&&s.parentNode&&a!==i&&a!==document.body;){var s,l=a.parentNode;for(var c of l.children)f(c,a,r,i)&&(c.setAttribute("aria-hidden","true"),c.dataset.fmInert="");a=l}}}function y(e){var{config:t,rootEl:i}=e,{pageTitle:a,behaviour:s,containerHeight:l}=t,c=function(e){var{id:t,behaviour:i}=e,a=r(o.mapViewParamKey)===t;return"mapOnly"===i||a&&("buttonFirst"===i||n(e))}(t);["mapOnly","buttonFirst","hybrid"].includes(s)&&(b({containerEl:i,isFullscreen:c}),document.documentElement.classList.toggle("im-is-fullscreen",c),i.classList.toggle("im-is-fullscreen",c)),["buttonFirst","hybrid"].includes(s)&&function(e){var{pageTitle:t,isFullscreen:r}=e,n=document.title.split(": "),i=n[n.length-1];document.title=r?"".concat(t,": ").concat(i):i}({pageTitle:a,isFullscreen:c});var d=c||"buttonFirst"!==s&&!n(t)?l:"auto";i.style.height=c?"100%":d}function P(){document.body.classList.remove("im-is-loading")}function _(e){var{id:t,behaviour:i}=e,a=r(o.mapViewParamKey)===t;return["mapOnly","inline"].includes(i)||"hybrid"===i&&!n(e)||a}function E(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 g(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?E(Object(n),!0).forEach(function(r){t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function A(e){var t,{maxMobileWidth:r,minDesktopWidth:n,containerEl:i}=e,o="unknown",a=new Set,s=e=>{e!==o&&(o=e,requestAnimationFrame(()=>{o===e&&a.forEach(t=>t(e))}))};if(i){var l=function(e,t,r){e.style.containerType="inline-size";var n=e.getBoundingClientRect().width,i=t(n);e.dataset.breakpoint=i;var o=new window.ResizeObserver(n=>{var i,o,a=(null===(i=n[0])||void 0===i||null===(i=i.borderBoxSize)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.inlineSize)||(null===(o=n[0])||void 0===o?void 0:o.contentRect.width),s=t(a);e.dataset.breakpoint=s,r(s)});return o.observe(e),{initialType:i,cleanup:()=>{o.disconnect(),e.style.containerType="",delete e.dataset.breakpoint}}}(i,e=>function(e,t,r){return e<=t?"mobile":e>=r?"desktop":"tablet"}(e,r,n),s);o=l.initialType,s(l.initialType),t=l.cleanup}else{var c=function(e,t,r){var n={mobile:window.matchMedia("(max-width: ".concat(e,"px)")),desktop:window.matchMedia("(min-width: ".concat(t,"px)"))},i=()=>{var e="tablet";n.mobile.matches?e="mobile":n.desktop.matches&&(e="desktop"),r(e)};return n.mobile.addEventListener("change",i),n.desktop.addEventListener("change",i),i(),{cleanup:()=>{n.mobile.removeEventListener("change",i),n.desktop.removeEventListener("change",i)}}}(r,n,s);t=c.cleanup}return{subscribe:e=>(a.add(e),()=>a.delete(e)),getBreakpoint:()=>o,destroy:()=>{var e;null===(e=t)||void 0===e||e(),a.clear()}}}var w=window.matchMedia("(pointer: coarse)").matches?"touch":"unknown",O=new Set;function D(e){w!==e&&(w=e,O.forEach(t=>{t(e)}))}function x(e){return O.add(e),()=>{O.delete(e)}}var T=null;function M(e,t){if(!T)throw new Error("ReverseGeocode not initialised");return T(e,t)}var k={APP_ADD_MARKER:"app:addmarker",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_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",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_EXIT:"map:exit",MAP_DESTROY:"map:destroy"};class L{constructor(){this.events={}}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),this}off(e,t){return this.events[e]?(this.events[e]=t?this.events[e].filter(e=>e!==t):[],this):this}emit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return this.events[e]?(this.events[e].forEach(t=>{try{t(...r)}catch(t){console.error("Error in event handler for '".concat(e,"':"),t)}}),this):this}destroy(){this.events={}}}if("undefined"!=typeof crypto&&!crypto.randomUUID){var B=0;crypto.randomUUID=()=>(B=Math.max(Date.now(),B+1),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e,t)=>{var r=t<12?Number.parseInt(B.toString(16).padStart(12,"0")[t],16):16*Math.random()|0;return("x"===e?r:3&r|8).toString(16)}))}var S="undefined"!=typeof AbortController&&!Object.getPrototypeOf((new AbortController).signal).throwIfAborted;S&&(Object.getPrototypeOf((new AbortController).signal).throwIfAborted=function(){if(this.aborted){var e=new Error("The operation was aborted.");throw e.name="AbortError",e}});if(S&&"undefined"!=typeof URL&&URL.createObjectURL){var j=URL.createObjectURL.bind(URL);URL.createObjectURL=e=>{if(e instanceof Blob&&"text/javascript"===e.type){e=new Blob(['if(typeof AbortController!=="undefined"){var _p=Object.getPrototypeOf(new AbortController().signal);if(!_p.throwIfAborted){_p.throwIfAborted=function(){if(this.aborted){var e=new Error("The operation was aborted.");e.name="AbortError";throw e}}}}\n',e],{type:"text/javascript"})}return j(e)}}function R(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 C(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?R(Object(n),!0).forEach(function(r){t(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class N{constructor(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,"_openButton",null),t(this,"_root",null),t(this,"_breakpointDetector",null),t(this,"_interfaceDetectorCleanup",null),t(this,"_hybridBehaviourCleanup",null),t(this,"_isHidden",!1),this.id=e,this.rootEl=document.getElementById(e),!this.rootEl)throw new Error('Element with id "'.concat(e,'" not found'));this.eventBus=new L,this.config=this._buildConfig(r),function(e,t){var{mapProvider:r,deviceNotSupportedText:n}=t,i=null==r?void 0:r.checkDeviceCapabilities();return r?!(null==i||!i.isSupported)||(m(e,n),P(),console.log(null==i?void 0:i.error),!1):(console.log("No map provider"),!1)}(this.rootEl,this.config)&&(["buttonFirst","hybrid"].includes(this.config.behaviour)&&p.register(this),this._breakpointDetector=A({maxMobileWidth:this.config.maxMobileWidth,minDesktopWidth:this.config.minDesktopWidth,containerEl:this.rootEl}),this._interfaceDetectorCleanup=function(){var e=window.matchMedia("(pointer: coarse)"),t=e=>{D(e.matches?"touch":"mouse")};e.addEventListener("change",t);var r=e=>{var t,r="pen"===(t=e.pointerType)||"touch"===t?"touch":"mouse"===t?"mouse":"unknown";setTimeout(()=>D(r),150)},n=e=>{"Tab"===e.key&&D("keyboard")};return window.addEventListener("pointerdown",r,{passive:!0}),window.addEventListener("keydown",n,{passive:!0}),()=>{e.removeEventListener("change",t),window.removeEventListener("pointerdown",r),window.removeEventListener("keydown",n)}}(),this._initialize())}_buildConfig(e){var t=v(this.rootEl);return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return g(g({},o),e)}(C(C({id:this.id,title:document.title},t),e))}_initialize(){["buttonFirst","hybrid"].includes(this.config.behaviour)&&(this._openButton=function(e,t,r){var{id:n,buttonText:i,buttonClass:a}=e,s='\n <a class="'.concat(a,"\" role=\"button\">\n <svg focusable='false' aria-hidden='true' width='16' height='20' viewBox='0 0 16 20' fillRule='evenodd'>\n <path d='M15 7.5c.009 3.778-4.229 9.665-7.5 12.5C4.229 17.165-.009 11.278 0 7.5a7.5 7.5 0 1 1 15 0z'/>\n <path d='M7.5 12.961a5.46 5.46 0 1 0 0-10.922 5.46 5.46 0 1 0 0 10.922z' fill='#fff'/>\n </svg>\n <span>").concat(i,"</span>\n <span class='im-u-visually-hidden'> (Visual only)</span>\n </a>\n ");t.insertAdjacentHTML("beforebegin",s);var l=t.previousElementSibling,c=new URL(window.location.href);return c.searchParams.set(o.mapViewParamKey,n),l.setAttribute("href",c.toString()),l.addEventListener("click",e=>{e.preventDefault(),r(e)}),l}(this.config,this.rootEl,e=>{this._handleButtonClick(e)})),this._hybridBehaviourCleanup=function(e){var{behaviour:t,hybridWidth:r,maxMobileWidth:n}=e.config;if("buttonFirst"===t&&e._breakpointDetector.subscribe(()=>{_(e.config)?e.loadApp():e.removeApp()}),"hybrid"===t){var i=null!=r?r:n,o=window.matchMedia("(max-width: ".concat(i,"px)")),a=()=>{_(e.config)?e._isHidden?e.showApp():null==e._root?e.loadApp():y(e):e._root&&e.hideApp()};return o.addEventListener("change",a),()=>o.removeEventListener("change",a)}return null}(this),_(this.config)?this.loadApp():P()}_handleButtonClick(e){history.pushState({isBack:!0},"",e.currentTarget.getAttribute("href")),this._isHidden?this.showApp():this.loadApp()}_removeMapParamFromUrl(e,t){var r=new RegExp("[?&]".concat(t,"=[^&]*(&|$)"));return r.test(e)?e.replace(r,(e,t)=>"&"===t?"?":"").replace(/\?$/,""):e}_handleExitClick(){this.config.preserveStateOnClose?this.hideApp():this.removeApp();var e=this.config.mapViewParamKey,t=location.href,r=this._removeMapParamFromUrl(t,e);history.replaceState(history.state,"",r)}loadApp(){var t=this;return e(function*(){t._openButton&&(t._openButton.style.display="none");try{var{initialiseApp:r}=yield import(/* webpackChunkName: "im-core" */ "./im-core.js"),{MapProvider:n,mapFramework:i,mapProviderConfig:o}=yield t.config.mapProvider.load();t.config.reverseGeocodeProvider&&function(t,r){var{url:n,transformRequest:i,load:o}=t;T=function(){var t=e(function*(e,t){return(yield o())(n,i,r,e,t)});return function(e,r){return t.apply(this,arguments)}}()}(t.config.reverseGeocodeProvider,o.crs);var a=yield r(t.rootEl,C(C({id:t.id,initialBreakpoint:t._breakpointDetector.getBreakpoint(),initialInterfaceType:"unknown"===w?(w="mouse","mouse"):w},t.config),{},{MapProvider:n,mapProviderConfig:o,mapFramework:i,eventBus:t.eventBus,breakpointDetector:t._breakpointDetector,handleExitClick:t._handleExitClick.bind(t)}));t._root=a._root,delete a._root;var s=new Set(["on","off","emit"]);Object.keys(a).forEach(e=>{s.has(e)||(t[e]=a[e])}),y(t)}catch(e){throw m(t.rootEl,t.config.genericErrorText),console.error(e),e}})()}removeApp(){this._root&&"function"==typeof this.unmount&&(this.unmount(),this._root=null),this._openButton&&(this._openButton.removeAttribute("style"),this._openButton.focus()),y(this),this.eventBus.emit(k.MAP_DESTROY,{mapId:this.id})}hideApp(){this._isHidden=!0,this.rootEl.style.display="none",b({containerEl:this.rootEl,isFullscreen:!1}),this._openButton&&(this._openButton.removeAttribute("style"),this._openButton.focus()),document.documentElement.classList.remove("im-is-fullscreen"),this.rootEl.classList.remove("im-is-fullscreen");var e=document.title.split(": ");e.length>1&&(document.title=e[e.length-1])}showApp(){this._isHidden=!1,this.rootEl.style.display="",this._openButton&&(this._openButton.style.display="none"),y(this)}destroy(){var e,t,r;this.removeApp(),null===(e=this._breakpointDetector)||void 0===e||e.destroy(),null===(t=this._interfaceDetectorCleanup)||void 0===t||t.call(this),null===(r=this._hybridBehaviourCleanup)||void 0===r||r.call(this),p.unregister(this),this.eventBus.destroy()}on(){this.eventBus.on(...arguments)}off(){this.eventBus.off(...arguments)}emit(){this.eventBus.emit(...arguments)}addMarker(e,t,r){this.eventBus.emit(k.APP_ADD_MARKER,{id:e,coords:t,options:r})}removeMarker(e){this.eventBus.emit(k.APP_REMOVE_MARKER,e)}setMode(e){this.eventBus.emit(k.APP_SET_MODE,e)}addButton(e,t){this.eventBus.emit(k.APP_ADD_BUTTON,{id:e,config:t})}toggleButtonState(e,t,r){this.eventBus.emit(k.APP_TOGGLE_BUTTON_STATE,{id:e,prop:t,value:r})}addPanel(e,t){this.eventBus.emit(k.APP_ADD_PANEL,{id:e,config:t})}removePanel(e){this.eventBus.emit(k.APP_REMOVE_PANEL,e)}showPanel(e){this.eventBus.emit(k.APP_SHOW_PANEL,e)}hidePanel(e){this.eventBus.emit(k.APP_HIDE_PANEL,e)}addControl(e,t){this.eventBus.emit(k.APP_ADD_CONTROL,{id:e,config:t})}}export{k as E,N as I,P as a,i as g,M as r,x as s,b as t};
|
|
1
|
+
import e from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";var n=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null===(t=window.location)||void 0===t?void 0:t.search;return new URLSearchParams(n).get(e)},r=e=>{var{behaviour:t,hybridWidth:n,maxMobileWidth:r}=e;if("hybrid"!==t)return!1;var i=null!=n?n:r;return window.matchMedia("(max-width: ".concat(i,"px)")).matches},i=e=>{var{behaviour:t}=e;return["mapOnly","buttonFirst"].includes(t)||r(e)},o={appColorScheme:"light",autoColorScheme:!1,backgroundColor:"var(--background-color)",behaviour:"buttonFirst",buttonClass:"im-c-open-map-button",buttonText:"Map view",containerHeight:"600px",deviceNotSupportedText:"Your device is not supported. A map is available with a more up-to-date browser or device.",enableFullscreen:!1,enableZoomControls:!1,genericErrorText:"There was a problem loading the map. Please try again later.",hasExitButton:!1,hybridWidth:null,keyboardHintText:'<span class="im-u-visually-hidden">Press </span><kbd>Alt</kbd> + <kbd>K</kbd> <span class="im-u-visually-hidden">to view </span>keyboard shortcuts',mapLabel:"Interactive map",mapProvider:null,mapSize:"small",mapViewParamKey:"mv",maxMobileWidth:640,minDesktopWidth:835,markerColor:"#ff0000",markerShape:"pin",nudgePanDelta:5,nudgeZoomDelta:.1,panDelta:100,pageTitle:"Map view",preserveStateOnClose:!1,readMapText:!1,reverseGeocodeProvider:null,zoomDelta:1};function a(e){var t,n;e._isHidden?null===(t=e.showApp)||void 0===t||t.call(e):null===(n=e.loadApp)||void 0===n||n.call(e)}function s(e){var t,n;e.config.preserveStateOnClose?null===(t=e.hideApp)||void 0===t||t.call(e):null===(n=e.removeApp)||void 0===n||n.call(e)}function l(){var e=n(o.mapViewParamKey);for(var t of c.values()){var i,l=t.id===e,d="hybrid"===t.config.behaviour&&!r(t.config),p=null===(i=t.rootEl)||void 0===i?void 0:i.children.length;!l||p&&!t._isHidden?l||!p||d||s(t):a(t)}}var c=new Map,d=!1;var p={register:function(e){d||(window.addEventListener("popstate",l),d=!0),c.set(e.id,e)},unregister:function(e){c.delete(e.id)}};function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){try{return JSON.parse(e)}catch(e){return console.log(e),null}}function v(e){var n=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?u(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},null==e?void 0:e.dataset),r={};for(var i of Object.keys(n))r[i]=h(n[i]);return r}function m(e,t){e.innerHTML='<div class="im-c-error">'.concat(t,"</div>")}var f=(e,t,n,r)=>e!==t&&!(null!=n&&n.contains(e))&&e.matches(":not([aria-hidden]):not([data-fm-inert])")&&r.contains(e);function b(e){var t,{containerEl:n,isFullscreen:r,boundaryEl:i=document.body}=e,o=Array.from(i.querySelectorAll("[data-fm-inert]"));if(n&&(o=o.filter(e=>!n.contains(e))),o.forEach(e=>{e.removeAttribute("aria-hidden"),delete e.dataset.fmInert}),r){null===(t=document.activeElement)||void 0===t||t.blur();for(var a=n;null!==(s=a)&&void 0!==s&&s.parentNode&&a!==i&&a!==document.body;){var s,l=a.parentNode;for(var c of l.children)f(c,a,n,i)&&(c.setAttribute("aria-hidden","true"),c.dataset.fmInert="");a=l}}}function _(e){var{config:t,rootEl:i}=e,{pageTitle:a,behaviour:s,containerHeight:l}=t,c=function(e){var{id:t,behaviour:i}=e,a=n(o.mapViewParamKey)===t;return"mapOnly"===i||a&&("buttonFirst"===i||r(e))}(t);["mapOnly","buttonFirst","hybrid"].includes(s)&&(b({containerEl:i,isFullscreen:c}),document.documentElement.classList.toggle("im-is-fullscreen",c),i.classList.toggle("im-is-fullscreen",c)),["buttonFirst","hybrid"].includes(s)&&function(e){var{pageTitle:t,isFullscreen:n}=e,r=document.title.split(": "),i=r[r.length-1];document.title=n?"".concat(t,": ").concat(i):i}({pageTitle:a,isFullscreen:c});var d=c||"buttonFirst"!==s&&!r(t)?l:"auto";i.style.height=c?"100%":d}function P(){document.body.classList.remove("im-is-loading")}function y(e){var{id:t,behaviour:i}=e,a=n(o.mapViewParamKey)===t;return["mapOnly","inline"].includes(i)||"hybrid"===i&&!r(e)||a}function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function A(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?E(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e){var t,{maxMobileWidth:n,minDesktopWidth:r,containerEl:i}=e,o="unknown",a=new Set,s=e=>{e!==o&&(o=e,requestAnimationFrame(()=>{o===e&&a.forEach(t=>t(e))}))};if(i){var l=function(e,t,n){e.style.containerType="inline-size";var r=e.getBoundingClientRect().width,i=t(r);e.dataset.breakpoint=i;var o=new window.ResizeObserver(r=>{var i,o,a=(null===(i=r[0])||void 0===i||null===(i=i.borderBoxSize)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.inlineSize)||(null===(o=r[0])||void 0===o?void 0:o.contentRect.width),s=t(a);e.dataset.breakpoint=s,n(s)});return o.observe(e),{initialType:i,cleanup:()=>{o.disconnect(),e.style.containerType="",delete e.dataset.breakpoint}}}(i,e=>function(e,t,n){return e<=t?"mobile":e>=n?"desktop":"tablet"}(e,n,r),s);o=l.initialType,s(l.initialType),t=l.cleanup}else{var c=function(e,t,n){var r={mobile:window.matchMedia("(max-width: ".concat(e,"px)")),desktop:window.matchMedia("(min-width: ".concat(t,"px)"))},i=()=>{var e="tablet";r.mobile.matches?e="mobile":r.desktop.matches&&(e="desktop"),n(e)};return r.mobile.addEventListener("change",i),r.desktop.addEventListener("change",i),i(),{cleanup:()=>{r.mobile.removeEventListener("change",i),r.desktop.removeEventListener("change",i)}}}(n,r,s);t=c.cleanup}return{subscribe:e=>(a.add(e),()=>a.delete(e)),getBreakpoint:()=>o,destroy:()=>{var e;null===(e=t)||void 0===e||e(),a.clear()}}}var w=window.matchMedia("(pointer: coarse)").matches?"touch":"unknown",O=new Set;function D(e){w!==e&&(w=e,O.forEach(t=>{t(e)}))}function T(e){return O.add(e),()=>{O.delete(e)}}var x=null;function M(e,t){if(!x)throw new Error("ReverseGeocode not initialised");return x(e,t)}var k={APP_ADD_MARKER:"app:addmarker",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_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",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_EXIT:"map:exit",MAP_DESTROY:"map:destroy"};class B{constructor(){this.events={}}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),this}off(e,t){return this.events[e]?(this.events[e]=t?this.events[e].filter(e=>e!==t):[],this):this}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.events[e]?(this.events[e].forEach(t=>{try{t(...n)}catch(t){console.error("Error in event handler for '".concat(e,"':"),t)}}),this):this}destroy(){this.events={}}}if("undefined"!=typeof crypto&&!crypto.randomUUID){var S=0;crypto.randomUUID=()=>(S=Math.max(Date.now(),S+1),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e,t)=>{var n=t<12?Number.parseInt(S.toString(16).padStart(12,"0")[t],16):16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)}))}var L="undefined"!=typeof AbortController&&!Object.getPrototypeOf((new AbortController).signal).throwIfAborted;L&&(Object.getPrototypeOf((new AbortController).signal).throwIfAborted=function(){if(this.aborted){var e=new Error("The operation was aborted.");throw e.name="AbortError",e}});if(L&&"undefined"!=typeof URL&&URL.createObjectURL){var j=URL.createObjectURL.bind(URL);URL.createObjectURL=e=>{if(e instanceof Blob&&"text/javascript"===e.type){e=new Blob(['if(typeof AbortController!=="undefined"){var _p=Object.getPrototypeOf(new AbortController().signal);if(!_p.throwIfAborted){_p.throwIfAborted=function(){if(this.aborted){var e=new Error("The operation was aborted.");e.name="AbortError";throw e}}}}\n',e],{type:"text/javascript"})}return j(e)}}function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function R(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?C(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}class N{constructor(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,"_openButton",null),t(this,"_root",null),t(this,"_breakpointDetector",null),t(this,"_interfaceDetectorCleanup",null),t(this,"_hybridBehaviourCleanup",null),t(this,"_isHidden",!1),this.id=e,this.rootEl=document.getElementById(e),!this.rootEl)throw new Error('Element with id "'.concat(e,'" not found'));this.eventBus=new B,this.config=this._buildConfig(n),function(e,t){var{mapProvider:n,deviceNotSupportedText:r}=t,i=null==n?void 0:n.checkDeviceCapabilities();return n?!(null==i||!i.isSupported)||(m(e,r),P(),console.log(null==i?void 0:i.error),!1):(console.log("No map provider"),!1)}(this.rootEl,this.config)&&(["buttonFirst","hybrid"].includes(this.config.behaviour)&&p.register(this),this._breakpointDetector=g({maxMobileWidth:this.config.maxMobileWidth,minDesktopWidth:this.config.minDesktopWidth,containerEl:this.rootEl}),this._interfaceDetectorCleanup=function(){var e=window.matchMedia("(pointer: coarse)"),t=e=>{D(e.matches?"touch":"mouse")};e.addEventListener("change",t);var n=e=>{var t,n="pen"===(t=e.pointerType)||"touch"===t?"touch":"mouse"===t?"mouse":"unknown";setTimeout(()=>D(n),150)},r=e=>{"Tab"===e.key&&D("keyboard")};return window.addEventListener("pointerdown",n,{passive:!0}),window.addEventListener("keydown",r,{passive:!0}),()=>{e.removeEventListener("change",t),window.removeEventListener("pointerdown",n),window.removeEventListener("keydown",r)}}(),this._initialize())}_buildConfig(e){var t=v(this.rootEl);return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return A(A({},o),e)}(R(R({id:this.id,title:document.title},t),e))}_initialize(){["buttonFirst","hybrid"].includes(this.config.behaviour)&&(this._openButton=function(e,t,n){var{id:r,buttonText:i,buttonClass:a}=e,s='\n <a class="'.concat(a,"\" role=\"button\">\n <svg focusable='false' aria-hidden='true' width='16' height='20' viewBox='0 0 16 20' fillRule='evenodd'>\n <path d='M15 7.5c.009 3.778-4.229 9.665-7.5 12.5C4.229 17.165-.009 11.278 0 7.5a7.5 7.5 0 1 1 15 0z'/>\n <path d='M7.5 12.961a5.46 5.46 0 1 0 0-10.922 5.46 5.46 0 1 0 0 10.922z' fill='#fff'/>\n </svg>\n <span>").concat(i,"</span>\n <span class='im-u-visually-hidden'> (Visual only)</span>\n </a>\n ");t.insertAdjacentHTML("beforebegin",s);var l=t.previousElementSibling,c=new URL(window.location.href);return c.searchParams.set(o.mapViewParamKey,r),l.setAttribute("href",c.toString()),l.addEventListener("click",e=>{e.preventDefault(),n(e)}),l}(this.config,this.rootEl,e=>{this._handleButtonClick(e)})),this._hybridBehaviourCleanup=function(e){var{behaviour:t,hybridWidth:n,maxMobileWidth:r}=e.config;if("buttonFirst"===t&&e._breakpointDetector.subscribe(()=>{y(e.config)?e.loadApp():e.removeApp()}),"hybrid"===t){var i=null!=n?n:r,o=window.matchMedia("(max-width: ".concat(i,"px)")),a=()=>{y(e.config)?e._isHidden?e.showApp():null==e._root?e.loadApp():_(e):e._root&&e.hideApp()};return o.addEventListener("change",a),()=>o.removeEventListener("change",a)}return null}(this),y(this.config)?this.loadApp():P()}_handleButtonClick(e){history.pushState({isBack:!0},"",e.currentTarget.getAttribute("href")),this._isHidden?this.showApp():this.loadApp()}_removeMapParamFromUrl(e,t){var n=new RegExp("[?&]".concat(t,"=[^&]*(&|$)"));return n.test(e)?e.replace(n,(e,t)=>"&"===t?"?":"").replace(/\?$/,""):e}_handleExitClick(){this.config.preserveStateOnClose?this.hideApp():this.removeApp();var e=this.config.mapViewParamKey,t=location.href,n=this._removeMapParamFromUrl(t,e);history.replaceState(history.state,"",n)}loadApp(){var t=this;return e(function*(){t._openButton&&(t._openButton.style.display="none");try{var{initialiseApp:n}=yield import(/* webpackChunkName: "im-core" */ "./im-core.js"),{MapProvider:r,mapFramework:i,mapProviderConfig:o}=yield t.config.mapProvider.load();t.config.reverseGeocodeProvider&&function(t,n){var{url:r,transformRequest:i,load:o}=t;x=function(){var t=e(function*(e,t){return(yield o())(r,i,n,e,t)});return function(e,n){return t.apply(this,arguments)}}()}(t.config.reverseGeocodeProvider,o.crs);var a=yield n(t.rootEl,R(R({id:t.id,initialBreakpoint:t._breakpointDetector.getBreakpoint(),initialInterfaceType:"unknown"===w?(w="mouse","mouse"):w},t.config),{},{MapProvider:r,mapProviderConfig:o,mapFramework:i,eventBus:t.eventBus,breakpointDetector:t._breakpointDetector,handleExitClick:t._handleExitClick.bind(t)}));t._root=a._root,delete a._root;var s=new Set(["on","off","emit"]);Object.keys(a).forEach(e=>{s.has(e)||(t[e]=a[e])}),_(t)}catch(e){throw m(t.rootEl,t.config.genericErrorText),console.error(e),e}})()}removeApp(){this._root&&"function"==typeof this.unmount&&(this.unmount(),this._root=null),this._openButton&&(this._openButton.removeAttribute("style"),this._openButton.focus()),_(this),this.eventBus.emit(k.MAP_DESTROY,{mapId:this.id})}hideApp(){this._isHidden=!0,this.rootEl.style.display="none",b({containerEl:this.rootEl,isFullscreen:!1}),this._openButton&&(this._openButton.removeAttribute("style"),this._openButton.focus()),document.documentElement.classList.remove("im-is-fullscreen"),this.rootEl.classList.remove("im-is-fullscreen");var e=document.title.split(": ");e.length>1&&(document.title=e[e.length-1])}showApp(){this._isHidden=!1,this.rootEl.style.display="",this._openButton&&(this._openButton.style.display="none"),_(this)}destroy(){var e,t,n;this.removeApp(),null===(e=this._breakpointDetector)||void 0===e||e.destroy(),null===(t=this._interfaceDetectorCleanup)||void 0===t||t.call(this),null===(n=this._hybridBehaviourCleanup)||void 0===n||n.call(this),p.unregister(this),this.eventBus.destroy()}on(){this.eventBus.on(...arguments)}off(){this.eventBus.off(...arguments)}emit(){this.eventBus.emit(...arguments)}addMarker(e,t,n){this.eventBus.emit(k.APP_ADD_MARKER,{id:e,coords:t,options:n})}removeMarker(e){this.eventBus.emit(k.APP_REMOVE_MARKER,e)}setMode(e){this.eventBus.emit(k.APP_SET_MODE,e)}addButton(e,t){this.eventBus.emit(k.APP_ADD_BUTTON,{id:e,config:t})}toggleButtonState(e,t,n){this.eventBus.emit(k.APP_TOGGLE_BUTTON_STATE,{id:e,prop:t,value:n})}addPanel(e,t){this.eventBus.emit(k.APP_ADD_PANEL,{id:e,config:t})}removePanel(e){this.eventBus.emit(k.APP_REMOVE_PANEL,e)}showPanel(e){this.eventBus.emit(k.APP_SHOW_PANEL,e)}hidePanel(e){this.eventBus.emit(k.APP_HIDE_PANEL,e)}addControl(e,t){this.eventBus.emit(k.APP_ADD_CONTROL,{id:e,config:t})}fitToBounds(e){this.eventBus.emit(k.MAP_FIT_TO_BOUNDS,e)}setView(e){this.eventBus.emit(k.MAP_SET_VIEW,e)}}export{k as E,N as I,P as a,i as g,M as r,T as s,b as t};
|