pacem 0.53.0-stevin → 0.53.0
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/dist/css/pacem-dark-content.min.css +1 -1
- package/dist/css/pacem-dark-shell.min.css +1 -1
- package/dist/css/pacem-dark.min.css +1 -1
- package/dist/css/pacem-light-content.min.css +1 -1
- package/dist/css/pacem-light-shell.min.css +1 -1
- package/dist/css/pacem-light.min.css +1 -1
- package/dist/css/pacem-phousys-content.min.css +1 -1
- package/dist/css/pacem-phousys-shell.min.css +1 -1
- package/dist/css/pacem-phousys.min.css +1 -1
- package/dist/js/azure-maps.d.ts +1 -1
- package/dist/js/pacem-2d.d.ts +1 -1
- package/dist/js/pacem-2d.js +2 -1
- package/dist/js/pacem-2d.min.js +2 -2
- package/dist/js/pacem-3d.d.ts +29 -1
- package/dist/js/pacem-3d.js +58 -24
- package/dist/js/pacem-3d.min.js +2 -2
- package/dist/js/pacem-charts.d.ts +1 -1
- package/dist/js/pacem-charts.js +2 -1
- package/dist/js/pacem-charts.min.js +2 -2
- package/dist/js/pacem-cms.d.ts +1 -1
- package/dist/js/pacem-cms.js +2 -1
- package/dist/js/pacem-cms.min.js +2 -2
- package/dist/js/pacem-core.d.ts +1 -1
- package/dist/js/pacem-core.js +2 -1
- package/dist/js/pacem-core.min.js +2 -2
- package/dist/js/pacem-foundation.d.ts +1 -1
- package/dist/js/pacem-foundation.js +2 -1
- package/dist/js/pacem-foundation.min.js +2 -2
- package/dist/js/pacem-fx.d.ts +1 -1
- package/dist/js/pacem-fx.js +2 -1
- package/dist/js/pacem-fx.min.js +2 -2
- package/dist/js/pacem-logging.d.ts +1 -1
- package/dist/js/pacem-logging.js +2 -1
- package/dist/js/pacem-logging.min.js +2 -2
- package/dist/js/pacem-maps.d.ts +1 -1
- package/dist/js/pacem-maps.js +2 -1
- package/dist/js/pacem-maps.min.js +2 -2
- package/dist/js/pacem-media.d.ts +1 -1
- package/dist/js/pacem-media.js +2 -1
- package/dist/js/pacem-media.min.js +2 -2
- package/dist/js/pacem-networking.d.ts +1 -1
- package/dist/js/pacem-networking.js +2 -1
- package/dist/js/pacem-networking.min.js +2 -2
- package/dist/js/pacem-numerical.d.ts +1 -1
- package/dist/js/pacem-numerical.js +2 -1
- package/dist/js/pacem-numerical.min.js +2 -2
- package/dist/js/pacem-plus.d.ts +1 -1
- package/dist/js/pacem-plus.js +2 -1
- package/dist/js/pacem-plus.min.js +2 -2
- package/dist/js/pacem-scaffolding.d.ts +1 -1
- package/dist/js/pacem-scaffolding.js +11 -1
- package/dist/js/pacem-scaffolding.min.js +2 -2
- package/dist/js/pacem-ui.d.ts +1 -1
- package/dist/js/pacem-ui.js +2 -1
- package/dist/js/pacem-ui.min.js +2 -2
- package/dist/js/swagger-types.d.ts +1 -1
- package/package.json +8 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.53.0
|
|
2
|
+
* pacem v0.53.0 (https://js.pacem.it)
|
|
3
3
|
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
var Pacem,__decorate=this&&this.__decorate||function(e,t,s,o){var a,r=arguments.length,n=r<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--)(a=e[i])&&(n=(r<3?a(n):r>3?a(t,s,n):a(t,s))||n);return r>3&&n&&Object.defineProperty(t,s,n),n};!function(e){!function(t){const s={lat:Number.NaN,lng:Number.NaN};class LatLng{static get Empty(){return s}static isEmpty(e){return e===s||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}}t.LatLng=LatLng;const o={ne:LatLng.Empty,sw:LatLng.Empty};class LatLngBounds{static get Empty(){return o}static isEmpty(e){return e===o||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)}}t.LatLngBounds=LatLngBounds;const a={SIZE:256,RAD:Math.PI/180,DEG:180/Math.PI,EPSILON:1e-15,SIN_LIMIT:1-1e-15,EARTH_RADIUS:6378137},r="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.#a=this._latLngToWorldNormalizedPoint(t.ne)}#e;#o;#a;#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.#a,s=this.#o,o=-t.y+s.y,a=t.x-s.x,r=this._latLngToWorldNormalizedPoint(e),{width:n,height:i}=this._pixelSize;return{x:(r.x-s.x)*(n/a),y:(r.y-t.y)*(i/o)}}_pointToLatLng(e){const t=this.#a,s=this.#o,o=-t.y+s.y,a=t.x-s.x,{width:r,height:n}=this._pixelSize,i=e.x/(r/a)+this.#o.x,l=e.y/(n/o)+this.#a.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)}}__decorate([e.Transformer(r+".")],MapProjection,"offsetBy",null),__decorate([e.Transformer(r+".")],MapProjection,"distanceBetween",null),__decorate([e.Transformer(r+".")],MapProjection,"latLngToPoint",null),__decorate([e.Transformer(r+".")],MapProjection,"pointToLatLng",null),t.MapProjection=MapProjection}(e.Maps||(e.Maps={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(s){let o,a;!function(e){e.ROAD="road",e.SATELLITE="satellite",e.HYBRID="hybrid",e.TERRAIN="terrain",e.HIGH_CONTRAST="high_contrast"}(o=s.MapType||(s.MapType={})),function(e){e.LIGHT="light",e.DARK="dark",e.SYSTEM="system"}(a=s.MapColorScheme||(s.MapColorScheme={}));const r={MAP_SELECTOR:e.P+"-map",LINK_SELECTOR:e.P+"-map-link",MARKER_SELECTOR:e.P+"-map-marker",POLYLINE_SELECTOR:e.P+"-map-polyline",CIRCLE_SELECTOR:e.P+"-map-circle",POLYGON_SELECTOR:e.P+"-map-polygon",RECTANGLE_SELECTOR:e.P+"-map-rectangle",LAYER_SELECTOR:e.P+"-map-layer",OVERLAY_IMAGE_SELECTOR:e.P+"-map-overlay-image",OVERLAY_PANEL_SELECTOR:e.P+"-map-overlay-panel",GEOCODER_SELECTOR:e.P+"-map-geocode",DEFAULT_COORDS:{lat:44.71418802507798,lng:10.296516444873811}};s.MapConsts={DEFAULT_COORDS:r.DEFAULT_COORDS};class LatLng extends e.Maps.LatLng{}class LatLngBounds extends e.Maps.LatLngBounds{}s.isLatLng=function(e){return LatLng.isLatLng(e)},s.isLatLngBounds=function(e){return LatLngBounds.isLatLngBounds(e)};const n="defaultMapTarget";s.LatLngConverter={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)},s.LatLngBoundsConverter={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(t){if(t&&!isNaN(t.lat)&&!isNaN(t.lng))return[t.lat,t.lng];if(e.Utils.isArray(t)&&t.length>1)return[t[0],t[1]];if(/^\s*(\+|-)?[\d]+(.[\d]+)?\s*,\s*(\+|-)?[\d]+(.[\d]+)?\s*$/.test(t)){var s=t.split(",");return[parseFloat(s[0]),parseFloat(s[1])]}return[r.DEFAULT_COORDS.lat,r.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}}s.MapUtils=MapUtils;class MapRelevantElement extends t.PacemEventTarget{get map(){return this._map=this._map||e.CustomElementUtils.findAncestorOfType(this,u)}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()}}__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],MapRelevantElement.prototype,"hide",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],MapRelevantElement.prototype,"inactive",void 0),s.MapRelevantElement=MapRelevantElement;class MapEvent extends e.CustomTypedEvent{constructor(e,t){super(e,t)}}s.MapEvent=MapEvent;let i=class PacemMapGeocodeElement extends t.PacemEventTarget{constructor(){super(...arguments),this.debounce=1e3,this.#r=!1}#r;#n;#i;get fetching(){return this.#r}_guards(){const t=this.results;if(!e.Utils.isNullOrEmpty(t)){const s=t[0];if(!e.Utils.isNull(this.position)&&LatLng.equals(this.position,s.position)&&this.search===s.fullAddress)return Promise.resolve(t)}const s=this.adapter;return e.Utils.isNull(s)||s.disabled||!s.active?Promise.resolve([]):null}propertyChangedCallback(t,s,o,a){switch(super.propertyChangedCallback(t,s,o,a),t){case"search":this.geocode(o);break;case"position":this.reverseGeocode(o);break;case"results":if(e.Utils.isNullOrEmpty(o))this.search="",this.position=null;else{const e=o[0];this.search=e.fullAddress,this.position=e.position}}}_broadcastFetchingUpdate(t){t!==this.#r&&(this.#r=t,this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"fetching",oldValue:!t,currentValue:t})))}_fetch(t){const{promise:s,search:o,position:a,key:r}=t,n=this.#i;!e.Utils.isNull(n)&&LatLng.equals(n.position,a)&&(n.search||"")===(o||"")||(this.#i={key:r,promise:s,position:a,search:o},this._broadcastFetchingUpdate(!0),s.then(e=>{r===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=setTimeout(()=>{e()},t||0)}reverseGeocode(t=this.position,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.reverseGeocode(t,s||1);this._fetch({promise:o,position:t,key:e.Utils.uniqueCode()})})}geocode(t=this.search,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.geocode(t,s||10);this._fetch({promise:o,search:t,position:LatLng.Empty,key:e.Utils.uniqueCode()})})}_successCallback(t){const s=!e.Utils.isNullOrEmpty(t);!s&&e.Utils.isNullOrEmpty(this.results)||t!==this.results&&(this.results=t,s&&this.dispatchEvent(new CustomEvent("success",{detail:t,bubbles:!1,cancelable:!1})))}_errorCallback(t){e.Utils.isNullOrEmpty(this.results)||(this.results=[]),this.dispatchEvent(new CustomEvent("error",{detail:t,bubbles:!1,cancelable:!1}))}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],i.prototype,"adapter",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],i.prototype,"maxResults",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],i.prototype,"debounce",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],i.prototype,"results",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.String})],i.prototype,"search",void 0),__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],i.prototype,"position",void 0),i=__decorate([e.CustomElement({tagName:r.GEOCODER_SELECTOR})],i),s.PacemMapGeocodeElement=i;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 a=this.#h;a.has(e)||a.set(e,this.buildOverlayAdapterFor(e));const r=this.#p;r.has(e)||r.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 a=this.#d;a.has(e)&&a.delete(e);const r=this.#l;r.has(e)&&(this.dispose(e),r.delete(e))}removeItem(e){const t=e.map;if(e instanceof p){const s=this.layerAdapters;if(s.has(t)){s.get(t).removeLayer(e)}}else if(e instanceof d){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 p){const s=this.layerAdapters;if(s.has(t)){s.get(t).drawLayer(e)}}else if(e instanceof d){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 d){const s=this.markerAdapters;s.has(t)&&s.get(t).openInfoWindow(e)}}popoutInfoWindow(e){const t=e.map;if(e instanceof d){const s=this.markerAdapters;s.has(t)&&s.get(t).closeInfoWindow(e)}}setView(t,s,o){if(!this.hasMap(t))return;let a={};a="number"==typeof s?e.Utils.extend({},{zoom:s}):LatLng.isLatLng(s)?e.Utils.extend({},{center:s,zoom:o}):s,this.setViewNative(t,a)}fitBounds(t,s){if(e.Utils.isNull(t))for(let e of this.enrolledMaps()||[])this._fitBounds(e,s);else this._fitBounds(t,s)}_fitBounds(t,s){if(!this.hasMap(t))return;if(!t.autofit&&!0===s)return;if(LatLngBounds.isLatLngBounds(s)&&!LatLngBounds.isEmpty(s))return void this.fitBoundsNative(t,s);const o=this.markerAdapters.get(t)?.getBounds(),a=this.shapeAdapters.get(t)?.getBounds(),r=e.Utils.isNull(o)||LatLngBounds.isEmpty(o),n=e.Utils.isNull(a)||LatLngBounds.isEmpty(a);if(r&&n)return void this.setView(t,{center:t.center,zoom:t.zoom});let i=LatLngBounds.Empty;r||(i=LatLngBounds.union(i,o)),n||(i=LatLngBounds.union(i,a)),LatLngBounds.isPoint(i)?this.setView(t,{zoom:t.zoom,center:i.ne}):this.fitBoundsNative(t,i)}updateMapElement(t,s,o){["type","tilt","heading"].forEach(e=>{e in s&&(t[e]=s[e])});const a="zoom"in s?s.zoom:o;e.Utils.isNullOrEmpty(a)||a===t.zoom||(t.zoom=a);const r=LatLng.isLatLng(s)?s:s.center;e.Utils.isNullOrEmpty(r)||r.lat==t.center?.lat&&r.lng==t.center?.lng||(t.center=r),t.updateBounds(this.getBounds(t))}}__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Boolean})],PacemMapAdapterElement.prototype,"active",void 0),__decorate([e.Debounce(1e3,(e,t)=>`pacem:debounce:${e}:${t.id}`)],PacemMapAdapterElement.prototype,"_fitBounds",null),s.PacemMapAdapterElement=PacemMapAdapterElement;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)}}s.MapItemAdapter=MapItemAdapter;s.PacemOverlayAdapter=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(t,s){const o=this.#h;let a;return o.has(t)?a=o.get(t):(a=this.buildOverlay(t,s),e.Utils.isNull(a)||o.set(t,a)),a}removeOverlay(e){const t=this,s=t.getMap(e),o=this.#h;if(o.has(e)){const a=o.get(e);t.deleteOverlay(a,s),o.delete(e)}}drawOverlay(t){const s=this,o=s.getMap(t);if(e.Utils.isNull(o))return;if(e.Utils.isNullOrEmpty(t)||t.hide)return void s.removeOverlay(t);const a=this.ensureOverlay(t,o);this.setBounds(a,o,t.bounds),this.updateOverlay(a,o,t)}};class PacemMapOverlayElement extends MapRelevantElement{}__decorate([e.Watch({emit:!1,converter:s.LatLngBoundsConverter})],PacemMapOverlayElement.prototype,"bounds",void 0),s.PacemMapOverlayElement=PacemMapOverlayElement;let l=class PacemMapOverlayImageElement extends PacemMapOverlayElement{};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],l.prototype,"src",void 0),l=__decorate([e.CustomElement({tagName:r.OVERLAY_IMAGE_SELECTOR})],l),s.PacemMapOverlayImageElement=l;s.PacemLayerAdapter=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 a;if(o.has(e))a=o.get(e);else if(a=this.buildLayer(e,t),null!=a){const r=t=>{s.onTileLoad(e,t)};this.#m.set(e,r),this.addLoadEventListener(a,t,r),o.set(e,a)}return a}removeLayer(e){const t=this,s=t.getMap(e),o=this.#c;if(o.has(e)){const a=o.get(e),r=this.#m;if(r.has(e)){const t=r.get(e);this.removeLoadEventListener(a,s,t),r.delete(e)}t.deleteLayer(a,s),o.delete(e)}}drawLayer(t){const s=this,o=s.getMap(t);e.Utils.isNull(o)||(e.Utils.isNullOrEmpty(t)||t.hide?s.removeLayer(t):this.ensureLayer(t,o))}};let p=class PacemMapLayerElement extends MapRelevantElement{};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],p.prototype,"url",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Json})],p.prototype,"include",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],p.prototype,"mode",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],p.prototype,"minZoom",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],p.prototype,"maxZoom",void 0),p=__decorate([e.CustomElement({tagName:r.LAYER_SELECTOR})],p),s.PacemMapLayerElement=p;s.PacemMarkerAdapter=class PacemMarkerAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}get mapAutomaticallyScrollsOnDrag(){return!1}#p=new Map;#u=new Map;getBounds(t=e=>!0){const s=this.markers;let o=LatLngBounds.Empty;for(var a of s.keys()){if(!t(a)||a.inactive)continue;let r=s.get(a);e.Utils.isNull(r)||(o=LatLngBounds.union(o,this.getMarkerPosition(r)))}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,a=this.#p;if(o.has(e)&&o.delete(e),a.has(e)){const o=a.get(e);t.deleteMarker(o,s),a.delete(e)}}drawMarker(t){const s=this,o=s.getMap(t);if(e.Utils.isNull(o))return;if(e.Utils.isNullOrEmpty(t&&t.position)||t.hide)return void s.removeMarker(t);const a=this.ensureMarker(t,o);this.setPosition(a,t.position),this.setIcon(a,t.icon),this.setLabel(a,t.caption),this.setDraggable(a,t.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,a=>{s.deleteInfoWindow(o,t),s.onInfoClose(e)}),s.infoWindows.set(e,o)),o}openInfoWindow(t,s){var o=this,a=o.markers.get(t),r=t.caption,n=o.getMap(t);if(MapUtils.isContentEmpty(t)||(r=t.innerHTML),!e.Utils.isNullOrEmpty(r)){const e=this.ensureInfoWindow(t,n);this.setContent(e,r),this.openInfo(e,r,n,a),o.onInfoOpen(t)}}};let d=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"))}};__decorate([e.Watch({converter:s.LatLngConverter})],d.prototype,"position",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],d.prototype,"icon",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],d.prototype,"caption",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],d.prototype,"draggable",void 0),d=__decorate([e.CustomElement({tagName:r.MARKER_SELECTOR})],d),s.PacemMapMarkerElement=d;s.PacemShapeAdapter=class PacemShapeAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}#d=new Map;get shapes(){return this.#d}getBounds(t=e=>!0){const s=this.shapes;let o=LatLngBounds.Empty;for(var a of s.keys()){if(!t(a)||a.inactive)continue;let r=s.get(a);e.Utils.isNull(r)||(o=LatLngBounds.union(o,this.getShapeBounds(r)))}return o}removeShape(e){const t=this,s=t.getMap(e),o=this.#d;if(o.has(e)){const a=o.get(e);t.deleteShape(a,s),o.delete(e)}}_dispatchEvent(e,t,s){const o=this.shapes.get(e),a=this.getShapePosition(s??o);e.dispatchEvent(new MapEvent(t,{position:a}))}#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),a=this.#g.get(e),r=o.ne,n={lat:r.lat-a.lat,lng:r.lng-a.lng};this._translateShape(e,n),this._dispatchEvent(e,"dragend",t)}_translateShape(e,t){if(e instanceof m)e.center=LatLng.translate(e.center,t);else{if(e instanceof c){const s=e.vertices.map(e=>LatLng.translate(e,t));return void(e.vertices=s)}if(e instanceof h){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(t){const s=this,o=s.getMap(t);if(e.Utils.isNull(o))return;if(e.Utils.isNullOrEmpty(t)||t.hide)return void s.removeShape(t);const a=this.ensureShape(t,o);this.setShape(a,t),this.setEditable(a,t.editable),this.setDraggable(a,t.draggable)}};class PacemMapShapeElement extends MapRelevantElement{}__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Boolean})],PacemMapShapeElement.prototype,"draggable",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Boolean})],PacemMapShapeElement.prototype,"editable",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],PacemMapShapeElement.prototype,"stroke",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],PacemMapShapeElement.prototype,"fill",void 0),s.PacemMapShapeElement=PacemMapShapeElement;let c=class PacemMapPolylineElement extends PacemMapShapeElement{};__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],c.prototype,"vertices",void 0),c=__decorate([e.CustomElement({tagName:r.POLYLINE_SELECTOR})],c),s.PacemMapPolylineElement=c;let h=class PacemMapPolygonElement extends PacemMapShapeElement{};__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],h.prototype,"vertices",void 0),h=__decorate([e.CustomElement({tagName:r.POLYGON_SELECTOR})],h),s.PacemMapPolygonElement=h;let m=class PacemMapCircleElement extends PacemMapShapeElement{};__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],m.prototype,"center",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],m.prototype,"radius",void 0),m=__decorate([e.CustomElement({tagName:r.CIRCLE_SELECTOR})],m),s.PacemMapCircleElement=m;let u=class PacemMapElement extends t.PacemEventTarget{constructor(){super(...arguments),this.zoom=12,this.center=r.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=t=>{const s=t.target;"active"===t.detail.propertyName&&t.detail.currentValue&&(s.removeEventListener(e.PropertyChangeEventName,this._listenToActiveAdapter,!1),this._switchAdapter(s))},this._initialized=!1,this._afterInit=(t,s)=>{for(var o of(this._initialized=!0,e.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(t){if(!LatLngBounds.equals(t,this.#y)){const s=this.#y,o=this.#y=t;this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"bounds",oldValue:s,currentValue:o}))}}#y;get bounds(){return this.#y}get container(){return this._container}register(t){t.addEventListener(e.PropertyChangeEventName,this._drawHandler,!1),this._draw(t)}unregister(t){this._erase(t),t.removeEventListener(e.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(t,s){t.active?t.initialize(this).then(e=>this._afterInit(e,s)):(s&&this._afterInit(null,s),t.addEventListener(e.PropertyChangeEventName,this._listenToActiveAdapter,!1))}viewActivatedCallback(){super.viewActivatedCallback(),this._setupContainer(),this.adapter&&this._switchAdapter(this.adapter)}propertyChangedCallback(t,s,o,a){if(super.propertyChangedCallback(t,s,o,a),"bounds"!==t)if("adapter"===t)e.Utils.isNull(this._container)||(this._initialized=!1,o?this._switchAdapter(o,s):s&&this._afterInit(null,s));else{switch(t){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(t=this._container){"true"===t.dataset[n]?t.remove():e.Utils.removeClass(t,e.PCSS+"-map"),t===this._container&&(this._container=null)}_dismissResizer(){const e=this._resizer;e.removeEventListener("resize",this._resizeHandler,!1),e.remove(),this._resizer=null}_setupContainer(t=this.target){e.Utils.isNull(t)&&((t=document.createElement("div")).dataset[n]="true",this.insertAdjacentElement("afterend",t));const s=this._container=t;return e.Utils.addClass(s,e.PCSS+"-map"),s}_setupResizer(){const t=this._container;if(e.Utils.isNull(t))throw new Error("You must set up the map container before its resizing listener.");if(e.Utils.isNull(this._resizer)){const s=this._resizer=document.createElement(e.P+"-resize");s.addEventListener("resize",this._resizeHandler,!1),t.insertAdjacentElement("afterend",s)}return this._resizer.target=t,this._resizer}_detach(){e.Utils.isNull(this._container)||this._dismissContainer(),e.Utils.isNull(this._resizer)||this._dismissResizer()}disconnectedCallback(){this._detach(),super.disconnectedCallback()}onResize(e){this.adapter&&this.adapter.invalidateSize(this)}};__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Number})],u.prototype,"zoom",void 0),__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],u.prototype,"center",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],u.prototype,"type",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],u.prototype,"theme",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"scale",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"mousewheel",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],u.prototype,"zoomControl",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"draggable",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"doubleClickZoom",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"keyboardShortcuts",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"autofit",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingTop",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingLeft",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingRight",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingBottom",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],u.prototype,"adapter",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],u.prototype,"target",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"tilt",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"heading",void 0),u=__decorate([e.CustomElement({tagName:r.MAP_SELECTOR})],u),s.PacemMapElement=u}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){var s;const o="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js",a="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css";function r(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(t){if(e.Utils.isArray(t))return atlas.data.BoundingBox.fromPositions(t.map(e=>[e[1],e[0]]));const s=AtlasMapUtils.getPosition(t.ne),o=AtlasMapUtils.getPosition(t.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(t){return e.Utils.isNullOrEmpty(t.results)?[]:t.results.map(e=>({fullAddress:e.address.freeformAddress,address:r(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)),a=s.address;return{fullAddress:a.freeformAddress,address:r(a),position:{lat:o[0],lng:o[1],altitude:o.length>2?o[2]:null}}}}class PacemAzureOverlayAdapter extends t.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 t.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 t.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(t,s){const o=this._getPopup(t);e.Utils.isNull(o)||o.setOptions({position:s})}setPosition(e,t){const s=AtlasMapUtils.getPosition(t);e.setOptions({position:s}),this._setPopupPosition(e,s)}setIcon(t,s){let o={pixelOffset:[0,-36]},a={popup:new atlas.Popup},r=(e,t,s)=>`<img width="${t||"auto"}" height="${s||"auto"}" style="pointer-events: none" src="${e}" />`;if("string"==typeof s)a.htmlContent=r(s);else if(!e.Utils.isNull(s)){const e=s.size,t=s.anchor;a.htmlContent=r(s.url,e&&e.width,e&&e.height),t?(a.anchor="top-left",a.pixelOffset=[-t.x,-t.y],o.pixelOffset=[0,-t.y]):e&&e.height&&(o.pixelOffset=[0,-e.height/2])}a.popup.setOptions(o),t.setOptions(a)}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:a,position:r}=e.getOptions();this._setContent(a,t,r),o.togglePopup(),s.events.addOnce("close",a,e=>{a.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 t.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(t,s,o=10,a=""){const r={"subscription-key":t,query:s,limit:""+o,language:a};return{uri:e.Utils.URIs.appendQuery("https://atlas.microsoft.com/search/address/json?api-version=1.0",r),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((a,r)=>{const n=this._buildGeocodeRequest(e,t,s,o);return fetch(n.uri,n.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(a,r):r(e)},e=>r(e))})}reverseGeocode(e,t,s=""){return new Promise((o,a)=>{const r=this._buildReverseRequest(e,t,s);return fetch(r.uri,r.options).then(e=>{e.ok?this._parseReverseResponse(e).then(o,a):a(e)},e=>a(e))})}_buildReverseRequest(s,o,a=""){const r=t.MapUtils.parseCoords(o),n={"subscription-key":s,query:r[0]+","+r[1],language:a};return{uri:e.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=AtlasMapUtils.parseReverseGeocoding(e);t([s])},e=>s(e))})}}const n=["moveend","dragend","zoomend","rotateend"];let i=s=class PacemAzureMapAdapterElement extends t.PacemMapAdapterElement{geocode(t,s){return(new PacemAzureMapGeocoder).geocode(this.subscriptionKey,t,s,e.Utils.lang(this))}reverseGeocode(t,s){return(new PacemAzureMapGeocoder).reverseGeocode(this.subscriptionKey,t,e.Utils.lang(this))}getBounds(e){const t=this.getMap(e),{bounds:s}=t.getCamera();return AtlasMapUtils.getLatLngBounds(s)}isActive(){return!e.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(s,o){const a=this.getMap(s),r=function(e){const s=e.theme==t.MapColorScheme.DARK||e.theme!==t.MapColorScheme.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 t.MapType.HYBRID:return"satellite_road_labels";case t.MapType.SATELLITE:return"satellite";case t.MapType.TERRAIN:return"road_shaded_relief";case t.MapType.HIGH_CONTRAST:return s?"high_constrast_dark":"high_constrast_light";default:return s?"night":"road"}}(o=e.Utils.extend({type:s.type,theme:s.theme},o));a.setStyle({style:r});const n=o.center&&AtlasMapUtils.getPosition(o.center)||a.getCamera().center,i=o.zoom||a.getCamera().zoom;a.setCamera({center:n,zoom:i})}#v=new WeakMap;snapshot(t,s="image/png",o){if(!this.hasMap(t))return Promise.reject();const{map:a}=this.tryGetMap(t);return new Promise((r,n)=>{e.Utils.blobToDataURL(this.#_.get(t)).then(t=>{const n=a.getCanvasContainer();n.style.backgroundImage=`url(${t})`,n.style.backgroundSize="contain",e.Utils.snapshotElement(n,null,s,o).then(r)})})}#_=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(s){await Promise.all([e.CustomElementUtils.importjs(o),e.CustomElementUtils.importcss(a,void 0,!0)]);const r=s,i=r.scale,l=r.draggable,p=r.doubleClickZoom,d=r.keyboardShortcuts,c={center:AtlasMapUtils.getPosition(r.center),zoom:r.zoom,subscriptionKey:this.subscriptionKey,dragPanInteraction:l,scrollZoomInteraction:r.mousewheel,dblClickZoomInteraction:!p,keyboardInteraction:d,language:this.language||e.Utils.lang(s)},h=r.container,m=document.createElement("div");m.id=`azure-maps-${e.Utils.uniqueCode()}`,m.style.width="100%",m.style.height="100%",h.innerHTML="",h.appendChild(m);const u=new atlas.Map(m.id,c),g=[];return this.#v.set(r,g),n.forEach(e=>{const t=this._spinMapUpdateHandler(r,u);u.events.add(e,t),g.push({eventName:e,handler:t})}),i&&r.zoomControl&&u.events.addOnce("ready",e=>{let t=atlas.ControlPosition.NonFixed;switch(r.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}u.controls.add(new atlas.control.ZoomControl,{position:t})}),u.events.add("idle",e=>{u.getCanvas().toBlob(e=>{this.#_.set(s,e)})}),u.events.addOnce("ready",()=>{s.dispatchEvent(new t.MapEvent("maploaded"))}),{map:u,container:m}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);t&&t.resize()}propertyChangedCallback(t,s,o,a){if(super.propertyChangedCallback(t,s,o,a),!a&&"language"===t)for(let t of this.enrolledMaps()){const{map:s}=this.tryGetMap(t);s.setStyle({language:o||e.Utils.lang(t)})}}_spinMapUpdateHandler(e,t){return()=>{this._updateMap(e,t)}}_updateMap(t,s){if(!e.Utils.isNull(s)&&!e.Utils.isNull(t)){const e=s.getCamera(),o=e.center,a=e.zoom;1===e.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(t,AtlasMapUtils.getLatLng(o),a)}}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,o=s._getBounds(e)){this.getMap(e).setCamera({bounds:AtlasMapUtils.getBounds(t),padding:o})}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"subscriptionKey",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"language",void 0),__decorate([e.Debounce(500)],i.prototype,"_updateMap",null),i=s=__decorate([e.CustomElement({tagName:e.P+"-map-adapter-azure"})],i),t.PacemAzureMapAdapterElement=i}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(s){const o="geolocation_unavailable",a="position_unavailable",r="permission_denied",n="timeout",i="unknown_error";let l=class PacemMapGeolocateElement extends t.PacemEventTarget{constructor(){super(...arguments),this.permission="prompt",this.maximumAge=15e3,this.timeout=3e4,this.#r=!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(t=>{const s=navigator.permissions;e.Utils.isNull(s)?t("prompt"):s.query({name:"geolocation"}).then(e=>{t(this.permission=e.state)})})}#r;get fetching(){return this.#r}_setFetching(t){t!==this.fetching&&(this.#r=t,this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"fetching",currentValue:t,oldValue:!t})))}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(o))}viewActivatedCallback(){super.viewActivatedCallback(),this._checkPermission()}_errToString(e){switch(e.code){case GeolocationPositionError.PERMISSION_DENIED:return r;case GeolocationPositionError.POSITION_UNAVAILABLE:return a;case GeolocationPositionError.TIMEOUT:return n;default:return i}}};__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],l.prototype,"position",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.String})],l.prototype,"permission",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],l.prototype,"maximumAge",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],l.prototype,"timeout",void 0),l=__decorate([e.CustomElement({tagName:e.P+"-map-geolocate"})],l),s.PacemMapGeolocateElement=l}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const s={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;#f;_equivalent(t,s,o,a){const r=this.#f;return!e.Utils.isNull(r)&&r.key===t&&r.language===(s||r.language)&&r.region===(o||r.region)&&r.version===(a||r.version)}_spinFuture(e,t,s,o){return new Promise((a,r)=>{this._equivalent(e,t,s,o)||Bootstrapper._ensureBootstrapScript(e,t,s,o),this.#f={language:t,region:s,version:o,key:e},google.maps.importLibrary("maps").then(e=>{a(),this.#i=null},e=>{r(e),this.#i=null})})}boostrap(t,o,a,r="weekly"){return e.Utils.isNullOrEmpty(t)?Promise.reject(s.INVALID_KEY):(!e.Utils.isNull(this.#i)&&this._equivalent(t,o,a,r)||(this.#i=this._spinFuture(t,o,a,r)),this.#i)}static _ensureBootstrapScript(t,o,a,r){const n="pacem-googlemaps",i=`v=${r},l=${o},r=${a}`;let l=document.querySelector(`script[${n}]`);if(!e.Utils.isNull(l)){if(l.getAttribute(n)===i)return;l.remove(),document.querySelectorAll("script[src^='https://maps.googleapis.com/maps']").forEach(e=>e.remove()),delete window.google}e.Utils.isNullOrEmpty(t)||(l=document.createElement("script"),l.setAttribute(n,i),l.textContent=s.BOOTSTRAP_SNIPPET(t,o,a,r),document.head.appendChild(l))}}const o=new Bootstrapper;class GMapsUtils{static getPosition(e){return Array.isArray(e)&&(e={lat:e[0],lng:e[1]}),e}static getBounds(t){return e.Utils.isNullOrEmpty(t)?null:{north:t.ne.lat,east:t.ne.lng,south:t.sw.lat,west:t.sw.lng}}static mapGeocodeResults(e,t=[]){const s=[];e??=[];for(let o=0;o<e.length;o++){const a=t.length>o?t[o]:null,r=GMapsUtils.mapGeocodeResult(e[o],a);s.push(r)}return s}static mapGeocodeResult(e,t){const s=e?.address_components||[],o=s.find(e=>e.types.indexOf("street_number")>=0)?.long_name,a=s.find(e=>e.types.indexOf("route")>=0)?.long_name,r=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||r,provinceCode:i?.short_name,province:i?.long_name,countryCode:p?.short_name,country:p?.long_name,zipCode:d,streetName:a,state:l,village:r,type:e.geometry.location_type};return{fullAddress:e.formatted_address,position:GMapsUtils.toLiteral(e.geometry.location,t?.elevation),address:c}}static toLiteral(t,s){if(e.Utils.isNull(t))return null;if("lat"in t&&"function"==typeof t.lat&&"lng"in t&&"function"==typeof t.lng)return{lat:t.lat(),lng:t.lng(),altitude:s};if("getNorthEast"in t&&"function"==typeof t.getNorthEast&&"getSouthWest"in t&&"function"==typeof t.getSouthWest){const e=t.getNorthEast(),s=t.getSouthWest();return{ne:GMapsUtils.toLiteral(e),sw:GMapsUtils.toLiteral(s)}}return"north"in t&&"number"==typeof t.north&&"south"in t&&"number"==typeof t.south&&"west"in t&&"number"==typeof t.west&&"east"in t&&"number"==typeof t.east?{ne:{lat:t.north,lng:t.east},sw:{lat:t.south,lng:t.west}}:e.Utils.extend({altitude:s},t)}static areEqual(t,s){if(e.Utils.isNull(t)||e.Utils.isNull(s))return!1;const o=GMapsUtils.toLiteral(t),a=GMapsUtils.toLiteral(s);return o.lat===a.lat&&o.lng===a.lng}static fitBounds(e,t,s){e?.fitBounds(t,s)}static setCenter(t,s){e.Utils.isNull(t)||GMapsUtils.areEqual(t.getCenter(),s)||t.panTo(s)}}class PacemGoogleShapeAdapter extends t.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,s){const o=!0;return e instanceof t.PacemMapPolylineElement?new google.maps.Polyline({path:e.vertices,clickable:o,map:s}):e instanceof t.PacemMapPolygonElement?new google.maps.Polygon({paths:[e.vertices],clickable:o,map:s}):e instanceof t.PacemMapCircleElement?new google.maps.Circle({center:e.center,radius:e.radius,clickable:o,map:s}):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,s){if(s instanceof t.PacemMapPolylineElement){e.setOptions({strokeColor:s.stroke?.color,strokeOpacity:s.stroke?.alpha??1,strokeWeight:s.stroke?.thickness,path:s.vertices})}if(s instanceof t.PacemMapPolygonElement){e.setOptions({strokeColor:s.stroke?.color,strokeOpacity:s.stroke?.alpha??1,strokeWeight:s.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:s.fill?.color,fillOpacity:s.fill?.alpha,paths:[s.vertices]})}if(s instanceof t.PacemMapCircleElement){e.setOptions({strokeColor:s.stroke?.color,strokeOpacity:s.stroke?.alpha??1,strokeWeight:s.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:s.fill?.color,fillOpacity:s.fill?.alpha,center:s.center,radius:s.radius})}}setEditable(e,t){e.setOptions({editable:t})}setDraggable(e,t){e.setOptions({draggable:t})}}class PacemGoogleMarkerAdapter extends t.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(t,s){if("string"==typeof s)t.setIcon(s);else if(!e.Utils.isNull(s)){let o={url:s.url};e.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)),e.Utils.isNullOrEmpty(s.anchor)||(o.anchor=new google.maps.Point(s.anchor.x,s.anchor.y)),t.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(t){let s=0;return"string"==typeof t.icon||e.Utils.isNull(t.icon)||(s=(t.icon.size?.width??0)/2-(t.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 t.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,o){const a=s.TILE_EXTENT;var r=2*a[1]/Math.pow(2,o),n=a[0]+e*r,i=a[0]+(e+1)*r;return[n,a[1]-(t+1)*r,i,a[1]-t*r]}_getWmsTileUrl(t,s){return(o,a)=>e.Utils.URIs.appendQuery(t,{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,a).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:(a=t,"abc"[Math.abs(a.x+a.y)%3]),x:""+t.x,y:""+t.y,z:""+s};var a;let r=e;for(let e in o)r=r.replaceAll("{"+e+"}",o[e]);return r}}_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 t.PacemOverlayAdapter{updateOverlay(e,t,s){e.set,e.draw()}deleteOverlay(e,t){e.setMap(null)}buildOverlay(s,o){let a=function(s){class PacemGoogleOverlay extends google.maps.OverlayView{constructor(e){super(),this._item=e}get element(){return this._item}get bounds(){const t=this._item.bounds;return e.Utils.isNull(t)?null:GMapsUtils.getBounds(t)}getBoundingBox(){const t=this.getProjection(),s=this.bounds;if(e.Utils.isNullOrEmpty(s))return null;const o=t.fromLatLngToDivPixel({lat:s.south,lng:s.west}),a=t.fromLatLngToDivPixel({lat:s.north,lng:s.east});return{x:o.x,y:a.y,width:a.x-o.x,height:o.y-a.y}}}class PacemGoogleImageOverlay extends PacemGoogleOverlay{get src(){return this.element.src}#L;onAdd(){const e=this.#L=this.#L||document.createElement("div");e.style.position="absolute",this.getPanes().overlayLayer.appendChild(e)}onRemove(){const t=this.#L;e.Utils.isNull(t)||(t.remove(),this.#L=null)}draw(){const t=this.#L;if(e.Utils.isNull(t))return;const s=this.getBoundingBox();e.Utils.isNull(s)||(t.style.top=s.y+"px",t.style.left=s.x+"px",t.style.width=s.width+"px",t.style.height=s.height+"px",t.style.backgroundSize=`${s.width}px ${s.height}px`,t.style.backgroundImage=`url(${this.src})`)}}return s instanceof t.PacemMapOverlayImageElement?new PacemGoogleImageOverlay(s):null}(s);return a.setMap(o),a}setBounds(e,t,s){e.draw()}}const a=["dragend","zoom_changed","center_changed","maptypeid_changed","tilt_changed","heading_changed","bounds_changed"];e.Maps.LatLng;class LatLngBounds extends e.Maps.LatLngBounds{}function r(e){const s=e.theme==t.MapColorScheme.DARK?google.maps.ColorScheme.DARK:e.theme!=t.MapColorScheme.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:s};case t.MapType.HYBRID:return{type:google.maps.MapTypeId.HYBRID,theme:s};case t.MapType.SATELLITE:return{type:google.maps.MapTypeId.SATELLITE,theme:s};case t.MapType.TERRAIN:return{type:google.maps.MapTypeId.TERRAIN,theme:s};default:return{type:google.maps.MapTypeId.ROADMAP,theme:s}}}let n=class PacemGoogleMapAdapterElement extends t.PacemMapAdapterElement{geocode(e,t){const s=this.language||"",o=this.region||"",a=this.version||"weekly";return new PacemGoogleMapGeocoder(this.apiKey,s,o,a).geocode(e,t)}reverseGeocode(e,t){const s=this.language||"",o=this.region||"",a=this.version||"weekly";return new PacemGoogleMapGeocoder(this.apiKey,s,o,a).reverseGeocode(e,t)}getBounds(e){if(!this.hasMap(e))return LatLngBounds.Empty;const t=this.getMap(e).getBounds();return GMapsUtils.toLiteral(t)}isActive(){return!e.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(t,s="image/png",o){const{container:a}=this.tryGetMap(t);return e.Utils.snapshotElement(a,null,s,o)}setViewNative(t,o){const a=this.getMap(t);o=e.Utils.extend({type:t.type,theme:t.theme},o);const{type:n,theme:i}=r(o);if(this.#E&&i!==a.get("colorScheme"))return void this._bootstrapDebounced();a.setOptions({colorScheme:i,mapTypeId:n}),"number"==typeof o.tilt&&a.setTilt(o.tilt),"number"==typeof o.heading&&a.setHeading(o.heading);const l=()=>{o.center&&GMapsUtils.setCenter(a,o.center)};if("number"==typeof o.zoom&&o.zoom!==a.getZoom()){switch(a.getMapTypeId()){case google.maps.MapTypeId.SATELLITE:case google.maps.MapTypeId.HYBRID:const e=GMapsUtils.toLiteral(a.getCenter());this.getMaxAvailableZoom(e).then(e=>{const t=Math.min(e,o.zoom);a.setZoom(t),l()});break;default:const t=Math.min(s.MAX_ROADMAP_ZOOM,o.zoom);a.setZoom(t),l()}}else l()}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),!o)switch(e){case"libraries":case"apiKey":case"language":case"region":this.#E&&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(t){const s=t.scale,o=t.draggable,a=t.doubleClickZoom,n=t.keyboardShortcuts,{type:i,theme:l}=r({type:t.type,theme:t.theme});return e.Utils.extend({},this.defaultOptions||{streetViewControl:!1,zoomControl:!1,mapTypeControl:!1,fullscreenControl:!1,cameraControl:!1},{zoomControl:s&&!e.Utils.isNullOrEmpty(t.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}}(t.zoomControl)},scrollwheel:t.mousewheel,disableDoubleClickZoom:a,keyboardShortcuts:n,draggable:o,mapTypeId:i,colorScheme:l,tilt:t.tilt,heading:t.heading})}#E=!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,a=this.language||"",r=this.region||"",n=this.version||"weekly";o.boostrap(s,a,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.#E=!0},t)},t)})}async init(e){await this._bootstrap();const s=e,o=t.MapUtils.parseCoords(s.center),r=new google.maps.LatLng(o[0],o[1]),n=this._buildMapOptions(s),i=s.container,l=document.createElement("div");l.style.width="100%",l.style.height="100%",i.innerHTML="",i.appendChild(l);const p=new google.maps.Map(l,n),d=[];this.#v.set(s,d),a.forEach(e=>{d.push(p.addListener(e,this._spinMapUpdateHandler(s,p)))}),p.setZoom(s.zoom),p.setCenter(r);var c=p.addListener("idle",function(s){c.remove(),e.dispatchEvent(new t.MapEvent("maploaded"))});const h=t.MapUtils.parseCoords(s.center),m=new google.maps.LatLng(h[0],h[1]);return p.setZoom(s.zoom),p.setCenter(m),{map:p,container:l}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);google.maps.event.trigger(t,"resize")}_spinMapUpdateHandler(t,s){return()=>{if(!e.Utils.isNull(s)&&!e.Utils.isNull(t)){const o=s.getCenter();if(e.Utils.isNull(o))return;this.updateMapElement(t,{center:{lat:o.lat(),lng:o.lng()},zoom:s.getZoom(),type:s.getMapTypeId(),tilt:s.getTilt(),heading:s.getHeading()})}}}fitBoundsNative(t,s,o=this._getPadding(t)){const a=this.tryGetMap(t)?.map;if(e.Utils.isNull(a))return;const r=GMapsUtils.getBounds(s);GMapsUtils.fitBounds(a,r,o)}_getPadding(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,a=e.paddingBottom||0;return s||t||o||a?{top:t,bottom:a,left:s,right:o}:null}_padBounds(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,a=e.paddingBottom||0;if(s||t||o||a){const r=this.tryGetMap(e).map,n=r.getBounds(),i=r.getDiv().clientWidth,l=r.getDiv().clientHeight,p=r.getProjection().fromPointToLatLng(new google.maps.Point(-s,-t)),d=r.getProjection().fromPointToLatLng(new google.maps.Point(i+o,l+a));n.extend(p),n.extend(d)}}_redrawMap(){}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"apiKey",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"version",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"language",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"region",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Json})],n.prototype,"defaultOptions",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.StringArray})],n.prototype,"libraries",void 0),__decorate([e.Debounce(s.DETACH_TIMEOUT)],n.prototype,"_bootstrapDebounced",null),n=__decorate([e.CustomElement({tagName:e.P+"-map-adapter-google"})],n),t.PacemGoogleMapAdapterElement=n;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,a)=>{o.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(o=>{(new google.maps.Geocoder).geocode({address:e},(e,o)=>{if(o===google.maps.GeocoderStatus.OK||o==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(e||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(s)}else a(o)})},a)})}_reverseGeocodeInternal(e,t){const s=GMapsUtils.getPosition(e);return new Promise((e,a)=>{o.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(o=>{(new google.maps.Geocoder).geocode({location:s},(s,o)=>{if(o===google.maps.GeocoderStatus.OK||o==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(s||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(e)}else a(o)})},a)})}reverseGeocode(e,t=1){return this._reverseGeocodeInternal(e,t)}}}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const s="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js",o="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==",a="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css",r="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==";function n(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(t){return e.Utils.isNullOrEmpty(t)?[]:t.map(n)}static parseReverseGeocoding(t){return e.Utils.isNullOrEmpty(t)?[]:[n(t)]}}t.LayerLoadEventName="layerload";class LayerLoadEvent extends e.CustomTypedEvent{constructor(e){super(t.LayerLoadEventName,e,{bubbles:!0})}}class PacemLeafletMarkerAdapter extends t.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(t,s){const o=this;if("string"==typeof s)o._setIcon(t,s);else if(!e.Utils.isNull(s)){let a={iconUrl:s.url};e.Utils.isNullOrEmpty(s.size)||e.Utils.extend(a,{iconSize:[s.size.width,s.size.height],iconAnchor:[s.size.width/2,s.size.height],popupAnchor:[0,-s.size.height]}),e.Utils.isNullOrEmpty(s.anchor)||e.Utils.extend(a,{iconAnchor:[s.anchor.x,s.anchor.y]}),o._setIcon(t,new L.Icon(a))}}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,a,r={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(r,{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(r,{iconAnchor:l,popupAnchor:[0,-l[1]]})}if((a=this.popupAnchor)&&/[\d]+,[\d]+/.test(a)){n=-1,l=[parseInt(o.substring(0,n=o.indexOf(","))),parseInt(o.substring(n+1))];Object.assign(r,{popupAnchor:l})}e.setIcon(L.icon(r))}else t&&e.setIcon(t)}}class PacemLeafletShapeAdapter extends t.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 t.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 t.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 i=class PacemLeafletMapAdapterElement extends t.PacemMapAdapterElement{constructor(){super(...arguments),this.#M=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=t=>{const s=this.getMap(t);e.Utils.isNull(s)||e.Utils.isNull(t)||this.updateMapElement(t,s.getCenter(),s.getZoom())}}buildOverlayAdapterFor(e){return new PacemLeafletOverlayAdapter(e,this)}geocode(t,s){return(new PacemNominatimMapGeocoder).geocode(t,s,e.Utils.lang(this))}reverseGeocode(t,s){return(new PacemNominatimMapGeocoder).reverseGeocode(t,e.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)}#M;snapshot(t,s="image/png",o){return e.Utils.snapshotElement(t.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.#M.get(e);s&&s.off("load",this._tileLayerLoadHandler),t.clearAllEventListeners(),this.#M.delete(e)}async init(n){await Promise.all([e.CustomElementUtils.importjs(s,o,!0),e.CustomElementUtils.importcss(a,r,!0)]);const i=n;var l=i.scale,p=i.draggable,d=i.doubleClickZoom,c=i.keyboardShortcuts,h=L.latLng(t.MapUtils.parseCoords(i.center)),m={zoomControl:l&&!e.Utils.isNullOrEmpty(i.zoomControl),scrollWheelZoom:i.mousewheel,dragging:p,doubleClickZoom:!d,keyboard:c};const u=i.container,g=document.createElement("div");g.style.width="100%",g.style.height="100%",u.innerHTML="",u.appendChild(g);const y=L.map(g,m);["zoomend","moveend"].forEach(e=>{y.on(e,e=>{this._idleFiller(i),this._mapUpdateHandler(i)})}),y.on("load",()=>{l&&i.zoomControl&&y.zoomControl.setPosition(i.zoomControl),this._idleFiller(i)});const v=L.tileLayer(this.tiles,{attribution:this.attribution}).addTo(y);v.on("load",this._tileLayerLoadHandler),this.#M.set(i,v),y.setView(h,i.zoom),y.once("idle",function(){y.fire("resize"),n.dispatchEvent(new t.MapEvent("maploaded"))});const _=t.MapUtils.parseCoords(i.center),f=[_[0],_[1]];return y.setView(f,i.zoom),{map:y,container:g}}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),a={paddingTopLeft:new L.Point(s.left,s.top),paddingBottomRight:new L.Point(s.right,s.bottom)},r=t.ne,n=t.sw;try{o.fitBounds([[r.lat,r.lng],[n.lat,n.lng]],a)}catch(e){throw e}}_redrawMap(t){var s=this,o=s.#M.get(t);e.Utils.isNull(s.tiles&&o)||o.setUrl(s.tiles)}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"tiles",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"attribution",void 0),__decorate([e.Debounce(500)],i.prototype,"_idleFiller",null),i=__decorate([e.CustomElement({tagName:e.P+"-map-adapter-leaflet"})],i),t.PacemLeafletMapAdapterElement=i;class PacemNominatimMapGeocoder{_buildGeocodeRequest(t,s=10,o=""){const a={q:t,limit:""+s,"accept-language":o};return{uri:e.Utils.URIs.appendQuery("https://nominatim.openstreetmap.org/search?addressdetails=1&format=json",a),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,a)=>{const r=this._buildGeocodeRequest(e,t,s);return fetch(r.uri,r.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(o,a):a(e)},e=>a(e))})}reverseGeocode(e,t=""){return new Promise((s,o)=>{const a=this._buildReverseRequest(e,t);return fetch(a.uri,a.options).then(e=>{e.ok?this._parseReverseResponse(e).then(s,o):o(e)},e=>o(e))})}_buildReverseRequest(s,o=""){const a=t.MapUtils.parseCoords(s),r={lat:""+a[0],lon:""+a[1],"accept-language":o};return{uri:e.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))})}}}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
|
|
6
|
+
"use strict";var Pacem,__decorate=this&&this.__decorate||function(e,t,s,o){var a,r=arguments.length,n=r<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--)(a=e[i])&&(n=(r<3?a(n):r>3?a(t,s,n):a(t,s))||n);return r>3&&n&&Object.defineProperty(t,s,n),n};!function(e){!function(t){const s={lat:Number.NaN,lng:Number.NaN};class LatLng{static get Empty(){return s}static isEmpty(e){return e===s||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}}t.LatLng=LatLng;const o={ne:LatLng.Empty,sw:LatLng.Empty};class LatLngBounds{static get Empty(){return o}static isEmpty(e){return e===o||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)}}t.LatLngBounds=LatLngBounds;const a={SIZE:256,RAD:Math.PI/180,DEG:180/Math.PI,EPSILON:1e-15,SIN_LIMIT:1-1e-15,EARTH_RADIUS:6378137},r="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.#a=this._latLngToWorldNormalizedPoint(t.ne)}#e;#o;#a;#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.#a,s=this.#o,o=-t.y+s.y,a=t.x-s.x,r=this._latLngToWorldNormalizedPoint(e),{width:n,height:i}=this._pixelSize;return{x:(r.x-s.x)*(n/a),y:(r.y-t.y)*(i/o)}}_pointToLatLng(e){const t=this.#a,s=this.#o,o=-t.y+s.y,a=t.x-s.x,{width:r,height:n}=this._pixelSize,i=e.x/(r/a)+this.#o.x,l=e.y/(n/o)+this.#a.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)}}__decorate([e.Transformer(r+".")],MapProjection,"offsetBy",null),__decorate([e.Transformer(r+".")],MapProjection,"distanceBetween",null),__decorate([e.Transformer(r+".")],MapProjection,"latLngToPoint",null),__decorate([e.Transformer(r+".")],MapProjection,"pointToLatLng",null),t.MapProjection=MapProjection}(e.Maps||(e.Maps={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(s){let o,a;!function(e){e.ROAD="road",e.SATELLITE="satellite",e.HYBRID="hybrid",e.TERRAIN="terrain",e.HIGH_CONTRAST="high_contrast"}(o=s.MapType||(s.MapType={})),function(e){e.LIGHT="light",e.DARK="dark",e.SYSTEM="system"}(a=s.MapColorScheme||(s.MapColorScheme={}));const r={MAP_SELECTOR:e.P+"-map",LINK_SELECTOR:e.P+"-map-link",MARKER_SELECTOR:e.P+"-map-marker",POLYLINE_SELECTOR:e.P+"-map-polyline",CIRCLE_SELECTOR:e.P+"-map-circle",POLYGON_SELECTOR:e.P+"-map-polygon",RECTANGLE_SELECTOR:e.P+"-map-rectangle",LAYER_SELECTOR:e.P+"-map-layer",OVERLAY_IMAGE_SELECTOR:e.P+"-map-overlay-image",OVERLAY_PANEL_SELECTOR:e.P+"-map-overlay-panel",GEOCODER_SELECTOR:e.P+"-map-geocode",DEFAULT_COORDS:{lat:44.71418802507798,lng:10.296516444873811}};s.MapConsts={DEFAULT_COORDS:r.DEFAULT_COORDS};class LatLng extends e.Maps.LatLng{}class LatLngBounds extends e.Maps.LatLngBounds{}s.isLatLng=function(e){return LatLng.isLatLng(e)},s.isLatLngBounds=function(e){return LatLngBounds.isLatLngBounds(e)};const n="defaultMapTarget";s.LatLngConverter={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)},s.LatLngBoundsConverter={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(t){if(t&&!isNaN(t.lat)&&!isNaN(t.lng))return[t.lat,t.lng];if(e.Utils.isArray(t)&&t.length>1)return[t[0],t[1]];if(/^\s*(\+|-)?[\d]+(.[\d]+)?\s*,\s*(\+|-)?[\d]+(.[\d]+)?\s*$/.test(t)){var s=t.split(",");return[parseFloat(s[0]),parseFloat(s[1])]}return[r.DEFAULT_COORDS.lat,r.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}}s.MapUtils=MapUtils;class MapRelevantElement extends t.PacemEventTarget{get map(){return this._map=this._map||e.CustomElementUtils.findAncestorOfType(this,u)}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()}}__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],MapRelevantElement.prototype,"hide",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],MapRelevantElement.prototype,"inactive",void 0),s.MapRelevantElement=MapRelevantElement;class MapEvent extends e.CustomTypedEvent{constructor(e,t){super(e,t)}}s.MapEvent=MapEvent;let i=class PacemMapGeocodeElement extends t.PacemEventTarget{constructor(){super(...arguments),this.debounce=1e3,this.#r=!1}#r;#n;#i;get fetching(){return this.#r}_guards(){const t=this.results;if(!e.Utils.isNullOrEmpty(t)){const s=t[0];if(!e.Utils.isNull(this.position)&&LatLng.equals(this.position,s.position)&&this.search===s.fullAddress)return Promise.resolve(t)}const s=this.adapter;return e.Utils.isNull(s)||s.disabled||!s.active?Promise.resolve([]):null}propertyChangedCallback(t,s,o,a){switch(super.propertyChangedCallback(t,s,o,a),t){case"search":this.geocode(o);break;case"position":this.reverseGeocode(o);break;case"results":if(e.Utils.isNullOrEmpty(o))this.search="",this.position=null;else{const e=o[0];this.search=e.fullAddress,this.position=e.position}}}_broadcastFetchingUpdate(t){t!==this.#r&&(this.#r=t,this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"fetching",oldValue:!t,currentValue:t})))}_fetch(t){const{promise:s,search:o,position:a,key:r}=t,n=this.#i;!e.Utils.isNull(n)&&LatLng.equals(n.position,a)&&(n.search||"")===(o||"")||(this.#i={key:r,promise:s,position:a,search:o},this._broadcastFetchingUpdate(!0),s.then(e=>{r===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=setTimeout(()=>{e()},t||0)}reverseGeocode(t=this.position,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.reverseGeocode(t,s||1);this._fetch({promise:o,position:t,key:e.Utils.uniqueCode()})})}geocode(t=this.search,s=this.maxResults){this.disabled||this._debounce(()=>{const o=this._guards()??this.adapter.geocode(t,s||10);this._fetch({promise:o,search:t,position:LatLng.Empty,key:e.Utils.uniqueCode()})})}_successCallback(t){const s=!e.Utils.isNullOrEmpty(t);!s&&e.Utils.isNullOrEmpty(this.results)||t!==this.results&&(this.results=t,s&&this.dispatchEvent(new CustomEvent("success",{detail:t,bubbles:!1,cancelable:!1})))}_errorCallback(t){e.Utils.isNullOrEmpty(this.results)||(this.results=[]),this.dispatchEvent(new CustomEvent("error",{detail:t,bubbles:!1,cancelable:!1}))}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],i.prototype,"adapter",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],i.prototype,"maxResults",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],i.prototype,"debounce",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],i.prototype,"results",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.String})],i.prototype,"search",void 0),__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],i.prototype,"position",void 0),i=__decorate([e.CustomElement({tagName:r.GEOCODER_SELECTOR})],i),s.PacemMapGeocodeElement=i;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 a=this.#h;a.has(e)||a.set(e,this.buildOverlayAdapterFor(e));const r=this.#p;r.has(e)||r.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 a=this.#d;a.has(e)&&a.delete(e);const r=this.#l;r.has(e)&&(this.dispose(e),r.delete(e))}removeItem(e){const t=e.map;if(e instanceof p){const s=this.layerAdapters;if(s.has(t)){s.get(t).removeLayer(e)}}else if(e instanceof d){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 p){const s=this.layerAdapters;if(s.has(t)){s.get(t).drawLayer(e)}}else if(e instanceof d){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 d){const s=this.markerAdapters;s.has(t)&&s.get(t).openInfoWindow(e)}}popoutInfoWindow(e){const t=e.map;if(e instanceof d){const s=this.markerAdapters;s.has(t)&&s.get(t).closeInfoWindow(e)}}setView(t,s,o){if(!this.hasMap(t))return;let a={};a="number"==typeof s?e.Utils.extend({},{zoom:s}):LatLng.isLatLng(s)?e.Utils.extend({},{center:s,zoom:o}):s,this.setViewNative(t,a)}fitBounds(t,s){if(e.Utils.isNull(t))for(let e of this.enrolledMaps()||[])this._fitBounds(e,s);else this._fitBounds(t,s)}_fitBounds(t,s){if(!this.hasMap(t))return;if(!t.autofit&&!0===s)return;if(LatLngBounds.isLatLngBounds(s)&&!LatLngBounds.isEmpty(s))return void this.fitBoundsNative(t,s);const o=this.markerAdapters.get(t)?.getBounds(),a=this.shapeAdapters.get(t)?.getBounds(),r=e.Utils.isNull(o)||LatLngBounds.isEmpty(o),n=e.Utils.isNull(a)||LatLngBounds.isEmpty(a);if(r&&n)return void this.setView(t,{center:t.center,zoom:t.zoom});let i=LatLngBounds.Empty;r||(i=LatLngBounds.union(i,o)),n||(i=LatLngBounds.union(i,a)),LatLngBounds.isPoint(i)?this.setView(t,{zoom:t.zoom,center:i.ne}):this.fitBoundsNative(t,i)}updateMapElement(t,s,o){["type","tilt","heading"].forEach(e=>{e in s&&(t[e]=s[e])});const a="zoom"in s?s.zoom:o;e.Utils.isNullOrEmpty(a)||a===t.zoom||(t.zoom=a);const r=LatLng.isLatLng(s)?s:s.center;e.Utils.isNullOrEmpty(r)||r.lat==t.center?.lat&&r.lng==t.center?.lng||(t.center=r),t.updateBounds(this.getBounds(t))}}__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Boolean})],PacemMapAdapterElement.prototype,"active",void 0),__decorate([e.Debounce(1e3,(e,t)=>`pacem:debounce:${e}:${t.id}`)],PacemMapAdapterElement.prototype,"_fitBounds",null),s.PacemMapAdapterElement=PacemMapAdapterElement;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)}}s.MapItemAdapter=MapItemAdapter;s.PacemOverlayAdapter=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(t,s){const o=this.#h;let a;return o.has(t)?a=o.get(t):(a=this.buildOverlay(t,s),e.Utils.isNull(a)||o.set(t,a)),a}removeOverlay(e){const t=this,s=t.getMap(e),o=this.#h;if(o.has(e)){const a=o.get(e);t.deleteOverlay(a,s),o.delete(e)}}drawOverlay(t){const s=this,o=s.getMap(t);if(e.Utils.isNull(o))return;if(e.Utils.isNullOrEmpty(t)||t.hide)return void s.removeOverlay(t);const a=this.ensureOverlay(t,o);this.setBounds(a,o,t.bounds),this.updateOverlay(a,o,t)}};class PacemMapOverlayElement extends MapRelevantElement{}__decorate([e.Watch({emit:!1,converter:s.LatLngBoundsConverter})],PacemMapOverlayElement.prototype,"bounds",void 0),s.PacemMapOverlayElement=PacemMapOverlayElement;let l=class PacemMapOverlayImageElement extends PacemMapOverlayElement{};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],l.prototype,"src",void 0),l=__decorate([e.CustomElement({tagName:r.OVERLAY_IMAGE_SELECTOR})],l),s.PacemMapOverlayImageElement=l;s.PacemLayerAdapter=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 a;if(o.has(e))a=o.get(e);else if(a=this.buildLayer(e,t),null!=a){const r=t=>{s.onTileLoad(e,t)};this.#m.set(e,r),this.addLoadEventListener(a,t,r),o.set(e,a)}return a}removeLayer(e){const t=this,s=t.getMap(e),o=this.#c;if(o.has(e)){const a=o.get(e),r=this.#m;if(r.has(e)){const t=r.get(e);this.removeLoadEventListener(a,s,t),r.delete(e)}t.deleteLayer(a,s),o.delete(e)}}drawLayer(t){const s=this,o=s.getMap(t);e.Utils.isNull(o)||(e.Utils.isNullOrEmpty(t)||t.hide?s.removeLayer(t):this.ensureLayer(t,o))}};let p=class PacemMapLayerElement extends MapRelevantElement{};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],p.prototype,"url",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Json})],p.prototype,"include",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],p.prototype,"mode",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],p.prototype,"minZoom",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],p.prototype,"maxZoom",void 0),p=__decorate([e.CustomElement({tagName:r.LAYER_SELECTOR})],p),s.PacemMapLayerElement=p;s.PacemMarkerAdapter=class PacemMarkerAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}get mapAutomaticallyScrollsOnDrag(){return!1}#p=new Map;#u=new Map;getBounds(t=e=>!0){const s=this.markers;let o=LatLngBounds.Empty;for(var a of s.keys()){if(!t(a)||a.inactive)continue;let r=s.get(a);e.Utils.isNull(r)||(o=LatLngBounds.union(o,this.getMarkerPosition(r)))}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,a=this.#p;if(o.has(e)&&o.delete(e),a.has(e)){const o=a.get(e);t.deleteMarker(o,s),a.delete(e)}}drawMarker(t){const s=this,o=s.getMap(t);if(e.Utils.isNull(o))return;if(e.Utils.isNullOrEmpty(t&&t.position)||t.hide)return void s.removeMarker(t);const a=this.ensureMarker(t,o);this.setPosition(a,t.position),this.setIcon(a,t.icon),this.setLabel(a,t.caption),this.setDraggable(a,t.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,a=>{s.deleteInfoWindow(o,t),s.onInfoClose(e)}),s.infoWindows.set(e,o)),o}openInfoWindow(t,s){var o=this,a=o.markers.get(t),r=t.caption,n=o.getMap(t);if(MapUtils.isContentEmpty(t)||(r=t.innerHTML),!e.Utils.isNullOrEmpty(r)){const e=this.ensureInfoWindow(t,n);this.setContent(e,r),this.openInfo(e,r,n,a),o.onInfoOpen(t)}}};let d=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"))}};__decorate([e.Watch({converter:s.LatLngConverter})],d.prototype,"position",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Json})],d.prototype,"icon",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],d.prototype,"caption",void 0),__decorate([e.Watch({converter:e.PropertyConverters.Boolean})],d.prototype,"draggable",void 0),d=__decorate([e.CustomElement({tagName:r.MARKER_SELECTOR})],d),s.PacemMapMarkerElement=d;s.PacemShapeAdapter=class PacemShapeAdapter extends MapItemAdapter{constructor(e,t=e.adapter){super(e,t)}#d=new Map;get shapes(){return this.#d}getBounds(t=e=>!0){const s=this.shapes;let o=LatLngBounds.Empty;for(var a of s.keys()){if(!t(a)||a.inactive)continue;let r=s.get(a);e.Utils.isNull(r)||(o=LatLngBounds.union(o,this.getShapeBounds(r)))}return o}removeShape(e){const t=this,s=t.getMap(e),o=this.#d;if(o.has(e)){const a=o.get(e);t.deleteShape(a,s),o.delete(e)}}_dispatchEvent(e,t,s){const o=this.shapes.get(e),a=this.getShapePosition(s??o);e.dispatchEvent(new MapEvent(t,{position:a}))}#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),a=this.#g.get(e),r=o.ne,n={lat:r.lat-a.lat,lng:r.lng-a.lng};this._translateShape(e,n),this._dispatchEvent(e,"dragend",t)}_translateShape(e,t){if(e instanceof m)e.center=LatLng.translate(e.center,t);else{if(e instanceof c){const s=e.vertices.map(e=>LatLng.translate(e,t));return void(e.vertices=s)}if(e instanceof h){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(t){const s=this,o=s.getMap(t);if(e.Utils.isNull(o))return;if(e.Utils.isNullOrEmpty(t)||t.hide)return void s.removeShape(t);const a=this.ensureShape(t,o);this.setShape(a,t),this.setEditable(a,t.editable),this.setDraggable(a,t.draggable)}};class PacemMapShapeElement extends MapRelevantElement{}__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Boolean})],PacemMapShapeElement.prototype,"draggable",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Boolean})],PacemMapShapeElement.prototype,"editable",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],PacemMapShapeElement.prototype,"stroke",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],PacemMapShapeElement.prototype,"fill",void 0),s.PacemMapShapeElement=PacemMapShapeElement;let c=class PacemMapPolylineElement extends PacemMapShapeElement{};__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],c.prototype,"vertices",void 0),c=__decorate([e.CustomElement({tagName:r.POLYLINE_SELECTOR})],c),s.PacemMapPolylineElement=c;let h=class PacemMapPolygonElement extends PacemMapShapeElement{};__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],h.prototype,"vertices",void 0),h=__decorate([e.CustomElement({tagName:r.POLYGON_SELECTOR})],h),s.PacemMapPolygonElement=h;let m=class PacemMapCircleElement extends PacemMapShapeElement{};__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],m.prototype,"center",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Json})],m.prototype,"radius",void 0),m=__decorate([e.CustomElement({tagName:r.CIRCLE_SELECTOR})],m),s.PacemMapCircleElement=m;let u=class PacemMapElement extends t.PacemEventTarget{constructor(){super(...arguments),this.zoom=12,this.center=r.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=t=>{const s=t.target;"active"===t.detail.propertyName&&t.detail.currentValue&&(s.removeEventListener(e.PropertyChangeEventName,this._listenToActiveAdapter,!1),this._switchAdapter(s))},this._initialized=!1,this._afterInit=(t,s)=>{for(var o of(this._initialized=!0,e.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(t){if(!LatLngBounds.equals(t,this.#y)){const s=this.#y,o=this.#y=t;this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"bounds",oldValue:s,currentValue:o}))}}#y;get bounds(){return this.#y}get container(){return this._container}register(t){t.addEventListener(e.PropertyChangeEventName,this._drawHandler,!1),this._draw(t)}unregister(t){this._erase(t),t.removeEventListener(e.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(t,s){t.active?t.initialize(this).then(e=>this._afterInit(e,s)):(s&&this._afterInit(null,s),t.addEventListener(e.PropertyChangeEventName,this._listenToActiveAdapter,!1))}viewActivatedCallback(){super.viewActivatedCallback(),this._setupContainer(),this.adapter&&this._switchAdapter(this.adapter)}propertyChangedCallback(t,s,o,a){if(super.propertyChangedCallback(t,s,o,a),"bounds"!==t)if("adapter"===t)e.Utils.isNull(this._container)||(this._initialized=!1,o?this._switchAdapter(o,s):s&&this._afterInit(null,s));else{switch(t){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(t=this._container){"true"===t.dataset[n]?t.remove():e.Utils.removeClass(t,e.PCSS+"-map"),t===this._container&&(this._container=null)}_dismissResizer(){const e=this._resizer;e.removeEventListener("resize",this._resizeHandler,!1),e.remove(),this._resizer=null}_setupContainer(t=this.target){e.Utils.isNull(t)&&((t=document.createElement("div")).dataset[n]="true",this.insertAdjacentElement("afterend",t));const s=this._container=t;return e.Utils.addClass(s,e.PCSS+"-map"),s}_setupResizer(){const t=this._container;if(e.Utils.isNull(t))throw new Error("You must set up the map container before its resizing listener.");if(e.Utils.isNull(this._resizer)){const s=this._resizer=document.createElement(e.P+"-resize");s.addEventListener("resize",this._resizeHandler,!1),t.insertAdjacentElement("afterend",s)}return this._resizer.target=t,this._resizer}_detach(){e.Utils.isNull(this._container)||this._dismissContainer(),e.Utils.isNull(this._resizer)||this._dismissResizer()}disconnectedCallback(){this._detach(),super.disconnectedCallback()}onResize(e){this.adapter&&this.adapter.invalidateSize(this)}};__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.Number})],u.prototype,"zoom",void 0),__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],u.prototype,"center",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],u.prototype,"type",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],u.prototype,"theme",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"scale",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"mousewheel",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],u.prototype,"zoomControl",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"draggable",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"doubleClickZoom",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"keyboardShortcuts",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],u.prototype,"autofit",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingTop",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingLeft",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingRight",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"paddingBottom",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],u.prototype,"adapter",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],u.prototype,"target",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"tilt",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],u.prototype,"heading",void 0),u=__decorate([e.CustomElement({tagName:r.MAP_SELECTOR})],u),s.PacemMapElement=u}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){var s;const o="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js",a="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css";function r(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(t){if(e.Utils.isArray(t))return atlas.data.BoundingBox.fromPositions(t.map(e=>[e[1],e[0]]));const s=AtlasMapUtils.getPosition(t.ne),o=AtlasMapUtils.getPosition(t.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(t){return e.Utils.isNullOrEmpty(t.results)?[]:t.results.map(e=>({fullAddress:e.address.freeformAddress,address:r(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)),a=s.address;return{fullAddress:a.freeformAddress,address:r(a),position:{lat:o[0],lng:o[1],altitude:o.length>2?o[2]:null}}}}class PacemAzureOverlayAdapter extends t.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 t.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 t.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(t,s){const o=this._getPopup(t);e.Utils.isNull(o)||o.setOptions({position:s})}setPosition(e,t){const s=AtlasMapUtils.getPosition(t);e.setOptions({position:s}),this._setPopupPosition(e,s)}setIcon(t,s){let o={pixelOffset:[0,-36]},a={popup:new atlas.Popup},r=(e,t,s)=>`<img width="${t||"auto"}" height="${s||"auto"}" style="pointer-events: none" src="${e}" />`;if("string"==typeof s)a.htmlContent=r(s);else if(!e.Utils.isNull(s)){const e=s.size,t=s.anchor;a.htmlContent=r(s.url,e&&e.width,e&&e.height),t?(a.anchor="top-left",a.pixelOffset=[-t.x,-t.y],o.pixelOffset=[0,-t.y]):e&&e.height&&(o.pixelOffset=[0,-e.height/2])}a.popup.setOptions(o),t.setOptions(a)}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:a,position:r}=e.getOptions();this._setContent(a,t,r),o.togglePopup(),s.events.addOnce("close",a,e=>{a.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 t.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(t,s,o=10,a=""){const r={"subscription-key":t,query:s,limit:""+o,language:a};return{uri:e.Utils.URIs.appendQuery("https://atlas.microsoft.com/search/address/json?api-version=1.0",r),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((a,r)=>{const n=this._buildGeocodeRequest(e,t,s,o);return fetch(n.uri,n.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(a,r):r(e)},e=>r(e))})}reverseGeocode(e,t,s=""){return new Promise((o,a)=>{const r=this._buildReverseRequest(e,t,s);return fetch(r.uri,r.options).then(e=>{e.ok?this._parseReverseResponse(e).then(o,a):a(e)},e=>a(e))})}_buildReverseRequest(s,o,a=""){const r=t.MapUtils.parseCoords(o),n={"subscription-key":s,query:r[0]+","+r[1],language:a};return{uri:e.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=AtlasMapUtils.parseReverseGeocoding(e);t([s])},e=>s(e))})}}const n=["moveend","dragend","zoomend","rotateend"];let i=s=class PacemAzureMapAdapterElement extends t.PacemMapAdapterElement{geocode(t,s){return(new PacemAzureMapGeocoder).geocode(this.subscriptionKey,t,s,e.Utils.lang(this))}reverseGeocode(t,s){return(new PacemAzureMapGeocoder).reverseGeocode(this.subscriptionKey,t,e.Utils.lang(this))}getBounds(e){const t=this.getMap(e),{bounds:s}=t.getCamera();return AtlasMapUtils.getLatLngBounds(s)}isActive(){return!e.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(s,o){const a=this.getMap(s),r=function(e){const s=e.theme==t.MapColorScheme.DARK||e.theme!==t.MapColorScheme.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 t.MapType.HYBRID:return"satellite_road_labels";case t.MapType.SATELLITE:return"satellite";case t.MapType.TERRAIN:return"road_shaded_relief";case t.MapType.HIGH_CONTRAST:return s?"high_constrast_dark":"high_constrast_light";default:return s?"night":"road"}}(o=e.Utils.extend({type:s.type,theme:s.theme},o));a.setStyle({style:r});const n=o.center&&AtlasMapUtils.getPosition(o.center)||a.getCamera().center,i=o.zoom||a.getCamera().zoom;a.setCamera({center:n,zoom:i})}#v=new WeakMap;snapshot(t,s="image/png",o){if(!this.hasMap(t))return Promise.reject();const{map:a}=this.tryGetMap(t);return new Promise((r,n)=>{e.Utils.blobToDataURL(this.#_.get(t)).then(t=>{const n=a.getCanvasContainer();n.style.backgroundImage=`url(${t})`,n.style.backgroundSize="contain",e.Utils.snapshotElement(n,null,s,o).then(r)})})}#_=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(s){await Promise.all([e.CustomElementUtils.importjs(o),e.CustomElementUtils.importcss(a,void 0,!0)]);const r=s,i=r.scale,l=r.draggable,p=r.doubleClickZoom,d=r.keyboardShortcuts,c={center:AtlasMapUtils.getPosition(r.center),zoom:r.zoom,subscriptionKey:this.subscriptionKey,dragPanInteraction:l,scrollZoomInteraction:r.mousewheel,dblClickZoomInteraction:!p,keyboardInteraction:d,language:this.language||e.Utils.lang(s)},h=r.container,m=document.createElement("div");m.id=`azure-maps-${e.Utils.uniqueCode()}`,m.style.width="100%",m.style.height="100%",h.innerHTML="",h.appendChild(m);const u=new atlas.Map(m.id,c),g=[];return this.#v.set(r,g),n.forEach(e=>{const t=this._spinMapUpdateHandler(r,u);u.events.add(e,t),g.push({eventName:e,handler:t})}),i&&r.zoomControl&&u.events.addOnce("ready",e=>{let t=atlas.ControlPosition.NonFixed;switch(r.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}u.controls.add(new atlas.control.ZoomControl,{position:t})}),u.events.add("idle",e=>{u.getCanvas().toBlob(e=>{this.#_.set(s,e)})}),u.events.addOnce("ready",()=>{s.dispatchEvent(new t.MapEvent("maploaded"))}),{map:u,container:m}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);t&&t.resize()}propertyChangedCallback(t,s,o,a){if(super.propertyChangedCallback(t,s,o,a),!a&&"language"===t)for(let t of this.enrolledMaps()){const{map:s}=this.tryGetMap(t);s.setStyle({language:o||e.Utils.lang(t)})}}_spinMapUpdateHandler(e,t){return()=>{this._updateMap(e,t)}}_updateMap(t,s){if(!e.Utils.isNull(s)&&!e.Utils.isNull(t)){const e=s.getCamera(),o=e.center,a=e.zoom;1===e.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(t,AtlasMapUtils.getLatLng(o),a)}}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,o=s._getBounds(e)){this.getMap(e).setCamera({bounds:AtlasMapUtils.getBounds(t),padding:o})}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"subscriptionKey",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"language",void 0),__decorate([e.Debounce(500)],i.prototype,"_updateMap",null),i=s=__decorate([e.CustomElement({tagName:e.P+"-map-adapter-azure"})],i),t.PacemAzureMapAdapterElement=i}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(s){const o="geolocation_unavailable",a="position_unavailable",r="permission_denied",n="timeout",i="unknown_error";let l=class PacemMapGeolocateElement extends t.PacemEventTarget{constructor(){super(...arguments),this.permission="prompt",this.maximumAge=15e3,this.timeout=3e4,this.#r=!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(t=>{const s=navigator.permissions;e.Utils.isNull(s)?t("prompt"):s.query({name:"geolocation"}).then(e=>{t(this.permission=e.state)})})}#r;get fetching(){return this.#r}_setFetching(t){t!==this.fetching&&(this.#r=t,this.dispatchEvent(new e.PropertyChangeEvent({propertyName:"fetching",currentValue:t,oldValue:!t})))}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(o))}viewActivatedCallback(){super.viewActivatedCallback(),this._checkPermission()}_errToString(e){switch(e.code){case GeolocationPositionError.PERMISSION_DENIED:return r;case GeolocationPositionError.POSITION_UNAVAILABLE:return a;case GeolocationPositionError.TIMEOUT:return n;default:return i}}};__decorate([e.Watch({emit:!0,converter:s.LatLngConverter})],l.prototype,"position",void 0),__decorate([e.Watch({emit:!0,converter:e.PropertyConverters.String})],l.prototype,"permission",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],l.prototype,"maximumAge",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],l.prototype,"timeout",void 0),l=__decorate([e.CustomElement({tagName:e.P+"-map-geolocate"})],l),s.PacemMapGeolocateElement=l}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const s={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;#f;_equivalent(t,s,o,a){const r=this.#f;return!e.Utils.isNull(r)&&r.key===t&&r.language===(s||r.language)&&r.region===(o||r.region)&&r.version===(a||r.version)}_spinFuture(e,t,s,o){return new Promise((a,r)=>{this._equivalent(e,t,s,o)||Bootstrapper._ensureBootstrapScript(e,t,s,o),this.#f={language:t,region:s,version:o,key:e},google.maps.importLibrary("maps").then(e=>{a(),this.#i=null},e=>{r(e),this.#i=null})})}boostrap(t,o,a,r="weekly"){return e.Utils.isNullOrEmpty(t)?Promise.reject(s.INVALID_KEY):(!e.Utils.isNull(this.#i)&&this._equivalent(t,o,a,r)||(this.#i=this._spinFuture(t,o,a,r)),this.#i)}static _ensureBootstrapScript(t,o,a,r){const n="pacem-googlemaps",i=`v=${r},l=${o},r=${a}`;let l=document.querySelector(`script[${n}]`);if(!e.Utils.isNull(l)){if(l.getAttribute(n)===i)return;l.remove(),document.querySelectorAll("script[src^='https://maps.googleapis.com/maps']").forEach(e=>e.remove()),delete window.google}e.Utils.isNullOrEmpty(t)||(l=document.createElement("script"),l.setAttribute(n,i),l.textContent=s.BOOTSTRAP_SNIPPET(t,o,a,r),document.head.appendChild(l))}}const o=new Bootstrapper;class GMapsUtils{static getPosition(e){return Array.isArray(e)&&(e={lat:e[0],lng:e[1]}),e}static getBounds(t){return e.Utils.isNullOrEmpty(t)?null:{north:t.ne.lat,east:t.ne.lng,south:t.sw.lat,west:t.sw.lng}}static mapGeocodeResults(e,t=[]){const s=[];e??=[];for(let o=0;o<e.length;o++){const a=t.length>o?t[o]:null,r=GMapsUtils.mapGeocodeResult(e[o],a);s.push(r)}return s}static mapGeocodeResult(e,t){const s=e?.address_components||[],o=s.find(e=>e.types.indexOf("street_number")>=0)?.long_name,a=s.find(e=>e.types.indexOf("route")>=0)?.long_name,r=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||r,provinceCode:i?.short_name,province:i?.long_name,countryCode:p?.short_name,country:p?.long_name,zipCode:d,streetName:a,state:l,village:r,type:e.geometry.location_type};return{fullAddress:e.formatted_address,position:GMapsUtils.toLiteral(e.geometry.location,t?.elevation),address:c}}static toLiteral(t,s){if(e.Utils.isNull(t))return null;if("lat"in t&&"function"==typeof t.lat&&"lng"in t&&"function"==typeof t.lng)return{lat:t.lat(),lng:t.lng(),altitude:s};if("getNorthEast"in t&&"function"==typeof t.getNorthEast&&"getSouthWest"in t&&"function"==typeof t.getSouthWest){const e=t.getNorthEast(),s=t.getSouthWest();return{ne:GMapsUtils.toLiteral(e),sw:GMapsUtils.toLiteral(s)}}return"north"in t&&"number"==typeof t.north&&"south"in t&&"number"==typeof t.south&&"west"in t&&"number"==typeof t.west&&"east"in t&&"number"==typeof t.east?{ne:{lat:t.north,lng:t.east},sw:{lat:t.south,lng:t.west}}:e.Utils.extend({altitude:s},t)}static areEqual(t,s){if(e.Utils.isNull(t)||e.Utils.isNull(s))return!1;const o=GMapsUtils.toLiteral(t),a=GMapsUtils.toLiteral(s);return o.lat===a.lat&&o.lng===a.lng}static fitBounds(e,t,s){e?.fitBounds(t,s)}static setCenter(t,s){e.Utils.isNull(t)||GMapsUtils.areEqual(t.getCenter(),s)||t.panTo(s)}}class PacemGoogleShapeAdapter extends t.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,s){const o=!0;return e instanceof t.PacemMapPolylineElement?new google.maps.Polyline({path:e.vertices,clickable:o,map:s}):e instanceof t.PacemMapPolygonElement?new google.maps.Polygon({paths:[e.vertices],clickable:o,map:s}):e instanceof t.PacemMapCircleElement?new google.maps.Circle({center:e.center,radius:e.radius,clickable:o,map:s}):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,s){if(s instanceof t.PacemMapPolylineElement){e.setOptions({strokeColor:s.stroke?.color,strokeOpacity:s.stroke?.alpha??1,strokeWeight:s.stroke?.thickness,path:s.vertices})}if(s instanceof t.PacemMapPolygonElement){e.setOptions({strokeColor:s.stroke?.color,strokeOpacity:s.stroke?.alpha??1,strokeWeight:s.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:s.fill?.color,fillOpacity:s.fill?.alpha,paths:[s.vertices]})}if(s instanceof t.PacemMapCircleElement){e.setOptions({strokeColor:s.stroke?.color,strokeOpacity:s.stroke?.alpha??1,strokeWeight:s.stroke?.thickness,strokePosition:google.maps.StrokePosition.CENTER,fillColor:s.fill?.color,fillOpacity:s.fill?.alpha,center:s.center,radius:s.radius})}}setEditable(e,t){e.setOptions({editable:t})}setDraggable(e,t){e.setOptions({draggable:t})}}class PacemGoogleMarkerAdapter extends t.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(t,s){if("string"==typeof s)t.setIcon(s);else if(!e.Utils.isNull(s)){let o={url:s.url};e.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)),e.Utils.isNullOrEmpty(s.anchor)||(o.anchor=new google.maps.Point(s.anchor.x,s.anchor.y)),t.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(t){let s=0;return"string"==typeof t.icon||e.Utils.isNull(t.icon)||(s=(t.icon.size?.width??0)/2-(t.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 t.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,o){const a=s.TILE_EXTENT;var r=2*a[1]/Math.pow(2,o),n=a[0]+e*r,i=a[0]+(e+1)*r;return[n,a[1]-(t+1)*r,i,a[1]-t*r]}_getWmsTileUrl(t,s){return(o,a)=>e.Utils.URIs.appendQuery(t,{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,a).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:(a=t,"abc"[Math.abs(a.x+a.y)%3]),x:""+t.x,y:""+t.y,z:""+s};var a;let r=e;for(let e in o)r=r.replaceAll("{"+e+"}",o[e]);return r}}_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 t.PacemOverlayAdapter{updateOverlay(e,t,s){e.set,e.draw()}deleteOverlay(e,t){e.setMap(null)}buildOverlay(s,o){let a=function(s){class PacemGoogleOverlay extends google.maps.OverlayView{constructor(e){super(),this._item=e}get element(){return this._item}get bounds(){const t=this._item.bounds;return e.Utils.isNull(t)?null:GMapsUtils.getBounds(t)}getBoundingBox(){const t=this.getProjection(),s=this.bounds;if(e.Utils.isNullOrEmpty(s))return null;const o=t.fromLatLngToDivPixel({lat:s.south,lng:s.west}),a=t.fromLatLngToDivPixel({lat:s.north,lng:s.east});return{x:o.x,y:a.y,width:a.x-o.x,height:o.y-a.y}}}class PacemGoogleImageOverlay extends PacemGoogleOverlay{get src(){return this.element.src}#L;onAdd(){const e=this.#L=this.#L||document.createElement("div");e.style.position="absolute",this.getPanes().overlayLayer.appendChild(e)}onRemove(){const t=this.#L;e.Utils.isNull(t)||(t.remove(),this.#L=null)}draw(){const t=this.#L;if(e.Utils.isNull(t))return;const s=this.getBoundingBox();e.Utils.isNull(s)||(t.style.top=s.y+"px",t.style.left=s.x+"px",t.style.width=s.width+"px",t.style.height=s.height+"px",t.style.backgroundSize=`${s.width}px ${s.height}px`,t.style.backgroundImage=`url(${this.src})`)}}return s instanceof t.PacemMapOverlayImageElement?new PacemGoogleImageOverlay(s):null}(s);return a.setMap(o),a}setBounds(e,t,s){e.draw()}}const a=["dragend","zoom_changed","center_changed","maptypeid_changed","tilt_changed","heading_changed","bounds_changed"];e.Maps.LatLng;class LatLngBounds extends e.Maps.LatLngBounds{}function r(e){const s=e.theme==t.MapColorScheme.DARK?google.maps.ColorScheme.DARK:e.theme!=t.MapColorScheme.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:s};case t.MapType.HYBRID:return{type:google.maps.MapTypeId.HYBRID,theme:s};case t.MapType.SATELLITE:return{type:google.maps.MapTypeId.SATELLITE,theme:s};case t.MapType.TERRAIN:return{type:google.maps.MapTypeId.TERRAIN,theme:s};default:return{type:google.maps.MapTypeId.ROADMAP,theme:s}}}let n=class PacemGoogleMapAdapterElement extends t.PacemMapAdapterElement{geocode(e,t){const s=this.language||"",o=this.region||"",a=this.version||"weekly";return new PacemGoogleMapGeocoder(this.apiKey,s,o,a).geocode(e,t)}reverseGeocode(e,t){const s=this.language||"",o=this.region||"",a=this.version||"weekly";return new PacemGoogleMapGeocoder(this.apiKey,s,o,a).reverseGeocode(e,t)}getBounds(e){if(!this.hasMap(e))return LatLngBounds.Empty;const t=this.getMap(e).getBounds();return GMapsUtils.toLiteral(t)}isActive(){return!e.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(t,s="image/png",o){const{container:a}=this.tryGetMap(t);return e.Utils.snapshotElement(a,null,s,o)}setViewNative(t,o){const a=this.getMap(t);o=e.Utils.extend({type:t.type,theme:t.theme},o);const{type:n,theme:i}=r(o);if(this.#E&&i!==a.get("colorScheme"))return void this._bootstrapDebounced();a.setOptions({colorScheme:i,mapTypeId:n}),"number"==typeof o.tilt&&a.setTilt(o.tilt),"number"==typeof o.heading&&a.setHeading(o.heading);const l=()=>{o.center&&GMapsUtils.setCenter(a,o.center)};if("number"==typeof o.zoom&&o.zoom!==a.getZoom()){switch(a.getMapTypeId()){case google.maps.MapTypeId.SATELLITE:case google.maps.MapTypeId.HYBRID:const e=GMapsUtils.toLiteral(a.getCenter());this.getMaxAvailableZoom(e).then(e=>{const t=Math.min(e,o.zoom);a.setZoom(t),l()});break;default:const t=Math.min(s.MAX_ROADMAP_ZOOM,o.zoom);a.setZoom(t),l()}}else l()}propertyChangedCallback(e,t,s,o){if(super.propertyChangedCallback(e,t,s,o),!o)switch(e){case"libraries":case"apiKey":case"language":case"region":this.#E&&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(t){const s=t.scale,o=t.draggable,a=t.doubleClickZoom,n=t.keyboardShortcuts,{type:i,theme:l}=r({type:t.type,theme:t.theme});return e.Utils.extend({},this.defaultOptions||{streetViewControl:!1,zoomControl:!1,mapTypeControl:!1,fullscreenControl:!1,cameraControl:!1},{zoomControl:s&&!e.Utils.isNullOrEmpty(t.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}}(t.zoomControl)},scrollwheel:t.mousewheel,disableDoubleClickZoom:a,keyboardShortcuts:n,draggable:o,mapTypeId:i,colorScheme:l,tilt:t.tilt,heading:t.heading})}#E=!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,a=this.language||"",r=this.region||"",n=this.version||"weekly";o.boostrap(s,a,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.#E=!0},t)},t)})}async init(e){await this._bootstrap();const s=e,o=t.MapUtils.parseCoords(s.center),r=new google.maps.LatLng(o[0],o[1]),n=this._buildMapOptions(s),i=s.container,l=document.createElement("div");l.style.width="100%",l.style.height="100%",i.innerHTML="",i.appendChild(l);const p=new google.maps.Map(l,n),d=[];this.#v.set(s,d),a.forEach(e=>{d.push(p.addListener(e,this._spinMapUpdateHandler(s,p)))}),p.setZoom(s.zoom),p.setCenter(r);var c=p.addListener("idle",function(s){c.remove(),e.dispatchEvent(new t.MapEvent("maploaded"))});const h=t.MapUtils.parseCoords(s.center),m=new google.maps.LatLng(h[0],h[1]);return p.setZoom(s.zoom),p.setCenter(m),{map:p,container:l}}invalidateSize(e){if(!this.hasMap(e))return;const{map:t}=this.tryGetMap(e);google.maps.event.trigger(t,"resize")}_spinMapUpdateHandler(t,s){return()=>{if(!e.Utils.isNull(s)&&!e.Utils.isNull(t)){const o=s.getCenter();if(e.Utils.isNull(o))return;this.updateMapElement(t,{center:{lat:o.lat(),lng:o.lng()},zoom:s.getZoom(),type:s.getMapTypeId(),tilt:s.getTilt(),heading:s.getHeading()})}}}fitBoundsNative(t,s,o=this._getPadding(t)){const a=this.tryGetMap(t)?.map;if(e.Utils.isNull(a))return;const r=GMapsUtils.getBounds(s);GMapsUtils.fitBounds(a,r,o)}_getPadding(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,a=e.paddingBottom||0;return s||t||o||a?{top:t,bottom:a,left:s,right:o}:null}_padBounds(e){const t=e.paddingTop||0,s=e.paddingLeft||0,o=e.paddingRight||0,a=e.paddingBottom||0;if(s||t||o||a){const r=this.tryGetMap(e).map,n=r.getBounds(),i=r.getDiv().clientWidth,l=r.getDiv().clientHeight,p=r.getProjection().fromPointToLatLng(new google.maps.Point(-s,-t)),d=r.getProjection().fromPointToLatLng(new google.maps.Point(i+o,l+a));n.extend(p),n.extend(d)}}_redrawMap(){}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"apiKey",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"version",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"language",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],n.prototype,"region",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Json})],n.prototype,"defaultOptions",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.StringArray})],n.prototype,"libraries",void 0),__decorate([e.Debounce(s.DETACH_TIMEOUT)],n.prototype,"_bootstrapDebounced",null),n=__decorate([e.CustomElement({tagName:e.P+"-map-adapter-google"})],n),t.PacemGoogleMapAdapterElement=n;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,a)=>{o.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(o=>{(new google.maps.Geocoder).geocode({address:e},(e,o)=>{if(o===google.maps.GeocoderStatus.OK||o==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(e||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(s)}else a(o)})},a)})}_reverseGeocodeInternal(e,t){const s=GMapsUtils.getPosition(e);return new Promise((e,a)=>{o.boostrap(this.apiKey,this.language||"",this.region||"",this.version||"weekly").then(o=>{(new google.maps.Geocoder).geocode({location:s},(s,o)=>{if(o===google.maps.GeocoderStatus.OK||o==google.maps.GeocoderStatus.ZERO_RESULTS){const o=(s||[]).filter((e,s)=>s<(t||10));this._elevateResults(o).then(e)}else a(o)})},a)})}reverseGeocode(e,t=1){return this._reverseGeocodeInternal(e,t)}}}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(t){const s="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js",o="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==",a="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css",r="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==";function n(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(t){return e.Utils.isNullOrEmpty(t)?[]:t.map(n)}static parseReverseGeocoding(t){return e.Utils.isNullOrEmpty(t)?[]:[n(t)]}}t.LayerLoadEventName="layerload";class LayerLoadEvent extends e.CustomTypedEvent{constructor(e){super(t.LayerLoadEventName,e,{bubbles:!0})}}class PacemLeafletMarkerAdapter extends t.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(t,s){const o=this;if("string"==typeof s)o._setIcon(t,s);else if(!e.Utils.isNull(s)){let a={iconUrl:s.url};e.Utils.isNullOrEmpty(s.size)||e.Utils.extend(a,{iconSize:[s.size.width,s.size.height],iconAnchor:[s.size.width/2,s.size.height],popupAnchor:[0,-s.size.height]}),e.Utils.isNullOrEmpty(s.anchor)||e.Utils.extend(a,{iconAnchor:[s.anchor.x,s.anchor.y]}),o._setIcon(t,new L.Icon(a))}}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,a,r={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(r,{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(r,{iconAnchor:l,popupAnchor:[0,-l[1]]})}if((a=this.popupAnchor)&&/[\d]+,[\d]+/.test(a)){n=-1,l=[parseInt(o.substring(0,n=o.indexOf(","))),parseInt(o.substring(n+1))];Object.assign(r,{popupAnchor:l})}e.setIcon(L.icon(r))}else t&&e.setIcon(t)}}class PacemLeafletShapeAdapter extends t.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 t.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 t.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 i=class PacemLeafletMapAdapterElement extends t.PacemMapAdapterElement{constructor(){super(...arguments),this.#M=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=t=>{const s=this.getMap(t);e.Utils.isNull(s)||e.Utils.isNull(t)||this.updateMapElement(t,s.getCenter(),s.getZoom())}}buildOverlayAdapterFor(e){return new PacemLeafletOverlayAdapter(e,this)}geocode(t,s){return(new PacemNominatimMapGeocoder).geocode(t,s,e.Utils.lang(this))}reverseGeocode(t,s){return(new PacemNominatimMapGeocoder).reverseGeocode(t,e.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)}#M;snapshot(t,s="image/png",o){return e.Utils.snapshotElement(t.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.#M.get(e);s&&s.off("load",this._tileLayerLoadHandler),t.clearAllEventListeners(),this.#M.delete(e)}async init(n){await Promise.all([e.CustomElementUtils.importjs(s,o,!0),e.CustomElementUtils.importcss(a,r,!0)]);const i=n;var l=i.scale,p=i.draggable,d=i.doubleClickZoom,c=i.keyboardShortcuts,h=L.latLng(t.MapUtils.parseCoords(i.center)),m={zoomControl:l&&!e.Utils.isNullOrEmpty(i.zoomControl),scrollWheelZoom:i.mousewheel,dragging:p,doubleClickZoom:!d,keyboard:c};const u=i.container,g=document.createElement("div");g.style.width="100%",g.style.height="100%",u.innerHTML="",u.appendChild(g);const y=L.map(g,m);["zoomend","moveend"].forEach(e=>{y.on(e,e=>{this._idleFiller(i),this._mapUpdateHandler(i)})}),y.on("load",()=>{l&&i.zoomControl&&y.zoomControl.setPosition(i.zoomControl),this._idleFiller(i)});const v=L.tileLayer(this.tiles,{attribution:this.attribution}).addTo(y);v.on("load",this._tileLayerLoadHandler),this.#M.set(i,v),y.setView(h,i.zoom),y.once("idle",function(){y.fire("resize"),n.dispatchEvent(new t.MapEvent("maploaded"))});const _=t.MapUtils.parseCoords(i.center),f=[_[0],_[1]];return y.setView(f,i.zoom),{map:y,container:g}}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),a={paddingTopLeft:new L.Point(s.left,s.top),paddingBottomRight:new L.Point(s.right,s.bottom)},r=t.ne,n=t.sw;try{o.fitBounds([[r.lat,r.lng],[n.lat,n.lng]],a)}catch(e){throw e}}_redrawMap(t){var s=this,o=s.#M.get(t);e.Utils.isNull(s.tiles&&o)||o.setUrl(s.tiles)}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"tiles",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],i.prototype,"attribution",void 0),__decorate([e.Debounce(500)],i.prototype,"_idleFiller",null),i=__decorate([e.CustomElement({tagName:e.P+"-map-adapter-leaflet"})],i),t.PacemLeafletMapAdapterElement=i;class PacemNominatimMapGeocoder{_buildGeocodeRequest(t,s=10,o=""){const a={q:t,limit:""+s,"accept-language":o};return{uri:e.Utils.URIs.appendQuery("https://nominatim.openstreetmap.org/search?addressdetails=1&format=json",a),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,a)=>{const r=this._buildGeocodeRequest(e,t,s);return fetch(r.uri,r.options).then(e=>{e.ok?this.parseGeocodeResponse(e).then(o,a):a(e)},e=>a(e))})}reverseGeocode(e,t=""){return new Promise((s,o)=>{const a=this._buildReverseRequest(e,t);return fetch(a.uri,a.options).then(e=>{e.ok?this._parseReverseResponse(e).then(s,o):o(e)},e=>o(e))})}_buildReverseRequest(s,o=""){const a=t.MapUtils.parseCoords(s),r={lat:""+a[0],lon:""+a[1],"accept-language":o};return{uri:e.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))})}}}(t.Maps||(t.Maps={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
|
package/dist/js/pacem-media.d.ts
CHANGED
package/dist/js/pacem-media.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.53.0
|
|
2
|
+
* pacem v0.53.0 (https://js.pacem.it)
|
|
3
3
|
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
"use strict";
|
|
6
7
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
7
8
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8
9
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.53.0
|
|
2
|
+
* pacem v0.53.0 (https://js.pacem.it)
|
|
3
3
|
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
var Pacem,__decorate=this&&this.__decorate||function(e,t,r,a){var o,s=arguments.length,i=s<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,r):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,a);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i};!function(e){!function(t){!function(r){let a=class PacemAudioElement extends t.PacemEventTarget{constructor(){super(...arguments),this._endedHandler=e=>{this.dispatchEvent(new Event("end"))},this._canPlayHandler=e=>{this.#e=!0,this._autoplay()},this._canPlayThroughHandler=e=>{this.#t=!0,this._autoplay()}}#r;#e;#t;connectedCallback(){super.connectedCallback();const e=this.#r=new Audio;e.addEventListener("canplay",this._canPlayHandler,!1),e.addEventListener("ended",this._endedHandler,!1),e.addEventListener("canplaythrough",this._canPlayThroughHandler,!1)}propertyChangedCallback(e,t,r,a){if(super.propertyChangedCallback(e,t,r,a),!a&&"src"===e)this._init()}viewActivatedCallback(){super.viewActivatedCallback(),this._init()}disconnectedCallback(){const e=this.#r;e.removeEventListener("ended",this._endedHandler,!1),e.removeEventListener("canplaythrough",this._canPlayThroughHandler,!1),e.removeEventListener("canplay",this._canPlayHandler,!1),super.disconnectedCallback()}play(){return this.disabled?Promise.reject("disabled"):this.#r.play().then(e=>{this.dispatchEvent(new Event("start"))},e=>{this.dispatchEvent(new CustomEvent("error",{detail:e}))})}pause(){this.#r.pause()}reset(){this.#r.load()}get _canPlay(){return this.stream&&this.#e||this.#t}_autoplay(){this.autoplay&&this._canPlay&&this.play()}_init(e=this.src){const t=this.#r;this.#e=this.#t=!1,t.src=e}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],a.prototype,"src",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],a.prototype,"stream",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],a.prototype,"autoplay",void 0),a=__decorate([e.CustomElement({tagName:e.P+"-audio"})],a),r.PacemAudioElement=a}(t.Media||(t.Media={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){const a="video/mp4",o=["start","stop","dataavailable","pause","resume","error","warning"];let s=class PacemMediaRecorderElement extends t.PacemEventTarget{constructor(){super(...arguments),this._recorderLifecycleHandler=e=>{switch(this.state=this.#a.state,e.type){case"start":this.output=null;break;case"stop":this.flush();break;case"dataavailable":var t=e;this.#o.push(t.data)}},this.#a=null,this.#o=[]}viewActivatedCallback(){super.viewActivatedCallback(),this._setupMediaRecorder()}propertyChangedCallback(e,t,r,a){if(super.propertyChangedCallback(e,t,r,a),!a)switch(e){case"source":case"fps":case"mimeType":case"audioBitsPerSecond":case"videoBitsPerSecond":this._setupMediaRecorder()}}disconnectedCallback(){this._closeMediaRecorder(),super.disconnectedCallback()}#a;#o;_setupMediaRecorder(t=this.source,r={mimeType:this.mimeType||a,audioBitsPerSecond:this.audioBitsPerSecond??128e3,videoBitsPerSecond:this.videoBitsPerSecond??25e5}){if(this._closeMediaRecorder(),!e.Utils.isNull(t)){if((s=t)instanceof HTMLCanvasElement||"captureStream"in s&&"function"==typeof s.captureStream){const e=this.fps||25;t=t.captureStream(e)}try{this.#a=new MediaRecorder(t,r)}catch(e){console.error(e)}const e=this.#a;o.forEach(t=>{e.addEventListener(t,this._recorderLifecycleHandler,!1)})}var s}_closeMediaRecorder(){const t=this.#a;e.Utils.isNull(t)||("inactive"!==t.state&&t.stop(),o.forEach(e=>{t.removeEventListener(e,this._recorderLifecycleHandler,!1)}),this.#a=null)}flush(){const e=new Blob(this.#o,{type:this.mimeType||a});this.#o=[],this.output=e}start(){const t=this.#a;e.Utils.isNull(t)||"inactive"!==t.state||t.start()}stop(){const t=this.#a;e.Utils.isNull(t)||"inactive"===t.state||t.stop()}resume(){const t=this.#a;e.Utils.isNull(t)||"paused"!==t.state||t.start()}pause(){const t=this.#a;e.Utils.isNull(t)||"paused"===t.state||t.pause()}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],s.prototype,"source",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],s.prototype,"fps",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],s.prototype,"mimeType",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],s.prototype,"audioBitsPerSecond",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],s.prototype,"videoBitsPerSecond",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],s.prototype,"state",void 0),__decorate([e.Watch()],s.prototype,"output",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-media-recorder"})],s),r.PacemMediaRecorderElement=s}(t.Media||(t.Media={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
|
|
6
|
+
"use strict";var Pacem,__decorate=this&&this.__decorate||function(e,t,r,a){var o,s=arguments.length,i=s<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,r):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,a);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i};!function(e){!function(t){!function(r){let a=class PacemAudioElement extends t.PacemEventTarget{constructor(){super(...arguments),this._endedHandler=e=>{this.dispatchEvent(new Event("end"))},this._canPlayHandler=e=>{this.#e=!0,this._autoplay()},this._canPlayThroughHandler=e=>{this.#t=!0,this._autoplay()}}#r;#e;#t;connectedCallback(){super.connectedCallback();const e=this.#r=new Audio;e.addEventListener("canplay",this._canPlayHandler,!1),e.addEventListener("ended",this._endedHandler,!1),e.addEventListener("canplaythrough",this._canPlayThroughHandler,!1)}propertyChangedCallback(e,t,r,a){if(super.propertyChangedCallback(e,t,r,a),!a&&"src"===e)this._init()}viewActivatedCallback(){super.viewActivatedCallback(),this._init()}disconnectedCallback(){const e=this.#r;e.removeEventListener("ended",this._endedHandler,!1),e.removeEventListener("canplaythrough",this._canPlayThroughHandler,!1),e.removeEventListener("canplay",this._canPlayHandler,!1),super.disconnectedCallback()}play(){return this.disabled?Promise.reject("disabled"):this.#r.play().then(e=>{this.dispatchEvent(new Event("start"))},e=>{this.dispatchEvent(new CustomEvent("error",{detail:e}))})}pause(){this.#r.pause()}reset(){this.#r.load()}get _canPlay(){return this.stream&&this.#e||this.#t}_autoplay(){this.autoplay&&this._canPlay&&this.play()}_init(e=this.src){const t=this.#r;this.#e=this.#t=!1,t.src=e}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],a.prototype,"src",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],a.prototype,"stream",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Boolean})],a.prototype,"autoplay",void 0),a=__decorate([e.CustomElement({tagName:e.P+"-audio"})],a),r.PacemAudioElement=a}(t.Media||(t.Media={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={})),function(e){!function(t){!function(r){const a="video/mp4",o=["start","stop","dataavailable","pause","resume","error","warning"];let s=class PacemMediaRecorderElement extends t.PacemEventTarget{constructor(){super(...arguments),this._recorderLifecycleHandler=e=>{switch(this.state=this.#a.state,e.type){case"start":this.output=null;break;case"stop":this.flush();break;case"dataavailable":var t=e;this.#o.push(t.data)}},this.#a=null,this.#o=[]}viewActivatedCallback(){super.viewActivatedCallback(),this._setupMediaRecorder()}propertyChangedCallback(e,t,r,a){if(super.propertyChangedCallback(e,t,r,a),!a)switch(e){case"source":case"fps":case"mimeType":case"audioBitsPerSecond":case"videoBitsPerSecond":this._setupMediaRecorder()}}disconnectedCallback(){this._closeMediaRecorder(),super.disconnectedCallback()}#a;#o;_setupMediaRecorder(t=this.source,r={mimeType:this.mimeType||a,audioBitsPerSecond:this.audioBitsPerSecond??128e3,videoBitsPerSecond:this.videoBitsPerSecond??25e5}){if(this._closeMediaRecorder(),!e.Utils.isNull(t)){if((s=t)instanceof HTMLCanvasElement||"captureStream"in s&&"function"==typeof s.captureStream){const e=this.fps||25;t=t.captureStream(e)}try{this.#a=new MediaRecorder(t,r)}catch(e){console.error(e)}const e=this.#a;o.forEach(t=>{e.addEventListener(t,this._recorderLifecycleHandler,!1)})}var s}_closeMediaRecorder(){const t=this.#a;e.Utils.isNull(t)||("inactive"!==t.state&&t.stop(),o.forEach(e=>{t.removeEventListener(e,this._recorderLifecycleHandler,!1)}),this.#a=null)}flush(){const e=new Blob(this.#o,{type:this.mimeType||a});this.#o=[],this.output=e}start(){const t=this.#a;e.Utils.isNull(t)||"inactive"!==t.state||t.start()}stop(){const t=this.#a;e.Utils.isNull(t)||"inactive"===t.state||t.stop()}resume(){const t=this.#a;e.Utils.isNull(t)||"paused"!==t.state||t.start()}pause(){const t=this.#a;e.Utils.isNull(t)||"paused"===t.state||t.pause()}};__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Element})],s.prototype,"source",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],s.prototype,"fps",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.String})],s.prototype,"mimeType",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],s.prototype,"audioBitsPerSecond",void 0),__decorate([e.Watch({emit:!1,converter:e.PropertyConverters.Number})],s.prototype,"videoBitsPerSecond",void 0),__decorate([e.Watch({converter:e.PropertyConverters.String})],s.prototype,"state",void 0),__decorate([e.Watch()],s.prototype,"output",void 0),s=__decorate([e.CustomElement({tagName:e.P+"-media-recorder"})],s),r.PacemMediaRecorderElement=s}(t.Media||(t.Media={}))}(e.Components||(e.Components={}))}(Pacem||(Pacem={}));
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.53.0
|
|
2
|
+
* pacem v0.53.0 (https://js.pacem.it)
|
|
3
3
|
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
"use strict";
|
|
6
7
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
7
8
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8
9
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pacem v0.53.0
|
|
2
|
+
* pacem v0.53.0 (https://js.pacem.it)
|
|
3
3
|
* Copyright 2026 Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
var Pacem,__decorate=this&&this.__decorate||function(t,e,s,n){var r,i=arguments.length,o=i<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,s):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,n);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(o=(i<3?r(o):i>3?r(e,s,o):r(e,s))||o);return i>3&&o&&Object.defineProperty(e,s,o),o};!function(t){!function(e){!function(s){const n="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/9.0.6/signalr.min.js";let r=class PacemHubListenerElement extends e.PacemItemElement{constructor(){super(...arguments),this._receiveHandler=(...t)=>{this.dispatchEvent(new CustomEvent("receive",{detail:Array.from(t)}))},this._completeHandler=()=>{this.dispatchEvent(new Event("complete"))},this._errorHandler=t=>{this.dispatchEvent(new CustomEvent("error",{detail:t}))},this._connectedHandler=t=>{"connected"===t.detail.propertyName&&!0===t.detail.currentValue&&this._start()}}#t;get _isConnected(){return this.container instanceof i&&this.container.connected||!1}get _connection(){return this.container instanceof i&&this.container.connection||null}start(){this.disabled||this._start()}stop(){this._stop()}_stop(e=this.method,s=this.stream){if(!this._isConnected)return;const n=this._connection;t.Utils.isNullOrEmpty(e)||(s?this.#t?.dispose():n.off(e,this._receiveHandler))}_start(e=this.method,s=this.stream){if(!this._isConnected)return;const n=this._connection;if(!t.Utils.isNullOrEmpty(e))if(s){const t=this.arguments||[],s=signalR.HubConnection.prototype.stream.apply(n,[e].concat(t));this.#t=s.subscribe({next:this._receiveHandler,complete:this._completeHandler,error:this._errorHandler})}else n.on(e,this._receiveHandler)}viewActivatedCallback(){super.viewActivatedCallback();const e=this.container;t.Utils.isNull(e)||e.addEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),this.start()}disconnectedCallback(){const e=this.container;t.Utils.isNull(e)||e.removeEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),super.disconnectedCallback()}propertyChangedCallback(e,s,n,r){switch(super.propertyChangedCallback(e,s,n,r),e){case"arguments":this._stop(),this._start();break;case"method":t.Utils.isNullOrEmpty(s)||this._stop(s,this.stream),t.Utils.isNullOrEmpty(n)||this._start(n,this.stream);break;case"stream":const e=this.method;t.Utils.isNullOrEmpty(e)||(this._stop(e,s),this._start(e,n));break;case"disabled":if(!t.Utils.isNullOrEmpty(this.method)){(n?this._stop:this._start)()}}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],r.prototype,"method",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],r.prototype,"stream",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],r.prototype,"arguments",void 0),r=__decorate([t.CustomElement({tagName:t.P+"-hub-listener"})],r),s.PacemHubListenerElement=r;let i=class PacemHubProxyElement extends e.PacemItemsContainerElement{validate(t){return t instanceof r}get connection(){return this._hub}invoke(t,...e){if(this.connected)return this._hub.invoke.apply(this._hub,arguments);throw"Hub is not connected. Cannot call `invoke` method."}send(t,...e){if(this.connected)return this._hub.send(t,...e);throw"Hub is not connected. Cannot call `send` method."}start(){return this._resetProxy()}async stop(){this.connected&&await this._hub.stop()}propertyChangedCallback(t,e,s,n){super.propertyChangedCallback(t,e,s,n),n||"url"!==t&&"disabled"!==t&&"accesstoken"!==t||this._resetProxy()}viewActivatedCallback(){super.viewActivatedCallback(),this.start()}disconnectedCallback(){this.stop(),super.disconnectedCallback()}async _resetProxy(){t.Utils.isNull(this._hub)||await this._hub.stop(),this._setupProxy()}async _initialize(){"signalR"in window||await t.CustomElementUtils.importjs(n)}async _setupProxy(){const e=this.items||[];if(!this.disabled&&!t.Utils.isNullOrEmpty(this.url)){await this._initialize();const t=new signalR.HubConnectionBuilder;t.withUrl(this.url,{accessTokenFactory:()=>this.accesstoken});const s=this._hub=t.build();s.onclose(()=>{for(var t of e)t.stop();this.connected=!1,this._hub=null}),await s.start(),this.connected=!0}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"url",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"accesstoken",void 0),__decorate([t.Watch({converter:t.PropertyConverters.Boolean})],i.prototype,"connected",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-hub-proxy"})],i),s.PacemHubProxyElement=i}(e.Networking||(e.Networking={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(s){let n=class PacemServerSentEventsListenerElement extends e.PacemItemElement{constructor(){super(...arguments),this._receiveHandler=t=>{this.dispatchEvent(new CustomEvent("receive",{detail:t.data}))},this._connectedHandler=t=>{"connected"===t.detail.propertyName&&!0===t.detail.currentValue&&this._start()}}get _isConnected(){return this.container instanceof r&&this.container.connected||!1}get _connection(){return this.container instanceof r&&this.container.eventSource||null}_stop(e=this.method){if(!this._isConnected)return;const s=this._connection;t.Utils.isNullOrEmpty(e)||s.removeEventListener(e,this._receiveHandler)}_start(e=this.method){if(!this._isConnected)return;const s=this._connection;t.Utils.isNullOrEmpty(e)||s.addEventListener(e,this._receiveHandler)}start(){this.disabled||this._start()}stop(){this._stop()}viewActivatedCallback(){super.viewActivatedCallback();const e=this.container;t.Utils.isNull(e)||e.addEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),this.start()}disconnectedCallback(){const e=this.container;t.Utils.isNull(e)||e.removeEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),super.disconnectedCallback()}propertyChangedCallback(e,s,n,r){switch(super.propertyChangedCallback(e,s,n,r),e){case"method":t.Utils.isNullOrEmpty(s)||this._stop(s),t.Utils.isNullOrEmpty(n)||this._start(n);break;case"disabled":if(!t.Utils.isNullOrEmpty(this.method)){(n?this._stop:this._start)()}}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],n.prototype,"method",void 0),n=__decorate([t.CustomElement({tagName:t.P+"-sse-listener"})],n),s.PacemServerSentEventsListenerElement=n;let r=class PacemServerSentEventsProxyElement extends e.PacemItemsContainerElement{constructor(){super(...arguments),this._connectHandler=t=>{this.connected=!0,this.#e.onmessage=this._receiveHandler},this._errorHandler=t=>{this.connected=!1},this._receiveHandler=t=>{this.dispatchEvent(new CustomEvent("receive",{detail:t.data}))}}validate(t){return t instanceof n}viewActivatedCallback(){super.viewActivatedCallback(),this._start()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}propertyChangedCallback(t,e,s,n){super.propertyChangedCallback(t,e,s,n),n||"url"!==t&&"disabled"!==t||this._restart()}#e;_restart(){this._stop(),this._start()}_start(e=this.url){if(!t.Utils.isNullOrEmpty(e)&&!this.disabled){const t=this.#e=new EventSource(e);t.onopen=this._connectHandler,t.onerror=this._errorHandler}}get eventSource(){return this.#e}_stop(){const e=this.items||[];for(var s of e)s.stop();const n=this.#e;t.Utils.isNull(n)||(n.onopen=null,n.onerror=null,n.onmessage=null,n.close()),this.connected=!1,this.#e=null}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],r.prototype,"url",void 0),__decorate([t.Watch({converter:t.PropertyConverters.Boolean})],r.prototype,"connected",void 0),__decorate([t.Debounce(!0)],r.prototype,"_restart",null),r=__decorate([t.CustomElement({tagName:t.P+"-sse-proxy"})],r),s.PacemServerSentEventsProxyElement=r}(e.Networking||(e.Networking={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={}));
|
|
6
|
+
"use strict";var Pacem,__decorate=this&&this.__decorate||function(t,e,s,n){var r,i=arguments.length,o=i<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,s):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,n);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(o=(i<3?r(o):i>3?r(e,s,o):r(e,s))||o);return i>3&&o&&Object.defineProperty(e,s,o),o};!function(t){!function(e){!function(s){const n="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/9.0.6/signalr.min.js";let r=class PacemHubListenerElement extends e.PacemItemElement{constructor(){super(...arguments),this._receiveHandler=(...t)=>{this.dispatchEvent(new CustomEvent("receive",{detail:Array.from(t)}))},this._completeHandler=()=>{this.dispatchEvent(new Event("complete"))},this._errorHandler=t=>{this.dispatchEvent(new CustomEvent("error",{detail:t}))},this._connectedHandler=t=>{"connected"===t.detail.propertyName&&!0===t.detail.currentValue&&this._start()}}#t;get _isConnected(){return this.container instanceof i&&this.container.connected||!1}get _connection(){return this.container instanceof i&&this.container.connection||null}start(){this.disabled||this._start()}stop(){this._stop()}_stop(e=this.method,s=this.stream){if(!this._isConnected)return;const n=this._connection;t.Utils.isNullOrEmpty(e)||(s?this.#t?.dispose():n.off(e,this._receiveHandler))}_start(e=this.method,s=this.stream){if(!this._isConnected)return;const n=this._connection;if(!t.Utils.isNullOrEmpty(e))if(s){const t=this.arguments||[],s=signalR.HubConnection.prototype.stream.apply(n,[e].concat(t));this.#t=s.subscribe({next:this._receiveHandler,complete:this._completeHandler,error:this._errorHandler})}else n.on(e,this._receiveHandler)}viewActivatedCallback(){super.viewActivatedCallback();const e=this.container;t.Utils.isNull(e)||e.addEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),this.start()}disconnectedCallback(){const e=this.container;t.Utils.isNull(e)||e.removeEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),super.disconnectedCallback()}propertyChangedCallback(e,s,n,r){switch(super.propertyChangedCallback(e,s,n,r),e){case"arguments":this._stop(),this._start();break;case"method":t.Utils.isNullOrEmpty(s)||this._stop(s,this.stream),t.Utils.isNullOrEmpty(n)||this._start(n,this.stream);break;case"stream":const e=this.method;t.Utils.isNullOrEmpty(e)||(this._stop(e,s),this._start(e,n));break;case"disabled":if(!t.Utils.isNullOrEmpty(this.method)){(n?this._stop:this._start)()}}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],r.prototype,"method",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Boolean})],r.prototype,"stream",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.Json})],r.prototype,"arguments",void 0),r=__decorate([t.CustomElement({tagName:t.P+"-hub-listener"})],r),s.PacemHubListenerElement=r;let i=class PacemHubProxyElement extends e.PacemItemsContainerElement{validate(t){return t instanceof r}get connection(){return this._hub}invoke(t,...e){if(this.connected)return this._hub.invoke.apply(this._hub,arguments);throw"Hub is not connected. Cannot call `invoke` method."}send(t,...e){if(this.connected)return this._hub.send(t,...e);throw"Hub is not connected. Cannot call `send` method."}start(){return this._resetProxy()}async stop(){this.connected&&await this._hub.stop()}propertyChangedCallback(t,e,s,n){super.propertyChangedCallback(t,e,s,n),n||"url"!==t&&"disabled"!==t&&"accesstoken"!==t||this._resetProxy()}viewActivatedCallback(){super.viewActivatedCallback(),this.start()}disconnectedCallback(){this.stop(),super.disconnectedCallback()}async _resetProxy(){t.Utils.isNull(this._hub)||await this._hub.stop(),this._setupProxy()}async _initialize(){"signalR"in window||await t.CustomElementUtils.importjs(n)}async _setupProxy(){const e=this.items||[];if(!this.disabled&&!t.Utils.isNullOrEmpty(this.url)){await this._initialize();const t=new signalR.HubConnectionBuilder;t.withUrl(this.url,{accessTokenFactory:()=>this.accesstoken});const s=this._hub=t.build();s.onclose(()=>{for(var t of e)t.stop();this.connected=!1,this._hub=null}),await s.start(),this.connected=!0}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"url",void 0),__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],i.prototype,"accesstoken",void 0),__decorate([t.Watch({converter:t.PropertyConverters.Boolean})],i.prototype,"connected",void 0),i=__decorate([t.CustomElement({tagName:t.P+"-hub-proxy"})],i),s.PacemHubProxyElement=i}(e.Networking||(e.Networking={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={})),function(t){!function(e){!function(s){let n=class PacemServerSentEventsListenerElement extends e.PacemItemElement{constructor(){super(...arguments),this._receiveHandler=t=>{this.dispatchEvent(new CustomEvent("receive",{detail:t.data}))},this._connectedHandler=t=>{"connected"===t.detail.propertyName&&!0===t.detail.currentValue&&this._start()}}get _isConnected(){return this.container instanceof r&&this.container.connected||!1}get _connection(){return this.container instanceof r&&this.container.eventSource||null}_stop(e=this.method){if(!this._isConnected)return;const s=this._connection;t.Utils.isNullOrEmpty(e)||s.removeEventListener(e,this._receiveHandler)}_start(e=this.method){if(!this._isConnected)return;const s=this._connection;t.Utils.isNullOrEmpty(e)||s.addEventListener(e,this._receiveHandler)}start(){this.disabled||this._start()}stop(){this._stop()}viewActivatedCallback(){super.viewActivatedCallback();const e=this.container;t.Utils.isNull(e)||e.addEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),this.start()}disconnectedCallback(){const e=this.container;t.Utils.isNull(e)||e.removeEventListener(t.PropertyChangeEventName,this._connectedHandler,!1),super.disconnectedCallback()}propertyChangedCallback(e,s,n,r){switch(super.propertyChangedCallback(e,s,n,r),e){case"method":t.Utils.isNullOrEmpty(s)||this._stop(s),t.Utils.isNullOrEmpty(n)||this._start(n);break;case"disabled":if(!t.Utils.isNullOrEmpty(this.method)){(n?this._stop:this._start)()}}}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],n.prototype,"method",void 0),n=__decorate([t.CustomElement({tagName:t.P+"-sse-listener"})],n),s.PacemServerSentEventsListenerElement=n;let r=class PacemServerSentEventsProxyElement extends e.PacemItemsContainerElement{constructor(){super(...arguments),this._connectHandler=t=>{this.connected=!0,this.#e.onmessage=this._receiveHandler},this._errorHandler=t=>{this.connected=!1},this._receiveHandler=t=>{this.dispatchEvent(new CustomEvent("receive",{detail:t.data}))}}validate(t){return t instanceof n}viewActivatedCallback(){super.viewActivatedCallback(),this._start()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}propertyChangedCallback(t,e,s,n){super.propertyChangedCallback(t,e,s,n),n||"url"!==t&&"disabled"!==t||this._restart()}#e;_restart(){this._stop(),this._start()}_start(e=this.url){if(!t.Utils.isNullOrEmpty(e)&&!this.disabled){const t=this.#e=new EventSource(e);t.onopen=this._connectHandler,t.onerror=this._errorHandler}}get eventSource(){return this.#e}_stop(){const e=this.items||[];for(var s of e)s.stop();const n=this.#e;t.Utils.isNull(n)||(n.onopen=null,n.onerror=null,n.onmessage=null,n.close()),this.connected=!1,this.#e=null}};__decorate([t.Watch({emit:!1,converter:t.PropertyConverters.String})],r.prototype,"url",void 0),__decorate([t.Watch({converter:t.PropertyConverters.Boolean})],r.prototype,"connected",void 0),__decorate([t.Debounce(!0)],r.prototype,"_restart",null),r=__decorate([t.CustomElement({tagName:t.P+"-sse-proxy"})],r),s.PacemServerSentEventsProxyElement=r}(e.Networking||(e.Networking={}))}(t.Components||(t.Components={}))}(Pacem||(Pacem={}));
|