@mapvx/web-kit 1.2.0-develop.12 → 1.2.0-develop.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/chunks/{DRACOLoader-B7myelzS.cjs → DRACOLoader-gEI4jG0V.cjs} +2 -2
  2. package/dist/cjs/chunks/{GLTFLoader-Bhlg-PN9.cjs → GLTFLoader-Cd9ix-wY.cjs} +2 -2
  3. package/dist/cjs/chunks/{KTX2Loader-8oVInPCY.cjs → KTX2Loader-Dk2GlCFI.cjs} +2 -2
  4. package/dist/cjs/chunks/{accessibility-DQMGPqEF.cjs → accessibility-C9U1mv_p.cjs} +2 -2
  5. package/dist/cjs/chunks/{back_arrow-BT38PaNs.cjs → back_arrow-tpfWrGJ9.cjs} +2 -2
  6. package/dist/cjs/chunks/{debug-hooks-DDHLlDXD.cjs → debug-hooks-xLx1YP8n.cjs} +2 -2
  7. package/dist/cjs/chunks/{dist-BsZPOLf6.cjs → dist-1oZjernx.cjs} +2 -2
  8. package/dist/cjs/chunks/{dist-CdHuaZdF.cjs → dist-CYGLkXos.cjs} +2 -2
  9. package/dist/cjs/chunks/{dist-Dqt88Zla.cjs → dist-ENDZf7Zh.cjs} +2 -2
  10. package/dist/cjs/chunks/{expression-DOSBosTT.cjs → expression-q70ZQCYv.cjs} +2 -2
  11. package/dist/cjs/chunks/{globe-viewport-CTph-zTi.cjs → globe-viewport-CIe_h8dV.cjs} +2 -2
  12. package/dist/cjs/chunks/{icon-origin-point-BQq_v8fl.cjs → icon-origin-point-D_DBb1gM.cjs} +2 -2
  13. package/dist/cjs/chunks/{meshopt_decoder.module-Xc0iTpWr.cjs → meshopt_decoder.module-B5j8Tze_.cjs} +2 -2
  14. package/dist/cjs/chunks/{repeat_icon-DgZwJHQn.cjs → repeat_icon-F6Q7hnPl.cjs} +2 -2
  15. package/dist/cjs/chunks/{rolldown-runtime-DCHM1mdG.cjs → rolldown-runtime-BOxlEPsq.cjs} +2 -2
  16. package/dist/cjs/chunks/{shader-type-decoder-ClUxS2uC.cjs → shader-type-decoder-B16cQ7H3.cjs} +2 -2
  17. package/dist/cjs/chunks/{styles-ap7q_oUC.cjs → styles-zP5lXn9p.cjs} +2 -2
  18. package/dist/cjs/chunks/{three.module-CZrl_ZUv.cjs → three.module-BHURJnCD.cjs} +2 -2
  19. package/dist/cjs/chunks/{walking-zHHQi5LZ.cjs → walking-CMpmZTw3.cjs} +2 -2
  20. package/dist/cjs/chunks/{webgl-CmboLkDs.cjs → webgl-CJbVWdD9.cjs} +2 -2
  21. package/dist/cjs/chunks/{webgl-device-BXkaCOiH.cjs → webgl-device-D7wKHxQy.cjs} +2 -2
  22. package/dist/cjs/web-kit.cjs +5 -5
  23. package/dist/es/chunks/{DRACOLoader-CNpxxqVh.js → DRACOLoader-r8VXQ8hj.js} +2 -2
  24. package/dist/es/chunks/{GLTFLoader-CbnWtZLU.js → GLTFLoader-IbJ3eCNr.js} +2 -2
  25. package/dist/es/chunks/{KTX2Loader-DA7PMnUh.js → KTX2Loader-DZlQyAGv.js} +2 -2
  26. package/dist/es/chunks/{accessibility-D1G0e3jm.js → accessibility-BldDqm74.js} +2 -2
  27. package/dist/es/chunks/{back_arrow-DOtCNdHS.js → back_arrow-BeeCYF4P.js} +2 -2
  28. package/dist/es/chunks/{debug-hooks-Cd_b4Bki.js → debug-hooks-NzJ2oy3C.js} +2 -2
  29. package/dist/es/chunks/{dist-DXAjwVD1.js → dist-B3-nPsaF.js} +2 -2
  30. package/dist/es/chunks/{dist-CrKfguaO.js → dist-DNNWa2bQ.js} +2 -2
  31. package/dist/es/chunks/{dist-DXRF-lm8.js → dist-DOcsJa1u.js} +2 -2
  32. package/dist/es/chunks/{expression-6f6kc1i6.js → expression-Dpos4VqC.js} +2 -2
  33. package/dist/es/chunks/{globe-viewport-Brth2aT0.js → globe-viewport-BmqhgdhG.js} +2 -2
  34. package/dist/es/chunks/{icon-origin-point-DWIRQVPT.js → icon-origin-point-CkHTMtFu.js} +2 -2
  35. package/dist/es/chunks/{meshopt_decoder.module-Ch7mmZHA.js → meshopt_decoder.module-YGVnWwV0.js} +2 -2
  36. package/dist/es/chunks/{repeat_icon-D5mfHUaL.js → repeat_icon-B_t3ecTa.js} +2 -2
  37. package/dist/es/chunks/{rolldown-runtime-BptZgroH.js → rolldown-runtime-BSTMnvUK.js} +2 -2
  38. package/dist/es/chunks/{shader-type-decoder-CQKC8yW9.js → shader-type-decoder-CFX5sij5.js} +2 -2
  39. package/dist/es/chunks/{styles-Be_VFWZ4.js → styles-DTTMB3rI.js} +2 -2
  40. package/dist/es/chunks/{three.module-CrfgWCl8.js → three.module-Cj5xe6gn.js} +2 -2
  41. package/dist/es/chunks/{walking-BRSMxmlG.js → walking--SMEsH_B.js} +2 -2
  42. package/dist/es/chunks/{webgl-ClUuONJn.js → webgl-ZcaUll7k.js} +2 -2
  43. package/dist/es/chunks/{webgl-device-6J3R62SY.js → webgl-device-KnEQ5CNv.js} +2 -2
  44. package/dist/es/web-kit.mjs +5 -5
  45. package/dist/iife/web-kit.iife.js +3 -3
  46. package/dist/sw/mvx-tiles-sw.js +97 -49
  47. package/dist/types/index.d.ts +36 -36
  48. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- /*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
2
- !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"1.2.0-develop.12"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cd1c4ab9-e823-4b48-9d97-4e6f7e7fee2e",e._sentryDebugIdIdentifier="sentry-dbid-cd1c4ab9-e823-4b48-9d97-4e6f7e7fee2e")}catch(e){}}();var WebKit=function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var t=Object.create,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,s=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,a=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}},l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),c=(e,t)=>{let i={};for(var r in e)n(i,r,{get:e[r],enumerable:!0});return t||n(i,Symbol.toStringTag,{value:"Module"}),i},u=(e,a,l)=>(l=null!=e?t(s(e)):{},((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var l,c=r(t),u=0,h=c.length;u<h;u++)l=c[u],o.call(e,l)||l===s||n(e,l,{get:(e=>t[e]).bind(null,l),enumerable:!(a=i(t,l))||a.enumerable});return e})(!a&&e&&e.__esModule&&o.call(e,"default")?l:n(l,"default",{value:e,enumerable:!0}),e)),h=globalThis,d=h.ShadowRoot&&(void 0===h.ShadyCSS||h.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,p=Symbol(),f=new WeakMap,g=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==p)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(d&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=f.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&f.set(t,e))}return e}toString(){return this.cssText}},m=e=>new g("string"==typeof e?e:e+"",void 0,p),A=(e,...t)=>{const n=1===e.length?e[0]:t.reduce((t,n,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[i+1],e[0]);return new g(n,e,p)},y=d?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return m(t)})(e):e,{is:v,defineProperty:b,getOwnPropertyDescriptor:x,getOwnPropertyNames:_,getOwnPropertySymbols:w,getPrototypeOf:E}=Object,S=globalThis,C=S.trustedTypes,I=C?C.emptyScript:"",M=S.reactiveElementPolyfillSupport,T=(e,t)=>e,P={toAttribute(e,t){switch(t){case Boolean:e=e?I:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},R=(e,t)=>!v(e,t),D={attribute:!0,type:String,converter:P,reflect:!1,useDefault:!1,hasChanged:R};Symbol.metadata??=Symbol("metadata"),S.litPropertyMetadata??=new WeakMap;var L=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=D){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),i=this.getPropertyDescriptor(e,n,t);void 0!==i&&b(this.prototype,e,i)}}static getPropertyDescriptor(e,t,n){const{get:i,set:r}=x(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:i,set(t){const s=i?.call(this);r?.call(this,t),this.requestUpdate(e,s,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??D}static _$Ei(){if(this.hasOwnProperty(T("elementProperties")))return;const e=E(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(T("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(T("properties"))){const e=this.properties,t=[..._(e),...w(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[t,n]of this.elementProperties){const e=this._$Eu(t,n);void 0!==e&&this._$Eh.set(e,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(y(e))}else void 0!==e&&t.push(y(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(d)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const n of t){const t=document.createElement("style"),i=h.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=n.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$ET(e,t){const n=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==n.converter?.toAttribute?n.converter:P).toAttribute(t,n.type);this._$Em=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$Em=null}}_$AK(e,t){const n=this.constructor,i=n._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=n.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:P;this._$Em=i;const s=r.fromAttribute(t,e.type);this[i]=s??this._$Ej?.get(i)??s,this._$Em=null}}requestUpdate(e,t,n,i=!1,r){if(void 0!==e){const s=this.constructor;if(!1===i&&(r=this[e]),n??=s.getPropertyOptions(e),!((n.hasChanged??R)(r,t)||n.useDefault&&n.reflect&&r===this._$Ej?.get(e)&&!this.hasAttribute(s._$Eu(e,n))))return;this.C(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:n,reflect:i,wrapped:r},s){n&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,s??t??this[e]),!0!==r||void 0!==s)||(this._$AL.has(e)||(this.hasUpdated||n||(t=void 0),this._$AL.set(e,t)),!0===i&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e){const{wrapped:e}=n,i=this[t];!0!==e||this._$AL.has(t)||void 0===i||this.C(t,void 0,n,i)}}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}};L.elementStyles=[],L.shadowRootOptions={mode:"open"},L[T("elementProperties")]=new Map,L[T("finalized")]=new Map,M?.({ReactiveElement:L}),(S.reactiveElementVersions??=[]).push("2.1.2");var B=globalThis,k=e=>e,F=B.trustedTypes,O=F?F.createPolicy("lit-html",{createHTML:e=>e}):void 0,z="$lit$",N=`lit$${Math.random().toFixed(9).slice(2)}$`,U="?"+N,G=`<${U}>`,j=document,V=()=>j.createComment(""),q=e=>null===e||"object"!=typeof e&&"function"!=typeof e,H=Array.isArray,Q=e=>H(e)||"function"==typeof e?.[Symbol.iterator],W="[ \t\n\f\r]",K=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Z=/-->/g,Y=/>/g,X=RegExp(`>|${W}(?:([^\\s"'>=/]+)(${W}*=${W}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),J=/'/g,$=/"/g,ee=/^(?:script|style|textarea|title)$/i,te=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),ne=te(1),ie=(te(2),te(3),Symbol.for("lit-noChange")),re=Symbol.for("lit-nothing"),se=new WeakMap,oe=j.createTreeWalker(j,129);function ae(e,t){if(!H(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==O?O.createHTML(t):t}var le=(e,t)=>{const n=e.length-1,i=[];let r,s=2===t?"<svg>":3===t?"<math>":"",o=K;for(let a=0;a<n;a++){const t=e[a];let n,l,c=-1,u=0;for(;u<t.length&&(o.lastIndex=u,l=o.exec(t),null!==l);)u=o.lastIndex,o===K?"!--"===l[1]?o=Z:void 0!==l[1]?o=Y:void 0!==l[2]?(ee.test(l[2])&&(r=RegExp("</"+l[2],"g")),o=X):void 0!==l[3]&&(o=X):o===X?">"===l[0]?(o=r??K,c=-1):void 0===l[1]?c=-2:(c=o.lastIndex-l[2].length,n=l[1],o=void 0===l[3]?X:'"'===l[3]?$:J):o===$||o===J?o=X:o===Z||o===Y?o=K:(o=X,r=void 0);const h=o===X&&e[a+1].startsWith("/>")?" ":"";s+=o===K?t+G:c>=0?(i.push(n),t.slice(0,c)+z+t.slice(c)+N+h):t+N+(-2===c?a:h)}return[ae(e,s+(e[n]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),i]},ce=class e{constructor({strings:t,_$litType$:n},i){let r;this.parts=[];let s=0,o=0;const a=t.length-1,l=this.parts,[c,u]=le(t,n);if(this.el=e.createElement(c,i),oe.currentNode=this.el.content,2===n||3===n){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(r=oe.nextNode())&&l.length<a;){if(1===r.nodeType){if(r.hasAttributes())for(const e of r.getAttributeNames())if(e.endsWith(z)){const t=u[o++],n=r.getAttribute(e).split(N),i=/([.?@])?(.*)/.exec(t);l.push({type:1,index:s,name:i[2],strings:n,ctor:"."===i[1]?fe:"?"===i[1]?ge:"@"===i[1]?me:pe}),r.removeAttribute(e)}else e.startsWith(N)&&(l.push({type:6,index:s}),r.removeAttribute(e));if(ee.test(r.tagName)){const e=r.textContent.split(N),t=e.length-1;if(t>0){r.textContent=F?F.emptyScript:"";for(let n=0;n<t;n++)r.append(e[n],V()),oe.nextNode(),l.push({type:2,index:++s});r.append(e[t],V())}}}else if(8===r.nodeType)if(r.data===U)l.push({type:2,index:s});else{let e=-1;for(;-1!==(e=r.data.indexOf(N,e+1));)l.push({type:7,index:s}),e+=N.length-1}s++}}static createElement(e,t){const n=j.createElement("template");return n.innerHTML=e,n}};function ue(e,t,n=e,i){if(t===ie)return t;let r=void 0!==i?n._$Co?.[i]:n._$Cl;const s=q(t)?void 0:t._$litDirective$;return r?.constructor!==s&&(r?._$AO?.(!1),void 0===s?r=void 0:(r=new s(e),r._$AT(e,n,i)),void 0!==i?(n._$Co??=[])[i]=r:n._$Cl=r),void 0!==r&&(t=ue(e,r._$AS(e,t.values),r,i)),t}var he=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:n}=this._$AD,i=(e?.creationScope??j).importNode(t,!0);oe.currentNode=i;let r=oe.nextNode(),s=0,o=0,a=n[0];for(;void 0!==a;){if(s===a.index){let t;2===a.type?t=new de(r,r.nextSibling,this,e):1===a.type?t=new a.ctor(r,a.name,a.strings,this,e):6===a.type&&(t=new Ae(r,this,e)),this._$AV.push(t),a=n[++o]}s!==a?.index&&(r=oe.nextNode(),s++)}return oe.currentNode=j,i}p(e){let t=0;for(const n of this._$AV)void 0!==n&&(void 0!==n.strings?(n._$AI(e,n,t),t+=n.strings.length-2):n._$AI(e[t])),t++}},de=class e{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,n,i){this.type=2,this._$AH=re,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=n,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=ue(this,e,t),q(e)?e===re||null==e||""===e?(this._$AH!==re&&this._$AR(),this._$AH=re):e!==this._$AH&&e!==ie&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):Q(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==re&&q(this._$AH)?this._$AA.nextSibling.data=e:this.T(j.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,i="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=ce.createElement(ae(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===i)this._$AH.p(t);else{const e=new he(i,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=se.get(e.strings);return void 0===t&&se.set(e.strings,t=new ce(e)),t}k(t){H(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let i,r=0;for(const s of t)r===n.length?n.push(i=new e(this.O(V()),this.O(V()),this,this.options)):i=n[r],i._$AI(s),r++;r<n.length&&(this._$AR(i&&i._$AB.nextSibling,r),n.length=r)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){const t=k(e).nextSibling;k(e).remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}},pe=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,n,i,r){this.type=1,this._$AH=re,this._$AN=void 0,this.element=e,this.name=t,this._$AM=i,this.options=r,n.length>2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=re}_$AI(e,t=this,n,i){const r=this.strings;let s=!1;if(void 0===r)e=ue(this,e,t,0),s=!q(e)||e!==this._$AH&&e!==ie,s&&(this._$AH=e);else{const i=e;let o,a;for(e=r[0],o=0;o<r.length-1;o++)a=ue(this,i[n+o],t,o),a===ie&&(a=this._$AH[o]),s||=!q(a)||a!==this._$AH[o],a===re?e=re:e!==re&&(e+=(a??"")+r[o+1]),this._$AH[o]=a}s&&!i&&this.j(e)}j(e){e===re?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},fe=class extends pe{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===re?void 0:e}},ge=class extends pe{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==re)}},me=class extends pe{constructor(e,t,n,i,r){super(e,t,n,i,r),this.type=5}_$AI(e,t=this){if((e=ue(this,e,t,0)??re)===ie)return;const n=this._$AH,i=e===re&&n!==re||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,r=e!==re&&(n===re||i);i&&this.element.removeEventListener(this.name,this,n),r&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Ae=class{constructor(e,t,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){ue(this,e)}},ye={M:z,P:N,A:U,C:1,L:le,R:he,D:Q,V:ue,I:de,H:pe,N:ge,U:me,B:fe,F:Ae},ve=B.litHtmlPolyfillSupport;ve?.(ce,de),(B.litHtmlVersions??=[]).push("3.3.3");var be=(e,t,n)=>{const i=n?.renderBefore??t;let r=i._$litPart$;if(void 0===r){const e=n?.renderBefore??null;i._$litPart$=r=new de(t.insertBefore(V(),e),e,void 0,n??{})}return r._$AI(e),r},xe=globalThis,_e=class extends L{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=be(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return ie}};_e._$litElement$=!0,_e.finalized=!0,xe.litElementHydrateSupport?.({LitElement:_e});var we=xe.litElementPolyfillSupport;we?.({LitElement:_e}),(xe.litElementVersions??=[]).push("4.2.2");var Ee=e=>(t,n)=>{void 0!==n?n.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)},Se={attribute:!0,type:String,converter:P,reflect:!1,hasChanged:R},Ce=(e=Se,t,n)=>{const{kind:i,metadata:r}=n;let s=globalThis.litPropertyMetadata.get(r);if(void 0===s&&globalThis.litPropertyMetadata.set(r,s=new Map),"setter"===i&&((e=Object.create(e)).wrapped=!0),s.set(n.name,e),"accessor"===i){const{name:i}=n;return{set(n){const r=t.get.call(this);t.set.call(this,n),this.requestUpdate(i,r,e,!0,n)},init(t){return void 0!==t&&this.C(i,void 0,e,t),t}}}if("setter"===i){const{name:i}=n;return function(n){const r=this[i];t.call(this,n),this.requestUpdate(i,r,e,!0,n)}}throw Error("Unsupported decorator location: "+i)};function Ie(e){return(t,n)=>"object"==typeof n?Ce(e,t,n):((e,t,n)=>{const i=t.hasOwnProperty(n);return t.constructor.createProperty(n,e),i?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n)}function Me(e){return Ie({...e,state:!0,attribute:!1})}var Te=e=>e??re,Pe=class extends Event{constructor(e,t,n,i){super("context-request",{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t,this.callback=n,this.subscribe=i??!1}};var Re=class{constructor(e,t,n,i){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(e,t)=>{this.unsubscribe&&(this.unsubscribe!==t&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=e,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(e,t)),this.unsubscribe=t},this.host=e,void 0!==t.context){const e=t;this.context=e.context,this.callback=e.callback,this.subscribe=e.subscribe??!1}else this.context=t,this.callback=n,this.subscribe=i??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new Pe(this.context,this.host,this.t,this.subscribe))}},De=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){const n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(const[e,{disposer:t}]of this.subscriptions)e(this.o,t)},void 0!==e&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});const{disposer:i}=this.subscriptions.get(e);e(this.value,i)}clearCallbacks(){this.subscriptions.clear()}},Le=class extends Event{constructor(e,t){super("context-provider",{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},Be=class extends De{constructor(e,t,n){super(void 0!==t.context?t.initialValue:n),this.onContextRequest=e=>{if(e.context!==this.context)return;const t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=e=>{if(e.context!==this.context)return;if((e.contextTarget??e.composedPath()[0])===this.host)return;const t=new Set;for(const[n,{consumerHost:i}]of this.subscriptions)t.has(n)||(t.add(n),i.dispatchEvent(new Pe(this.context,i,n,!0)));e.stopPropagation()},this.host=e,void 0!==t.context?this.context=t.context:this.context=t,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new Le(this.context,this.host))}};function ke({context:e,subscribe:t}){return(n,i)=>{"object"==typeof i?i.addInitializer(function(){new Re(this,{context:e,callback:e=>{n.set.call(this,e)},subscribe:t})}):n.constructor.addInitializer(n=>{new Re(n,{context:e,callback:e=>{n[i]=e},subscribe:t})})}}var Fe={fromAttribute:e=>"false"!==e,toAttribute:String},Oe={fromAttribute:e=>null!==e&&"false"!==e,toAttribute:e=>e?"":null};function ze(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}var Ne=class extends _e{constructor(...e){super(...e),this.phase="idle",this.hideLoading=!1,this.loadingIcon="",this.loadingText="Cargando...",this.routeLoadingText="Generando ruta...",this.overrideText=void 0,this.lastChange={loading:!1,phase:"idle"}}static{this.styles=[m(":host{z-index:1000;pointer-events:none;display:block;position:absolute;inset:0}.loading-overlay{background:var(--loading-background,#fffffff2);opacity:0;flex-direction:column;justify-content:center;align-items:center;transition:opacity .3s ease-in-out;display:flex;position:absolute;inset:0}.loading-overlay:not(.hidden){opacity:1;pointer-events:auto}.loading-icon{width:var(--loading-icon-size,80px);height:var(--loading-icon-size,80px);object-fit:contain;margin-bottom:16px}.loading-spinner{width:var(--loading-spinner-size,48px);height:var(--loading-spinner-size,48px);border:4px solid var(--loading-spinner-track,#e9ecef);border-top-color:var(--loading-spinner-color,var(--mvx-primary-color,#212121));border-radius:50%;animation:1s linear infinite spin}.loading-text{font-family:var(--loading-font-family,var(--mvx-font-family,system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif));font-size:var(--loading-font-size,16px);font-weight:var(--loading-font-weight,500);color:var(--loading-text-color,var(--mvx-primary-color,#212121));margin-top:16px}@keyframes spin{to{transform:rotate(360deg)}}")]}get visible(){return!this.hideLoading&&"idle"!==this.phase}updated(e){super.updated(e),this.emitLoadingChange()}emitLoadingChange(){const e={loading:"idle"!==this.phase,phase:this.phase};this.lastChange.loading===e.loading&&this.lastChange.phase===e.phase||(this.lastChange=e,this.dispatchEvent(new CustomEvent("mvxLoadingChange",{detail:e,bubbles:!0,composed:!0})))}render(){const e=this.visible,t=this.overrideText??("route"===this.phase?this.routeLoadingText:this.loadingText);return ne`
1
+ /*! Web-kit v1.2.0-develop.13 | (c) 2026 MapVX */
2
+ !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"1.2.0-develop.13"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e525f11-bbb8-40f4-b161-1cad791b2e26",e._sentryDebugIdIdentifier="sentry-dbid-9e525f11-bbb8-40f4-b161-1cad791b2e26")}catch(e){}}();var WebKit=function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});var t=Object.create,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,s=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,a=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}},l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),c=(e,t)=>{let i={};for(var r in e)n(i,r,{get:e[r],enumerable:!0});return t||n(i,Symbol.toStringTag,{value:"Module"}),i},u=(e,a,l)=>(l=null!=e?t(s(e)):{},((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var l,c=r(t),u=0,h=c.length;u<h;u++)l=c[u],o.call(e,l)||l===s||n(e,l,{get:(e=>t[e]).bind(null,l),enumerable:!(a=i(t,l))||a.enumerable});return e})(!a&&e&&e.__esModule&&o.call(e,"default")?l:n(l,"default",{value:e,enumerable:!0}),e)),h=globalThis,d=h.ShadowRoot&&(void 0===h.ShadyCSS||h.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,p=Symbol(),f=new WeakMap,g=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==p)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(d&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=f.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&f.set(t,e))}return e}toString(){return this.cssText}},m=e=>new g("string"==typeof e?e:e+"",void 0,p),A=(e,...t)=>{const n=1===e.length?e[0]:t.reduce((t,n,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[i+1],e[0]);return new g(n,e,p)},y=d?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return m(t)})(e):e,{is:v,defineProperty:b,getOwnPropertyDescriptor:x,getOwnPropertyNames:_,getOwnPropertySymbols:w,getPrototypeOf:E}=Object,S=globalThis,C=S.trustedTypes,I=C?C.emptyScript:"",M=S.reactiveElementPolyfillSupport,T=(e,t)=>e,P={toAttribute(e,t){switch(t){case Boolean:e=e?I:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},R=(e,t)=>!v(e,t),D={attribute:!0,type:String,converter:P,reflect:!1,useDefault:!1,hasChanged:R};Symbol.metadata??=Symbol("metadata"),S.litPropertyMetadata??=new WeakMap;var L=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=D){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),i=this.getPropertyDescriptor(e,n,t);void 0!==i&&b(this.prototype,e,i)}}static getPropertyDescriptor(e,t,n){const{get:i,set:r}=x(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:i,set(t){const s=i?.call(this);r?.call(this,t),this.requestUpdate(e,s,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??D}static _$Ei(){if(this.hasOwnProperty(T("elementProperties")))return;const e=E(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(T("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(T("properties"))){const e=this.properties,t=[..._(e),...w(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[t,n]of this.elementProperties){const e=this._$Eu(t,n);void 0!==e&&this._$Eh.set(e,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(y(e))}else void 0!==e&&t.push(y(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(d)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const n of t){const t=document.createElement("style"),i=h.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=n.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$ET(e,t){const n=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==n.converter?.toAttribute?n.converter:P).toAttribute(t,n.type);this._$Em=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$Em=null}}_$AK(e,t){const n=this.constructor,i=n._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=n.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:P;this._$Em=i;const s=r.fromAttribute(t,e.type);this[i]=s??this._$Ej?.get(i)??s,this._$Em=null}}requestUpdate(e,t,n,i=!1,r){if(void 0!==e){const s=this.constructor;if(!1===i&&(r=this[e]),n??=s.getPropertyOptions(e),!((n.hasChanged??R)(r,t)||n.useDefault&&n.reflect&&r===this._$Ej?.get(e)&&!this.hasAttribute(s._$Eu(e,n))))return;this.C(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:n,reflect:i,wrapped:r},s){n&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,s??t??this[e]),!0!==r||void 0!==s)||(this._$AL.has(e)||(this.hasUpdated||n||(t=void 0),this._$AL.set(e,t)),!0===i&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e){const{wrapped:e}=n,i=this[t];!0!==e||this._$AL.has(t)||void 0===i||this.C(t,void 0,n,i)}}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}};L.elementStyles=[],L.shadowRootOptions={mode:"open"},L[T("elementProperties")]=new Map,L[T("finalized")]=new Map,M?.({ReactiveElement:L}),(S.reactiveElementVersions??=[]).push("2.1.2");var B=globalThis,k=e=>e,F=B.trustedTypes,O=F?F.createPolicy("lit-html",{createHTML:e=>e}):void 0,z="$lit$",N=`lit$${Math.random().toFixed(9).slice(2)}$`,U="?"+N,G=`<${U}>`,j=document,V=()=>j.createComment(""),q=e=>null===e||"object"!=typeof e&&"function"!=typeof e,H=Array.isArray,Q=e=>H(e)||"function"==typeof e?.[Symbol.iterator],W="[ \t\n\f\r]",K=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Z=/-->/g,Y=/>/g,X=RegExp(`>|${W}(?:([^\\s"'>=/]+)(${W}*=${W}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),J=/'/g,$=/"/g,ee=/^(?:script|style|textarea|title)$/i,te=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),ne=te(1),ie=(te(2),te(3),Symbol.for("lit-noChange")),re=Symbol.for("lit-nothing"),se=new WeakMap,oe=j.createTreeWalker(j,129);function ae(e,t){if(!H(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==O?O.createHTML(t):t}var le=(e,t)=>{const n=e.length-1,i=[];let r,s=2===t?"<svg>":3===t?"<math>":"",o=K;for(let a=0;a<n;a++){const t=e[a];let n,l,c=-1,u=0;for(;u<t.length&&(o.lastIndex=u,l=o.exec(t),null!==l);)u=o.lastIndex,o===K?"!--"===l[1]?o=Z:void 0!==l[1]?o=Y:void 0!==l[2]?(ee.test(l[2])&&(r=RegExp("</"+l[2],"g")),o=X):void 0!==l[3]&&(o=X):o===X?">"===l[0]?(o=r??K,c=-1):void 0===l[1]?c=-2:(c=o.lastIndex-l[2].length,n=l[1],o=void 0===l[3]?X:'"'===l[3]?$:J):o===$||o===J?o=X:o===Z||o===Y?o=K:(o=X,r=void 0);const h=o===X&&e[a+1].startsWith("/>")?" ":"";s+=o===K?t+G:c>=0?(i.push(n),t.slice(0,c)+z+t.slice(c)+N+h):t+N+(-2===c?a:h)}return[ae(e,s+(e[n]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),i]},ce=class e{constructor({strings:t,_$litType$:n},i){let r;this.parts=[];let s=0,o=0;const a=t.length-1,l=this.parts,[c,u]=le(t,n);if(this.el=e.createElement(c,i),oe.currentNode=this.el.content,2===n||3===n){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(r=oe.nextNode())&&l.length<a;){if(1===r.nodeType){if(r.hasAttributes())for(const e of r.getAttributeNames())if(e.endsWith(z)){const t=u[o++],n=r.getAttribute(e).split(N),i=/([.?@])?(.*)/.exec(t);l.push({type:1,index:s,name:i[2],strings:n,ctor:"."===i[1]?fe:"?"===i[1]?ge:"@"===i[1]?me:pe}),r.removeAttribute(e)}else e.startsWith(N)&&(l.push({type:6,index:s}),r.removeAttribute(e));if(ee.test(r.tagName)){const e=r.textContent.split(N),t=e.length-1;if(t>0){r.textContent=F?F.emptyScript:"";for(let n=0;n<t;n++)r.append(e[n],V()),oe.nextNode(),l.push({type:2,index:++s});r.append(e[t],V())}}}else if(8===r.nodeType)if(r.data===U)l.push({type:2,index:s});else{let e=-1;for(;-1!==(e=r.data.indexOf(N,e+1));)l.push({type:7,index:s}),e+=N.length-1}s++}}static createElement(e,t){const n=j.createElement("template");return n.innerHTML=e,n}};function ue(e,t,n=e,i){if(t===ie)return t;let r=void 0!==i?n._$Co?.[i]:n._$Cl;const s=q(t)?void 0:t._$litDirective$;return r?.constructor!==s&&(r?._$AO?.(!1),void 0===s?r=void 0:(r=new s(e),r._$AT(e,n,i)),void 0!==i?(n._$Co??=[])[i]=r:n._$Cl=r),void 0!==r&&(t=ue(e,r._$AS(e,t.values),r,i)),t}var he=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:n}=this._$AD,i=(e?.creationScope??j).importNode(t,!0);oe.currentNode=i;let r=oe.nextNode(),s=0,o=0,a=n[0];for(;void 0!==a;){if(s===a.index){let t;2===a.type?t=new de(r,r.nextSibling,this,e):1===a.type?t=new a.ctor(r,a.name,a.strings,this,e):6===a.type&&(t=new Ae(r,this,e)),this._$AV.push(t),a=n[++o]}s!==a?.index&&(r=oe.nextNode(),s++)}return oe.currentNode=j,i}p(e){let t=0;for(const n of this._$AV)void 0!==n&&(void 0!==n.strings?(n._$AI(e,n,t),t+=n.strings.length-2):n._$AI(e[t])),t++}},de=class e{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,n,i){this.type=2,this._$AH=re,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=n,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=ue(this,e,t),q(e)?e===re||null==e||""===e?(this._$AH!==re&&this._$AR(),this._$AH=re):e!==this._$AH&&e!==ie&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):Q(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==re&&q(this._$AH)?this._$AA.nextSibling.data=e:this.T(j.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,i="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=ce.createElement(ae(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===i)this._$AH.p(t);else{const e=new he(i,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=se.get(e.strings);return void 0===t&&se.set(e.strings,t=new ce(e)),t}k(t){H(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let i,r=0;for(const s of t)r===n.length?n.push(i=new e(this.O(V()),this.O(V()),this,this.options)):i=n[r],i._$AI(s),r++;r<n.length&&(this._$AR(i&&i._$AB.nextSibling,r),n.length=r)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){const t=k(e).nextSibling;k(e).remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}},pe=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,n,i,r){this.type=1,this._$AH=re,this._$AN=void 0,this.element=e,this.name=t,this._$AM=i,this.options=r,n.length>2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=re}_$AI(e,t=this,n,i){const r=this.strings;let s=!1;if(void 0===r)e=ue(this,e,t,0),s=!q(e)||e!==this._$AH&&e!==ie,s&&(this._$AH=e);else{const i=e;let o,a;for(e=r[0],o=0;o<r.length-1;o++)a=ue(this,i[n+o],t,o),a===ie&&(a=this._$AH[o]),s||=!q(a)||a!==this._$AH[o],a===re?e=re:e!==re&&(e+=(a??"")+r[o+1]),this._$AH[o]=a}s&&!i&&this.j(e)}j(e){e===re?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},fe=class extends pe{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===re?void 0:e}},ge=class extends pe{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==re)}},me=class extends pe{constructor(e,t,n,i,r){super(e,t,n,i,r),this.type=5}_$AI(e,t=this){if((e=ue(this,e,t,0)??re)===ie)return;const n=this._$AH,i=e===re&&n!==re||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,r=e!==re&&(n===re||i);i&&this.element.removeEventListener(this.name,this,n),r&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Ae=class{constructor(e,t,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){ue(this,e)}},ye={M:z,P:N,A:U,C:1,L:le,R:he,D:Q,V:ue,I:de,H:pe,N:ge,U:me,B:fe,F:Ae},ve=B.litHtmlPolyfillSupport;ve?.(ce,de),(B.litHtmlVersions??=[]).push("3.3.3");var be=(e,t,n)=>{const i=n?.renderBefore??t;let r=i._$litPart$;if(void 0===r){const e=n?.renderBefore??null;i._$litPart$=r=new de(t.insertBefore(V(),e),e,void 0,n??{})}return r._$AI(e),r},xe=globalThis,_e=class extends L{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=be(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return ie}};_e._$litElement$=!0,_e.finalized=!0,xe.litElementHydrateSupport?.({LitElement:_e});var we=xe.litElementPolyfillSupport;we?.({LitElement:_e}),(xe.litElementVersions??=[]).push("4.2.2");var Ee=e=>(t,n)=>{void 0!==n?n.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)},Se={attribute:!0,type:String,converter:P,reflect:!1,hasChanged:R},Ce=(e=Se,t,n)=>{const{kind:i,metadata:r}=n;let s=globalThis.litPropertyMetadata.get(r);if(void 0===s&&globalThis.litPropertyMetadata.set(r,s=new Map),"setter"===i&&((e=Object.create(e)).wrapped=!0),s.set(n.name,e),"accessor"===i){const{name:i}=n;return{set(n){const r=t.get.call(this);t.set.call(this,n),this.requestUpdate(i,r,e,!0,n)},init(t){return void 0!==t&&this.C(i,void 0,e,t),t}}}if("setter"===i){const{name:i}=n;return function(n){const r=this[i];t.call(this,n),this.requestUpdate(i,r,e,!0,n)}}throw Error("Unsupported decorator location: "+i)};function Ie(e){return(t,n)=>"object"==typeof n?Ce(e,t,n):((e,t,n)=>{const i=t.hasOwnProperty(n);return t.constructor.createProperty(n,e),i?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n)}function Me(e){return Ie({...e,state:!0,attribute:!1})}var Te=e=>e??re,Pe=class extends Event{constructor(e,t,n,i){super("context-request",{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t,this.callback=n,this.subscribe=i??!1}};var Re=class{constructor(e,t,n,i){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(e,t)=>{this.unsubscribe&&(this.unsubscribe!==t&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=e,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(e,t)),this.unsubscribe=t},this.host=e,void 0!==t.context){const e=t;this.context=e.context,this.callback=e.callback,this.subscribe=e.subscribe??!1}else this.context=t,this.callback=n,this.subscribe=i??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new Pe(this.context,this.host,this.t,this.subscribe))}},De=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){const n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(const[e,{disposer:t}]of this.subscriptions)e(this.o,t)},void 0!==e&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});const{disposer:i}=this.subscriptions.get(e);e(this.value,i)}clearCallbacks(){this.subscriptions.clear()}},Le=class extends Event{constructor(e,t){super("context-provider",{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},Be=class extends De{constructor(e,t,n){super(void 0!==t.context?t.initialValue:n),this.onContextRequest=e=>{if(e.context!==this.context)return;const t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=e=>{if(e.context!==this.context)return;if((e.contextTarget??e.composedPath()[0])===this.host)return;const t=new Set;for(const[n,{consumerHost:i}]of this.subscriptions)t.has(n)||(t.add(n),i.dispatchEvent(new Pe(this.context,i,n,!0)));e.stopPropagation()},this.host=e,void 0!==t.context?this.context=t.context:this.context=t,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new Le(this.context,this.host))}};function ke({context:e,subscribe:t}){return(n,i)=>{"object"==typeof i?i.addInitializer(function(){new Re(this,{context:e,callback:e=>{n.set.call(this,e)},subscribe:t})}):n.constructor.addInitializer(n=>{new Re(n,{context:e,callback:e=>{n[i]=e},subscribe:t})})}}var Fe={fromAttribute:e=>"false"!==e,toAttribute:String},Oe={fromAttribute:e=>null!==e&&"false"!==e,toAttribute:e=>e?"":null};function ze(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}var Ne=class extends _e{constructor(...e){super(...e),this.phase="idle",this.hideLoading=!1,this.loadingIcon="",this.loadingText="Cargando...",this.routeLoadingText="Generando ruta...",this.overrideText=void 0,this.lastChange={loading:!1,phase:"idle"}}static{this.styles=[m(":host{z-index:1000;pointer-events:none;display:block;position:absolute;inset:0}.loading-overlay{background:var(--loading-background,#fffffff2);opacity:0;flex-direction:column;justify-content:center;align-items:center;transition:opacity .3s ease-in-out;display:flex;position:absolute;inset:0}.loading-overlay:not(.hidden){opacity:1;pointer-events:auto}.loading-icon{width:var(--loading-icon-size,80px);height:var(--loading-icon-size,80px);object-fit:contain;margin-bottom:16px}.loading-spinner{width:var(--loading-spinner-size,48px);height:var(--loading-spinner-size,48px);border:4px solid var(--loading-spinner-track,#e9ecef);border-top-color:var(--loading-spinner-color,var(--mvx-primary-color,#212121));border-radius:50%;animation:1s linear infinite spin}.loading-text{font-family:var(--loading-font-family,var(--mvx-font-family,system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif));font-size:var(--loading-font-size,16px);font-weight:var(--loading-font-weight,500);color:var(--loading-text-color,var(--mvx-primary-color,#212121));margin-top:16px}@keyframes spin{to{transform:rotate(360deg)}}")]}get visible(){return!this.hideLoading&&"idle"!==this.phase}updated(e){super.updated(e),this.emitLoadingChange()}emitLoadingChange(){const e={loading:"idle"!==this.phase,phase:this.phase};this.lastChange.loading===e.loading&&this.lastChange.phase===e.phase||(this.lastChange=e,this.dispatchEvent(new CustomEvent("mvxLoadingChange",{detail:e,bubbles:!0,composed:!0})))}render(){const e=this.visible,t=this.overrideText??("route"===this.phase?this.routeLoadingText:this.loadingText);return ne`
3
3
  <div
4
4
  class="loading-overlay ${e?"":"hidden"}"
5
5
  data-testid="map-loading"
@@ -410,4 +410,4 @@
410
410
  </div>
411
411
  `:""}
412
412
  </div>
413
- `}reloadMap(){this._customMap()?.reloadMap()}};return ze([Ie({type:String})],ytt.prototype,"apiKey",void 0),ze([Ie({type:String})],ytt.prototype,"parentPlaceId",void 0),ze([Ie({type:String})],ytt.prototype,"locale",void 0),ze([Ie({attribute:"enable-3d",converter:Fe})],ytt.prototype,"enable3D",void 0),ze([Ie({attribute:"scene-3d-place-ids",converter:{fromAttribute:e=>e?e.split(",").map(e=>e.trim()).filter(Boolean):[]}})],ytt.prototype,"scene3dPlaceIds",void 0),ze([Ie({type:String,attribute:"marker-variant"})],ytt.prototype,"markerVariant",void 0),ze([Ie({type:String})],ytt.prototype,"placeId",void 0),ze([Ie({type:String,attribute:"institution-id"})],ytt.prototype,"institutionId",void 0),ze([Ie({type:String,attribute:"institution-name"})],ytt.prototype,"institutionName",void 0),ze([Ie({type:Boolean,attribute:"compact-mode",reflect:!0})],ytt.prototype,"compactMode",void 0),ze([Ie({type:String,attribute:"zoom-size",reflect:!0})],ytt.prototype,"zoomButtonSize",void 0),ze([Ie({type:Number,attribute:"fit-max-zoom"})],ytt.prototype,"fitMaxZoom",void 0),ze([Ie({type:Number,attribute:"single-point-max-zoom"})],ytt.prototype,"singlePointMaxZoom",void 0),ze([Ie({type:Number,attribute:"route-fit-max-zoom"})],ytt.prototype,"routeFitMaxZoom",void 0),ze([Ie({type:Number,attribute:"camera-padding-top"})],ytt.prototype,"cameraPaddingTop",void 0),ze([Ie({type:Number,attribute:"camera-padding-right"})],ytt.prototype,"cameraPaddingRight",void 0),ze([Ie({type:Number,attribute:"camera-padding-bottom"})],ytt.prototype,"cameraPaddingBottom",void 0),ze([Ie({type:Number,attribute:"camera-padding-left"})],ytt.prototype,"cameraPaddingLeft",void 0),ze([Ie({type:String,attribute:"overlay-padding-mode"})],ytt.prototype,"overlayPaddingMode",void 0),ze([Ie({attribute:!1})],ytt.prototype,"cacheConfig",void 0),ze([Ie({attribute:"show-floor-selector",converter:Fe})],ytt.prototype,"showFloorSelector",void 0),ze([Ie({type:String,attribute:"floor-selector-position"})],ytt.prototype,"floorSelectorPosition",void 0),ze([Ie({attribute:"floor-selector-disabled",converter:Oe})],ytt.prototype,"floorSelectorDisabled",void 0),ze([Ie({attribute:"hide-loading",converter:Oe})],ytt.prototype,"hideLoading",void 0),ytt=ze([Ee("map-view-with-modal")],ytt),function(e="https://6bd40b60de94015425fdc35791d9eaff@sentry.mapvx.app/17"){if(!e||Fo)return Fo;const t=new ao({dsn:e,release:"web-kit@1.2.0-develop.12",transport:lo,stackParser:bo,integrations:[Zr(),Wr(),fs(),So(),wo(),ds(),Do(),zo(),ls(),Oo(),Po(),To()].filter(e=>"GlobalHandlers"!==e.name)});(Fo=new un).setClient(t),t.init()}(),e.CACHE_STORAGE_KEYS=F9e,e.DEFAULT_CACHE_CONFIG=D9e,e.DEFAULT_VECTOR_TILES_BASE_URL="https://tiles.mapvx.com/tiles",e.MVX_ERROR_EVENT=x9e,e.MVX_TILES_SW_PATH=ctt,e.MVX_TILES_SW_SCOPE="/",Object.defineProperty(e,"MapViewWithModal",{enumerable:!0,get:function(){return ytt}}),Object.defineProperty(e,"RouteViewTotems",{enumerable:!0,get:function(){return gtt}}),e.STORAGE_BYTES=T9e,e.TIME_MS=M9e,e.TOTEM_CACHE_CONFIG=P9e,e.WEB_CACHE_CONFIG=R9e,e.clearAllCacheStorage=function(){F9e.forEach(e=>{try{localStorage.removeItem(e)}catch{}})},e.mergeCacheConfig=L9e,e.registerAndTriggerTilePrefetch=async function(e){const t=await htt(e.swPath,e.swScope);return await utt(t),dtt(t,e),{registration:t,stopPeriodicRefresh:e.enablePeriodicRefresh?ptt(t,e):()=>{}}},e.registerMvxTileServiceWorker=htt,e.schedulePeriodicTileRefresh=ptt,e.triggerInitialTileLoad=dtt,e.waitForServiceWorkerReady=utt,e}({});
413
+ `}reloadMap(){this._customMap()?.reloadMap()}};return ze([Ie({type:String})],ytt.prototype,"apiKey",void 0),ze([Ie({type:String})],ytt.prototype,"parentPlaceId",void 0),ze([Ie({type:String})],ytt.prototype,"locale",void 0),ze([Ie({attribute:"enable-3d",converter:Fe})],ytt.prototype,"enable3D",void 0),ze([Ie({attribute:"scene-3d-place-ids",converter:{fromAttribute:e=>e?e.split(",").map(e=>e.trim()).filter(Boolean):[]}})],ytt.prototype,"scene3dPlaceIds",void 0),ze([Ie({type:String,attribute:"marker-variant"})],ytt.prototype,"markerVariant",void 0),ze([Ie({type:String})],ytt.prototype,"placeId",void 0),ze([Ie({type:String,attribute:"institution-id"})],ytt.prototype,"institutionId",void 0),ze([Ie({type:String,attribute:"institution-name"})],ytt.prototype,"institutionName",void 0),ze([Ie({type:Boolean,attribute:"compact-mode",reflect:!0})],ytt.prototype,"compactMode",void 0),ze([Ie({type:String,attribute:"zoom-size",reflect:!0})],ytt.prototype,"zoomButtonSize",void 0),ze([Ie({type:Number,attribute:"fit-max-zoom"})],ytt.prototype,"fitMaxZoom",void 0),ze([Ie({type:Number,attribute:"single-point-max-zoom"})],ytt.prototype,"singlePointMaxZoom",void 0),ze([Ie({type:Number,attribute:"route-fit-max-zoom"})],ytt.prototype,"routeFitMaxZoom",void 0),ze([Ie({type:Number,attribute:"camera-padding-top"})],ytt.prototype,"cameraPaddingTop",void 0),ze([Ie({type:Number,attribute:"camera-padding-right"})],ytt.prototype,"cameraPaddingRight",void 0),ze([Ie({type:Number,attribute:"camera-padding-bottom"})],ytt.prototype,"cameraPaddingBottom",void 0),ze([Ie({type:Number,attribute:"camera-padding-left"})],ytt.prototype,"cameraPaddingLeft",void 0),ze([Ie({type:String,attribute:"overlay-padding-mode"})],ytt.prototype,"overlayPaddingMode",void 0),ze([Ie({attribute:!1})],ytt.prototype,"cacheConfig",void 0),ze([Ie({attribute:"show-floor-selector",converter:Fe})],ytt.prototype,"showFloorSelector",void 0),ze([Ie({type:String,attribute:"floor-selector-position"})],ytt.prototype,"floorSelectorPosition",void 0),ze([Ie({attribute:"floor-selector-disabled",converter:Oe})],ytt.prototype,"floorSelectorDisabled",void 0),ze([Ie({attribute:"hide-loading",converter:Oe})],ytt.prototype,"hideLoading",void 0),ytt=ze([Ee("map-view-with-modal")],ytt),function(e="https://6bd40b60de94015425fdc35791d9eaff@sentry.mapvx.app/17"){if(!e||Fo)return Fo;const t=new ao({dsn:e,release:"web-kit@1.2.0-develop.13",transport:lo,stackParser:bo,integrations:[Zr(),Wr(),fs(),So(),wo(),ds(),Do(),zo(),ls(),Oo(),Po(),To()].filter(e=>"GlobalHandlers"!==e.name)});(Fo=new un).setClient(t),t.init()}(),e.CACHE_STORAGE_KEYS=F9e,e.DEFAULT_CACHE_CONFIG=D9e,e.DEFAULT_VECTOR_TILES_BASE_URL="https://tiles.mapvx.com/tiles",e.MVX_ERROR_EVENT=x9e,e.MVX_TILES_SW_PATH=ctt,e.MVX_TILES_SW_SCOPE="/",Object.defineProperty(e,"MapViewWithModal",{enumerable:!0,get:function(){return ytt}}),Object.defineProperty(e,"RouteViewTotems",{enumerable:!0,get:function(){return gtt}}),e.STORAGE_BYTES=T9e,e.TIME_MS=M9e,e.TOTEM_CACHE_CONFIG=P9e,e.WEB_CACHE_CONFIG=R9e,e.clearAllCacheStorage=function(){F9e.forEach(e=>{try{localStorage.removeItem(e)}catch{}})},e.mergeCacheConfig=L9e,e.registerAndTriggerTilePrefetch=async function(e){const t=await htt(e.swPath,e.swScope);return await utt(t),dtt(t,e),{registration:t,stopPeriodicRefresh:e.enablePeriodicRefresh?ptt(t,e):()=>{}}},e.registerMvxTileServiceWorker=htt,e.schedulePeriodicTileRefresh=ptt,e.triggerInitialTileLoad=dtt,e.waitForServiceWorkerReady=utt,e}({});
@@ -51,7 +51,7 @@ const TILE_PREFETCH = {
51
51
 
52
52
  function delay(ms) {
53
53
  return new Promise((resolve) => {
54
- self.setTimeout(resolve, ms)
54
+ globalThis.setTimeout(resolve, ms)
55
55
  })
56
56
  }
57
57
 
@@ -177,6 +177,72 @@ async function prefetchUrlsInBatches(cache, urls, signal) {
177
177
  }
178
178
  }
179
179
 
180
+ /** Fetches the tiles around `center` at `initialZoom`. Returns the budget left after phase 1. */
181
+ async function prefetchInitialZoomTiles(
182
+ cache,
183
+ center,
184
+ initialZoom,
185
+ trimmedKey,
186
+ vectorTilesBase,
187
+ budget,
188
+ signal,
189
+ ) {
190
+ const phaseOne = tilesAroundCenter(center, initialZoom, TILE_PREFETCH.initialRadiusTiles)
191
+ const urlsPhaseOne = phaseOne
192
+ .slice(0, budget)
193
+ .map(({ z, x, y }) => buildVectorTileUrl(vectorTilesBase, z, x, y, trimmedKey))
194
+
195
+ console.log('[MVX-SW] Tile prefetch phase 1 (initial zoom only)', {
196
+ initialZoom,
197
+ tiles: urlsPhaseOne.length,
198
+ })
199
+ await prefetchUrlsInBatches(cache, urlsPhaseOne, signal)
200
+ return budget - urlsPhaseOne.length
201
+ }
202
+
203
+ /** Progressively widens the prefetch to every other zoom level, closest to `initialZoom` first. */
204
+ async function prefetchRemainingZoomLevels(
205
+ cache,
206
+ center,
207
+ initialZoom,
208
+ minZoom,
209
+ maxZoom,
210
+ trimmedKey,
211
+ vectorTilesBase,
212
+ budget,
213
+ signal,
214
+ ) {
215
+ const otherZoomLevels = []
216
+ for (let z = minZoom; z <= maxZoom; z++) {
217
+ if (z !== initialZoom) {
218
+ otherZoomLevels.push(z)
219
+ }
220
+ }
221
+ otherZoomLevels.sort((a, b) => Math.abs(a - initialZoom) - Math.abs(b - initialZoom))
222
+
223
+ for (const zoom of otherZoomLevels) {
224
+ if (signal.aborted || budget <= 0) {
225
+ break
226
+ }
227
+ await delay(TILE_PREFETCH.zoomLevelGapMs)
228
+ if (signal.aborted) {
229
+ break
230
+ }
231
+
232
+ const ring = tilesAroundCenter(center, zoom, TILE_PREFETCH.progressiveRadiusTiles)
233
+ const urls = ring
234
+ .slice(0, budget)
235
+ .map(({ z: zz, x, y }) => buildVectorTileUrl(vectorTilesBase, zz, x, y, trimmedKey))
236
+ budget -= urls.length
237
+
238
+ console.log('[MVX-SW] Tile prefetch background zoom', {
239
+ zoom,
240
+ tiles: urls.length,
241
+ })
242
+ await prefetchUrlsInBatches(cache, urls, signal)
243
+ }
244
+ }
245
+
180
246
  async function progressivePrefetchTiles(apiKey, placeId, tilesBaseUrl) {
181
247
  const trimmedKey = typeof apiKey === 'string' ? apiKey.trim() : ''
182
248
  if (trimmedKey === '') {
@@ -221,54 +287,32 @@ async function progressivePrefetchTiles(apiKey, placeId, tilesBaseUrl) {
221
287
  const maxZoom = Math.ceil(configuration.limitZoomIn ?? initialZoom + 2)
222
288
 
223
289
  const cache = await caches.open(CACHE_TILES)
224
- let budget = TILE_PREFETCH.maxTilesPerRun
225
-
226
- const phaseOne = tilesAroundCenter(center, initialZoom, TILE_PREFETCH.initialRadiusTiles)
227
- const urlsPhaseOne = phaseOne
228
- .slice(0, budget)
229
- .map(({ z, x, y }) => buildVectorTileUrl(vectorTilesBase, z, x, y, trimmedKey))
230
- budget -= urlsPhaseOne.length
231
-
232
- console.log('[MVX-SW] Tile prefetch phase 1 (initial zoom only)', {
290
+ const budgetAfterPhaseOne = await prefetchInitialZoomTiles(
291
+ cache,
292
+ center,
233
293
  initialZoom,
234
- tiles: urlsPhaseOne.length,
235
- })
236
- await prefetchUrlsInBatches(cache, urlsPhaseOne, signal)
294
+ trimmedKey,
295
+ vectorTilesBase,
296
+ TILE_PREFETCH.maxTilesPerRun,
297
+ signal,
298
+ )
237
299
 
238
- if (signal.aborted || budget <= 0) {
300
+ if (signal.aborted || budgetAfterPhaseOne <= 0) {
239
301
  console.log('[MVX-SW] Tile prefetch stopped after phase 1')
240
302
  return
241
303
  }
242
304
 
243
- const otherZoomLevels = []
244
- for (let z = minZoom; z <= maxZoom; z++) {
245
- if (z !== initialZoom) {
246
- otherZoomLevels.push(z)
247
- }
248
- }
249
- otherZoomLevels.sort((a, b) => Math.abs(a - initialZoom) - Math.abs(b - initialZoom))
250
-
251
- for (const zoom of otherZoomLevels) {
252
- if (signal.aborted || budget <= 0) {
253
- break
254
- }
255
- await delay(TILE_PREFETCH.zoomLevelGapMs)
256
- if (signal.aborted) {
257
- break
258
- }
259
-
260
- const ring = tilesAroundCenter(center, zoom, TILE_PREFETCH.progressiveRadiusTiles)
261
- const urls = ring
262
- .slice(0, budget)
263
- .map(({ z: zz, x, y }) => buildVectorTileUrl(vectorTilesBase, zz, x, y, trimmedKey))
264
- budget -= urls.length
265
-
266
- console.log('[MVX-SW] Tile prefetch background zoom', {
267
- zoom,
268
- tiles: urls.length,
269
- })
270
- await prefetchUrlsInBatches(cache, urls, signal)
271
- }
305
+ await prefetchRemainingZoomLevels(
306
+ cache,
307
+ center,
308
+ initialZoom,
309
+ minZoom,
310
+ maxZoom,
311
+ trimmedKey,
312
+ vectorTilesBase,
313
+ budgetAfterPhaseOne,
314
+ signal,
315
+ )
272
316
 
273
317
  console.log('[MVX-SW] Progressive tile prefetch finished')
274
318
  } catch (err) {
@@ -300,12 +344,12 @@ async function resetAndUnregister() {
300
344
  console.warn('[MVX-SW] resetAndUnregister: clear caches failed', err)
301
345
  }
302
346
  try {
303
- await self.registration.unregister()
347
+ await globalThis.registration.unregister()
304
348
  } catch (err) {
305
349
  console.warn('[MVX-SW] resetAndUnregister: unregister failed', err)
306
350
  }
307
351
  try {
308
- const clients = await self.clients.matchAll({ type: 'window' })
352
+ const clients = await globalThis.clients.matchAll({ type: 'window' })
309
353
  for (const client of clients) {
310
354
  try {
311
355
  client.postMessage({ type: 'SW_RESET_DONE' })
@@ -319,7 +363,7 @@ async function resetAndUnregister() {
319
363
  }
320
364
 
321
365
  function notifyClients(message) {
322
- self.clients
366
+ globalThis.clients
323
367
  .matchAll({ includeUncontrolled: true })
324
368
  .then((clients) => {
325
369
  clients.forEach((client) => {
@@ -343,7 +387,7 @@ const ALLOWED_HOSTS = [
343
387
  ]
344
388
  const isAllowedHost = (hostname) => ALLOWED_HOSTS.some((host) => hostname.endsWith(host))
345
389
 
346
- self.skipWaiting()
390
+ globalThis.skipWaiting()
347
391
  workbox.core.clientsClaim()
348
392
  workbox.core.setCacheNameDetails({ prefix: 'mvx' })
349
393
  workbox.precaching.cleanupOutdatedCaches()
@@ -504,7 +548,7 @@ registerRoute(
504
548
  }),
505
549
  )
506
550
 
507
- self.addEventListener('activate', (event) => {
551
+ globalThis.addEventListener('activate', (event) => {
508
552
  event.waitUntil(
509
553
  (async () => {
510
554
  try {
@@ -530,7 +574,11 @@ self.addEventListener('activate', (event) => {
530
574
  )
531
575
  })
532
576
 
533
- self.addEventListener('message', (event) => {
577
+ globalThis.addEventListener('message', (event) => {
578
+ // A controlled client can only ever be same-origin with its service worker, but Workbox's own
579
+ // message listeners don't check this, and neither did this file until now -- check it anyway,
580
+ // defense in depth against whatever reaches this handler.
581
+ if (event.origin !== globalThis.location.origin) return
534
582
  if (!isValidMessage(event.data)) return
535
583
 
536
584
  switch (event.data.type) {
@@ -417,7 +417,7 @@ declare class FloorSelectorSizeController implements ReactiveController {
417
417
  }
418
418
 
419
419
  export declare class MapViewWithModal extends LitElement {
420
- static styles: CSSResult[];
420
+ static readonly styles: CSSResult[];
421
421
  apiKey: string;
422
422
  parentPlaceId: string;
423
423
  locale: string;
@@ -527,8 +527,8 @@ export declare class MapViewWithModal extends LitElement {
527
527
  firstUpdated(): void;
528
528
  /** Same shape as the reference's own `baseParams()`: no route, so no destination/origin fields. */
529
529
  private baseParams;
530
- private _mapReadyHandler;
531
- private _cameraInitializedHandler;
530
+ private readonly _mapReadyHandler;
531
+ private readonly _cameraInitializedHandler;
532
532
  /**
533
533
  * The floor id this handler last reported `floor_change` analytics for — this element's own
534
534
  * dedupe, independent of `FloorController.setFloor()`'s return value (review round 1, finding 1).
@@ -1110,7 +1110,7 @@ declare class RouteController implements ReactiveController {
1110
1110
  export declare type RoutePanelVariant = 'full' | 'compact';
1111
1111
 
1112
1112
  export declare class RouteViewTotems extends LitElement {
1113
- static styles: CSSResult[];
1113
+ static readonly styles: CSSResult[];
1114
1114
  apiKey: string;
1115
1115
  parentPlaceId: string;
1116
1116
  /**
@@ -1348,16 +1348,16 @@ export declare class RouteViewTotems extends LitElement {
1348
1348
  private _customMap;
1349
1349
  firstUpdated(): void;
1350
1350
  private sendEvent;
1351
- private _mapReadyHandler;
1352
- private _cameraInitializedHandler;
1351
+ private readonly _mapReadyHandler;
1352
+ private readonly _cameraInitializedHandler;
1353
1353
  willUpdate(changedProperties: PropertyValues): void;
1354
1354
  updated(changedProperties: PropertyValues): void;
1355
1355
  render(): TemplateResult<1>;
1356
- private _floorChangeHandler;
1357
- private _accessibilityChangeHandler;
1358
- private _repeatRouteHandler;
1359
- private _generateRouteHandler;
1360
- private _backHandler;
1356
+ private readonly _floorChangeHandler;
1357
+ private readonly _accessibilityChangeHandler;
1358
+ private readonly _repeatRouteHandler;
1359
+ private readonly _generateRouteHandler;
1360
+ private readonly _backHandler;
1361
1361
  /**
1362
1362
  * Turns `<custom-map>`'s `startRouteAnimation`/`routeAnimationFinished` events, and
1363
1363
  * `<route-options>`'s `repeatRoute` event, into the matching `RouteController` call. This is the
@@ -1367,9 +1367,9 @@ export declare class RouteViewTotems extends LitElement {
1367
1367
  * `route-view-totems.test.ts`'s "route animation wiring" suite for the regression test proving a
1368
1368
  * natural finish does not trigger a restart.
1369
1369
  */
1370
- private _startRouteAnimationHandler;
1371
- private _routeAnimationFinishedHandler;
1372
- private _dismissRouteErrorHandler;
1370
+ private readonly _startRouteAnimationHandler;
1371
+ private readonly _routeAnimationFinishedHandler;
1372
+ private readonly _dismissRouteErrorHandler;
1373
1373
  /**
1374
1374
  * Updates the component's origin/destination/floor/route-type without requiring a "back" event.
1375
1375
  * Delegates to the inner `<custom-map>`'s own `updateComponent()` (see this class's doc comment for
@@ -1662,13 +1662,6 @@ export declare const WEB_CACHE_CONFIG: CacheConfig;
1662
1662
  export { }
1663
1663
 
1664
1664
 
1665
- declare global {
1666
- interface HTMLElementTagNameMap {
1667
- 'route-view-totems': RouteViewTotems;
1668
- }
1669
- }
1670
-
1671
-
1672
1665
  declare global {
1673
1666
  interface HTMLElementTagNameMap {
1674
1667
  'map-view-with-modal': MapViewWithModal;
@@ -1712,52 +1705,59 @@ declare global {
1712
1705
 
1713
1706
  declare global {
1714
1707
  interface HTMLElementTagNameMap {
1715
- 'compact-floor-selector': CompactFloorSelector;
1708
+ 'route-view-totems': RouteViewTotems;
1716
1709
  }
1717
1710
  }
1718
1711
 
1719
1712
 
1720
1713
  declare global {
1721
1714
  interface HTMLElementTagNameMap {
1722
- 'floor-selector': FloorSelector;
1715
+ 'compact-floor-selector': CompactFloorSelector;
1723
1716
  }
1724
1717
  }
1725
1718
 
1726
1719
 
1727
1720
  declare global {
1728
- interface HTMLElementTagNameMap {
1729
- 'route-options': RouteOptions;
1721
+ var dataLayer: unknown[];
1722
+ var gtag: (...args: unknown[]) => void;
1723
+ }
1724
+
1725
+
1726
+ declare global {
1727
+ interface HTMLElementEventMap {
1728
+ /**
1729
+ * The loading state changed, with the phase that caused it. One event per transition, and
1730
+ * `detail.loading === false` is the end of the load — the same moment the built-in indicator
1731
+ * goes down.
1732
+ */
1733
+ mvxLoadingChange: CustomEvent<MvxLoadingChangeDetail>;
1730
1734
  }
1731
1735
  }
1732
1736
 
1733
1737
 
1734
1738
  declare global {
1735
1739
  interface HTMLElementTagNameMap {
1736
- 'qr-modal': QRModal;
1740
+ 'map-loading-overlay': MapLoadingOverlay;
1737
1741
  }
1738
1742
  }
1739
1743
 
1740
1744
 
1741
1745
  declare global {
1742
- var dataLayer: unknown[];
1743
- var gtag: (...args: unknown[]) => void;
1746
+ interface HTMLElementTagNameMap {
1747
+ 'floor-selector': FloorSelector;
1748
+ }
1744
1749
  }
1745
1750
 
1746
1751
 
1747
1752
  declare global {
1748
- interface HTMLElementEventMap {
1749
- /**
1750
- * The loading state changed, with the phase that caused it. One event per transition, and
1751
- * `detail.loading === false` is the end of the load — the same moment the built-in indicator
1752
- * goes down.
1753
- */
1754
- mvxLoadingChange: CustomEvent<MvxLoadingChangeDetail>;
1753
+ interface HTMLElementTagNameMap {
1754
+ 'route-options': RouteOptions;
1755
1755
  }
1756
1756
  }
1757
1757
 
1758
1758
 
1759
1759
  declare global {
1760
1760
  interface HTMLElementTagNameMap {
1761
- 'map-loading-overlay': MapLoadingOverlay;
1761
+ 'qr-modal': QRModal;
1762
1762
  }
1763
1763
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mapvx/web-kit",
3
3
  "description": "A web component library for building interactive maps.",
4
- "version": "1.2.0-develop.12",
4
+ "version": "1.2.0-develop.13",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
7
7
  "publishConfig": {