@pacem/pacem 1.0.0-abel
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/NOTICE +4 -0
- package/dist/browser/pacem-2d.js +2755 -0
- package/dist/browser/pacem-2d.js.map +6 -0
- package/dist/browser/pacem-2d.min.js +7 -0
- package/dist/browser/pacem-2d.min.js.map +6 -0
- package/dist/browser/pacem-3d.js +7723 -0
- package/dist/browser/pacem-3d.js.map +6 -0
- package/dist/browser/pacem-3d.min.js +7 -0
- package/dist/browser/pacem-3d.min.js.map +6 -0
- package/dist/browser/pacem-charts.js +1628 -0
- package/dist/browser/pacem-charts.js.map +6 -0
- package/dist/browser/pacem-charts.min.js +7 -0
- package/dist/browser/pacem-charts.min.js.map +6 -0
- package/dist/browser/pacem-cms.js +2220 -0
- package/dist/browser/pacem-cms.js.map +6 -0
- package/dist/browser/pacem-cms.min.js +7 -0
- package/dist/browser/pacem-cms.min.js.map +6 -0
- package/dist/browser/pacem-core.js +9104 -0
- package/dist/browser/pacem-core.js.map +6 -0
- package/dist/browser/pacem-core.min.js +7 -0
- package/dist/browser/pacem-core.min.js.map +6 -0
- package/dist/browser/pacem-foundation.js +2138 -0
- package/dist/browser/pacem-foundation.js.map +6 -0
- package/dist/browser/pacem-foundation.min.js +7 -0
- package/dist/browser/pacem-foundation.min.js.map +6 -0
- package/dist/browser/pacem-fx.js +870 -0
- package/dist/browser/pacem-fx.js.map +6 -0
- package/dist/browser/pacem-fx.min.js +7 -0
- package/dist/browser/pacem-fx.min.js.map +6 -0
- package/dist/browser/pacem-logging.js +175 -0
- package/dist/browser/pacem-logging.js.map +6 -0
- package/dist/browser/pacem-logging.min.js +7 -0
- package/dist/browser/pacem-logging.min.js.map +6 -0
- package/dist/browser/pacem-maps.js +3642 -0
- package/dist/browser/pacem-maps.js.map +6 -0
- package/dist/browser/pacem-maps.min.js +7 -0
- package/dist/browser/pacem-maps.min.js.map +6 -0
- package/dist/browser/pacem-media.js +284 -0
- package/dist/browser/pacem-media.js.map +6 -0
- package/dist/browser/pacem-media.min.js +7 -0
- package/dist/browser/pacem-media.min.js.map +6 -0
- package/dist/browser/pacem-networking.js +434 -0
- package/dist/browser/pacem-networking.js.map +6 -0
- package/dist/browser/pacem-networking.min.js +7 -0
- package/dist/browser/pacem-networking.min.js.map +6 -0
- package/dist/browser/pacem-numerical.js +2627 -0
- package/dist/browser/pacem-numerical.js.map +6 -0
- package/dist/browser/pacem-numerical.min.js +7 -0
- package/dist/browser/pacem-numerical.min.js.map +6 -0
- package/dist/browser/pacem-plus.js +2373 -0
- package/dist/browser/pacem-plus.js.map +6 -0
- package/dist/browser/pacem-plus.min.js +7 -0
- package/dist/browser/pacem-plus.min.js.map +6 -0
- package/dist/browser/pacem-scaffolding.js +10435 -0
- package/dist/browser/pacem-scaffolding.js.map +6 -0
- package/dist/browser/pacem-scaffolding.min.js +7 -0
- package/dist/browser/pacem-scaffolding.min.js.map +6 -0
- package/dist/browser/pacem-ui.js +6348 -0
- package/dist/browser/pacem-ui.js.map +6 -0
- package/dist/browser/pacem-ui.min.js +7 -0
- package/dist/browser/pacem-ui.min.js.map +6 -0
- package/dist/bundle/pacem.min.mjs +997 -0
- package/dist/bundle/pacem.mjs +47067 -0
- package/dist/bundle/pacem.mjs.map +12 -0
- package/dist/typings/index.d.ts +9757 -0
- package/package.json +130 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pacem/pacem v1.0.0-abel (https://js.pacem.it)
|
|
3
|
+
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
|
+
* Licensed under Apache-2.0
|
|
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);
|
|
7
|
+
//# sourceMappingURL=pacem-maps.min.js.map
|