@pacem/pacem 1.0.0-babbage → 1.0.0-bernoulli

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/browser/pacem-2d.js +1 -1
  2. package/dist/browser/pacem-2d.min.js +2 -2
  3. package/dist/browser/pacem-2d.min.js.map +1 -1
  4. package/dist/browser/pacem-3d.js +1 -1
  5. package/dist/browser/pacem-3d.min.js +2 -2
  6. package/dist/browser/pacem-3d.min.js.map +1 -1
  7. package/dist/browser/pacem-charts.js +1 -1
  8. package/dist/browser/pacem-charts.min.js +2 -2
  9. package/dist/browser/pacem-charts.min.js.map +1 -1
  10. package/dist/browser/pacem-cms.js +1 -1
  11. package/dist/browser/pacem-cms.min.js +2 -2
  12. package/dist/browser/pacem-cms.min.js.map +1 -1
  13. package/dist/browser/pacem-core.js +1 -1
  14. package/dist/browser/pacem-core.min.js +2 -2
  15. package/dist/browser/pacem-core.min.js.map +1 -1
  16. package/dist/browser/pacem-foundation.js +1 -1
  17. package/dist/browser/pacem-foundation.min.js +2 -2
  18. package/dist/browser/pacem-foundation.min.js.map +1 -1
  19. package/dist/browser/pacem-fx.js +1 -1
  20. package/dist/browser/pacem-fx.min.js +2 -2
  21. package/dist/browser/pacem-fx.min.js.map +1 -1
  22. package/dist/browser/pacem-logging.js +1 -1
  23. package/dist/browser/pacem-logging.min.js +2 -2
  24. package/dist/browser/pacem-logging.min.js.map +1 -1
  25. package/dist/browser/pacem-maps.js +1 -1
  26. package/dist/browser/pacem-maps.min.js +2 -2
  27. package/dist/browser/pacem-maps.min.js.map +1 -1
  28. package/dist/browser/pacem-media.js +1 -1
  29. package/dist/browser/pacem-media.min.js +2 -2
  30. package/dist/browser/pacem-media.min.js.map +1 -1
  31. package/dist/browser/pacem-networking.js +1 -1
  32. package/dist/browser/pacem-networking.min.js +2 -2
  33. package/dist/browser/pacem-networking.min.js.map +1 -1
  34. package/dist/browser/pacem-numerical.js +1 -1
  35. package/dist/browser/pacem-numerical.min.js +2 -2
  36. package/dist/browser/pacem-numerical.min.js.map +1 -1
  37. package/dist/browser/pacem-plus.js +1 -1
  38. package/dist/browser/pacem-plus.min.js +2 -2
  39. package/dist/browser/pacem-plus.min.js.map +1 -1
  40. package/dist/browser/pacem-scaffolding.js +1 -1
  41. package/dist/browser/pacem-scaffolding.min.js +2 -2
  42. package/dist/browser/pacem-scaffolding.min.js.map +1 -1
  43. package/dist/browser/pacem-ui.js +1 -1
  44. package/dist/browser/pacem-ui.min.js +2 -2
  45. package/dist/browser/pacem-ui.min.js.map +1 -1
  46. package/dist/bundle/pacem.min.mjs +1 -1
  47. package/dist/bundle/pacem.mjs +1 -1
  48. package/dist/typings/index.d.ts +1 -1
  49. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * @pacem/pacem v1.0.0-babbage (https://js.pacem.it)
2
+ * @pacem/pacem v1.0.0-bernoulli (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
- !function(e,t){"use strict";var s=function(e,t,s,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,s,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(n<3?r(i):n>3?r(t,s,i):r(t,s))||i);return n>3&&i&&Object.defineProperty(t,s,i),i};const o={lat:Number.NaN,lng:Number.NaN};class r{static get Empty(){return o}static isEmpty(e){return e===o||isNaN(e.lat)&&isNaN(e.lng)}static isLatLng(e){return"lat"in e&&"number"==typeof e.lat&&"lng"in e&&"number"==typeof e.lng}static translate(e,t){return{lat:e.lat+t.lat,lng:e.lng+t.lng}}static equals(e,t){return e===t||e.lat===t.lat&&e.lng===t.lng}}const n={ne:r.Empty,sw:r.Empty};class i{static get Empty(){return n}static isEmpty(e){return e===n||r.isEmpty(e.ne)&&r.isEmpty(e.sw)}static isPoint(e){return!this.isEmpty(e)&&(e.ne===e.sw||e.ne.lat===e.sw.lat&&e.ne.lng===e.sw.lng)}static isLatLngBounds(e){return"object"==typeof e&&"ne"in e&&r.isLatLng(e.ne)&&"sw"in e&&r.isLatLng(e.sw)}static union(e,t){if(i.isEmpty(e))return i.isLatLngBounds(t)?t:{ne:t,sw:t};if(i.isLatLngBounds(t)){if(i.isEmpty(t))return e;return{ne:{lat:Math.max(e.ne.lat,t.ne.lat),lng:Math.max(e.ne.lng,t.ne.lng)},sw:{lat:Math.min(e.sw.lat,t.sw.lat),lng:Math.min(e.sw.lng,t.sw.lng)}}}if(r.isLatLng(t)){if(r.isEmpty(t))return e;return{ne:{lat:Math.max(e.ne.lat,t.lat),lng:Math.max(e.ne.lng,t.lng)},sw:{lat:Math.min(e.sw.lat,t.lat),lng:Math.min(e.sw.lng,t.lng)}}}return e}static equals(e,t){return e===t||r.equals(e.ne,t.ne)&&r.equals(e.sw,t.sw)}}const a={SIZE:256,RAD:Math.PI/180,DEG:180/Math.PI,SIN_LIMIT:1-1e-15,EARTH_RADIUS:6378137},l="maps";class p{constructor(e,t,s=a.SIZE){this._pixelSize=e,this._bounds=t,this._normalizedSize=s;const o=s/2;this.#e={x:o,y:o},this.#t=s/360,this.#s=o/Math.PI,this.#o=this._latLngToWorldNormalizedPoint(t.sw),this.#r=this._latLngToWorldNormalizedPoint(t.ne)}#e;#o;#r;#t;#s;_latLngToWorldNormalizedPoint(e){const t=this.#e.x+e.lng*this.#s,s=e.lat*a.RAD,o=a.SIN_LIMIT,r=Math.sin(s).clamp(-o,o);return{x:t,y:this.#e.y+.5*Math.log((1+r)/(1-r))*-this.#t}}_worldNormalizedPointToLatLng(e){return{lat:a.DEG*(2*Math.atan(Math.exp((e.y-this.#e.y)/-this.#t))-Math.PI/2),lng:(e.x-this.#e.x)/this.#s}}_latLngToPoint(e){const t=this.#r,s=this.#o,o=-t.y+s.y,r=t.x-s.x,n=this._latLngToWorldNormalizedPoint(e),{width:i,height:a}=this._pixelSize;return{x:(n.x-s.x)*(i/r),y:(n.y-t.y)*(a/o)}}_pointToLatLng(e){const t=this.#r,s=this.#o,o=-t.y+s.y,r=t.x-s.x,{width:n,height:i}=this._pixelSize,a=e.x/(n/r)+this.#o.x,l=e.y/(i/o)+this.#r.y;return this._worldNormalizedPointToLatLng({x:a,y:l})}static _haversine(e,t){const s=a.RAD,o=e.lng*s,r=t.lng*s,n=e.lat*s,i=t.lat*s;return 2*Math.asin(Math.sqrt(Math.pow(Math.sin((n-i)/2),2)+Math.cos(n)*Math.cos(i)*Math.pow(Math.sin((o-r)/2),2)))}static _offsetByMeters(e,t,s,o){const{RAD:r,DEG:n}=a,i=e.lat*r;return{lat:(i+t/o)*n,lng:(e.lng*r+s/(o*Math.cos(i)))*n}}static offsetBy(e,t,s,o=a.EARTH_RADIUS){return p._offsetByMeters(e,t,s,o)}static distanceBetween(e,t,s=a.EARTH_RADIUS){return p._haversine(e,t)*s}static latLngToPoint(e,t,s){return new p(s,t)._latLngToPoint(e)}static pointToLatLng(e,t,s){return new p(t,s)._pointToLatLng(e)}}s([t.Transformer(l+".")],p,"offsetBy",null),s([t.Transformer(l+".")],p,"distanceBetween",null),s([t.Transformer(l+".")],p,"latLngToPoint",null),s([t.Transformer(l+".")],p,"pointToLatLng",null);var d,c,h=Object.freeze({__proto__:null,LatLng:r,LatLngBounds:i,MapProjection:p}),u=function(e,t,s,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,s,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(n<3?r(i):n>3?r(t,s,i):r(t,s))||i);return n>3&&i&&Object.defineProperty(t,s,i),i};!function(e){e.ROAD="road",e.SATELLITE="satellite",e.HYBRID="hybrid",e.TERRAIN="terrain",e.HIGH_CONTRAST="high_contrast"}(d||(d={})),function(e){e.LIGHT="light",e.DARK="dark",e.SYSTEM="system"}(c||(c={}));const m={MAP_SELECTOR:t.P+"-map",MARKER_SELECTOR:t.P+"-map-marker",POLYLINE_SELECTOR:t.P+"-map-polyline",CIRCLE_SELECTOR:t.P+"-map-circle",POLYGON_SELECTOR:t.P+"-map-polygon",LAYER_SELECTOR:t.P+"-map-layer",OVERLAY_IMAGE_SELECTOR:t.P+"-map-overlay-image",GEOCODER_SELECTOR:t.P+"-map-geocode",DEFAULT_COORDS:{lat:44.71418802507798,lng:10.296516444873811}},g={DEFAULT_COORDS:m.DEFAULT_COORDS};const y="defaultMapTarget",v={convert:e=>{const t=/^\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*$/.exec(e);return t&&t.length>2?{lat:parseFloat(t[1]),lng:parseFloat(t[2])}:JSON.parse(e)},convertBack:e=>JSON.stringify(e)},f={convert:e=>{const t=/^\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*$/.exec(e);return t&&t.length>4?{sw:{lat:parseFloat(t[3]),lng:parseFloat(t[4])},ne:{lat:parseFloat(t[1]),lng:parseFloat(t[2])}}:JSON.parse(e)},convertBack:e=>JSON.stringify(e)};class E{static parseCoords(e){if(e&&!isNaN(e.lat)&&!isNaN(e.lng))return[e.lat,e.lng];if(t.Utils.isArray(e)&&e.length>1)return[e[0],e[1]];if(/^\s*(\+|-)?[\d]+(.[\d]+)?\s*,\s*(\+|-)?[\d]+(.[\d]+)?\s*$/.test(e)){var s=e.split(",");return[parseFloat(s[0]),parseFloat(s[1])]}return[m.DEFAULT_COORDS.lat,m.DEFAULT_COORDS.lng]}static expandBounds(e,t){t&&(Array.isArray(t)||(t=[t.lat,t.lng]),e.push(t))}static isContentEmpty(e){return 0==e.children.length}}class w extends t.PacemEventTarget{get map(){return this._map=this._map||t.CustomElementUtils.findAncestorOfType(this,B)}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),!o&&"hide"===e){const e=this.map;e?.adapter?.fitBounds(e,!0)}}viewActivatedCallback(){super.viewActivatedCallback(),this.map&&this.map.register(this)}disconnectedCallback(){this.map&&this.map.unregister(this),super.disconnectedCallback()}}u([t.Watch({converter:t.PropertyConverters.Boolean})],w.prototype,"hide",void 0),u([t.Watch({converter:t.PropertyConverters.Boolean})],w.prototype,"inactive",void 0);class b extends t.CustomTypedEvent{constructor(e,t){super(e,t)}}let _=class extends t.PacemEventTarget{constructor(){super(...arguments),this.debounce=1e3,this.#n=!1}#n;#i;#a;get fetching(){return this.#n}_guards(){const e=this.results;if(!t.Utils.isNullOrEmpty(e)){const s=e[0];if(!t.Utils.isNull(this.position)&&r.equals(this.position,s.position)&&this.search===s.fullAddress)return Promise.resolve(e)}const s=this.adapter;return t.Utils.isNull(s)||s.disabled||!s.active?Promise.resolve([]):null}propertyChangedCallback(e,s,o,r){switch(super.propertyChangedCallback(e,s,o,r),e){case"search":this.geocode(o);break;case"position":this.reverseGeocode(o);break;case"results":if(t.Utils.isNullOrEmpty(o))this.search="",this.position=null;else{const e=o[0];this.search=e.fullAddress,this.position=e.position}}}_broadcastFetchingUpdate(e){e!==this.#n&&(this.#n=e,this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"fetching",oldValue:!e,currentValue:e})))}_fetch(e){const{promise:s,search:o,position:n,key:i}=e,a=this.#a;!t.Utils.isNull(a)&&r.equals(a.position,n)&&(a.search||"")===(o||"")||(this.#a={key:i,promise:s,position:n,search:o},this._broadcastFetchingUpdate(!0),s.then(e=>{i===this.#a.key&&(this._broadcastFetchingUpdate(!1),this._successCallback(e))},e=>this._errorCallback(e)))}_debounce(e,t=this.debounce){this.#i&&clearTimeout(this.#i),this.#i=window.setTimeout(()=>{e()},t||0)}reverseGeocode(e=this.position,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.reverseGeocode(e,s||1);this._fetch({promise:o,position:e,key:t.Utils.uniqueCode()})})}geocode(e=this.search,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.geocode(e,s||10);this._fetch({promise:o,search:e,position:r.Empty,key:t.Utils.uniqueCode()})})}_successCallback(e){const s=!t.Utils.isNullOrEmpty(e);!s&&t.Utils.isNullOrEmpty(this.results)||e!==this.results&&(this.results=e,s&&this.dispatchEvent(new CustomEvent("success",{detail:e,bubbles:!1,cancelable:!1})))}_errorCallback(e){t.Utils.isNullOrEmpty(this.results)||(this.results=[]),this.dispatchEvent(new CustomEvent("error",{detail:e,bubbles:!1,cancelable:!1}))}};u([t.Watch({emit:!1,converter:t.PropertyConverters.Element})],_.prototype,"adapter",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],_.prototype,"maxResults",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],_.prototype,"debounce",void 0),u([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],_.prototype,"results",void 0),u([t.Watch({emit:!0,converter:t.PropertyConverters.String})],_.prototype,"search",void 0),u([t.Watch({emit:!0,converter:v})],_.prototype,"position",void 0),_=u([t.CustomElement({tagName:m.GEOCODER_SELECTOR})],_);class C extends t.PacemEventTarget{constructor(){super(...arguments),this.active=!0,this.#l=new Map,this.#p=new WeakMap,this.#d=new WeakMap,this.#c=new WeakMap,this.#h=new WeakMap}propertyChangedCallback(e,t,s,o){super.propertyChangedCallback(e,t,s,o),o||(this.active=!this.disabled&&this.isActive())}#l;#p;#d;#c;#h;get layerAdapters(){return this.#c}get overlayAdapters(){return this.#h}get markerAdapters(){return this.#p}get shapeAdapters(){return this.#d}hasMap(e){return this.#l.has(e)}enrolledMaps(){return this.#l.keys()}tryGetMap(e){const t=this.#l;return t.has(e)?t.get(e):null}getMap(e){const t=this.tryGetMap(e);return t?.map}async initialize(e){const t=this.#l;if(!t.has(e)){const s=await this.init(e);t.set(e,s);const o=this.#c;o.has(e)||o.set(e,this.buildLayerAdapterFor(e));const r=this.#h;r.has(e)||r.set(e,this.buildOverlayAdapterFor(e));const n=this.#p;n.has(e)||n.set(e,this.buildMarkerAdapterFor(e));const i=this.#d;return i.has(e)||i.set(e,this.buildShapeAdapterFor(e)),s.container}return t.get(e).container}destroy(e){const t=this.#c;t.has(e)&&t.delete(e);const s=this.#h;s.has(e)&&s.delete(e);const o=this.#p;o.has(e)&&o.delete(e);const r=this.#d;r.has(e)&&r.delete(e);const n=this.#l;n.has(e)&&(this.dispose(e),n.delete(e))}removeItem(e){const t=e.map;if(e instanceof N){const s=this.layerAdapters;if(s.has(t)){s.get(t).removeLayer(e)}}else if(e instanceof A){const s=this.markerAdapters;if(s.has(t)){s.get(t).removeMarker(e)}}else if(e instanceof I){const s=this.shapeAdapters;if(s.has(t)){s.get(t).removeShape(e)}}else if(e instanceof k){const s=this.overlayAdapters;if(s.has(t)){s.get(t).removeOverlay(e)}}e.inactive||this.fitBounds(t,!0)}drawItem(e){const t=e.map;if(e instanceof N){const s=this.layerAdapters;if(s.has(t)){s.get(t).drawLayer(e)}}else if(e instanceof A){const s=this.markerAdapters;if(s.has(t)){s.get(t).drawMarker(e)}}else if(e instanceof I){const s=this.shapeAdapters;if(s.has(t)){s.get(t).drawShape(e)}}else if(e instanceof k){const s=this.overlayAdapters;if(s.has(t)){s.get(t).drawOverlay(e)}}e.inactive||this.fitBounds(t,!0)}popupInfoWindow(e){const t=e.map;if(e instanceof A){const s=this.markerAdapters;s.has(t)&&s.get(t).openInfoWindow(e)}}popoutInfoWindow(e){const t=e.map;if(e instanceof A){const s=this.markerAdapters;s.has(t)&&s.get(t).closeInfoWindow(e)}}setView(e,s,o){if(!this.hasMap(e))return;let n={};n="number"==typeof s?t.Utils.extend({},{zoom:s}):r.isLatLng(s)?t.Utils.extend({},{center:s,zoom:o}):s,this.setViewNative(e,n)}fitBounds(e,s){if(t.Utils.isNull(e))for(let e of this.enrolledMaps()||[])this._fitBounds(e,s);else this._fitBounds(e,s)}_fitBounds(e,s){if(!this.hasMap(e))return;if(!e.autofit&&!0===s)return;if(i.isLatLngBounds(s)&&!i.isEmpty(s))return void this.fitBoundsNative(e,s);const o=this.markerAdapters.get(e)?.getBounds(),r=this.shapeAdapters.get(e)?.getBounds(),n=t.Utils.isNull(o)||i.isEmpty(o),a=t.Utils.isNull(r)||i.isEmpty(r);if(n&&a)return void this.setView(e,{center:e.center,zoom:e.zoom});let l=i.Empty;n||(l=i.union(l,o)),a||(l=i.union(l,r)),i.isPoint(l)?this.setView(e,{zoom:e.zoom,center:l.ne}):this.fitBoundsNative(e,l)}updateMapElement(e,s,o){["type","tilt","heading"].forEach(t=>{t in s&&(e[t]=s[t])});const n="zoom"in s?s.zoom:o;t.Utils.isNullOrEmpty(n)||n===e.zoom||(e.zoom=n);const i=r.isLatLng(s)?s:s.center;t.Utils.isNullOrEmpty(i)||i.lat==e.center?.lat&&i.lng==e.center?.lng||(e.center=i),e.updateBounds(this.getBounds(e))}}u([t.Watch({emit:!0,converter:t.PropertyConverters.Boolean})],C.prototype,"active",void 0),u([t.Debounce(1e3,(e,t)=>`pacem:debounce:${e}:${t.id}`)],C.prototype,"_fitBounds",null);class M{constructor(e,t=e.adapter){this._map=e,this._adapter=t}get adapter(){return this._adapter}get map(){return this._map}getMap(e){return this._adapter.getMap(e.map)}}class P extends M{constructor(e,t=e.adapter){super(e,t)}#h=new Map;get layers(){return this.#h}onOverlayLoad(e,t){e.dispatchEvent(new Event("overlayload"))}ensureOverlay(e,s){const o=this.#h;let r;return o.has(e)?r=o.get(e):(r=this.buildOverlay(e,s),t.Utils.isNull(r)||o.set(e,r)),r}removeOverlay(e){const t=this,s=t.getMap(e),o=this.#h;if(o.has(e)){const r=o.get(e);t.deleteOverlay(r,s),o.delete(e)}}drawOverlay(e){const s=this,o=s.getMap(e);if(t.Utils.isNull(o))return;if(t.Utils.isNullOrEmpty(e)||e.hide)return void s.removeOverlay(e);const r=this.ensureOverlay(e,o);this.setBounds(r,o,e.bounds),this.updateOverlay(r,o,e)}}class k extends w{}u([t.Watch({emit:!1,converter:f})],k.prototype,"bounds",void 0);let O=class extends k{};u([t.Watch({emit:!1,converter:t.PropertyConverters.String})],O.prototype,"src",void 0),O=u([t.CustomElement({tagName:m.OVERLAY_IMAGE_SELECTOR})],O);class S extends M{constructor(e,t=e.adapter){super(e,t)}#c=new Map;#u=new Map;get layers(){return this.#c}onTileLoad(e,t){e.dispatchEvent(new Event("tileload"))}ensureLayer(e,t){const s=this,o=s.#c;let r;if(o.has(e))r=o.get(e);else if(r=this.buildLayer(e,t),null!=r){const n=t=>{s.onTileLoad(e,t)};this.#u.set(e,n),this.addLoadEventListener(r,t,n),o.set(e,r)}return r}removeLayer(e){const t=this,s=t.getMap(e),o=this.#c;if(o.has(e)){const r=o.get(e),n=this.#u;if(n.has(e)){const t=n.get(e);this.removeLoadEventListener(r,s,t),n.delete(e)}t.deleteLayer(r,s),o.delete(e)}}drawLayer(e){const s=this,o=s.getMap(e);t.Utils.isNull(o)||(t.Utils.isNullOrEmpty(e)||e.hide?s.removeLayer(e):this.ensureLayer(e,o))}}let N=class extends w{};u([t.Watch({emit:!1,converter:t.PropertyConverters.String})],N.prototype,"url",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],N.prototype,"include",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.String})],N.prototype,"mode",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],N.prototype,"minZoom",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],N.prototype,"maxZoom",void 0),N=u([t.CustomElement({tagName:m.LAYER_SELECTOR})],N);class T extends M{constructor(e,t=e.adapter){super(e,t)}get mapAutomaticallyScrollsOnDrag(){return!1}#p=new Map;#m=new Map;getBounds(e=e=>!0){const s=this.markers;let o=i.Empty;for(var r of s.keys()){if(!e(r)||r.inactive)continue;let n=s.get(r);t.Utils.isNull(n)||(o=i.union(o,this.getMarkerPosition(n)))}return o}get markers(){return this.#p}get infoWindows(){return this.#m}onDragEnd(e,t){const s=this.markers.get(e),o=this.getMarkerPosition(s);e.onDragEnd(o)}onClick(e,t){const s=this.markers.get(e),o=this.getMarkerPosition(s);e.onClick(o)}onInfoOpen(e){e.onInfoOpen()}onInfoClose(e){e.onInfoClose()}ensureMarker(e,t){const s=this;let o;return s.markers.has(e)?o=s.markers.get(e):(o=this.buildMarker(e,t),null!=o&&(this.addClickEventListener(o,t,t=>{s.onClick(e,t),s.openInfoWindow(e,t)}),this.addDragEventListener(o,t,t=>{this.mapAutomaticallyScrollsOnDrag||s.adapter.fitBounds(e.map,!0)}),this.addDragEndEventListener(o,t,t=>s.onDragEnd(e,t)),s.markers.set(e,o))),o}removeMarker(e){const t=this,s=t.getMap(e),o=this.#m,r=this.#p;if(o.has(e)&&o.delete(e),r.has(e)){const o=r.get(e);t.deleteMarker(o,s),r.delete(e)}}drawMarker(e){const s=this,o=s.getMap(e);if(t.Utils.isNull(o))return;if(t.Utils.isNullOrEmpty(e&&e.position)||e.hide)return void s.removeMarker(e);const r=this.ensureMarker(e,o);this.setPosition(r,e.position),this.setIcon(r,e.icon),this.setLabel(r,e.caption),this.setDraggable(r,e.draggable)}closeInfoWindow(e,t){const s=this;if(s.infoWindows.has(e)){const t=s.infoWindows.get(e);this.closeInfo(t)}}ensureInfoWindow(e,t){var s=this;let o;return s.infoWindows.has(e)?o=s.infoWindows.get(e):(o=this.buildInfoWindow(e),this.addCloseClickEventListener(o,t,r=>{s.deleteInfoWindow(o,t),s.onInfoClose(e)}),s.infoWindows.set(e,o)),o}openInfoWindow(e,s){var o=this,r=o.markers.get(e),n=e.caption,i=o.getMap(e);if(E.isContentEmpty(e)||(n=e.innerHTML),!t.Utils.isNullOrEmpty(n)){const t=this.ensureInfoWindow(e,i);this.setContent(t,n),this.openInfo(t,n,i,r),o.onInfoOpen(e)}}}let A=class extends w{onDragEnd(e){this.position=e,this.dispatchEvent(new b("dragend",{position:e}))}onClick(e){this.position=e,this.dispatchEvent(new b("click",{position:e}))}onInfoOpen(){this.dispatchEvent(new b("openinfo"))}onInfoClose(){this.dispatchEvent(new b("closeinfo"))}};u([t.Watch({converter:v})],A.prototype,"position",void 0),u([t.Watch({converter:t.PropertyConverters.Json})],A.prototype,"icon",void 0),u([t.Watch({converter:t.PropertyConverters.String})],A.prototype,"caption",void 0),u([t.Watch({converter:t.PropertyConverters.Boolean})],A.prototype,"draggable",void 0),A=u([t.CustomElement({tagName:m.MARKER_SELECTOR})],A);class R extends M{constructor(e,t=e.adapter){super(e,t)}#d=new Map;get shapes(){return this.#d}getBounds(e=e=>!0){const s=this.shapes;let o=i.Empty;for(var r of s.keys()){if(!e(r)||r.inactive)continue;let n=s.get(r);t.Utils.isNull(n)||(o=i.union(o,this.getShapeBounds(n)))}return o}removeShape(e){const t=this,s=t.getMap(e),o=this.#d;if(o.has(e)){const r=o.get(e);t.deleteShape(r,s),o.delete(e)}}_dispatchEvent(e,t,s){const o=this.shapes.get(e),r=this.getShapePosition(s??o);e.dispatchEvent(new b(t,{position:r}))}#g=new Map;onDragStart(e,t){const s=this.shapes.get(e),o=this.getShapeBounds(s);this.#g.set(e,o.ne),this._dispatchEvent(e,"dragstart",t)}onDragEnd(e,t){const s=this.shapes.get(e),o=this.getShapeBounds(s),r=this.#g.get(e),n=o.ne,i={lat:n.lat-r.lat,lng:n.lng-r.lng};this._translateShape(e,i),this._dispatchEvent(e,"dragend",t)}_translateShape(e,t){if(e instanceof z)e.center=r.translate(e.center,t);else{if(e instanceof U){const s=e.vertices.map(e=>r.translate(e,t));return void(e.vertices=s)}if(e instanceof x){const s=e.vertices.map(e=>r.translate(e,t));return void(e.vertices=s)}}}onDrag(e,t){this._dispatchEvent(e,"drag",t)}onClick(e,t){this._dispatchEvent(e,"click",t)}ensureShape(e,t){const s=this;let o;return s.shapes.has(e)?o=s.shapes.get(e):(o=this.buildShape(e,t),null!=o&&(this.addClickEventListener(o,t=>s.onClick(e,t)),this.addDragEventListener(o,t=>{s.onDrag(e,t),s.adapter.fitBounds(e.map,!0)}),this.addDragEndEventListener(o,t=>s.onDragEnd(e,t)),this.addDragStartEventListener(o,t=>s.onDragStart(e,t)),s.shapes.set(e,o))),o}drawShape(e){const s=this,o=s.getMap(e);if(t.Utils.isNull(o))return;if(t.Utils.isNullOrEmpty(e)||e.hide)return void s.removeShape(e);const r=this.ensureShape(e,o);this.setShape(r,e),this.setEditable(r,e.editable),this.setDraggable(r,e.draggable)}}class I extends w{}u([t.Watch({emit:!0,converter:t.PropertyConverters.Boolean})],I.prototype,"draggable",void 0),u([t.Watch({emit:!0,converter:t.PropertyConverters.Boolean})],I.prototype,"editable",void 0),u([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],I.prototype,"stroke",void 0),u([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],I.prototype,"fill",void 0);let U=class extends I{};u([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],U.prototype,"vertices",void 0),U=u([t.CustomElement({tagName:m.POLYLINE_SELECTOR})],U);let x=class extends I{};u([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],x.prototype,"vertices",void 0),x=u([t.CustomElement({tagName:m.POLYGON_SELECTOR})],x);let z=class extends I{};u([t.Watch({emit:!0,converter:v})],z.prototype,"center",void 0),u([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],z.prototype,"radius",void 0),z=u([t.CustomElement({tagName:m.CIRCLE_SELECTOR})],z);let B=class extends t.PacemEventTarget{constructor(){super(...arguments),this.zoom=12,this.center=m.DEFAULT_COORDS,this.#y=i.Empty,this.scale=!0,this.mousewheel=!0,this.draggable=!0,this.doubleClickZoom=!0,this.keyboardShortcuts=!0,this.autofit=!0,this.paddingTop=0,this.paddingLeft=0,this.paddingRight=0,this.paddingBottom=0,this.tilt=0,this.heading=0,this._drawHandler=e=>{this._draw(e.target)},this._listenToActiveAdapter=e=>{const s=e.target;"active"===e.detail.propertyName&&e.detail.currentValue&&(s.removeEventListener(t.PropertyChangeEventName,this._listenToActiveAdapter,!1),this._switchAdapter(s))},this._initialized=!1,this._afterInit=(e,s)=>{for(var o of(this._initialized=!0,t.CustomElementUtils.findDescendants(this,e=>e instanceof w)))this._erase(o,s),this._draw(o);s&&s?.destroy(this)},this._resizeHandler=e=>{this.onResize(e)}}updateBounds(e){if(!i.equals(e,this.#y)){const s=this.#y,o=this.#y=e;this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"bounds",oldValue:s,currentValue:o}))}}#y;get bounds(){return this.#y}get container(){return this._container}register(e){e.addEventListener(t.PropertyChangeEventName,this._drawHandler,!1),this._draw(e)}unregister(e){this._erase(e),e.removeEventListener(t.PropertyChangeEventName,this._drawHandler,!1)}_draw(e,t=this.adapter){this._initialized&&t&&t.drawItem(e)}_erase(e,t=this.adapter){this._initialized&&t&&t.removeItem(e)}_switchAdapter(e,s){e.active?e.initialize(this).then(e=>this._afterInit(e,s)):(s&&this._afterInit(null,s),e.addEventListener(t.PropertyChangeEventName,this._listenToActiveAdapter,!1))}viewActivatedCallback(){super.viewActivatedCallback(),this._setupContainer(),this.adapter&&this._switchAdapter(this.adapter)}propertyChangedCallback(e,s,o,r){if(super.propertyChangedCallback(e,s,o,r),"bounds"!==e)if("adapter"===e)t.Utils.isNull(this._container)||(this._initialized=!1,o?this._switchAdapter(o,s):s&&this._afterInit(null,s));else{switch(e){case"zoom":case"center":case"type":case"theme":case"tilt":case"heading":this.adapter?.setView(this,{type:this.type,tilt:this.tilt,heading:this.heading,zoom:this.zoom,center:this.center,theme:this.theme});break;case"autofit":o&&this.adapter?.fitBounds(this);break;case"target":s&&this._dismissContainer(s),o?(this._setupContainer(o),this._setupResizer()):this._dismissResizer()}this.adapter&&this.adapter.invalidateSize(this)}}_dismissContainer(e=this._container){"true"===e.dataset[y]?e.remove():t.Utils.removeClass(e,t.PCSS+"-map"),e===this._container&&(this._container=null)}_dismissResizer(){const e=this._resizer;e.removeEventListener("resize",this._resizeHandler,!1),e.remove(),this._resizer=null}_setupContainer(e=this.target){t.Utils.isNull(e)&&((e=document.createElement("div")).dataset[y]="true",this.insertAdjacentElement("afterend",e));const s=this._container=e;return t.Utils.addClass(s,t.PCSS+"-map"),s}_setupResizer(){const e=this._container;if(t.Utils.isNull(e))throw new Error("You must set up the map container before its resizing listener.");if(t.Utils.isNull(this._resizer)){const s=this._resizer=document.createElement(t.P+"-resize");s.addEventListener("resize",this._resizeHandler,!1),e.insertAdjacentElement("afterend",s)}return this._resizer.target=e,this._resizer}_detach(){t.Utils.isNull(this._container)||this._dismissContainer(),t.Utils.isNull(this._resizer)||this._dismissResizer()}disconnectedCallback(){this._detach(),super.disconnectedCallback()}onResize(e){this.adapter&&this.adapter.invalidateSize(this)}};u([t.Watch({emit:!0,converter:t.PropertyConverters.Number})],B.prototype,"zoom",void 0),u([t.Watch({emit:!0,converter:v})],B.prototype,"center",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.String})],B.prototype,"type",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.String})],B.prototype,"theme",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],B.prototype,"scale",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],B.prototype,"mousewheel",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.String})],B.prototype,"zoomControl",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],B.prototype,"draggable",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],B.prototype,"doubleClickZoom",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],B.prototype,"keyboardShortcuts",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],B.prototype,"autofit",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],B.prototype,"paddingTop",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],B.prototype,"paddingLeft",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],B.prototype,"paddingRight",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],B.prototype,"paddingBottom",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Element})],B.prototype,"adapter",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Element})],B.prototype,"target",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],B.prototype,"tilt",void 0),u([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],B.prototype,"heading",void 0),B=u([t.CustomElement({tagName:m.MAP_SELECTOR})],B);var W=function(e,t,s,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,s,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(n<3?r(i):n>3?r(t,s,i):r(t,s))||i);return n>3&&i&&Object.defineProperty(t,s,i),i};const D="geolocation_unavailable",G="position_unavailable",j="permission_denied",F="timeout",Z="unknown_error";let H=class extends t.PacemEventTarget{constructor(){super(...arguments),this.permission="prompt",this.maximumAge=15e3,this.timeout=3e4,this.#n=!1,this._successCallback=e=>{this.permission="granted",this._setFetching(!1);const t={lat:e.coords.latitude,lng:e.coords.longitude,timestamp:e.timestamp,altitude:e.coords.altitude,heading:e.coords.heading,speed:e.coords.speed};this.position=t,this.dispatchEvent(new CustomEvent("success",{detail:t}))},this._errorCallback=e=>{this._setFetching(!1);const t="string"==typeof e?e:this._errToString(e);this.dispatchEvent(new CustomEvent("error",{detail:t}))}}_checkPermission(){return new Promise(e=>{const s=navigator.permissions;t.Utils.isNull(s)?e("prompt"):s.query({name:"geolocation"}).then(t=>{e(this.permission=t.state)})})}#n;get fetching(){return this.#n}_setFetching(e){e!==this.fetching&&(this.#n=e,this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"fetching",currentValue:e,oldValue:!e})))}fetch(){this.disabled||(navigator.geolocation?this._checkPermission().then(e=>{this._setFetching(!0),navigator.geolocation.getCurrentPosition(this._successCallback,this._errorCallback,{enableHighAccuracy:!0,maximumAge:this.maximumAge})}):this._errorCallback(D))}viewActivatedCallback(){super.viewActivatedCallback(),this._checkPermission()}_errToString(e){switch(e.code){case GeolocationPositionError.PERMISSION_DENIED:return j;case GeolocationPositionError.POSITION_UNAVAILABLE:return G;case GeolocationPositionError.TIMEOUT:return F;default:return Z}}};W([t.Watch({emit:!0,converter:v})],H.prototype,"position",void 0),W([t.Watch({emit:!0,converter:t.PropertyConverters.String})],H.prototype,"permission",void 0),W([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],H.prototype,"maximumAge",void 0),W([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],H.prototype,"timeout",void 0),H=W([t.CustomElement({tagName:t.P+"-map-geolocate"})],H);var q,K=function(e,t,s,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,s,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(n<3?r(i):n>3?r(t,s,i):r(t,s))||i);return n>3&&i&&Object.defineProperty(t,s,i),i};const V="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js",$="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css";function Y(e){return{city:e.municipality,state:e.countrySubdivision,province:e.countrySecondarySubdivision,village:e.municipalitySubdivision??e.localName,zipCode:e.postalCode,streetName:e.street??e.streetName,houseNumber:e.buildingNumber??e.streetNumber,countryCode:e.countryCode,country:e.country}}class J{static getPosition(e){return Array.isArray(e)&&(e={lat:e[0],lng:e[1]}),atlas.data.Position.fromLatLng(e)}static getBounds(e){if(t.Utils.isArray(e))return atlas.data.BoundingBox.fromPositions(e.map(e=>[e[1],e[0]]));const s=J.getPosition(e.ne),o=J.getPosition(e.sw);return atlas.data.BoundingBox.fromPositions([s,o])}static getLatLng(e){return{lat:e[1],lng:e[0]}}static getLatLngBounds(e){const t=atlas.data.BoundingBox.getNorthEast(e),s=atlas.data.BoundingBox.getSouthWest(e);return{ne:J.getLatLng(t),sw:J.getLatLng(s)}}static parseGeocoding(e){return t.Utils.isNullOrEmpty(e.results)?[]:e.results.map(e=>({fullAddress:e.address.freeformAddress,address:Y(e.address),position:{lat:e.position.lat,lng:e.position.lon,altitude:null}}))}static parseReverseGeocoding(e,t){if(e.summary.numResults<1)return{fullAddress:"",address:{},position:null};const s=e.addresses[0],o=(t??s.position).split(",").map(e=>parseFloat(e)),r=s.address;return{fullAddress:r.freeformAddress,address:Y(r),position:{lat:o[0],lng:o[1],altitude:o.length>2?o[2]:null}}}}class Q extends P{deleteOverlay(e,t){throw new Error("Method not implemented.")}buildOverlay(e,t){throw new Error("Method not implemented.")}setBounds(e,t,s){throw new Error("Method not implemented.")}updateOverlay(e,t,s){throw new Error("Method not implemented.")}}class X extends S{addLoadEventListener(e,t,s){throw new Error("Method not implemented.")}removeLoadEventListener(e,t,s){throw new Error("Method not implemented.")}deleteLayer(e,t){throw new Error("Method not implemented.")}buildLayer(e,t){throw new Error("Method not implemented.")}}class ee extends T{getMarkerPosition(e){const t=e.getOptions().position;return J.getLatLng(t)}buildMarker(e,t){const s=new atlas.HtmlMarker;return t.markers.add(s),s.setOptions({popup:new atlas.Popup}),s}addClickEventListener(e,t,s){t.events.add("click",e,s)}addDragEventListener(e,t,s){t.events.add("drag",e,s)}addDragEndEventListener(e,t,s){t.events.add("dragend",e,s)}_setPopupPosition(e,s){const o=this._getPopup(e);t.Utils.isNull(o)||o.setOptions({position:s})}setPosition(e,t){const s=J.getPosition(t);e.setOptions({position:s}),this._setPopupPosition(e,s)}setIcon(e,s){let o={pixelOffset:[0,-36]},r={popup:new atlas.Popup},n=(e,t,s)=>`<img width="${t||"auto"}" height="${s||"auto"}" style="pointer-events: none" src="${e}" />`;if("string"==typeof s)r.htmlContent=n(s);else if(!t.Utils.isNull(s)){const e=s.size,t=s.anchor;r.htmlContent=n(s.url,e&&e.width,e&&e.height),t?(r.anchor="top-left",r.pixelOffset=[-t.x,-t.y],o.pixelOffset=[0,-t.y]):e&&e.height&&(o.pixelOffset=[0,-e.height/2])}r.popup.setOptions(o),e.setOptions(r)}setLabel(e,t){let s={text:t};e.setOptions(s)}setDraggable(e,t){let s={draggable:t};e.setOptions(s)}deleteMarker(e,t){t.markers.remove(e)}deleteInfoWindow(e,t){this._getPopup(e).remove()}closeInfo(e){const t=this._getPopup(e);!0===t?.isOpen()&&t.close()}openInfo(e,t,s,o){const{popup:r,position:n}=e.getOptions();this._setContent(r,t,n),o.togglePopup(),s.events.addOnce("close",r,e=>{r.setOptions({content:""})})}buildInfoWindow(e){return this.markers.get(e)}addCloseClickEventListener(e,t,s){const o=this._getPopup(e);t.events.add("close",o,s)}setContent(e,t){const{popup:s,position:o}=e.getOptions();this._setContent(s,t,o)}_getPopup(e){return e.getOptions().popup}_setContent(e,t,s){e.setOptions({content:`<div style="padding: 8px 24px 8px 8px;">${t}</div>`,position:s})}}class te extends R{addDragStartEventListener(e,t){throw new Error("Method not implemented.")}deleteShape(e,t){throw new Error("Method not implemented.")}getShapeBounds(e){throw new Error("Method not implemented.")}getShapePosition(e){throw new Error("Method not implemented.")}buildShape(e,t){throw new Error("Method not implemented.")}addClickEventListener(e,t){throw new Error("Method not implemented.")}addDragEventListener(e,t){throw new Error("Method not implemented.")}addDragEndEventListener(e,t){throw new Error("Method not implemented.")}setShape(e,t){throw new Error("Method not implemented.")}setEditable(e,t){throw new Error("Method not implemented.")}setDraggable(e,t){throw new Error("Method not implemented.")}}class se{_buildGeocodeRequest(e,s,o=10,r=""){const n={"subscription-key":e,query:s,limit:""+o,language:r};return{uri:t.Utils.URIs.appendQuery("https://atlas.microsoft.com/search/address/json?api-version=1.0",n),options:{mode:"cors"}}}parseGeocodeResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=J.parseGeocoding(e);t(s)},e=>s(e))})}geocode(e,t,s=10,o=""){return new Promise((r,n)=>{const i=this._buildGeocodeRequest(e,t,s,o);return fetch(i.uri,i.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(r,n):n(e)},e=>n(e))})}reverseGeocode(e,t,s=""){return new Promise((o,r)=>{const n=this._buildReverseRequest(e,t,s);return fetch(n.uri,n.options).then(e=>{e.ok?this._parseReverseResponse(e).then(o,r):r(e)},e=>r(e))})}_buildReverseRequest(e,s,o=""){const r=E.parseCoords(s),n={"subscription-key":e,query:r[0]+","+r[1],language:o};return{uri:t.Utils.URIs.appendQuery("https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0",n),options:{mode:"cors"}}}_parseReverseResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=J.parseReverseGeocoding(e);t([s])},e=>s(e))})}}const oe=["moveend","dragend","zoomend","rotateend"];let re=q=class extends C{geocode(e,s){return(new se).geocode(this.subscriptionKey,e,s,t.Utils.lang(this))}reverseGeocode(e,s){return(new se).reverseGeocode(this.subscriptionKey,e,t.Utils.lang(this))}getBounds(e){const t=this.getMap(e),{bounds:s}=t.getCamera();return J.getLatLngBounds(s)}isActive(){return!t.Utils.isNullOrEmpty(this.subscriptionKey)}buildOverlayAdapterFor(e){return new Q(e,this)}buildMarkerAdapterFor(e){return new ee(e,this)}buildShapeAdapterFor(e){return new te(e,this)}buildLayerAdapterFor(e){return new X(e,this)}setViewNative(e,s){const o=this.getMap(e),r=function(e){const t=e.theme==c.DARK||e.theme!==c.LIGHT&&window.matchMedia("(prefers-color-scheme: dark)").matches;switch(e.type){case"satellite":case"satellite_road_labels":case"grayscale_dark":case"grayscale_light":case"night":case"road_shaded_relief":case"road":case"high_constrast_dark":case"high_constrast_light":return e.type;case d.HYBRID:return"satellite_road_labels";case d.SATELLITE:return"satellite";case d.TERRAIN:return"road_shaded_relief";case d.HIGH_CONTRAST:return t?"high_constrast_dark":"high_constrast_light";default:return t?"night":"road"}}(s=t.Utils.extend({type:e.type,theme:e.theme},s));o.setStyle({style:r});const n=s.center&&J.getPosition(s.center)||o.getCamera().center,i=s.zoom||o.getCamera().zoom;o.setCamera({center:n,zoom:i})}#v=new WeakMap;snapshot(e,s="image/png",o){if(!this.hasMap(e))return Promise.reject();const{map:r}=this.tryGetMap(e);return new Promise((n,i)=>{t.Utils.blobToDataURL(this.#f.get(e)).then(e=>{const i=r.getCanvasContainer();i.style.backgroundImage=`url(${e})`,i.style.backgroundSize="contain",t.Utils.snapshotElement(i,null,s,o).then(n)})})}#f=new WeakMap;dispose(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);this.#v.get(e).forEach(e=>{t.events.remove(e.eventName,e.handler)}),this.#v.delete(e),t.dispose()}async init(e){await Promise.all([t.CustomElementUtils.importjs(V),t.CustomElementUtils.importcss($,void 0,!0)]);const s=e,o=s.scale,r=s.draggable,n=s.doubleClickZoom,i=s.keyboardShortcuts,a={center:J.getPosition(s.center),zoom:s.zoom,subscriptionKey:this.subscriptionKey,dragPanInteraction:r,scrollZoomInteraction:s.mousewheel,dblClickZoomInteraction:!n,keyboardInteraction:i,language:this.language||t.Utils.lang(e)},l=s.container,p=document.createElement("div");p.id=`azure-maps-${t.Utils.uniqueCode()}`,p.style.width="100%",p.style.height="100%",l.innerHTML="",l.appendChild(p);const d=new atlas.Map(p.id,a),c=[];return this.#v.set(s,c),oe.forEach(e=>{const t=this._spinMapUpdateHandler(s,d);d.events.add(e,t),c.push({eventName:e,handler:t})}),o&&s.zoomControl&&d.events.addOnce("ready",e=>{let t=atlas.ControlPosition.NonFixed;switch(s.zoomControl){case"topleft":t=atlas.ControlPosition.TopLeft;break;case"topright":t=atlas.ControlPosition.TopRight;break;case"bottomright":t=atlas.ControlPosition.BottomRight;break;case"bottomleft":t=atlas.ControlPosition.BottomLeft}d.controls.add(new atlas.control.ZoomControl,{position:t})}),d.events.add("idle",t=>{d.getCanvas().toBlob(t=>{this.#f.set(e,t)})}),d.events.addOnce("ready",()=>{e.dispatchEvent(new b("maploaded"))}),{map:d,container:p}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);t&&t.resize()}propertyChangedCallback(e,s,o,r){if(super.propertyChangedCallback(e,s,o,r),!r&&"language"===e)for(let e of this.enrolledMaps()){const{map:s}=this.tryGetMap(e);s.setStyle({language:o||t.Utils.lang(e)})}}_spinMapUpdateHandler(e,t){return()=>{this._updateMap(e,t)}}_updateMap(e,s){if(!t.Utils.isNull(s)&&!t.Utils.isNull(e)){const t=s.getCamera(),o=t.center,r=t.zoom;1===t.zoom?console.warn("Azure Maps control lacks in reflecting the actual map zoom onto the camera property. Cannot reflect info back to PacemMapElement."):this.updateMapElement(e,J.getLatLng(o),r)}}static _getBounds(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0;return{top:t,bottom:e.paddingBottom||0,left:s,right:o}}fitBoundsNative(e,t,s=q._getBounds(e)){this.getMap(e).setCamera({bounds:J.getBounds(t),padding:s})}};K([t.Watch({emit:!1,converter:t.PropertyConverters.String})],re.prototype,"subscriptionKey",void 0),K([t.Watch({emit:!1,converter:t.PropertyConverters.String})],re.prototype,"language",void 0),K([t.Debounce(500)],re.prototype,"_updateMap",null),re=q=K([t.CustomElement({tagName:t.P+"-map-adapter-azure"})],re);var ne=function(e,t,s,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,s,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(n<3?r(i):n>3?r(t,s,i):r(t,s))||i);return n>3&&i&&Object.defineProperty(t,s,i),i};const ie="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.min.js",ae=null,le="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.min.css",pe=null;function de(e){return{fullAddress:e.display_name,address:(t=e.address,{city:t.city,state:t.state,provinceCode:t["ISO3166-2-lvl6"]?.split("-")[1],province:t.county,village:t.village,zipCode:t.postcode,streetName:t.road,houseNumber:t.house_number,countryCode:t.country_code?.toUpperCase(),country:t.country}),position:{lat:parseFloat(e.lat),lng:parseFloat(e.lon),altitude:null}};var t}class ce{static toLiteral(e){return{ne:e.getNorthEast(),sw:e.getSouthWest()}}static parseGeocoding(e){return t.Utils.isNullOrEmpty(e)?[]:e.map(de)}static parseReverseGeocoding(e){return t.Utils.isNullOrEmpty(e)?[]:[de(e)]}}const he="layerload";class ue extends t.CustomTypedEvent{constructor(e){super(he,e,{bubbles:!0})}}class me extends T{deleteInfoWindow(e,t){e.unbindPopup()}deleteMarker(e,t){e.removeFrom(t)}getMarkerPosition(e){return e.getLatLng()}buildMarker(e,t){return L.marker(e.position).addTo(t)}addClickEventListener(e,t,s){e.on("click",s)}addDragEventListener(e,t,s){e.on("drag",s)}addDragEndEventListener(e,t,s){e.on("dragend",s)}setPosition(e,t){e.setLatLng(t)}setIcon(e,s){const o=this;if("string"==typeof s)o._setIcon(e,s);else if(!t.Utils.isNull(s)){let r={iconUrl:s.url};t.Utils.isNullOrEmpty(s.size)||t.Utils.extend(r,{iconSize:[s.size.width,s.size.height],iconAnchor:[s.size.width/2,s.size.height],popupAnchor:[0,-s.size.height]}),t.Utils.isNullOrEmpty(s.anchor)||t.Utils.extend(r,{iconAnchor:[s.anchor.x,s.anchor.y]}),o._setIcon(e,new L.Icon(r))}}setLabel(e,t){}setDraggable(e,t){!0===t?e.dragging.enable():e.dragging.disable()}closeInfo(e){e.closePopup()}openInfo(e,t,s,o){e.bindPopup(t).openPopup()}buildInfoWindow(e){return this.markers.get(e)}addCloseClickEventListener(e,t,s){e.on("popupclose",s)}setContent(e,t){const s=e.getPopup();s&&s.getContent()!=t&&e.setPopupContent(t)}_setIcon(e,t){if("string"==typeof t){var s,o,r,n={iconUrl:t};if((s=this.size)&&/[\d]+,[\d]+/.test(s)){var i=-1,a=[parseInt(s.substring(0,i=s.indexOf(","))),parseInt(s.substring(i+1))];Object.assign(n,{iconSize:a})}if((o=this.anchor)&&/[\d]+,[\d]+/.test(o)){i=-1;var l=[parseInt(o.substring(0,i=o.indexOf(","))),parseInt(o.substring(i+1))];Object.assign(n,{iconAnchor:l,popupAnchor:[0,-l[1]]})}if((r=this.popupAnchor)&&/[\d]+,[\d]+/.test(r)){i=-1,l=[parseInt(o.substring(0,i=o.indexOf(","))),parseInt(o.substring(i+1))];Object.assign(n,{popupAnchor:l})}e.setIcon(L.icon(n))}else t&&e.setIcon(t)}}class ge extends R{addDragStartEventListener(e,t){throw new Error("Method not implemented.")}deleteShape(e,t){throw new Error("Method not implemented.")}getShapeBounds(e){throw new Error("Method not implemented.")}getShapePosition(e){throw new Error("Method not implemented.")}buildShape(e,t){throw new Error("Method not implemented.")}addClickEventListener(e,t){throw new Error("Method not implemented.")}addDragEventListener(e,t){throw new Error("Method not implemented.")}addDragEndEventListener(e,t){throw new Error("Method not implemented.")}setShape(e,t){throw new Error("Method not implemented.")}setEditable(e,t){throw new Error("Method not implemented.")}setDraggable(e,t){throw new Error("Method not implemented.")}}class ye extends S{addLoadEventListener(e,t,s){e.on("load",s)}removeLoadEventListener(e,t,s){e.off("load",s)}deleteLayer(e,t){e.remove()}buildLayer(e,t){const s=(e.mode||"").toLowerCase();return"wms"===s?L.tileLayer.wms(e.url,{layers:(e.include||[]).join(","),minZoom:e.minZoom,maxZoom:e.maxZoom,transparent:!0,format:"image/png"}).addTo(t):L.tileLayer(e.url,{tms:"tms"===s,minZoom:e.minZoom,maxZoom:e.maxZoom}).addTo(t)}}class ve extends P{deleteOverlay(e,t){throw new Error("Method not implemented.")}buildOverlay(e,t){throw new Error("Method not implemented.")}setBounds(e,t,s){throw new Error("Method not implemented.")}updateOverlay(e,t,s){throw new Error("Method not implemented.")}}let fe=class extends C{constructor(){super(...arguments),this.#E=new WeakMap,this.tiles="//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",this.attribution='Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors',this._tileLayerLoadHandler=e=>{this.dispatchLayerLoadEvent(e.sourceTarget)},this._mapUpdateHandler=e=>{const s=this.getMap(e);t.Utils.isNull(s)||t.Utils.isNull(e)||this.updateMapElement(e,s.getCenter(),s.getZoom())}}buildOverlayAdapterFor(e){return new ve(e,this)}geocode(e,s){return(new Ee).geocode(e,s,t.Utils.lang(this))}reverseGeocode(e,s){return(new Ee).reverseGeocode(e,t.Utils.lang(this))}getBounds(e){const t=this.getMap(e).getBounds();return ce.toLiteral(t)}isActive(){return!0}setViewNative(e,t){const s=this.getMap(e);t.center?s.setView(t.center,t.zoom??s.getZoom(),{animate:!0}):"number"==typeof t.zoom&&s.setZoom(t.zoom,{animate:!0})}buildMarkerAdapterFor(e){return new me(e,this)}buildShapeAdapterFor(e){return new ge(e,this)}buildLayerAdapterFor(e){return new ye(e,this)}#E;snapshot(e,s="image/png",o){return t.Utils.snapshotElement(e.container.firstElementChild,null,s,o)}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),"tiles"===e)for(let e of this.enrolledMaps())this._redrawMap(e);for(let e of this.enrolledMaps())this.invalidateSize(e)}dispose(e){const{map:t}=this.tryGetMap(e),s=this.#E.get(e);s&&s.off("load",this._tileLayerLoadHandler),t.clearAllEventListeners(),this.#E.delete(e)}async init(e){await Promise.all([t.CustomElementUtils.importjs(ie,ae,!0),t.CustomElementUtils.importcss(le,pe,!0)]);const s=e;var o=s.scale,r=s.draggable,n=s.doubleClickZoom,i=s.keyboardShortcuts,a=L.latLng(E.parseCoords(s.center)),l={zoomControl:o&&!t.Utils.isNullOrEmpty(s.zoomControl),scrollWheelZoom:s.mousewheel,dragging:r,doubleClickZoom:!n,keyboard:i};const p=s.container,d=document.createElement("div");d.style.width="100%",d.style.height="100%",p.innerHTML="",p.appendChild(d);const c=L.map(d,l);["zoomend","moveend"].forEach(e=>{c.on(e,e=>{this._idleFiller(s),this._mapUpdateHandler(s)})}),c.on("load",()=>{o&&s.zoomControl&&c.zoomControl.setPosition(s.zoomControl),this._idleFiller(s)});const h=L.tileLayer(this.tiles,{attribution:this.attribution}).addTo(c);h.on("load",this._tileLayerLoadHandler),this.#E.set(s,h),c.setView(a,s.zoom),c.once("idle",function(){c.fire("resize"),e.dispatchEvent(new b("maploaded"))});const u=E.parseCoords(s.center),m=[u[0],u[1]];return c.setView(m,s.zoom),{map:c,container:d}}dispatchLayerLoadEvent(e){this.dispatchEvent(new ue(e))}invalidateSize(e){if(this.hasMap(e)){this.getMap(e).invalidateSize()}}_idleFiller(e){if(this.hasMap(e)){this.getMap(e).fire("idle")}}fitBoundsNative(e,t,s={top:e.paddingTop||0,left:e.paddingLeft||0,right:e.paddingRight||0,bottom:e.paddingBottom||0}){const o=this.getMap(e),r={paddingTopLeft:new L.Point(s.left,s.top),paddingBottomRight:new L.Point(s.right,s.bottom)},n=t.ne,i=t.sw;try{o.fitBounds([[n.lat,n.lng],[i.lat,i.lng]],r)}catch(e){throw e}}_redrawMap(e){var s=this,o=s.#E.get(e);t.Utils.isNull(s.tiles&&o)||o.setUrl(s.tiles)}};ne([t.Watch({emit:!1,converter:t.PropertyConverters.String})],fe.prototype,"tiles",void 0),ne([t.Watch({emit:!1,converter:t.PropertyConverters.String})],fe.prototype,"attribution",void 0),ne([t.Debounce(500)],fe.prototype,"_idleFiller",null),fe=ne([t.CustomElement({tagName:t.P+"-map-adapter-leaflet"})],fe);class Ee{_buildGeocodeRequest(e,s=10,o=""){const r={q:e,limit:""+s,"accept-language":o};return{uri:t.Utils.URIs.appendQuery("https://nominatim.openstreetmap.org/search?addressdetails=1&format=json",r),options:{mode:"cors"}}}parseGeocodeResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=ce.parseGeocoding(e);t(s)},e=>s(e))})}geocode(e,t=10,s=""){return new Promise((o,r)=>{const n=this._buildGeocodeRequest(e,t,s);return fetch(n.uri,n.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(o,r):r(e)},e=>r(e))})}reverseGeocode(e,t=""){return new Promise((s,o)=>{const r=this._buildReverseRequest(e,t);return fetch(r.uri,r.options).then(e=>{e.ok?this._parseReverseResponse(e).then(s,o):o(e)},e=>o(e))})}_buildReverseRequest(e,s=""){const o=E.parseCoords(e),r={lat:""+o[0],lon:""+o[1],"accept-language":s};return{uri:t.Utils.URIs.appendQuery("https://nominatim.openstreetmap.org/reverse?addressdetails=1&format=json",r),options:{mode:"cors"}}}_parseReverseResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=ce.parseReverseGeocoding(e);t(s)},e=>s(e))})}}var we=function(e,t,s,o){var r,n=arguments.length,i=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,s,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(n<3?r(i):n>3?r(t,s,i):r(t,s))||i);return n>3&&i&&Object.defineProperty(t,s,i),i};const be={DETACH_TIMEOUT:200,API_URI:"https://maps.googleapis.com/maps/api/js",MAX_ROADMAP_ZOOM:22,BOOTSTRAP_SNIPPET:(e,t,s,o)=>`(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=\`https://maps.\${c}apis.com/maps/api/js?\`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({\n key: "${e}", v: "${o}", language: "${t}", region: "${s}",\n // Add other bootstrap parameters as needed, using camel case.\n });`,MAPS_NOT_FOUND:"google.maps not found.",GEOCODER_UNAVAILABLE:"google.maps geocoder unavailable.",INVALID_KEY:"invalid google.maps api key.",TILE_EXTENT:[6378137*-Math.PI,6378137*Math.PI]};class _e{#a;#w;_equivalent(e,s,o,r){const n=this.#w;return!t.Utils.isNull(n)&&n.key===e&&n.language===(s||n.language)&&n.region===(o||n.region)&&n.version===(r||n.version)}_spinFuture(e,t,s,o){return new Promise((r,n)=>{this._equivalent(e,t,s,o)||_e._ensureBootstrapScript(e,t,s,o),this.#w={language:t,region:s,version:o,key:e},google.maps.importLibrary("maps").then(e=>{r(),this.#a=null},e=>{n(e),this.#a=null})})}boostrap(e,s,o,r="weekly"){return t.Utils.isNullOrEmpty(e)?Promise.reject(be.INVALID_KEY):(!t.Utils.isNull(this.#a)&&this._equivalent(e,s,o,r)||(this.#a=this._spinFuture(e,s,o,r)),this.#a)}static _ensureBootstrapScript(e,s,o,r){const n="pacem-googlemaps",i=`v=${r},l=${s},r=${o}`;let a=document.querySelector(`script[${n}]`);if(!t.Utils.isNull(a)){if(a.getAttribute(n)===i)return;a.remove(),document.querySelectorAll("script[src^='https://maps.googleapis.com/maps']").forEach(e=>e.remove()),delete window.google}t.Utils.isNullOrEmpty(e)||(a=document.createElement("script"),a.setAttribute(n,i),a.textContent=be.BOOTSTRAP_SNIPPET(e,s,o,r),document.head.appendChild(a))}}const Le=new _e;class Ce{static getPosition(e){return Array.isArray(e)?{lat:e[0],lng:e[1]}:e}static getBounds(e){return t.Utils.isNullOrEmpty(e)?null:{north:e.ne.lat,east:e.ne.lng,south:e.sw.lat,west:e.sw.lng}}static mapGeocodeResults(e,t=[]){const s=[];e??=[];for(let o=0;o<e.length;o++){const r=t.length>o?t[o]:null,n=Ce.mapGeocodeResult(e[o],r);s.push(n)}return s}static mapGeocodeResult(e,t){const s=e?.address_components||[],o=s.find(e=>e.types.indexOf("street_number")>=0)?.long_name,r=s.find(e=>e.types.indexOf("route")>=0)?.long_name,n=s.find(e=>e.types.indexOf("locality")>=0)?.long_name,i=s.find(e=>e.types.indexOf("administrative_area_level_3")>=0)?.long_name,a=s.find(e=>e.types.indexOf("administrative_area_level_2")>=0),l=s.find(e=>e.types.indexOf("administrative_area_level_1")>=0)?.short_name,p=s.find(e=>e.types.indexOf("country")>=0),d=s.find(e=>e.types.indexOf("postal_code")>=0)?.short_name,c={houseNumber:o,city:i||n,provinceCode:a?.short_name,province:a?.long_name,countryCode:p?.short_name,country:p?.long_name,zipCode:d,streetName:r,state:l,village:n,type:e.geometry.location_type};return{fullAddress:e.formatted_address,position:Ce.toLiteral(e.geometry.location,t?.elevation),address:c}}static toLiteral(e,s){if(t.Utils.isNull(e))return null;if("lat"in e&&"function"==typeof e.lat&&"lng"in e&&"function"==typeof e.lng)return{lat:e.lat(),lng:e.lng(),altitude:s};if("getNorthEast"in e&&"function"==typeof e.getNorthEast&&"getSouthWest"in e&&"function"==typeof e.getSouthWest){const t=e.getNorthEast(),s=e.getSouthWest();return{ne:Ce.toLiteral(t),sw:Ce.toLiteral(s)}}return"north"in e&&"number"==typeof e.north&&"south"in e&&"number"==typeof e.south&&"west"in e&&"number"==typeof e.west&&"east"in e&&"number"==typeof e.east?{ne:{lat:e.north,lng:e.east},sw:{lat:e.south,lng:e.west}}:t.Utils.extend({altitude:s},e)}static areEqual(e,s){if(t.Utils.isNull(e)||t.Utils.isNull(s))return!1;const o=Ce.toLiteral(e),r=Ce.toLiteral(s);return o.lat===r.lat&&o.lng===r.lng}static fitBounds(e,t,s){e?.fitBounds(t,s)}static setCenter(e,s){t.Utils.isNull(e)||Ce.areEqual(e.getCenter(),s)||e.panTo(s)}}class Me extends R{getShapeBounds(e){const t=new google.maps.LatLngBounds;if(e instanceof google.maps.Circle){const s=e.getBounds();s&&(t.extend(s.getNorthEast()),t.extend(s.getSouthWest()))}else(e instanceof google.maps.Polygon||e instanceof google.maps.Polyline)&&e.getPath().forEach(e=>t.extend(e));return!1!==t.isEmpty()?i.Empty:Ce.toLiteral(t)}deleteShape(e,t){e.setMap(null)}getShapePosition(e){return"latLng"in e?e.latLng:null}buildShape(e,t){const s=!0;return e instanceof U?new google.maps.Polyline({path:e.vertices,clickable:s,map:t}):e instanceof x?new google.maps.Polygon({paths:[e.vertices],clickable:s,map:t}):e instanceof z?new google.maps.Circle({center:e.center,radius:e.radius,clickable:s,map:t}):null}addClickEventListener(e,t){e.addListener("click",t)}addDragEventListener(e,t){e.addListener("drag",t)}addDragStartEventListener(e,t){e.addListener("dragstart",t)}addDragEndEventListener(e,t){e.addListener("dragend",t)}setShape(e,t){if(t instanceof U){e.setOptions({strokeColor:t.stroke?.color,strokeOpacity:t.stroke?.alpha??1,strokeWeight:t.stroke?.thickness,path:t.vertices})}if(t instanceof x){e.setOptions({strokeColor:t.stroke?.color,strokeOpacity:t.stroke?.alpha??1,strokeWeight:t.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:t.fill?.color,fillOpacity:t.fill?.alpha,paths:[t.vertices]})}if(t instanceof z){e.setOptions({strokeColor:t.stroke?.color,strokeOpacity:t.stroke?.alpha??1,strokeWeight:t.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:t.fill?.color,fillOpacity:t.fill?.alpha,center:t.center,radius:t.radius})}}setEditable(e,t){e.setOptions({editable:t})}setDraggable(e,t){e.setOptions({draggable:t})}}class Pe extends T{deleteInfoWindow(e,t){e.unbindAll()}deleteMarker(e,t){e.setMap(null)}get mapAutomaticallyScrollsOnDrag(){return!0}getMarkerPosition(e){const t=e.getPosition();return{lat:t.lat(),lng:t.lng()}}buildMarker(e,t){return new google.maps.Marker({position:e.position,map:t})}addClickEventListener(e,t,s){e.addListener("click",s)}addDragEventListener(e,t,s){e.addListener("drag",s)}addDragEndEventListener(e,t,s){e.addListener("dragend",s)}setPosition(e,t){e.setPosition(t)}setIcon(e,s){if("string"==typeof s)e.setIcon(s);else if(!t.Utils.isNull(s)){let o={url:s.url};t.Utils.isNullOrEmpty(s.size)||(o.size=new google.maps.Size(s.size.width,s.size.height),o.anchor=new google.maps.Point(s.size.width/2,s.size.height)),t.Utils.isNullOrEmpty(s.anchor)||(o.anchor=new google.maps.Point(s.anchor.x,s.anchor.y)),e.setIcon(o)}}setLabel(e,t){e.setLabel(t)}setDraggable(e,t){e.setDraggable(t)}closeInfo(e){e.close()}openInfo(e,t,s,o){e.open(s,o)}buildInfoWindow(e){let s=0;return"string"==typeof e.icon||t.Utils.isNull(e.icon)||(s=(e.icon.size?.width??0)/2-(e.icon.anchor?.x??0)),new google.maps.InfoWindow({pixelOffset:new google.maps.Size(-s,0)})}addCloseClickEventListener(e,t,s){e.addListener("closeclick",s)}setContent(e,t){e.setContent(t)}}class ke extends S{addLoadEventListener(e,t,s){e.addListener("tilesloaded",s)}removeLoadEventListener(e,t,s){}deleteLayer(e,t){const s=t.overlayMapTypes.getArray().findIndex(t=>t===e);s>=0&&t.overlayMapTypes.removeAt(s)}_getBounds(e,t,s){const o=be.TILE_EXTENT;var r=2*o[1]/Math.pow(2,s),n=o[0]+e*r,i=o[0]+(e+1)*r;return[n,o[1]-(t+1)*r,i,o[1]-t*r]}_getWmsTileUrl(e,s){return(o,r)=>t.Utils.URIs.appendQuery(e,{service:"WMS",styles:"",transparent:"true",request:"GetMap",srs:"EPSG:3857",format:"image/png",version:"1.1.1",layers:s?.join(",")||"",width:"256",height:"256",bbox:this._getBounds(o.x,o.y,r).join(",")})}_getWmsLayer(e,t){const s=new google.maps.ImageMapType({getTileUrl:this._getWmsTileUrl(e.url,e.include),minZoom:e.minZoom,maxZoom:e.maxZoom,opacity:1});return t.overlayMapTypes.push(s),s}_getTmsTileUrl(e){return(t,s)=>{const o={r:"",s:(r=t,"abc"[Math.abs(r.x+r.y)%3]),x:""+t.x,y:""+t.y,z:""+s};var r;let n=e;for(let e in o)n=n.replaceAll("{"+e+"}",o[e]);return n}}_getTmsLayer(e,t){const s=new google.maps.ImageMapType({getTileUrl:this._getTmsTileUrl(e.url),minZoom:e.minZoom,maxZoom:e.maxZoom,opacity:1});return t.overlayMapTypes.push(s),s}buildLayer(e,t){switch((e.mode||"").toLowerCase()){case"wms":return this._getWmsLayer(e,t);case"tms":return this._getTmsLayer(e,t);default:throw new Error(`"${e.mode}" overlays not supported for the Google Maps integration.`)}}}class Oe extends P{updateOverlay(e,t,s){e.set,e.draw()}deleteOverlay(e,t){e.setMap(null)}buildOverlay(e,s){let o=function(e){class s extends google.maps.OverlayView{constructor(e){super(),this._item=e}get element(){return this._item}get bounds(){const e=this._item.bounds;return t.Utils.isNull(e)?null:Ce.getBounds(e)}getBoundingBox(){const e=this.getProjection(),s=this.bounds;if(t.Utils.isNullOrEmpty(s))return null;const o=e.fromLatLngToDivPixel({lat:s.south,lng:s.west}),r=e.fromLatLngToDivPixel({lat:s.north,lng:s.east});return{x:o.x,y:r.y,width:r.x-o.x,height:o.y-r.y}}}class o extends s{get src(){return this.element.src}#b;onAdd(){const e=this.#b=this.#b||document.createElement("div");e.style.position="absolute",this.getPanes().overlayLayer.appendChild(e)}onRemove(){const e=this.#b;t.Utils.isNull(e)||(e.remove(),this.#b=null)}draw(){const e=this.#b;if(t.Utils.isNull(e))return;const s=this.getBoundingBox();t.Utils.isNull(s)||(e.style.top=s.y+"px",e.style.left=s.x+"px",e.style.width=s.width+"px",e.style.height=s.height+"px",e.style.backgroundSize=`${s.width}px ${s.height}px`,e.style.backgroundImage=`url(${this.src})`)}}return e instanceof O?new o(e):null}(e);return o.setMap(s),o}setBounds(e,t,s){e.draw()}}const Se=["dragend","zoom_changed","center_changed","maptypeid_changed","tilt_changed","heading_changed","bounds_changed"];function Ne(e){const t=e.theme==c.DARK?google.maps.ColorScheme.DARK:e.theme!=c.LIGHT?google.maps.ColorScheme.FOLLOW_SYSTEM:google.maps.ColorScheme.LIGHT;switch(e.type){case google.maps.MapTypeId.HYBRID:case google.maps.MapTypeId.ROADMAP:case google.maps.MapTypeId.TERRAIN:case google.maps.MapTypeId.SATELLITE:return{type:e.type,theme:t};case d.HYBRID:return{type:google.maps.MapTypeId.HYBRID,theme:t};case d.SATELLITE:return{type:google.maps.MapTypeId.SATELLITE,theme:t};case d.TERRAIN:return{type:google.maps.MapTypeId.TERRAIN,theme:t};default:return{type:google.maps.MapTypeId.ROADMAP,theme:t}}}let Te=class extends C{geocode(e,t){const s=this.language||"",o=this.region||"",r=this.version||"weekly";return new Ae(this.apiKey,s,o,r).geocode(e,t)}reverseGeocode(e,t){const s=this.language||"",o=this.region||"",r=this.version||"weekly";return new Ae(this.apiKey,s,o,r).reverseGeocode(e,t)}getBounds(e){if(!this.hasMap(e))return i.Empty;const t=this.getMap(e).getBounds();return Ce.toLiteral(t)}isActive(){return!t.Utils.isNullOrEmpty(this.apiKey)}buildMarkerAdapterFor(e){return new Pe(e,this)}buildOverlayAdapterFor(e){return new Oe(e,this)}buildShapeAdapterFor(e){return new Me(e,this)}buildLayerAdapterFor(e){return new ke(e,this)}getMaxAvailableZoom(e){return new Promise((t,s)=>{(new google.maps.MaxZoomService).getMaxZoomAtLatLng(e,e=>{e.status===google.maps.MaxZoomStatus.OK?t(e.zoom):s()})})}#v=new WeakMap;snapshot(e,s="image/png",o){const{container:r}=this.tryGetMap(e);return t.Utils.snapshotElement(r,null,s,o)}setViewNative(e,s){const o=this.getMap(e);s=t.Utils.extend({type:e.type,theme:e.theme},s);const{type:r,theme:n}=Ne(s);if(this.#_&&n!==o.get("colorScheme"))return void this._bootstrapDebounced();o.setOptions({colorScheme:n,mapTypeId:r}),"number"==typeof s.tilt&&o.setTilt(s.tilt),"number"==typeof s.heading&&o.setHeading(s.heading);const i=()=>{s.center&&Ce.setCenter(o,s.center)};if("number"==typeof s.zoom&&s.zoom!==o.getZoom()){switch(o.getMapTypeId()){case google.maps.MapTypeId.SATELLITE:case google.maps.MapTypeId.HYBRID:const e=Ce.toLiteral(o.getCenter());this.getMaxAvailableZoom(e).then(e=>{const t=Math.min(e,s.zoom);o.setZoom(t),i()});break;default:const t=Math.min(be.MAX_ROADMAP_ZOOM,s.zoom);o.setZoom(t),i()}}else i()}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),!o)switch(e){case"libraries":case"apiKey":case"language":case"region":this.#_&&this._bootstrapDebounced();break;case"defaultOptions":for(let e of this.enrolledMaps())this._updateMapOptions(e);break;default:for(let e of this.enrolledMaps())this.invalidateSize(e)}}dispose(e){const t=this.#v.get(e);for(;t.length;)google.maps.event.removeListener(t.pop());this.#v.delete(e)}_updateMapOptions(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);t.setOptions(this._buildMapOptions(e))}_buildMapOptions(e){const s=e.scale,o=e.draggable,r=e.doubleClickZoom,n=e.keyboardShortcuts,{type:i,theme:a}=Ne({type:e.type,theme:e.theme});return t.Utils.extend({},this.defaultOptions||{streetViewControl:!1,zoomControl:!1,mapTypeControl:!1,fullscreenControl:!1,cameraControl:!1},{zoomControl:s&&!t.Utils.isNullOrEmpty(e.zoomControl),zoomControlOptions:{position:function(e){switch(e){case"topright":return google.maps.ControlPosition.RIGHT_TOP;case"bottomleft":return google.maps.ControlPosition.LEFT_BOTTOM;case"bottomright":return google.maps.ControlPosition.RIGHT_BOTTOM;default:return google.maps.ControlPosition.LEFT_TOP}}(e.zoomControl)},scrollwheel:e.mousewheel,disableDoubleClickZoom:r,keyboardShortcuts:n,draggable:o,mapTypeId:i,colorScheme:a,tilt:e.tilt,heading:e.heading})}#_=!1;_bootstrapDebounced(){this._bootstrap().then(e=>{for(let e of this.enrolledMaps())e.adapter=null,e.adapter=this})}_bootstrap(){return new Promise((e,t)=>{const s=this.apiKey,o=this.language||"",r=this.region||"",n=this.version||"weekly";Le.boostrap(s,o,r,n).then(s=>{const o=[];for(let e of this.libraries||[])o.push(google.maps.importLibrary(e));Promise.all(o).then(t=>{e(),this.#_=!0},t)},t)})}async init(e){await this._bootstrap();const t=e,s=E.parseCoords(t.center),o=new google.maps.LatLng(s[0],s[1]),r=this._buildMapOptions(t),n=t.container,i=document.createElement("div");i.style.width="100%",i.style.height="100%",n.innerHTML="",n.appendChild(i);const a=new google.maps.Map(i,r),l=[];this.#v.set(t,l),Se.forEach(e=>{l.push(a.addListener(e,this._spinMapUpdateHandler(t,a)))}),a.setZoom(t.zoom),a.setCenter(o);var p=a.addListener("idle",function(t){p.remove(),e.dispatchEvent(new b("maploaded"))});l.push(a.addListener("tilesloaded",t=>{e.dispatchEvent(new b("tilesloaded"))}));const d=E.parseCoords(t.center),c=new google.maps.LatLng(d[0],d[1]);return a.setZoom(t.zoom),a.setCenter(c),{map:a,container:i}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);google.maps.event.trigger(t,"resize")}_spinMapUpdateHandler(e,s){return()=>{if(!t.Utils.isNull(s)&&!t.Utils.isNull(e)){const o=s.getCenter();if(t.Utils.isNull(o))return;this.updateMapElement(e,{center:{lat:o.lat(),lng:o.lng()},zoom:s.getZoom(),type:s.getMapTypeId(),tilt:s.getTilt(),heading:s.getHeading()})}}}fitBoundsNative(e,s,o=this._getPadding(e)){const r=this.tryGetMap(e)?.map;if(t.Utils.isNull(r))return;const n=Ce.getBounds(s);Ce.fitBounds(r,n,o)}_getPadding(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,r=e.paddingBottom||0;return s||t||o||r?{top:t,bottom:r,left:s,right:o}:null}_padBounds(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,r=e.paddingBottom||0;if(s||t||o||r){const n=this.tryGetMap(e).map,i=n.getBounds(),a=n.getDiv().clientWidth,l=n.getDiv().clientHeight,p=n.getProjection().fromPointToLatLng(new google.maps.Point(-s,-t)),d=n.getProjection().fromPointToLatLng(new google.maps.Point(a+o,l+r));i.extend(p),i.extend(d)}}_redrawMap(){}};we([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Te.prototype,"apiKey",void 0),we([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Te.prototype,"version",void 0),we([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Te.prototype,"language",void 0),we([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Te.prototype,"region",void 0),we([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],Te.prototype,"defaultOptions",void 0),we([t.Watch({emit:!1,converter:t.PropertyConverters.StringArray})],Te.prototype,"libraries",void 0),we([t.Debounce(be.DETACH_TIMEOUT)],Te.prototype,"_bootstrapDebounced",null),Te=we([t.CustomElement({tagName:t.P+"-map-adapter-google"})],Te);class Ae{constructor(e,t="",s="",o="weekly"){this.apiKey=e,this.language=t,this.region=s,this.version=o}_elevateResults(e){return new Promise((t,s)=>{(new google.maps.ElevationService).getElevationForLocations({locations:e.map(e=>e.geometry.location)},(s,o)=>{if(o===google.maps.ElevationStatus.OK){const o=Ce.mapGeocodeResults(e,s);t(o)}else{const s=Ce.mapGeocodeResults(e);t(s)}})})}geocode(e,t=10){return new Promise((s,o)=>{Le.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(r=>{(new google.maps.Geocoder).geocode({address:e},(e,r)=>{if(r===google.maps.GeocoderStatus.OK||r==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(e||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(s)}else o(r)})},o)})}_reverseGeocodeInternal(e,t){const s=Ce.getPosition(e);return new Promise((e,o)=>{Le.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(r=>{(new google.maps.Geocoder).geocode({location:s},(s,r)=>{if(r===google.maps.GeocoderStatus.OK||r==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(s||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(e)}else o(r)})},o)})}reverseGeocode(e,t=1){return this._reverseGeocodeInternal(e,t)}}var Re=Object.freeze({__proto__:null,LatLngBoundsConverter:f,LatLngConverter:v,LayerLoadEventName:he,get MapColorScheme(){return c},MapConsts:g,MapEvent:b,MapItemAdapter:M,MapRelevantElement:w,get MapType(){return d},MapUtils:E,get PacemAzureMapAdapterElement(){return re},get PacemGoogleMapAdapterElement(){return Te},PacemLayerAdapter:S,get PacemLeafletMapAdapterElement(){return fe},PacemMapAdapterElement:C,get PacemMapCircleElement(){return z},get PacemMapElement(){return B},get PacemMapGeocodeElement(){return _},get PacemMapGeolocateElement(){return H},get PacemMapLayerElement(){return N},get PacemMapMarkerElement(){return A},PacemMapOverlayElement:k,get PacemMapOverlayImageElement(){return O},get PacemMapPolygonElement(){return x},get PacemMapPolylineElement(){return U},PacemMapShapeElement:I,PacemMarkerAdapter:T,PacemOverlayAdapter:P,PacemShapeAdapter:R,isLatLng:function(e){return r.isLatLng(e)},isLatLngBounds:function(e){return i.isLatLngBounds(e)}}),Ie=Object.freeze({__proto__:null,Maps:Re}),Ue=Object.freeze({__proto__:null,Components:Ie,Maps:h});e.DeepMerger.merge(Ue)}(Pacem,Pacem);
6
+ !function(e,t){"use strict";var s=function(e,t,s,o){var r,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,s,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(n=(a<3?r(n):a>3?r(t,s,n):r(t,s))||n);return a>3&&n&&Object.defineProperty(t,s,n),n};const o={lat:Number.NaN,lng:Number.NaN};class LatLng{static get Empty(){return o}static isEmpty(e){return e===o||isNaN(e.lat)&&isNaN(e.lng)}static isLatLng(e){return"lat"in e&&"number"==typeof e.lat&&"lng"in e&&"number"==typeof e.lng}static translate(e,t){return{lat:e.lat+t.lat,lng:e.lng+t.lng}}static equals(e,t){return e===t||e.lat===t.lat&&e.lng===t.lng}}const r={ne:LatLng.Empty,sw:LatLng.Empty};class LatLngBounds{static get Empty(){return r}static isEmpty(e){return e===r||LatLng.isEmpty(e.ne)&&LatLng.isEmpty(e.sw)}static isPoint(e){return!this.isEmpty(e)&&(e.ne===e.sw||e.ne.lat===e.sw.lat&&e.ne.lng===e.sw.lng)}static isLatLngBounds(e){return"object"==typeof e&&"ne"in e&&LatLng.isLatLng(e.ne)&&"sw"in e&&LatLng.isLatLng(e.sw)}static union(e,t){if(LatLngBounds.isEmpty(e))return LatLngBounds.isLatLngBounds(t)?t:{ne:t,sw:t};if(LatLngBounds.isLatLngBounds(t)){if(LatLngBounds.isEmpty(t))return e;return{ne:{lat:Math.max(e.ne.lat,t.ne.lat),lng:Math.max(e.ne.lng,t.ne.lng)},sw:{lat:Math.min(e.sw.lat,t.sw.lat),lng:Math.min(e.sw.lng,t.sw.lng)}}}if(LatLng.isLatLng(t)){if(LatLng.isEmpty(t))return e;return{ne:{lat:Math.max(e.ne.lat,t.lat),lng:Math.max(e.ne.lng,t.lng)},sw:{lat:Math.min(e.sw.lat,t.lat),lng:Math.min(e.sw.lng,t.lng)}}}return e}static equals(e,t){return e===t||LatLng.equals(e.ne,t.ne)&&LatLng.equals(e.sw,t.sw)}}const a={SIZE:256,RAD:Math.PI/180,DEG:180/Math.PI,SIN_LIMIT:1-1e-15,EARTH_RADIUS:6378137},n="maps";class MapProjection{constructor(e,t,s=a.SIZE){this._pixelSize=e,this._bounds=t,this._normalizedSize=s;const o=s/2;this.#e={x:o,y:o},this.#t=s/360,this.#s=o/Math.PI,this.#o=this._latLngToWorldNormalizedPoint(t.sw),this.#r=this._latLngToWorldNormalizedPoint(t.ne)}#e;#o;#r;#t;#s;_latLngToWorldNormalizedPoint(e){const t=this.#e.x+e.lng*this.#s,s=e.lat*a.RAD,o=a.SIN_LIMIT,r=Math.sin(s).clamp(-o,o);return{x:t,y:this.#e.y+.5*Math.log((1+r)/(1-r))*-this.#t}}_worldNormalizedPointToLatLng(e){return{lat:a.DEG*(2*Math.atan(Math.exp((e.y-this.#e.y)/-this.#t))-Math.PI/2),lng:(e.x-this.#e.x)/this.#s}}_latLngToPoint(e){const t=this.#r,s=this.#o,o=-t.y+s.y,r=t.x-s.x,a=this._latLngToWorldNormalizedPoint(e),{width:n,height:i}=this._pixelSize;return{x:(a.x-s.x)*(n/r),y:(a.y-t.y)*(i/o)}}_pointToLatLng(e){const t=this.#r,s=this.#o,o=-t.y+s.y,r=t.x-s.x,{width:a,height:n}=this._pixelSize,i=e.x/(a/r)+this.#o.x,l=e.y/(n/o)+this.#r.y;return this._worldNormalizedPointToLatLng({x:i,y:l})}static _haversine(e,t){const s=a.RAD,o=e.lng*s,r=t.lng*s,n=e.lat*s,i=t.lat*s;return 2*Math.asin(Math.sqrt(Math.pow(Math.sin((n-i)/2),2)+Math.cos(n)*Math.cos(i)*Math.pow(Math.sin((o-r)/2),2)))}static _offsetByMeters(e,t,s,o){const{RAD:r,DEG:n}=a,i=e.lat*r;return{lat:(i+t/o)*n,lng:(e.lng*r+s/(o*Math.cos(i)))*n}}static offsetBy(e,t,s,o=a.EARTH_RADIUS){return MapProjection._offsetByMeters(e,t,s,o)}static distanceBetween(e,t,s=a.EARTH_RADIUS){return MapProjection._haversine(e,t)*s}static latLngToPoint(e,t,s){return new MapProjection(s,t)._latLngToPoint(e)}static pointToLatLng(e,t,s){return new MapProjection(t,s)._pointToLatLng(e)}}s([t.Transformer(n+".")],MapProjection,"offsetBy",null),s([t.Transformer(n+".")],MapProjection,"distanceBetween",null),s([t.Transformer(n+".")],MapProjection,"latLngToPoint",null),s([t.Transformer(n+".")],MapProjection,"pointToLatLng",null);var i,l,p=Object.freeze({__proto__:null,LatLng:LatLng,LatLngBounds:LatLngBounds,MapProjection:MapProjection}),d=function(e,t,s,o){var r,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,s,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(n=(a<3?r(n):a>3?r(t,s,n):r(t,s))||n);return a>3&&n&&Object.defineProperty(t,s,n),n};!function(e){e.ROAD="road",e.SATELLITE="satellite",e.HYBRID="hybrid",e.TERRAIN="terrain",e.HIGH_CONTRAST="high_contrast"}(i||(i={})),function(e){e.LIGHT="light",e.DARK="dark",e.SYSTEM="system"}(l||(l={}));const c={MAP_SELECTOR:t.P+"-map",MARKER_SELECTOR:t.P+"-map-marker",POLYLINE_SELECTOR:t.P+"-map-polyline",CIRCLE_SELECTOR:t.P+"-map-circle",POLYGON_SELECTOR:t.P+"-map-polygon",LAYER_SELECTOR:t.P+"-map-layer",OVERLAY_IMAGE_SELECTOR:t.P+"-map-overlay-image",GEOCODER_SELECTOR:t.P+"-map-geocode",DEFAULT_COORDS:{lat:44.71418802507798,lng:10.296516444873811}},h={DEFAULT_COORDS:c.DEFAULT_COORDS};const m="defaultMapTarget",u={convert:e=>{const t=/^\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*$/.exec(e);return t&&t.length>2?{lat:parseFloat(t[1]),lng:parseFloat(t[2])}:JSON.parse(e)},convertBack:e=>JSON.stringify(e)},g={convert:e=>{const t=/^\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*,?\s*([+\-\d\.]+)\s*$/.exec(e);return t&&t.length>4?{sw:{lat:parseFloat(t[3]),lng:parseFloat(t[4])},ne:{lat:parseFloat(t[1]),lng:parseFloat(t[2])}}:JSON.parse(e)},convertBack:e=>JSON.stringify(e)};class MapUtils{static parseCoords(e){if(e&&!isNaN(e.lat)&&!isNaN(e.lng))return[e.lat,e.lng];if(t.Utils.isArray(e)&&e.length>1)return[e[0],e[1]];if(/^\s*(\+|-)?[\d]+(.[\d]+)?\s*,\s*(\+|-)?[\d]+(.[\d]+)?\s*$/.test(e)){var s=e.split(",");return[parseFloat(s[0]),parseFloat(s[1])]}return[c.DEFAULT_COORDS.lat,c.DEFAULT_COORDS.lng]}static expandBounds(e,t){t&&(Array.isArray(t)||(t=[t.lat,t.lng]),e.push(t))}static isContentEmpty(e){return 0==e.children.length}}class MapRelevantElement extends t.PacemEventTarget{get map(){return this._map=this._map||t.CustomElementUtils.findAncestorOfType(this,b)}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),!o&&"hide"===e){const e=this.map;e?.adapter?.fitBounds(e,!0)}}viewActivatedCallback(){super.viewActivatedCallback(),this.map&&this.map.register(this)}disconnectedCallback(){this.map&&this.map.unregister(this),super.disconnectedCallback()}}d([t.Watch({converter:t.PropertyConverters.Boolean})],MapRelevantElement.prototype,"hide",void 0),d([t.Watch({converter:t.PropertyConverters.Boolean})],MapRelevantElement.prototype,"inactive",void 0);class MapEvent extends t.CustomTypedEvent{constructor(e,t){super(e,t)}}let y=class PacemMapGeocodeElement extends t.PacemEventTarget{constructor(){super(...arguments),this.debounce=1e3,this.#a=!1}#a;#n;#i;get fetching(){return this.#a}_guards(){const e=this.results;if(!t.Utils.isNullOrEmpty(e)){const s=e[0];if(!t.Utils.isNull(this.position)&&LatLng.equals(this.position,s.position)&&this.search===s.fullAddress)return Promise.resolve(e)}const s=this.adapter;return t.Utils.isNull(s)||s.disabled||!s.active?Promise.resolve([]):null}propertyChangedCallback(e,s,o,r){switch(super.propertyChangedCallback(e,s,o,r),e){case"search":this.geocode(o);break;case"position":this.reverseGeocode(o);break;case"results":if(t.Utils.isNullOrEmpty(o))this.search="",this.position=null;else{const e=o[0];this.search=e.fullAddress,this.position=e.position}}}_broadcastFetchingUpdate(e){e!==this.#a&&(this.#a=e,this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"fetching",oldValue:!e,currentValue:e})))}_fetch(e){const{promise:s,search:o,position:r,key:a}=e,n=this.#i;!t.Utils.isNull(n)&&LatLng.equals(n.position,r)&&(n.search||"")===(o||"")||(this.#i={key:a,promise:s,position:r,search:o},this._broadcastFetchingUpdate(!0),s.then(e=>{a===this.#i.key&&(this._broadcastFetchingUpdate(!1),this._successCallback(e))},e=>this._errorCallback(e)))}_debounce(e,t=this.debounce){this.#n&&clearTimeout(this.#n),this.#n=window.setTimeout(()=>{e()},t||0)}reverseGeocode(e=this.position,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.reverseGeocode(e,s||1);this._fetch({promise:o,position:e,key:t.Utils.uniqueCode()})})}geocode(e=this.search,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.geocode(e,s||10);this._fetch({promise:o,search:e,position:LatLng.Empty,key:t.Utils.uniqueCode()})})}_successCallback(e){const s=!t.Utils.isNullOrEmpty(e);!s&&t.Utils.isNullOrEmpty(this.results)||e!==this.results&&(this.results=e,s&&this.dispatchEvent(new CustomEvent("success",{detail:e,bubbles:!1,cancelable:!1})))}_errorCallback(e){t.Utils.isNullOrEmpty(this.results)||(this.results=[]),this.dispatchEvent(new CustomEvent("error",{detail:e,bubbles:!1,cancelable:!1}))}};d([t.Watch({emit:!1,converter:t.PropertyConverters.Element})],y.prototype,"adapter",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],y.prototype,"maxResults",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],y.prototype,"debounce",void 0),d([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],y.prototype,"results",void 0),d([t.Watch({emit:!0,converter:t.PropertyConverters.String})],y.prototype,"search",void 0),d([t.Watch({emit:!0,converter:u})],y.prototype,"position",void 0),y=d([t.CustomElement({tagName:c.GEOCODER_SELECTOR})],y);class PacemMapAdapterElement extends t.PacemEventTarget{constructor(){super(...arguments),this.active=!0,this.#l=new Map,this.#p=new WeakMap,this.#d=new WeakMap,this.#c=new WeakMap,this.#h=new WeakMap}propertyChangedCallback(e,t,s,o){super.propertyChangedCallback(e,t,s,o),o||(this.active=!this.disabled&&this.isActive())}#l;#p;#d;#c;#h;get layerAdapters(){return this.#c}get overlayAdapters(){return this.#h}get markerAdapters(){return this.#p}get shapeAdapters(){return this.#d}hasMap(e){return this.#l.has(e)}enrolledMaps(){return this.#l.keys()}tryGetMap(e){const t=this.#l;return t.has(e)?t.get(e):null}getMap(e){const t=this.tryGetMap(e);return t?.map}async initialize(e){const t=this.#l;if(!t.has(e)){const s=await this.init(e);t.set(e,s);const o=this.#c;o.has(e)||o.set(e,this.buildLayerAdapterFor(e));const r=this.#h;r.has(e)||r.set(e,this.buildOverlayAdapterFor(e));const a=this.#p;a.has(e)||a.set(e,this.buildMarkerAdapterFor(e));const n=this.#d;return n.has(e)||n.set(e,this.buildShapeAdapterFor(e)),s.container}return t.get(e).container}destroy(e){const t=this.#c;t.has(e)&&t.delete(e);const s=this.#h;s.has(e)&&s.delete(e);const o=this.#p;o.has(e)&&o.delete(e);const r=this.#d;r.has(e)&&r.delete(e);const a=this.#l;a.has(e)&&(this.dispose(e),a.delete(e))}removeItem(e){const t=e.map;if(e instanceof f){const s=this.layerAdapters;if(s.has(t)){s.get(t).removeLayer(e)}}else if(e instanceof E){const s=this.markerAdapters;if(s.has(t)){s.get(t).removeMarker(e)}}else if(e instanceof PacemMapShapeElement){const s=this.shapeAdapters;if(s.has(t)){s.get(t).removeShape(e)}}else if(e instanceof PacemMapOverlayElement){const s=this.overlayAdapters;if(s.has(t)){s.get(t).removeOverlay(e)}}e.inactive||this.fitBounds(t,!0)}drawItem(e){const t=e.map;if(e instanceof f){const s=this.layerAdapters;if(s.has(t)){s.get(t).drawLayer(e)}}else if(e instanceof E){const s=this.markerAdapters;if(s.has(t)){s.get(t).drawMarker(e)}}else if(e instanceof PacemMapShapeElement){const s=this.shapeAdapters;if(s.has(t)){s.get(t).drawShape(e)}}else if(e instanceof PacemMapOverlayElement){const s=this.overlayAdapters;if(s.has(t)){s.get(t).drawOverlay(e)}}e.inactive||this.fitBounds(t,!0)}popupInfoWindow(e){const t=e.map;if(e instanceof E){const s=this.markerAdapters;s.has(t)&&s.get(t).openInfoWindow(e)}}popoutInfoWindow(e){const t=e.map;if(e instanceof E){const s=this.markerAdapters;s.has(t)&&s.get(t).closeInfoWindow(e)}}setView(e,s,o){if(!this.hasMap(e))return;let r={};r="number"==typeof s?t.Utils.extend({},{zoom:s}):LatLng.isLatLng(s)?t.Utils.extend({},{center:s,zoom:o}):s,this.setViewNative(e,r)}fitBounds(e,s){if(t.Utils.isNull(e))for(let e of this.enrolledMaps()||[])this._fitBounds(e,s);else this._fitBounds(e,s)}_fitBounds(e,s){if(!this.hasMap(e))return;if(!e.autofit&&!0===s)return;if(LatLngBounds.isLatLngBounds(s)&&!LatLngBounds.isEmpty(s))return void this.fitBoundsNative(e,s);const o=this.markerAdapters.get(e)?.getBounds(),r=this.shapeAdapters.get(e)?.getBounds(),a=t.Utils.isNull(o)||LatLngBounds.isEmpty(o),n=t.Utils.isNull(r)||LatLngBounds.isEmpty(r);if(a&&n)return void this.setView(e,{center:e.center,zoom:e.zoom});let i=LatLngBounds.Empty;a||(i=LatLngBounds.union(i,o)),n||(i=LatLngBounds.union(i,r)),LatLngBounds.isPoint(i)?this.setView(e,{zoom:e.zoom,center:i.ne}):this.fitBoundsNative(e,i)}updateMapElement(e,s,o){["type","tilt","heading"].forEach(t=>{t in s&&(e[t]=s[t])});const r="zoom"in s?s.zoom:o;t.Utils.isNullOrEmpty(r)||r===e.zoom||(e.zoom=r);const a=LatLng.isLatLng(s)?s:s.center;t.Utils.isNullOrEmpty(a)||a.lat==e.center?.lat&&a.lng==e.center?.lng||(e.center=a),e.updateBounds(this.getBounds(e))}}d([t.Watch({emit:!0,converter:t.PropertyConverters.Boolean})],PacemMapAdapterElement.prototype,"active",void 0),d([t.Debounce(1e3,(e,t)=>`pacem:debounce:${e}:${t.id}`)],PacemMapAdapterElement.prototype,"_fitBounds",null);class MapItemAdapter{constructor(e,t=e.adapter){this._map=e,this._adapter=t}get adapter(){return this._adapter}get map(){return this._map}getMap(e){return this._adapter.getMap(e.map)}}class PacemOverlayAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}#h=new Map;get layers(){return this.#h}onOverlayLoad(e,t){e.dispatchEvent(new Event("overlayload"))}ensureOverlay(e,s){const o=this.#h;let r;return o.has(e)?r=o.get(e):(r=this.buildOverlay(e,s),t.Utils.isNull(r)||o.set(e,r)),r}removeOverlay(e){const t=this,s=t.getMap(e),o=this.#h;if(o.has(e)){const r=o.get(e);t.deleteOverlay(r,s),o.delete(e)}}drawOverlay(e){const s=this,o=s.getMap(e);if(t.Utils.isNull(o))return;if(t.Utils.isNullOrEmpty(e)||e.hide)return void s.removeOverlay(e);const r=this.ensureOverlay(e,o);this.setBounds(r,o,e.bounds),this.updateOverlay(r,o,e)}}class PacemMapOverlayElement extends MapRelevantElement{}d([t.Watch({emit:!1,converter:g})],PacemMapOverlayElement.prototype,"bounds",void 0);let v=class PacemMapOverlayImageElement extends PacemMapOverlayElement{};d([t.Watch({emit:!1,converter:t.PropertyConverters.String})],v.prototype,"src",void 0),v=d([t.CustomElement({tagName:c.OVERLAY_IMAGE_SELECTOR})],v);class PacemLayerAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}#c=new Map;#m=new Map;get layers(){return this.#c}onTileLoad(e,t){e.dispatchEvent(new Event("tileload"))}ensureLayer(e,t){const s=this,o=s.#c;let r;if(o.has(e))r=o.get(e);else if(r=this.buildLayer(e,t),null!=r){const a=t=>{s.onTileLoad(e,t)};this.#m.set(e,a),this.addLoadEventListener(r,t,a),o.set(e,r)}return r}removeLayer(e){const t=this,s=t.getMap(e),o=this.#c;if(o.has(e)){const r=o.get(e),a=this.#m;if(a.has(e)){const t=a.get(e);this.removeLoadEventListener(r,s,t),a.delete(e)}t.deleteLayer(r,s),o.delete(e)}}drawLayer(e){const s=this,o=s.getMap(e);t.Utils.isNull(o)||(t.Utils.isNullOrEmpty(e)||e.hide?s.removeLayer(e):this.ensureLayer(e,o))}}let f=class PacemMapLayerElement extends MapRelevantElement{};d([t.Watch({emit:!1,converter:t.PropertyConverters.String})],f.prototype,"url",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],f.prototype,"include",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.String})],f.prototype,"mode",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],f.prototype,"minZoom",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],f.prototype,"maxZoom",void 0),f=d([t.CustomElement({tagName:c.LAYER_SELECTOR})],f);class PacemMarkerAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}get mapAutomaticallyScrollsOnDrag(){return!1}#p=new Map;#u=new Map;getBounds(e=e=>!0){const s=this.markers;let o=LatLngBounds.Empty;for(var r of s.keys()){if(!e(r)||r.inactive)continue;let a=s.get(r);t.Utils.isNull(a)||(o=LatLngBounds.union(o,this.getMarkerPosition(a)))}return o}get markers(){return this.#p}get infoWindows(){return this.#u}onDragEnd(e,t){const s=this.markers.get(e),o=this.getMarkerPosition(s);e.onDragEnd(o)}onClick(e,t){const s=this.markers.get(e),o=this.getMarkerPosition(s);e.onClick(o)}onInfoOpen(e){e.onInfoOpen()}onInfoClose(e){e.onInfoClose()}ensureMarker(e,t){const s=this;let o;return s.markers.has(e)?o=s.markers.get(e):(o=this.buildMarker(e,t),null!=o&&(this.addClickEventListener(o,t,t=>{s.onClick(e,t),s.openInfoWindow(e,t)}),this.addDragEventListener(o,t,t=>{this.mapAutomaticallyScrollsOnDrag||s.adapter.fitBounds(e.map,!0)}),this.addDragEndEventListener(o,t,t=>s.onDragEnd(e,t)),s.markers.set(e,o))),o}removeMarker(e){const t=this,s=t.getMap(e),o=this.#u,r=this.#p;if(o.has(e)&&o.delete(e),r.has(e)){const o=r.get(e);t.deleteMarker(o,s),r.delete(e)}}drawMarker(e){const s=this,o=s.getMap(e);if(t.Utils.isNull(o))return;if(t.Utils.isNullOrEmpty(e&&e.position)||e.hide)return void s.removeMarker(e);const r=this.ensureMarker(e,o);this.setPosition(r,e.position),this.setIcon(r,e.icon),this.setLabel(r,e.caption),this.setDraggable(r,e.draggable)}closeInfoWindow(e,t){const s=this;if(s.infoWindows.has(e)){const t=s.infoWindows.get(e);this.closeInfo(t)}}ensureInfoWindow(e,t){var s=this;let o;return s.infoWindows.has(e)?o=s.infoWindows.get(e):(o=this.buildInfoWindow(e),this.addCloseClickEventListener(o,t,r=>{s.deleteInfoWindow(o,t),s.onInfoClose(e)}),s.infoWindows.set(e,o)),o}openInfoWindow(e,s){var o=this,r=o.markers.get(e),a=e.caption,n=o.getMap(e);if(MapUtils.isContentEmpty(e)||(a=e.innerHTML),!t.Utils.isNullOrEmpty(a)){const t=this.ensureInfoWindow(e,n);this.setContent(t,a),this.openInfo(t,a,n,r),o.onInfoOpen(e)}}}let E=class PacemMapMarkerElement extends MapRelevantElement{onDragEnd(e){this.position=e,this.dispatchEvent(new MapEvent("dragend",{position:e}))}onClick(e){this.position=e,this.dispatchEvent(new MapEvent("click",{position:e}))}onInfoOpen(){this.dispatchEvent(new MapEvent("openinfo"))}onInfoClose(){this.dispatchEvent(new MapEvent("closeinfo"))}};d([t.Watch({converter:u})],E.prototype,"position",void 0),d([t.Watch({converter:t.PropertyConverters.Json})],E.prototype,"icon",void 0),d([t.Watch({converter:t.PropertyConverters.String})],E.prototype,"caption",void 0),d([t.Watch({converter:t.PropertyConverters.Boolean})],E.prototype,"draggable",void 0),E=d([t.CustomElement({tagName:c.MARKER_SELECTOR})],E);class PacemShapeAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}#d=new Map;get shapes(){return this.#d}getBounds(e=e=>!0){const s=this.shapes;let o=LatLngBounds.Empty;for(var r of s.keys()){if(!e(r)||r.inactive)continue;let a=s.get(r);t.Utils.isNull(a)||(o=LatLngBounds.union(o,this.getShapeBounds(a)))}return o}removeShape(e){const t=this,s=t.getMap(e),o=this.#d;if(o.has(e)){const r=o.get(e);t.deleteShape(r,s),o.delete(e)}}_dispatchEvent(e,t,s){const o=this.shapes.get(e),r=this.getShapePosition(s??o);e.dispatchEvent(new MapEvent(t,{position:r}))}#g=new Map;onDragStart(e,t){const s=this.shapes.get(e),o=this.getShapeBounds(s);this.#g.set(e,o.ne),this._dispatchEvent(e,"dragstart",t)}onDragEnd(e,t){const s=this.shapes.get(e),o=this.getShapeBounds(s),r=this.#g.get(e),a=o.ne,n={lat:a.lat-r.lat,lng:a.lng-r.lng};this._translateShape(e,n),this._dispatchEvent(e,"dragend",t)}_translateShape(e,t){if(e instanceof w)e.center=LatLng.translate(e.center,t);else{if(e instanceof M){const s=e.vertices.map(e=>LatLng.translate(e,t));return void(e.vertices=s)}if(e instanceof P){const s=e.vertices.map(e=>LatLng.translate(e,t));return void(e.vertices=s)}}}onDrag(e,t){this._dispatchEvent(e,"drag",t)}onClick(e,t){this._dispatchEvent(e,"click",t)}ensureShape(e,t){const s=this;let o;return s.shapes.has(e)?o=s.shapes.get(e):(o=this.buildShape(e,t),null!=o&&(this.addClickEventListener(o,t=>s.onClick(e,t)),this.addDragEventListener(o,t=>{s.onDrag(e,t),s.adapter.fitBounds(e.map,!0)}),this.addDragEndEventListener(o,t=>s.onDragEnd(e,t)),this.addDragStartEventListener(o,t=>s.onDragStart(e,t)),s.shapes.set(e,o))),o}drawShape(e){const s=this,o=s.getMap(e);if(t.Utils.isNull(o))return;if(t.Utils.isNullOrEmpty(e)||e.hide)return void s.removeShape(e);const r=this.ensureShape(e,o);this.setShape(r,e),this.setEditable(r,e.editable),this.setDraggable(r,e.draggable)}}class PacemMapShapeElement extends MapRelevantElement{}d([t.Watch({emit:!0,converter:t.PropertyConverters.Boolean})],PacemMapShapeElement.prototype,"draggable",void 0),d([t.Watch({emit:!0,converter:t.PropertyConverters.Boolean})],PacemMapShapeElement.prototype,"editable",void 0),d([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],PacemMapShapeElement.prototype,"stroke",void 0),d([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],PacemMapShapeElement.prototype,"fill",void 0);let M=class PacemMapPolylineElement extends PacemMapShapeElement{};d([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],M.prototype,"vertices",void 0),M=d([t.CustomElement({tagName:c.POLYLINE_SELECTOR})],M);let P=class PacemMapPolygonElement extends PacemMapShapeElement{};d([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],P.prototype,"vertices",void 0),P=d([t.CustomElement({tagName:c.POLYGON_SELECTOR})],P);let w=class PacemMapCircleElement extends PacemMapShapeElement{};d([t.Watch({emit:!0,converter:u})],w.prototype,"center",void 0),d([t.Watch({emit:!0,converter:t.PropertyConverters.Json})],w.prototype,"radius",void 0),w=d([t.CustomElement({tagName:c.CIRCLE_SELECTOR})],w);let b=class PacemMapElement extends t.PacemEventTarget{constructor(){super(...arguments),this.zoom=12,this.center=c.DEFAULT_COORDS,this.#y=LatLngBounds.Empty,this.scale=!0,this.mousewheel=!0,this.draggable=!0,this.doubleClickZoom=!0,this.keyboardShortcuts=!0,this.autofit=!0,this.paddingTop=0,this.paddingLeft=0,this.paddingRight=0,this.paddingBottom=0,this.tilt=0,this.heading=0,this._drawHandler=e=>{this._draw(e.target)},this._listenToActiveAdapter=e=>{const s=e.target;"active"===e.detail.propertyName&&e.detail.currentValue&&(s.removeEventListener(t.PropertyChangeEventName,this._listenToActiveAdapter,!1),this._switchAdapter(s))},this._initialized=!1,this._afterInit=(e,s)=>{for(var o of(this._initialized=!0,t.CustomElementUtils.findDescendants(this,e=>e instanceof MapRelevantElement)))this._erase(o,s),this._draw(o);s&&s?.destroy(this)},this._resizeHandler=e=>{this.onResize(e)}}updateBounds(e){if(!LatLngBounds.equals(e,this.#y)){const s=this.#y,o=this.#y=e;this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"bounds",oldValue:s,currentValue:o}))}}#y;get bounds(){return this.#y}get container(){return this._container}register(e){e.addEventListener(t.PropertyChangeEventName,this._drawHandler,!1),this._draw(e)}unregister(e){this._erase(e),e.removeEventListener(t.PropertyChangeEventName,this._drawHandler,!1)}_draw(e,t=this.adapter){this._initialized&&t&&t.drawItem(e)}_erase(e,t=this.adapter){this._initialized&&t&&t.removeItem(e)}_switchAdapter(e,s){e.active?e.initialize(this).then(e=>this._afterInit(e,s)):(s&&this._afterInit(null,s),e.addEventListener(t.PropertyChangeEventName,this._listenToActiveAdapter,!1))}viewActivatedCallback(){super.viewActivatedCallback(),this._setupContainer(),this.adapter&&this._switchAdapter(this.adapter)}propertyChangedCallback(e,s,o,r){if(super.propertyChangedCallback(e,s,o,r),"bounds"!==e)if("adapter"===e)t.Utils.isNull(this._container)||(this._initialized=!1,o?this._switchAdapter(o,s):s&&this._afterInit(null,s));else{switch(e){case"zoom":case"center":case"type":case"theme":case"tilt":case"heading":this.adapter?.setView(this,{type:this.type,tilt:this.tilt,heading:this.heading,zoom:this.zoom,center:this.center,theme:this.theme});break;case"autofit":o&&this.adapter?.fitBounds(this);break;case"target":s&&this._dismissContainer(s),o?(this._setupContainer(o),this._setupResizer()):this._dismissResizer()}this.adapter&&this.adapter.invalidateSize(this)}}_dismissContainer(e=this._container){"true"===e.dataset[m]?e.remove():t.Utils.removeClass(e,t.PCSS+"-map"),e===this._container&&(this._container=null)}_dismissResizer(){const e=this._resizer;e.removeEventListener("resize",this._resizeHandler,!1),e.remove(),this._resizer=null}_setupContainer(e=this.target){t.Utils.isNull(e)&&((e=document.createElement("div")).dataset[m]="true",this.insertAdjacentElement("afterend",e));const s=this._container=e;return t.Utils.addClass(s,t.PCSS+"-map"),s}_setupResizer(){const e=this._container;if(t.Utils.isNull(e))throw new Error("You must set up the map container before its resizing listener.");if(t.Utils.isNull(this._resizer)){const s=this._resizer=document.createElement(t.P+"-resize");s.addEventListener("resize",this._resizeHandler,!1),e.insertAdjacentElement("afterend",s)}return this._resizer.target=e,this._resizer}_detach(){t.Utils.isNull(this._container)||this._dismissContainer(),t.Utils.isNull(this._resizer)||this._dismissResizer()}disconnectedCallback(){this._detach(),super.disconnectedCallback()}onResize(e){this.adapter&&this.adapter.invalidateSize(this)}};d([t.Watch({emit:!0,converter:t.PropertyConverters.Number})],b.prototype,"zoom",void 0),d([t.Watch({emit:!0,converter:u})],b.prototype,"center",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.String})],b.prototype,"type",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.String})],b.prototype,"theme",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],b.prototype,"scale",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],b.prototype,"mousewheel",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.String})],b.prototype,"zoomControl",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],b.prototype,"draggable",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],b.prototype,"doubleClickZoom",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],b.prototype,"keyboardShortcuts",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],b.prototype,"autofit",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],b.prototype,"paddingTop",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],b.prototype,"paddingLeft",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],b.prototype,"paddingRight",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],b.prototype,"paddingBottom",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Element})],b.prototype,"adapter",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Element})],b.prototype,"target",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],b.prototype,"tilt",void 0),d([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],b.prototype,"heading",void 0),b=d([t.CustomElement({tagName:c.MAP_SELECTOR})],b);var _=function(e,t,s,o){var r,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,s,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(n=(a<3?r(n):a>3?r(t,s,n):r(t,s))||n);return a>3&&n&&Object.defineProperty(t,s,n),n};const C="geolocation_unavailable",A="position_unavailable",O="permission_denied",k="timeout",S="unknown_error";let U=class PacemMapGeolocateElement extends t.PacemEventTarget{constructor(){super(...arguments),this.permission="prompt",this.maximumAge=15e3,this.timeout=3e4,this.#a=!1,this._successCallback=e=>{this.permission="granted",this._setFetching(!1);const t={lat:e.coords.latitude,lng:e.coords.longitude,timestamp:e.timestamp,altitude:e.coords.altitude,heading:e.coords.heading,speed:e.coords.speed};this.position=t,this.dispatchEvent(new CustomEvent("success",{detail:t}))},this._errorCallback=e=>{this._setFetching(!1);const t="string"==typeof e?e:this._errToString(e);this.dispatchEvent(new CustomEvent("error",{detail:t}))}}_checkPermission(){return new Promise(e=>{const s=navigator.permissions;t.Utils.isNull(s)?e("prompt"):s.query({name:"geolocation"}).then(t=>{e(this.permission=t.state)})})}#a;get fetching(){return this.#a}_setFetching(e){e!==this.fetching&&(this.#a=e,this.dispatchEvent(new t.PropertyChangeEvent({propertyName:"fetching",currentValue:e,oldValue:!e})))}fetch(){this.disabled||(navigator.geolocation?this._checkPermission().then(e=>{this._setFetching(!0),navigator.geolocation.getCurrentPosition(this._successCallback,this._errorCallback,{enableHighAccuracy:!0,maximumAge:this.maximumAge})}):this._errorCallback(C))}viewActivatedCallback(){super.viewActivatedCallback(),this._checkPermission()}_errToString(e){switch(e.code){case GeolocationPositionError.PERMISSION_DENIED:return O;case GeolocationPositionError.POSITION_UNAVAILABLE:return A;case GeolocationPositionError.TIMEOUT:return k;default:return S}}};_([t.Watch({emit:!0,converter:u})],U.prototype,"position",void 0),_([t.Watch({emit:!0,converter:t.PropertyConverters.String})],U.prototype,"permission",void 0),_([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],U.prototype,"maximumAge",void 0),_([t.Watch({emit:!1,converter:t.PropertyConverters.Number})],U.prototype,"timeout",void 0),U=_([t.CustomElement({tagName:t.P+"-map-geolocate"})],U);var N,T=function(e,t,s,o){var r,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,s,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(n=(a<3?r(n):a>3?r(t,s,n):r(t,s))||n);return a>3&&n&&Object.defineProperty(t,s,n),n};const R="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js",I="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css";function z(e){return{city:e.municipality,state:e.countrySubdivision,province:e.countrySecondarySubdivision,village:e.municipalitySubdivision??e.localName,zipCode:e.postalCode,streetName:e.street??e.streetName,houseNumber:e.buildingNumber??e.streetNumber,countryCode:e.countryCode,country:e.country}}class AtlasMapUtils{static getPosition(e){return Array.isArray(e)&&(e={lat:e[0],lng:e[1]}),atlas.data.Position.fromLatLng(e)}static getBounds(e){if(t.Utils.isArray(e))return atlas.data.BoundingBox.fromPositions(e.map(e=>[e[1],e[0]]));const s=AtlasMapUtils.getPosition(e.ne),o=AtlasMapUtils.getPosition(e.sw);return atlas.data.BoundingBox.fromPositions([s,o])}static getLatLng(e){return{lat:e[1],lng:e[0]}}static getLatLngBounds(e){const t=atlas.data.BoundingBox.getNorthEast(e),s=atlas.data.BoundingBox.getSouthWest(e);return{ne:AtlasMapUtils.getLatLng(t),sw:AtlasMapUtils.getLatLng(s)}}static parseGeocoding(e){return t.Utils.isNullOrEmpty(e.results)?[]:e.results.map(e=>({fullAddress:e.address.freeformAddress,address:z(e.address),position:{lat:e.position.lat,lng:e.position.lon,altitude:null}}))}static parseReverseGeocoding(e,t){if(e.summary.numResults<1)return{fullAddress:"",address:{},position:null};const s=e.addresses[0],o=(t??s.position).split(",").map(e=>parseFloat(e)),r=s.address;return{fullAddress:r.freeformAddress,address:z(r),position:{lat:o[0],lng:o[1],altitude:o.length>2?o[2]:null}}}}class PacemAzureOverlayAdapter extends PacemOverlayAdapter{deleteOverlay(e,t){throw new Error("Method not implemented.")}buildOverlay(e,t){throw new Error("Method not implemented.")}setBounds(e,t,s){throw new Error("Method not implemented.")}updateOverlay(e,t,s){throw new Error("Method not implemented.")}}class PacemAzureLayerAdapter extends PacemLayerAdapter{addLoadEventListener(e,t,s){throw new Error("Method not implemented.")}removeLoadEventListener(e,t,s){throw new Error("Method not implemented.")}deleteLayer(e,t){throw new Error("Method not implemented.")}buildLayer(e,t){throw new Error("Method not implemented.")}}class PacemAzureMarkerAdapter extends PacemMarkerAdapter{getMarkerPosition(e){const t=e.getOptions().position;return AtlasMapUtils.getLatLng(t)}buildMarker(e,t){const s=new atlas.HtmlMarker;return t.markers.add(s),s.setOptions({popup:new atlas.Popup}),s}addClickEventListener(e,t,s){t.events.add("click",e,s)}addDragEventListener(e,t,s){t.events.add("drag",e,s)}addDragEndEventListener(e,t,s){t.events.add("dragend",e,s)}_setPopupPosition(e,s){const o=this._getPopup(e);t.Utils.isNull(o)||o.setOptions({position:s})}setPosition(e,t){const s=AtlasMapUtils.getPosition(t);e.setOptions({position:s}),this._setPopupPosition(e,s)}setIcon(e,s){let o={pixelOffset:[0,-36]},r={popup:new atlas.Popup},a=(e,t,s)=>`<img width="${t||"auto"}" height="${s||"auto"}" style="pointer-events: none" src="${e}" />`;if("string"==typeof s)r.htmlContent=a(s);else if(!t.Utils.isNull(s)){const e=s.size,t=s.anchor;r.htmlContent=a(s.url,e&&e.width,e&&e.height),t?(r.anchor="top-left",r.pixelOffset=[-t.x,-t.y],o.pixelOffset=[0,-t.y]):e&&e.height&&(o.pixelOffset=[0,-e.height/2])}r.popup.setOptions(o),e.setOptions(r)}setLabel(e,t){let s={text:t};e.setOptions(s)}setDraggable(e,t){let s={draggable:t};e.setOptions(s)}deleteMarker(e,t){t.markers.remove(e)}deleteInfoWindow(e,t){this._getPopup(e).remove()}closeInfo(e){const t=this._getPopup(e);!0===t?.isOpen()&&t.close()}openInfo(e,t,s,o){const{popup:r,position:a}=e.getOptions();this._setContent(r,t,a),o.togglePopup(),s.events.addOnce("close",r,e=>{r.setOptions({content:""})})}buildInfoWindow(e){return this.markers.get(e)}addCloseClickEventListener(e,t,s){const o=this._getPopup(e);t.events.add("close",o,s)}setContent(e,t){const{popup:s,position:o}=e.getOptions();this._setContent(s,t,o)}_getPopup(e){return e.getOptions().popup}_setContent(e,t,s){e.setOptions({content:`<div style="padding: 8px 24px 8px 8px;">${t}</div>`,position:s})}}class PacemAzureShapeAdapter extends PacemShapeAdapter{addDragStartEventListener(e,t){throw new Error("Method not implemented.")}deleteShape(e,t){throw new Error("Method not implemented.")}getShapeBounds(e){throw new Error("Method not implemented.")}getShapePosition(e){throw new Error("Method not implemented.")}buildShape(e,t){throw new Error("Method not implemented.")}addClickEventListener(e,t){throw new Error("Method not implemented.")}addDragEventListener(e,t){throw new Error("Method not implemented.")}addDragEndEventListener(e,t){throw new Error("Method not implemented.")}setShape(e,t){throw new Error("Method not implemented.")}setEditable(e,t){throw new Error("Method not implemented.")}setDraggable(e,t){throw new Error("Method not implemented.")}}class PacemAzureMapGeocoder{_buildGeocodeRequest(e,s,o=10,r=""){const a={"subscription-key":e,query:s,limit:""+o,language:r};return{uri:t.Utils.URIs.appendQuery("https://atlas.microsoft.com/search/address/json?api-version=1.0",a),options:{mode:"cors"}}}parseGeocodeResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=AtlasMapUtils.parseGeocoding(e);t(s)},e=>s(e))})}geocode(e,t,s=10,o=""){return new Promise((r,a)=>{const n=this._buildGeocodeRequest(e,t,s,o);return fetch(n.uri,n.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(r,a):a(e)},e=>a(e))})}reverseGeocode(e,t,s=""){return new Promise((o,r)=>{const a=this._buildReverseRequest(e,t,s);return fetch(a.uri,a.options).then(e=>{e.ok?this._parseReverseResponse(e).then(o,r):r(e)},e=>r(e))})}_buildReverseRequest(e,s,o=""){const r=MapUtils.parseCoords(s),a={"subscription-key":e,query:r[0]+","+r[1],language:o};return{uri:t.Utils.URIs.appendQuery("https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0",a),options:{mode:"cors"}}}_parseReverseResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=AtlasMapUtils.parseReverseGeocoding(e);t([s])},e=>s(e))})}}const x=["moveend","dragend","zoomend","rotateend"];let B=N=class PacemAzureMapAdapterElement extends PacemMapAdapterElement{geocode(e,s){return(new PacemAzureMapGeocoder).geocode(this.subscriptionKey,e,s,t.Utils.lang(this))}reverseGeocode(e,s){return(new PacemAzureMapGeocoder).reverseGeocode(this.subscriptionKey,e,t.Utils.lang(this))}getBounds(e){const t=this.getMap(e),{bounds:s}=t.getCamera();return AtlasMapUtils.getLatLngBounds(s)}isActive(){return!t.Utils.isNullOrEmpty(this.subscriptionKey)}buildOverlayAdapterFor(e){return new PacemAzureOverlayAdapter(e,this)}buildMarkerAdapterFor(e){return new PacemAzureMarkerAdapter(e,this)}buildShapeAdapterFor(e){return new PacemAzureShapeAdapter(e,this)}buildLayerAdapterFor(e){return new PacemAzureLayerAdapter(e,this)}setViewNative(e,s){const o=this.getMap(e),r=function(e){const t=e.theme==l.DARK||e.theme!==l.LIGHT&&window.matchMedia("(prefers-color-scheme: dark)").matches;switch(e.type){case"satellite":case"satellite_road_labels":case"grayscale_dark":case"grayscale_light":case"night":case"road_shaded_relief":case"road":case"high_constrast_dark":case"high_constrast_light":return e.type;case i.HYBRID:return"satellite_road_labels";case i.SATELLITE:return"satellite";case i.TERRAIN:return"road_shaded_relief";case i.HIGH_CONTRAST:return t?"high_constrast_dark":"high_constrast_light";default:return t?"night":"road"}}(s=t.Utils.extend({type:e.type,theme:e.theme},s));o.setStyle({style:r});const a=s.center&&AtlasMapUtils.getPosition(s.center)||o.getCamera().center,n=s.zoom||o.getCamera().zoom;o.setCamera({center:a,zoom:n})}#v=new WeakMap;snapshot(e,s="image/png",o){if(!this.hasMap(e))return Promise.reject();const{map:r}=this.tryGetMap(e);return new Promise((a,n)=>{t.Utils.blobToDataURL(this.#f.get(e)).then(e=>{const n=r.getCanvasContainer();n.style.backgroundImage=`url(${e})`,n.style.backgroundSize="contain",t.Utils.snapshotElement(n,null,s,o).then(a)})})}#f=new WeakMap;dispose(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);this.#v.get(e).forEach(e=>{t.events.remove(e.eventName,e.handler)}),this.#v.delete(e),t.dispose()}async init(e){await Promise.all([t.CustomElementUtils.importjs(R),t.CustomElementUtils.importcss(I,void 0,!0)]);const s=e,o=s.scale,r=s.draggable,a=s.doubleClickZoom,n=s.keyboardShortcuts,i={center:AtlasMapUtils.getPosition(s.center),zoom:s.zoom,subscriptionKey:this.subscriptionKey,dragPanInteraction:r,scrollZoomInteraction:s.mousewheel,dblClickZoomInteraction:!a,keyboardInteraction:n,language:this.language||t.Utils.lang(e)},l=s.container,p=document.createElement("div");p.id=`azure-maps-${t.Utils.uniqueCode()}`,p.style.width="100%",p.style.height="100%",l.innerHTML="",l.appendChild(p);const d=new atlas.Map(p.id,i),c=[];return this.#v.set(s,c),x.forEach(e=>{const t=this._spinMapUpdateHandler(s,d);d.events.add(e,t),c.push({eventName:e,handler:t})}),o&&s.zoomControl&&d.events.addOnce("ready",e=>{let t=atlas.ControlPosition.NonFixed;switch(s.zoomControl){case"topleft":t=atlas.ControlPosition.TopLeft;break;case"topright":t=atlas.ControlPosition.TopRight;break;case"bottomright":t=atlas.ControlPosition.BottomRight;break;case"bottomleft":t=atlas.ControlPosition.BottomLeft}d.controls.add(new atlas.control.ZoomControl,{position:t})}),d.events.add("idle",t=>{d.getCanvas().toBlob(t=>{this.#f.set(e,t)})}),d.events.addOnce("ready",()=>{e.dispatchEvent(new MapEvent("maploaded"))}),{map:d,container:p}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);t&&t.resize()}propertyChangedCallback(e,s,o,r){if(super.propertyChangedCallback(e,s,o,r),!r&&"language"===e)for(let e of this.enrolledMaps()){const{map:s}=this.tryGetMap(e);s.setStyle({language:o||t.Utils.lang(e)})}}_spinMapUpdateHandler(e,t){return()=>{this._updateMap(e,t)}}_updateMap(e,s){if(!t.Utils.isNull(s)&&!t.Utils.isNull(e)){const t=s.getCamera(),o=t.center,r=t.zoom;1===t.zoom?console.warn("Azure Maps control lacks in reflecting the actual map zoom onto the camera property. Cannot reflect info back to PacemMapElement."):this.updateMapElement(e,AtlasMapUtils.getLatLng(o),r)}}static _getBounds(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0;return{top:t,bottom:e.paddingBottom||0,left:s,right:o}}fitBoundsNative(e,t,s=N._getBounds(e)){this.getMap(e).setCamera({bounds:AtlasMapUtils.getBounds(t),padding:s})}};T([t.Watch({emit:!1,converter:t.PropertyConverters.String})],B.prototype,"subscriptionKey",void 0),T([t.Watch({emit:!1,converter:t.PropertyConverters.String})],B.prototype,"language",void 0),T([t.Debounce(500)],B.prototype,"_updateMap",null),B=N=T([t.CustomElement({tagName:t.P+"-map-adapter-azure"})],B);var G=function(e,t,s,o){var r,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,s,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(n=(a<3?r(n):a>3?r(t,s,n):r(t,s))||n);return a>3&&n&&Object.defineProperty(t,s,n),n};const W="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.min.js",D=null,j="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.min.css",F=null;function Z(e){return{fullAddress:e.display_name,address:(t=e.address,{city:t.city,state:t.state,provinceCode:t["ISO3166-2-lvl6"]?.split("-")[1],province:t.county,village:t.village,zipCode:t.postcode,streetName:t.road,houseNumber:t.house_number,countryCode:t.country_code?.toUpperCase(),country:t.country}),position:{lat:parseFloat(e.lat),lng:parseFloat(e.lon),altitude:null}};var t}class LeafletUtils{static toLiteral(e){return{ne:e.getNorthEast(),sw:e.getSouthWest()}}static parseGeocoding(e){return t.Utils.isNullOrEmpty(e)?[]:e.map(Z)}static parseReverseGeocoding(e){return t.Utils.isNullOrEmpty(e)?[]:[Z(e)]}}const H="layerload";class LayerLoadEvent extends t.CustomTypedEvent{constructor(e){super(H,e,{bubbles:!0})}}class PacemLeafletMarkerAdapter extends PacemMarkerAdapter{deleteInfoWindow(e,t){e.unbindPopup()}deleteMarker(e,t){e.removeFrom(t)}getMarkerPosition(e){return e.getLatLng()}buildMarker(e,t){return L.marker(e.position).addTo(t)}addClickEventListener(e,t,s){e.on("click",s)}addDragEventListener(e,t,s){e.on("drag",s)}addDragEndEventListener(e,t,s){e.on("dragend",s)}setPosition(e,t){e.setLatLng(t)}setIcon(e,s){const o=this;if("string"==typeof s)o._setIcon(e,s);else if(!t.Utils.isNull(s)){let r={iconUrl:s.url};t.Utils.isNullOrEmpty(s.size)||t.Utils.extend(r,{iconSize:[s.size.width,s.size.height],iconAnchor:[s.size.width/2,s.size.height],popupAnchor:[0,-s.size.height]}),t.Utils.isNullOrEmpty(s.anchor)||t.Utils.extend(r,{iconAnchor:[s.anchor.x,s.anchor.y]}),o._setIcon(e,new L.Icon(r))}}setLabel(e,t){}setDraggable(e,t){!0===t?e.dragging.enable():e.dragging.disable()}closeInfo(e){e.closePopup()}openInfo(e,t,s,o){e.bindPopup(t).openPopup()}buildInfoWindow(e){return this.markers.get(e)}addCloseClickEventListener(e,t,s){e.on("popupclose",s)}setContent(e,t){const s=e.getPopup();s&&s.getContent()!=t&&e.setPopupContent(t)}_setIcon(e,t){if("string"==typeof t){var s,o,r,a={iconUrl:t};if((s=this.size)&&/[\d]+,[\d]+/.test(s)){var n=-1,i=[parseInt(s.substring(0,n=s.indexOf(","))),parseInt(s.substring(n+1))];Object.assign(a,{iconSize:i})}if((o=this.anchor)&&/[\d]+,[\d]+/.test(o)){n=-1;var l=[parseInt(o.substring(0,n=o.indexOf(","))),parseInt(o.substring(n+1))];Object.assign(a,{iconAnchor:l,popupAnchor:[0,-l[1]]})}if((r=this.popupAnchor)&&/[\d]+,[\d]+/.test(r)){n=-1,l=[parseInt(o.substring(0,n=o.indexOf(","))),parseInt(o.substring(n+1))];Object.assign(a,{popupAnchor:l})}e.setIcon(L.icon(a))}else t&&e.setIcon(t)}}class PacemLeafletShapeAdapter extends PacemShapeAdapter{addDragStartEventListener(e,t){throw new Error("Method not implemented.")}deleteShape(e,t){throw new Error("Method not implemented.")}getShapeBounds(e){throw new Error("Method not implemented.")}getShapePosition(e){throw new Error("Method not implemented.")}buildShape(e,t){throw new Error("Method not implemented.")}addClickEventListener(e,t){throw new Error("Method not implemented.")}addDragEventListener(e,t){throw new Error("Method not implemented.")}addDragEndEventListener(e,t){throw new Error("Method not implemented.")}setShape(e,t){throw new Error("Method not implemented.")}setEditable(e,t){throw new Error("Method not implemented.")}setDraggable(e,t){throw new Error("Method not implemented.")}}class PacemLeafletLayerAdapter extends PacemLayerAdapter{addLoadEventListener(e,t,s){e.on("load",s)}removeLoadEventListener(e,t,s){e.off("load",s)}deleteLayer(e,t){e.remove()}buildLayer(e,t){const s=(e.mode||"").toLowerCase();return"wms"===s?L.tileLayer.wms(e.url,{layers:(e.include||[]).join(","),minZoom:e.minZoom,maxZoom:e.maxZoom,transparent:!0,format:"image/png"}).addTo(t):L.tileLayer(e.url,{tms:"tms"===s,minZoom:e.minZoom,maxZoom:e.maxZoom}).addTo(t)}}class PacemLeafletOverlayAdapter extends PacemOverlayAdapter{deleteOverlay(e,t){throw new Error("Method not implemented.")}buildOverlay(e,t){throw new Error("Method not implemented.")}setBounds(e,t,s){throw new Error("Method not implemented.")}updateOverlay(e,t,s){throw new Error("Method not implemented.")}}let q=class PacemLeafletMapAdapterElement extends PacemMapAdapterElement{constructor(){super(...arguments),this.#E=new WeakMap,this.tiles="//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",this.attribution='Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors',this._tileLayerLoadHandler=e=>{this.dispatchLayerLoadEvent(e.sourceTarget)},this._mapUpdateHandler=e=>{const s=this.getMap(e);t.Utils.isNull(s)||t.Utils.isNull(e)||this.updateMapElement(e,s.getCenter(),s.getZoom())}}buildOverlayAdapterFor(e){return new PacemLeafletOverlayAdapter(e,this)}geocode(e,s){return(new PacemNominatimMapGeocoder).geocode(e,s,t.Utils.lang(this))}reverseGeocode(e,s){return(new PacemNominatimMapGeocoder).reverseGeocode(e,t.Utils.lang(this))}getBounds(e){const t=this.getMap(e).getBounds();return LeafletUtils.toLiteral(t)}isActive(){return!0}setViewNative(e,t){const s=this.getMap(e);t.center?s.setView(t.center,t.zoom??s.getZoom(),{animate:!0}):"number"==typeof t.zoom&&s.setZoom(t.zoom,{animate:!0})}buildMarkerAdapterFor(e){return new PacemLeafletMarkerAdapter(e,this)}buildShapeAdapterFor(e){return new PacemLeafletShapeAdapter(e,this)}buildLayerAdapterFor(e){return new PacemLeafletLayerAdapter(e,this)}#E;snapshot(e,s="image/png",o){return t.Utils.snapshotElement(e.container.firstElementChild,null,s,o)}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),"tiles"===e)for(let e of this.enrolledMaps())this._redrawMap(e);for(let e of this.enrolledMaps())this.invalidateSize(e)}dispose(e){const{map:t}=this.tryGetMap(e),s=this.#E.get(e);s&&s.off("load",this._tileLayerLoadHandler),t.clearAllEventListeners(),this.#E.delete(e)}async init(e){await Promise.all([t.CustomElementUtils.importjs(W,D,!0),t.CustomElementUtils.importcss(j,F,!0)]);const s=e;var o=s.scale,r=s.draggable,a=s.doubleClickZoom,n=s.keyboardShortcuts,i=L.latLng(MapUtils.parseCoords(s.center)),l={zoomControl:o&&!t.Utils.isNullOrEmpty(s.zoomControl),scrollWheelZoom:s.mousewheel,dragging:r,doubleClickZoom:!a,keyboard:n};const p=s.container,d=document.createElement("div");d.style.width="100%",d.style.height="100%",p.innerHTML="",p.appendChild(d);const c=L.map(d,l);["zoomend","moveend"].forEach(e=>{c.on(e,e=>{this._idleFiller(s),this._mapUpdateHandler(s)})}),c.on("load",()=>{o&&s.zoomControl&&c.zoomControl.setPosition(s.zoomControl),this._idleFiller(s)});const h=L.tileLayer(this.tiles,{attribution:this.attribution}).addTo(c);h.on("load",this._tileLayerLoadHandler),this.#E.set(s,h),c.setView(i,s.zoom),c.once("idle",function(){c.fire("resize"),e.dispatchEvent(new MapEvent("maploaded"))});const m=MapUtils.parseCoords(s.center),u=[m[0],m[1]];return c.setView(u,s.zoom),{map:c,container:d}}dispatchLayerLoadEvent(e){this.dispatchEvent(new LayerLoadEvent(e))}invalidateSize(e){if(this.hasMap(e)){this.getMap(e).invalidateSize()}}_idleFiller(e){if(this.hasMap(e)){this.getMap(e).fire("idle")}}fitBoundsNative(e,t,s={top:e.paddingTop||0,left:e.paddingLeft||0,right:e.paddingRight||0,bottom:e.paddingBottom||0}){const o=this.getMap(e),r={paddingTopLeft:new L.Point(s.left,s.top),paddingBottomRight:new L.Point(s.right,s.bottom)},a=t.ne,n=t.sw;try{o.fitBounds([[a.lat,a.lng],[n.lat,n.lng]],r)}catch(e){throw e}}_redrawMap(e){var s=this,o=s.#E.get(e);t.Utils.isNull(s.tiles&&o)||o.setUrl(s.tiles)}};G([t.Watch({emit:!1,converter:t.PropertyConverters.String})],q.prototype,"tiles",void 0),G([t.Watch({emit:!1,converter:t.PropertyConverters.String})],q.prototype,"attribution",void 0),G([t.Debounce(500)],q.prototype,"_idleFiller",null),q=G([t.CustomElement({tagName:t.P+"-map-adapter-leaflet"})],q);class PacemNominatimMapGeocoder{_buildGeocodeRequest(e,s=10,o=""){const r={q:e,limit:""+s,"accept-language":o};return{uri:t.Utils.URIs.appendQuery("https://nominatim.openstreetmap.org/search?addressdetails=1&format=json",r),options:{mode:"cors"}}}parseGeocodeResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=LeafletUtils.parseGeocoding(e);t(s)},e=>s(e))})}geocode(e,t=10,s=""){return new Promise((o,r)=>{const a=this._buildGeocodeRequest(e,t,s);return fetch(a.uri,a.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(o,r):r(e)},e=>r(e))})}reverseGeocode(e,t=""){return new Promise((s,o)=>{const r=this._buildReverseRequest(e,t);return fetch(r.uri,r.options).then(e=>{e.ok?this._parseReverseResponse(e).then(s,o):o(e)},e=>o(e))})}_buildReverseRequest(e,s=""){const o=MapUtils.parseCoords(e),r={lat:""+o[0],lon:""+o[1],"accept-language":s};return{uri:t.Utils.URIs.appendQuery("https://nominatim.openstreetmap.org/reverse?addressdetails=1&format=json",r),options:{mode:"cors"}}}_parseReverseResponse(e){return new Promise((t,s)=>{e.json().then(e=>{const s=LeafletUtils.parseReverseGeocoding(e);t(s)},e=>s(e))})}}var K=function(e,t,s,o){var r,a=arguments.length,n=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,s,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(n=(a<3?r(n):a>3?r(t,s,n):r(t,s))||n);return a>3&&n&&Object.defineProperty(t,s,n),n};const V={DETACH_TIMEOUT:200,API_URI:"https://maps.googleapis.com/maps/api/js",MAX_ROADMAP_ZOOM:22,BOOTSTRAP_SNIPPET:(e,t,s,o)=>`(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=\`https://maps.\${c}apis.com/maps/api/js?\`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({\n key: "${e}", v: "${o}", language: "${t}", region: "${s}",\n // Add other bootstrap parameters as needed, using camel case.\n });`,MAPS_NOT_FOUND:"google.maps not found.",GEOCODER_UNAVAILABLE:"google.maps geocoder unavailable.",INVALID_KEY:"invalid google.maps api key.",TILE_EXTENT:[6378137*-Math.PI,6378137*Math.PI]};class Bootstrapper{#i;#L;_equivalent(e,s,o,r){const a=this.#L;return!t.Utils.isNull(a)&&a.key===e&&a.language===(s||a.language)&&a.region===(o||a.region)&&a.version===(r||a.version)}_spinFuture(e,t,s,o){return new Promise((r,a)=>{this._equivalent(e,t,s,o)||Bootstrapper._ensureBootstrapScript(e,t,s,o),this.#L={language:t,region:s,version:o,key:e},google.maps.importLibrary("maps").then(e=>{r(),this.#i=null},e=>{a(e),this.#i=null})})}boostrap(e,s,o,r="weekly"){return t.Utils.isNullOrEmpty(e)?Promise.reject(V.INVALID_KEY):(!t.Utils.isNull(this.#i)&&this._equivalent(e,s,o,r)||(this.#i=this._spinFuture(e,s,o,r)),this.#i)}static _ensureBootstrapScript(e,s,o,r){const a="pacem-googlemaps",n=`v=${r},l=${s},r=${o}`;let i=document.querySelector(`script[${a}]`);if(!t.Utils.isNull(i)){if(i.getAttribute(a)===n)return;i.remove(),document.querySelectorAll("script[src^='https://maps.googleapis.com/maps']").forEach(e=>e.remove()),delete window.google}t.Utils.isNullOrEmpty(e)||(i=document.createElement("script"),i.setAttribute(a,n),i.textContent=V.BOOTSTRAP_SNIPPET(e,s,o,r),document.head.appendChild(i))}}const $=new Bootstrapper;class GMapsUtils{static getPosition(e){return Array.isArray(e)?{lat:e[0],lng:e[1]}:e}static getBounds(e){return t.Utils.isNullOrEmpty(e)?null:{north:e.ne.lat,east:e.ne.lng,south:e.sw.lat,west:e.sw.lng}}static mapGeocodeResults(e,t=[]){const s=[];e??=[];for(let o=0;o<e.length;o++){const r=t.length>o?t[o]:null,a=GMapsUtils.mapGeocodeResult(e[o],r);s.push(a)}return s}static mapGeocodeResult(e,t){const s=e?.address_components||[],o=s.find(e=>e.types.indexOf("street_number")>=0)?.long_name,r=s.find(e=>e.types.indexOf("route")>=0)?.long_name,a=s.find(e=>e.types.indexOf("locality")>=0)?.long_name,n=s.find(e=>e.types.indexOf("administrative_area_level_3")>=0)?.long_name,i=s.find(e=>e.types.indexOf("administrative_area_level_2")>=0),l=s.find(e=>e.types.indexOf("administrative_area_level_1")>=0)?.short_name,p=s.find(e=>e.types.indexOf("country")>=0),d=s.find(e=>e.types.indexOf("postal_code")>=0)?.short_name,c={houseNumber:o,city:n||a,provinceCode:i?.short_name,province:i?.long_name,countryCode:p?.short_name,country:p?.long_name,zipCode:d,streetName:r,state:l,village:a,type:e.geometry.location_type};return{fullAddress:e.formatted_address,position:GMapsUtils.toLiteral(e.geometry.location,t?.elevation),address:c}}static toLiteral(e,s){if(t.Utils.isNull(e))return null;if("lat"in e&&"function"==typeof e.lat&&"lng"in e&&"function"==typeof e.lng)return{lat:e.lat(),lng:e.lng(),altitude:s};if("getNorthEast"in e&&"function"==typeof e.getNorthEast&&"getSouthWest"in e&&"function"==typeof e.getSouthWest){const t=e.getNorthEast(),s=e.getSouthWest();return{ne:GMapsUtils.toLiteral(t),sw:GMapsUtils.toLiteral(s)}}return"north"in e&&"number"==typeof e.north&&"south"in e&&"number"==typeof e.south&&"west"in e&&"number"==typeof e.west&&"east"in e&&"number"==typeof e.east?{ne:{lat:e.north,lng:e.east},sw:{lat:e.south,lng:e.west}}:t.Utils.extend({altitude:s},e)}static areEqual(e,s){if(t.Utils.isNull(e)||t.Utils.isNull(s))return!1;const o=GMapsUtils.toLiteral(e),r=GMapsUtils.toLiteral(s);return o.lat===r.lat&&o.lng===r.lng}static fitBounds(e,t,s){e?.fitBounds(t,s)}static setCenter(e,s){t.Utils.isNull(e)||GMapsUtils.areEqual(e.getCenter(),s)||e.panTo(s)}}class PacemGoogleShapeAdapter extends PacemShapeAdapter{getShapeBounds(e){const t=new google.maps.LatLngBounds;if(e instanceof google.maps.Circle){const s=e.getBounds();s&&(t.extend(s.getNorthEast()),t.extend(s.getSouthWest()))}else(e instanceof google.maps.Polygon||e instanceof google.maps.Polyline)&&e.getPath().forEach(e=>t.extend(e));return!1!==t.isEmpty()?LatLngBounds.Empty:GMapsUtils.toLiteral(t)}deleteShape(e,t){e.setMap(null)}getShapePosition(e){return"latLng"in e?e.latLng:null}buildShape(e,t){const s=!0;return e instanceof M?new google.maps.Polyline({path:e.vertices,clickable:s,map:t}):e instanceof P?new google.maps.Polygon({paths:[e.vertices],clickable:s,map:t}):e instanceof w?new google.maps.Circle({center:e.center,radius:e.radius,clickable:s,map:t}):null}addClickEventListener(e,t){e.addListener("click",t)}addDragEventListener(e,t){e.addListener("drag",t)}addDragStartEventListener(e,t){e.addListener("dragstart",t)}addDragEndEventListener(e,t){e.addListener("dragend",t)}setShape(e,t){if(t instanceof M){e.setOptions({strokeColor:t.stroke?.color,strokeOpacity:t.stroke?.alpha??1,strokeWeight:t.stroke?.thickness,path:t.vertices})}if(t instanceof P){e.setOptions({strokeColor:t.stroke?.color,strokeOpacity:t.stroke?.alpha??1,strokeWeight:t.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:t.fill?.color,fillOpacity:t.fill?.alpha,paths:[t.vertices]})}if(t instanceof w){e.setOptions({strokeColor:t.stroke?.color,strokeOpacity:t.stroke?.alpha??1,strokeWeight:t.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:t.fill?.color,fillOpacity:t.fill?.alpha,center:t.center,radius:t.radius})}}setEditable(e,t){e.setOptions({editable:t})}setDraggable(e,t){e.setOptions({draggable:t})}}class PacemGoogleMarkerAdapter extends PacemMarkerAdapter{deleteInfoWindow(e,t){e.unbindAll()}deleteMarker(e,t){e.setMap(null)}get mapAutomaticallyScrollsOnDrag(){return!0}getMarkerPosition(e){const t=e.getPosition();return{lat:t.lat(),lng:t.lng()}}buildMarker(e,t){return new google.maps.Marker({position:e.position,map:t})}addClickEventListener(e,t,s){e.addListener("click",s)}addDragEventListener(e,t,s){e.addListener("drag",s)}addDragEndEventListener(e,t,s){e.addListener("dragend",s)}setPosition(e,t){e.setPosition(t)}setIcon(e,s){if("string"==typeof s)e.setIcon(s);else if(!t.Utils.isNull(s)){let o={url:s.url};t.Utils.isNullOrEmpty(s.size)||(o.size=new google.maps.Size(s.size.width,s.size.height),o.anchor=new google.maps.Point(s.size.width/2,s.size.height)),t.Utils.isNullOrEmpty(s.anchor)||(o.anchor=new google.maps.Point(s.anchor.x,s.anchor.y)),e.setIcon(o)}}setLabel(e,t){e.setLabel(t)}setDraggable(e,t){e.setDraggable(t)}closeInfo(e){e.close()}openInfo(e,t,s,o){e.open(s,o)}buildInfoWindow(e){let s=0;return"string"==typeof e.icon||t.Utils.isNull(e.icon)||(s=(e.icon.size?.width??0)/2-(e.icon.anchor?.x??0)),new google.maps.InfoWindow({pixelOffset:new google.maps.Size(-s,0)})}addCloseClickEventListener(e,t,s){e.addListener("closeclick",s)}setContent(e,t){e.setContent(t)}}class PacemGoogleLayerAdapter extends PacemLayerAdapter{addLoadEventListener(e,t,s){e.addListener("tilesloaded",s)}removeLoadEventListener(e,t,s){}deleteLayer(e,t){const s=t.overlayMapTypes.getArray().findIndex(t=>t===e);s>=0&&t.overlayMapTypes.removeAt(s)}_getBounds(e,t,s){const o=V.TILE_EXTENT;var r=2*o[1]/Math.pow(2,s),a=o[0]+e*r,n=o[0]+(e+1)*r;return[a,o[1]-(t+1)*r,n,o[1]-t*r]}_getWmsTileUrl(e,s){return(o,r)=>t.Utils.URIs.appendQuery(e,{service:"WMS",styles:"",transparent:"true",request:"GetMap",srs:"EPSG:3857",format:"image/png",version:"1.1.1",layers:s?.join(",")||"",width:"256",height:"256",bbox:this._getBounds(o.x,o.y,r).join(",")})}_getWmsLayer(e,t){const s=new google.maps.ImageMapType({getTileUrl:this._getWmsTileUrl(e.url,e.include),minZoom:e.minZoom,maxZoom:e.maxZoom,opacity:1});return t.overlayMapTypes.push(s),s}_getTmsTileUrl(e){return(t,s)=>{const o={r:"",s:(r=t,"abc"[Math.abs(r.x+r.y)%3]),x:""+t.x,y:""+t.y,z:""+s};var r;let a=e;for(let e in o)a=a.replaceAll("{"+e+"}",o[e]);return a}}_getTmsLayer(e,t){const s=new google.maps.ImageMapType({getTileUrl:this._getTmsTileUrl(e.url),minZoom:e.minZoom,maxZoom:e.maxZoom,opacity:1});return t.overlayMapTypes.push(s),s}buildLayer(e,t){switch((e.mode||"").toLowerCase()){case"wms":return this._getWmsLayer(e,t);case"tms":return this._getTmsLayer(e,t);default:throw new Error(`"${e.mode}" overlays not supported for the Google Maps integration.`)}}}class PacemGoogleOverlayAdapter extends PacemOverlayAdapter{updateOverlay(e,t,s){e.set,e.draw()}deleteOverlay(e,t){e.setMap(null)}buildOverlay(e,s){let o=function(e){class PacemGoogleOverlay extends google.maps.OverlayView{constructor(e){super(),this._item=e}get element(){return this._item}get bounds(){const e=this._item.bounds;return t.Utils.isNull(e)?null:GMapsUtils.getBounds(e)}getBoundingBox(){const e=this.getProjection(),s=this.bounds;if(t.Utils.isNullOrEmpty(s))return null;const o=e.fromLatLngToDivPixel({lat:s.south,lng:s.west}),r=e.fromLatLngToDivPixel({lat:s.north,lng:s.east});return{x:o.x,y:r.y,width:r.x-o.x,height:o.y-r.y}}}class PacemGoogleImageOverlay extends PacemGoogleOverlay{get src(){return this.element.src}#M;onAdd(){const e=this.#M=this.#M||document.createElement("div");e.style.position="absolute",this.getPanes().overlayLayer.appendChild(e)}onRemove(){const e=this.#M;t.Utils.isNull(e)||(e.remove(),this.#M=null)}draw(){const e=this.#M;if(t.Utils.isNull(e))return;const s=this.getBoundingBox();t.Utils.isNull(s)||(e.style.top=s.y+"px",e.style.left=s.x+"px",e.style.width=s.width+"px",e.style.height=s.height+"px",e.style.backgroundSize=`${s.width}px ${s.height}px`,e.style.backgroundImage=`url(${this.src})`)}}return e instanceof v?new PacemGoogleImageOverlay(e):null}(e);return o.setMap(s),o}setBounds(e,t,s){e.draw()}}const Y=["dragend","zoom_changed","center_changed","maptypeid_changed","tilt_changed","heading_changed","bounds_changed"];function J(e){const t=e.theme==l.DARK?google.maps.ColorScheme.DARK:e.theme!=l.LIGHT?google.maps.ColorScheme.FOLLOW_SYSTEM:google.maps.ColorScheme.LIGHT;switch(e.type){case google.maps.MapTypeId.HYBRID:case google.maps.MapTypeId.ROADMAP:case google.maps.MapTypeId.TERRAIN:case google.maps.MapTypeId.SATELLITE:return{type:e.type,theme:t};case i.HYBRID:return{type:google.maps.MapTypeId.HYBRID,theme:t};case i.SATELLITE:return{type:google.maps.MapTypeId.SATELLITE,theme:t};case i.TERRAIN:return{type:google.maps.MapTypeId.TERRAIN,theme:t};default:return{type:google.maps.MapTypeId.ROADMAP,theme:t}}}let Q=class PacemGoogleMapAdapterElement extends PacemMapAdapterElement{geocode(e,t){const s=this.language||"",o=this.region||"",r=this.version||"weekly";return new PacemGoogleMapGeocoder(this.apiKey,s,o,r).geocode(e,t)}reverseGeocode(e,t){const s=this.language||"",o=this.region||"",r=this.version||"weekly";return new PacemGoogleMapGeocoder(this.apiKey,s,o,r).reverseGeocode(e,t)}getBounds(e){if(!this.hasMap(e))return LatLngBounds.Empty;const t=this.getMap(e).getBounds();return GMapsUtils.toLiteral(t)}isActive(){return!t.Utils.isNullOrEmpty(this.apiKey)}buildMarkerAdapterFor(e){return new PacemGoogleMarkerAdapter(e,this)}buildOverlayAdapterFor(e){return new PacemGoogleOverlayAdapter(e,this)}buildShapeAdapterFor(e){return new PacemGoogleShapeAdapter(e,this)}buildLayerAdapterFor(e){return new PacemGoogleLayerAdapter(e,this)}getMaxAvailableZoom(e){return new Promise((t,s)=>{(new google.maps.MaxZoomService).getMaxZoomAtLatLng(e,e=>{e.status===google.maps.MaxZoomStatus.OK?t(e.zoom):s()})})}#v=new WeakMap;snapshot(e,s="image/png",o){const{container:r}=this.tryGetMap(e);return t.Utils.snapshotElement(r,null,s,o)}setViewNative(e,s){const o=this.getMap(e);s=t.Utils.extend({type:e.type,theme:e.theme},s);const{type:r,theme:a}=J(s);if(this.#P&&a!==o.get("colorScheme"))return void this._bootstrapDebounced();o.setOptions({colorScheme:a,mapTypeId:r}),"number"==typeof s.tilt&&o.setTilt(s.tilt),"number"==typeof s.heading&&o.setHeading(s.heading);const n=()=>{s.center&&GMapsUtils.setCenter(o,s.center)};if("number"==typeof s.zoom&&s.zoom!==o.getZoom()){switch(o.getMapTypeId()){case google.maps.MapTypeId.SATELLITE:case google.maps.MapTypeId.HYBRID:const e=GMapsUtils.toLiteral(o.getCenter());this.getMaxAvailableZoom(e).then(e=>{const t=Math.min(e,s.zoom);o.setZoom(t),n()});break;default:const t=Math.min(V.MAX_ROADMAP_ZOOM,s.zoom);o.setZoom(t),n()}}else n()}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),!o)switch(e){case"libraries":case"apiKey":case"language":case"region":this.#P&&this._bootstrapDebounced();break;case"defaultOptions":for(let e of this.enrolledMaps())this._updateMapOptions(e);break;default:for(let e of this.enrolledMaps())this.invalidateSize(e)}}dispose(e){const t=this.#v.get(e);for(;t.length;)google.maps.event.removeListener(t.pop());this.#v.delete(e)}_updateMapOptions(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);t.setOptions(this._buildMapOptions(e))}_buildMapOptions(e){const s=e.scale,o=e.draggable,r=e.doubleClickZoom,a=e.keyboardShortcuts,{type:n,theme:i}=J({type:e.type,theme:e.theme});return t.Utils.extend({},this.defaultOptions||{streetViewControl:!1,zoomControl:!1,mapTypeControl:!1,fullscreenControl:!1,cameraControl:!1},{zoomControl:s&&!t.Utils.isNullOrEmpty(e.zoomControl),zoomControlOptions:{position:function(e){switch(e){case"topright":return google.maps.ControlPosition.RIGHT_TOP;case"bottomleft":return google.maps.ControlPosition.LEFT_BOTTOM;case"bottomright":return google.maps.ControlPosition.RIGHT_BOTTOM;default:return google.maps.ControlPosition.LEFT_TOP}}(e.zoomControl)},scrollwheel:e.mousewheel,disableDoubleClickZoom:r,keyboardShortcuts:a,draggable:o,mapTypeId:n,colorScheme:i,tilt:e.tilt,heading:e.heading})}#P=!1;_bootstrapDebounced(){this._bootstrap().then(e=>{for(let e of this.enrolledMaps())e.adapter=null,e.adapter=this})}_bootstrap(){return new Promise((e,t)=>{const s=this.apiKey,o=this.language||"",r=this.region||"",a=this.version||"weekly";$.boostrap(s,o,r,a).then(s=>{const o=[];for(let e of this.libraries||[])o.push(google.maps.importLibrary(e));Promise.all(o).then(t=>{e(),this.#P=!0},t)},t)})}async init(e){await this._bootstrap();const t=e,s=MapUtils.parseCoords(t.center),o=new google.maps.LatLng(s[0],s[1]),r=this._buildMapOptions(t),a=t.container,n=document.createElement("div");n.style.width="100%",n.style.height="100%",a.innerHTML="",a.appendChild(n);const i=new google.maps.Map(n,r),l=[];this.#v.set(t,l),Y.forEach(e=>{l.push(i.addListener(e,this._spinMapUpdateHandler(t,i)))}),i.setZoom(t.zoom),i.setCenter(o);var p=i.addListener("idle",function(t){p.remove(),e.dispatchEvent(new MapEvent("maploaded"))});l.push(i.addListener("tilesloaded",t=>{e.dispatchEvent(new MapEvent("tilesloaded"))}));const d=MapUtils.parseCoords(t.center),c=new google.maps.LatLng(d[0],d[1]);return i.setZoom(t.zoom),i.setCenter(c),{map:i,container:n}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);google.maps.event.trigger(t,"resize")}_spinMapUpdateHandler(e,s){return()=>{if(!t.Utils.isNull(s)&&!t.Utils.isNull(e)){const o=s.getCenter();if(t.Utils.isNull(o))return;this.updateMapElement(e,{center:{lat:o.lat(),lng:o.lng()},zoom:s.getZoom(),type:s.getMapTypeId(),tilt:s.getTilt(),heading:s.getHeading()})}}}fitBoundsNative(e,s,o=this._getPadding(e)){const r=this.tryGetMap(e)?.map;if(t.Utils.isNull(r))return;const a=GMapsUtils.getBounds(s);GMapsUtils.fitBounds(r,a,o)}_getPadding(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,r=e.paddingBottom||0;return s||t||o||r?{top:t,bottom:r,left:s,right:o}:null}_padBounds(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,r=e.paddingBottom||0;if(s||t||o||r){const a=this.tryGetMap(e).map,n=a.getBounds(),i=a.getDiv().clientWidth,l=a.getDiv().clientHeight,p=a.getProjection().fromPointToLatLng(new google.maps.Point(-s,-t)),d=a.getProjection().fromPointToLatLng(new google.maps.Point(i+o,l+r));n.extend(p),n.extend(d)}}_redrawMap(){}};K([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Q.prototype,"apiKey",void 0),K([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Q.prototype,"version",void 0),K([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Q.prototype,"language",void 0),K([t.Watch({emit:!1,converter:t.PropertyConverters.String})],Q.prototype,"region",void 0),K([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],Q.prototype,"defaultOptions",void 0),K([t.Watch({emit:!1,converter:t.PropertyConverters.StringArray})],Q.prototype,"libraries",void 0),K([t.Debounce(V.DETACH_TIMEOUT)],Q.prototype,"_bootstrapDebounced",null),Q=K([t.CustomElement({tagName:t.P+"-map-adapter-google"})],Q);class PacemGoogleMapGeocoder{constructor(e,t="",s="",o="weekly"){this.apiKey=e,this.language=t,this.region=s,this.version=o}_elevateResults(e){return new Promise((t,s)=>{(new google.maps.ElevationService).getElevationForLocations({locations:e.map(e=>e.geometry.location)},(s,o)=>{if(o===google.maps.ElevationStatus.OK){const o=GMapsUtils.mapGeocodeResults(e,s);t(o)}else{const s=GMapsUtils.mapGeocodeResults(e);t(s)}})})}geocode(e,t=10){return new Promise((s,o)=>{$.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(r=>{(new google.maps.Geocoder).geocode({address:e},(e,r)=>{if(r===google.maps.GeocoderStatus.OK||r==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(e||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(s)}else o(r)})},o)})}_reverseGeocodeInternal(e,t){const s=GMapsUtils.getPosition(e);return new Promise((e,o)=>{$.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(r=>{(new google.maps.Geocoder).geocode({location:s},(s,r)=>{if(r===google.maps.GeocoderStatus.OK||r==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(s||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(e)}else o(r)})},o)})}reverseGeocode(e,t=1){return this._reverseGeocodeInternal(e,t)}}var X=Object.freeze({__proto__:null,LatLngBoundsConverter:g,LatLngConverter:u,LayerLoadEventName:H,get MapColorScheme(){return l},MapConsts:h,MapEvent:MapEvent,MapItemAdapter:MapItemAdapter,MapRelevantElement:MapRelevantElement,get MapType(){return i},MapUtils:MapUtils,get PacemAzureMapAdapterElement(){return B},get PacemGoogleMapAdapterElement(){return Q},PacemLayerAdapter:PacemLayerAdapter,get PacemLeafletMapAdapterElement(){return q},PacemMapAdapterElement:PacemMapAdapterElement,get PacemMapCircleElement(){return w},get PacemMapElement(){return b},get PacemMapGeocodeElement(){return y},get PacemMapGeolocateElement(){return U},get PacemMapLayerElement(){return f},get PacemMapMarkerElement(){return E},PacemMapOverlayElement:PacemMapOverlayElement,get PacemMapOverlayImageElement(){return v},get PacemMapPolygonElement(){return P},get PacemMapPolylineElement(){return M},PacemMapShapeElement:PacemMapShapeElement,PacemMarkerAdapter:PacemMarkerAdapter,PacemOverlayAdapter:PacemOverlayAdapter,PacemShapeAdapter:PacemShapeAdapter,isLatLng:function(e){return LatLng.isLatLng(e)},isLatLngBounds:function(e){return LatLngBounds.isLatLngBounds(e)}}),ee=Object.freeze({__proto__:null,Maps:X}),te=Object.freeze({__proto__:null,Components:ee,Maps:p});e.DeepMerger.merge(te)}(Pacem,Pacem);
7
7
  //# sourceMappingURL=pacem-maps.min.js.map