UNPKG

@aegisjsproject/router

Version:
3 lines (2 loc) 40 kB
import{getStateObj as e,diffState as t,notifyStateChange as n}from"@aegisjsproject/state";function o(e){switch(typeof e){case"string":return e;case"function":throw new TypeError("Functions are not supported.");case"undefined":return"";case"object":return null===e?"":e instanceof Date?e.toISOString():Array.isArray(e)?e.map(o).join(","):e instanceof ArrayBuffer&&Uint8Array.prototype.toBase64 instanceof Function?new Uint8Array(e).toBase64():ArrayBuffer.isView(e)&&e.toBase64 instanceof Function?e.toBase64():e instanceof Blob?URL.createObjectURL(e):e.toString();default:return e.toString()}}function r(e){return encodeURIComponent(o(e).trim()).replaceAll("..%2F","%2E%2E%2F").replaceAll(".%2F","%2E%2E%2F")}const a=function(e=globalThis?.document?.baseURI){return function(t,n,...o){return n instanceof Blob&&2===t.length&&""===t[0]&&""===t[1]?new URL(URL.createObjectURL(n)):URL.canParse(n)?URL.parse(String.raw(t,"",...o.map(r)),n):t[0].startsWith("/")||t[0].startsWith("./")||t[0].startsWith("../")?URL.parse(String.raw(t,r(n),...o.map(r)),e):URL.parse(String.raw(t,r(n),...o.map(r)))}}(),i=(e,t=document)=>t.querySelectorAll(e),s=(e,t=document)=>t.querySelector(e),l="requestFullscreenSelector",c="toggleFullscreenSelector",u={log:"aegis:debug:log",info:"aegis:debug:info",warn:"aegis:debug:warn",error:"aegis:debug:error"},d={back:"aegis:navigate:back",forward:"aegis:navigate:forward",reload:"aegis:navigate:reload",close:"aegis:navigate:close",link:"aegis:navigate:go",popup:"aegis:navigate:popup"},f={print:"aegis:ui:print",remove:"aegis:ui:remove",hide:"aegis:ui:hide",unhide:"aegis:ui:unhide",showModal:"aegis:ui:showModal",closeModal:"aegis:ui:closeModal",showPopover:"aegis:ui:showPopover",hidePopover:"aegis:ui:hidePopover",togglePopover:"aegis:ui:togglePopover",enable:"aegis:ui:enable",disable:"aegis:ui:disable",scrollTo:"aegis:ui:scrollTo",prevent:"aegis:ui:prevent",revokeObjectURL:"aegis:ui:revokeObjectURL",cancelAnimationFrame:"aegis:ui:cancelAnimationFrame",clearInterval:"aegis:clearInterval",clearTimeout:"aegis:clearTimeout",requestFullscreen:"aegis:ui:requestFullscreen",toggleFullscreen:"aegis:ui:toggleFullsceen",exitFullsceen:"aegis:ui:exitFullscreen",open:"aegis:ui:open",close:"aegis:ui:close",abortController:"aegis:ui:controller:abort"},g=new Map([[u.log,console.log],[u.warn,console.warn],[u.error,console.error],[u.info,console.info],[d.back,()=>history.back()],[d.forward,()=>history.forward()],[d.reload,()=>history.go(0)],[d.close,()=>globalThis.close()],[d.link,e=>{e.isTrusted&&(e.preventDefault(),location.href=e.currentTarget.dataset.url)}],[d.popup,e=>{e.isTrusted&&(e.preventDefault(),globalThis.open(e.currentTarget.dataset.url))}],[f.hide,({currentTarget:e})=>{i(e.dataset.hideSelector).forEach((e=>e.hidden=!0))}],[f.unhide,({currentTarget:e})=>{i(e.dataset.unhideSelector).forEach((e=>e.hidden=!1))}],[f.disable,({currentTarget:e})=>{i(e.dataset.disableSelector).forEach((e=>e.disabled=!0))}],[f.enable,({currentTarget:e})=>{i(e.dataset.enableSelector).forEach((e=>e.disabled=!1))}],[f.remove,({currentTarget:e})=>{i(e.dataset.removeSelector).forEach((e=>e.remove()))}],[f.scrollTo,({currentTarget:e})=>{const t=s(e.dataset.scrollToSelector);t instanceof Element&&t.scrollIntoView({behavior:matchMedia("(prefers-reduced-motion: reduce)").matches?"instant":"smooth"})}],[f.revokeObjectURL,({currentTarget:e})=>URL.revokeObjectURL(e.src)],[f.cancelAnimationFrame,({currentTarget:e})=>cancelAnimationFrame(parseInt(e.dataset.animationFrame))],[f.clearInterval,({currentTarget:e})=>clearInterval(parseInt(e.dataset.clearInterval))],[f.clearTimeout,({currentTarget:e})=>clearTimeout(parseInt(e.dataset.timeout))],[f.abortController,({currentTarget:e})=>function(e,t){const n=Ot(e);return n instanceof AbortController&&("string"==typeof t?(n.abort(new Error(t)),!0):(n.abort(t),!0))}(e.dataset.aegisEventController,e.dataset.aegisControllerReason)],[f.open,({currentTarget:e})=>document.querySelector(e.dataset.openSelector).open=!0],[f.close,({currentTarget:e})=>document.querySelector(e.dataset.closeSelector).open=!1],[f.showModal,({currentTarget:e})=>{const t=s(e.dataset.showModalSelector);t instanceof HTMLDialogElement&&t.showModal()}],[f.closeModal,({currentTarget:e})=>{const t=s(e.dataset.closeModalSelector);t instanceof HTMLDialogElement&&t.close()}],[f.showPopover,({currentTarget:e})=>{const t=s(e.dataset.showPopoverSelector);t instanceof HTMLElement&&t.showPopover()}],[f.hidePopover,({currentTarget:e})=>{const t=s(e.dataset.hidePopoverSelector);t instanceof HTMLElement&&t.hidePopover()}],[f.togglePopover,({currentTarget:e})=>{const t=s(e.dataset.togglePopoverSelector);t instanceof HTMLElement&&t.togglePopover()}],[f.print,()=>globalThis.print()],[f.prevent,e=>e.preventDefault()],[f.requestFullscreen,({currentTarget:e})=>{e.dataset.hasOwnProperty(l)?document.getElementById(e.dataset[l]).requestFullscreen():e.requestFullscreen()}],[f.toggleFullscreen,({currentTarget:e})=>{const t=e.dataset.hasOwnProperty(c)?document.getElementById(e.dataset[c]):e;t.isSameNode(document.fullscreenElement)?document.exitFullscreen():t.requestFullscreen()}],[f.exitFullsceen,()=>document.exitFullscreen()]]),p=e=>g.has(e?.toString()),h=e=>g.get(e?.toString()),m=Symbol("signal:watcher:notify"),y=Symbol("signal:currentComputed"),b=Symbol("Signal:subtle:watched"),w=Symbol("Signal:subtle:unwatched"),v=Symbol("signal:initial"),S=Symbol("Signal:isWatched"),E=Symbol("Signal:onWatch"),L=Symbol("Signal:onUnwatch"),T=Symbol("Signal:sources"),P=Symbol("Signal:sinks"),R=Object.is,A=Object.freeze({equals:R});class U{#e;#t;[w]=null;[E]=null;[L]=null;[S]=!1;[P]=new Set;[T]=new Set;constructor(e,t=A){if("object"!=typeof t)throw new TypeError("Invalid options.");this.#t=t.equals??R,this.#e=e,"function"==typeof t?.[b]&&(this[E]=t[b].bind(this)),"function"==typeof t?.[w]&&(this[L]=t[w].bind(this))}get(){const e=C.subtle.currentComputed();return e instanceof k&&!e[T].has(this)&&(e[T].add(this),this[P].add(e)),this.#e}set(e){if(!this.#t(this.#e,e)){this.#e=e;for(const e of C.subtle.introspectSinks(this))e[m](this)}}}class k{#t;#n;#o=!0;#e=v;[b]=null;[w]=null;[E]=null;[L]=null;[S]=!1;[P]=new Set;[T]=new Set;constructor(e,t=A){if("function"!=typeof e)throw new TypeError("Computation must be a function.");if("object"!=typeof t)throw new TypeError("Invalid options.");this.#t=t.equals??R,this.#n=e,"function"==typeof t[b]&&(this[E]=t[b].bind(this)),"function"==typeof t[w]&&(this[L]=t[w].bind(this))}get(){const e=C.subtle.currentComputed();try{if(e!==this&&null!==e&&(e[T].add(this),this[P].add(e)),C[y]=this,this.#o){for(const e of C.subtle.introspectSources(this))e[P].delete(this);this[T].clear();const e=this.#n();if(!this.#t(e,this.#e)){this.#e=e;for(const e of C.subtle.introspectSinks(this))e[m](this)}return this.#o=!1,e}return this.#e}finally{C[y]=e}}[m](e){this.#o=!0,this[T].add(e),e[P].add(this);for(const e of C.subtle.introspectSinks(this))e[m](this)}}class M{#r=!1;#a=new Set;#i;[T]=new Set;constructor(e){if("function"!=typeof e)throw new TypeError(`Notify must be a function but got a ${typeof e}.`);this.#i=e}watch(...e){this.#r=!0;for(const t of e){if(!(t instanceof U||t instanceof k))throw new TypeError("Signal must be an instance of `Signal.State` or `Signal.Computed`.");this[T].has(t)||("function"!=typeof t[E]||t[S]||(t[S]=!0,t[E].call(t)),this[T].add(t),t[P].add(this))}}unwatch(...e){for(const t of e){if(!(t instanceof U||t instanceof k))throw new TypeError("Signal must be an instance of `Signal.State` or `Signal.Computed`.");if("function"==typeof t[L]&&t[S]){1===C.subtle.introspectSinks(t).filter((e=>e instanceof C.subtle.Watcher)).length&&(t[S]=!1,t[L].call(t))}t[P].delete(this),this[T].delete(t)}}getPending(){const e=Array.from(this.#a);return this.#a.clear(),e}[m](e){this.#a.add(e),this.#r&&this.#i.call(this)}}const C={State:U,Computed:k,subtle:{Watcher:M,watched:b,unwatched:w,untrack(e){if("function"!=typeof e)throw new TypeError("Callback must be a function.");{const t=C.subtle.currentComputed();C[y]=null;try{return e()}finally{C[y]=t}}},currentComputed:()=>C[y],introspectSources(e){if(e instanceof k||e instanceof M)return Array.from(e[T]);throw new TypeError("Expected a `Signal.Watcher` or `Signal.Computed`.")},introspectSinks(e){if(e instanceof U||e instanceof k)return Array.from(e[P]);throw new TypeError("Expected a `Signal.State` or `Signal.Computed`.")},hasSinks(e){if(e instanceof U||e instanceof k)return 0!==e[P].size;throw new TypeError("Expected a `Signal.State` or `Signal.Computed`.")},hasSources(e){if(e instanceof k||e instanceof M)return 0!==e[T].size;throw new TypeError("Expected a `Signal.Watcher` or `Signal.Computed`.")}},[y]:null},D="data-aegis-event-",O=D+"on-",F="aegisEventOn",q=new Map,H=new Map,j=D+"once",x=D+"passive",I=D+"capture",W=D+"signal",N=O+"abort",$=O+"blur",B=O+"focus",z=O+"cancel",V=O+"auxclick",G=O+"beforeinput",K=O+"beforetoggle",J=O+"canplay",Q=O+"canplaythrough",_=O+"change",X=O+"click",Y=O+"close",Z=O+"command",ee=O+"contextmenu",te=O+"copy",ne=O+"cuechange",oe=O+"cut",re=O+"dblclick",ae=O+"drag",ie=O+"dragend",se=O+"dragenter",le=O+"dragexit",ce=O+"dragleave",ue=O+"dragover",de=O+"dragstart",fe=O+"drop",ge=O+"durationchange",pe=O+"emptied",he=O+"ended",me=O+"formdata",ye=O+"input",be=O+"invalid",we=O+"keydown",ve=O+"keypress",Se=O+"keyup",Ee=O+"load",Le=O+"loadeddata",Te=O+"loadedmetadata",Pe=O+"loadstart",Re=O+"mousedown",Ae=O+"mouseenter",Ue=O+"mouseleave",ke=O+"mousemove",Me=O+"mouseout",Ce=O+"mouseover",De=O+"mouseup",Oe=O+"wheel",Fe=O+"paste",qe=O+"pause",He=O+"play",je=O+"playing",xe=O+"progress",Ie=O+"ratechange",We=O+"reset",Ne=O+"resize",$e=O+"scroll",Be=O+"scrollend",ze=O+"securitypolicyviolation",Ve=O+"seeked",Ge=O+"seeking",Ke=O+"select",Je=O+"slotchange",Qe=O+"stalled",_e=O+"submit",Xe=O+"suspend",Ye=O+"timeupdate",Ze=O+"volumechange",et=O+"waiting",tt=O+"selectstart",nt=O+"selectionchange",ot=O+"toggle",rt=O+"pointercancel",at=O+"pointerdown",it=O+"pointerup",st=O+"pointermove",lt=O+"pointerout",ct=O+"pointerover",ut=O+"pointerenter",dt=O+"pointerleave",ft=O+"gotpointercapture",gt=O+"lostpointercapture",pt=O+"mozfullscreenchange",ht=O+"mozfullscreenerror",mt=O+"animationcancel",yt=O+"animationend",bt=O+"animationiteration",wt=O+"animationstart",vt=O+"transitioncancel",St=O+"transitionend",Et=O+"transitionrun",Lt=O+"transitionstart",Tt=O+"webkitanimationend",Pt=O+"webkitanimationiteration",Rt=O+"webkitanimationstart",At=O+"webkittransitionend",Ut=O+"error",kt=new C.State([N,$,B,z,V,G,K,J,Q,_,X,Y,Z,ee,te,ne,oe,re,ae,ie,se,le,ce,ue,de,fe,ge,pe,he,me,ye,be,we,ve,Se,Ee,Le,Te,Pe,Re,Ae,Ue,ke,Me,Ce,De,Oe,Fe,qe,He,je,xe,Ie,We,Ne,$e,Be,ze,Ve,Ge,Ke,Je,Qe,_e,Xe,Ye,Ze,et,tt,nt,ot,rt,at,it,st,lt,ct,ut,dt,ft,gt,pt,ht,mt,yt,bt,wt,vt,St,Et,Lt,Tt,Pt,Rt,At,Ut]),Mt=new C.Computed((()=>kt.get().map((e=>`[${CSS.escape(e)}]`)).join(","))),Ct=([e])=>e.startsWith(F);new MutationObserver((e=>{e.forEach((e=>{switch(e.type){case"childList":[...e.addedNodes].filter((e=>e.nodeType===Node.ELEMENT_NODE)).forEach((e=>function(e,{signal:t}={}){return(e instanceof Element&&e.matches(Mt.get())?[e,...e.querySelectorAll(Mt.get())]:e.querySelectorAll(Mt.get())).forEach((e=>function(e,{signal:t,attrFilter:n=Dt}={}){const o=e.dataset;for(const[r,a]of Object.entries(o).filter(Ct))try{const i="on"+r.substring(12);n.hasOwnProperty(i)&&p(a)&&e.addEventListener(i.substring(2).toLowerCase(),h(a),{passive:o.hasOwnProperty("aegisEventPassive"),capture:o.hasOwnProperty("aegisEventCapture"),once:o.hasOwnProperty("aegisEventOnce"),signal:o.hasOwnProperty("aegisEventSignal")?Ft(o.aegisEventSignal):t})}catch(e){reportError(e)}}(e,{signal:t}))),e}(e)));break;case"attributes":"string"==typeof e.oldValue&&p(e.oldValue)&&e.target.removeEventListener(e.attributeName.substring(20),h(e.oldValue),{once:e.target.hasAttribute(j),capture:e.target.hasAttribute(I),passive:e.target.hasAttribute(x)}),e.target.hasAttribute(e.attributeName)&&p(e.target.getAttribute(e.attributeName))&&e.target.addEventListener(e.attributeName.substring(20),h(e.target.getAttribute(e.attributeName)),{once:e.target.hasAttribute(j),capture:e.target.hasAttribute(I),passive:e.target.hasAttribute(x),signal:e.target.hasAttribute(W)?Ft(e.target.getAttribute(W)):void 0})}}))}));const Dt={onAbort:N,onBlur:$,onFocus:B,onCancel:z,onAuxclick:V,onBeforeinput:G,onBeforetoggle:K,onCanplay:J,onCanplaythrough:Q,onChange:_,onClick:X,onClose:Y,onCommand:Z,onContextmenu:ee,onCopy:te,onCuechange:ne,onCut:oe,onDblclick:re,onDrag:ae,onDragend:ie,onDragenter:se,onDragexit:le,onDragleave:ce,onDragover:ue,onDragstart:de,onDrop:fe,onDurationchange:ge,onEmptied:pe,onEnded:he,onFormdata:me,onInput:ye,onInvalid:be,onKeydown:we,onKeypress:ve,onKeyup:Se,onLoad:Ee,onLoadeddata:Le,onLoadedmetadata:Te,onLoadstart:Pe,onMousedown:Re,onMouseenter:Ae,onMouseleave:Ue,onMousemove:ke,onMouseout:Me,onMouseover:Ce,onMouseup:De,onWheel:Oe,onPaste:Fe,onPause:qe,onPlay:He,onPlaying:je,onProgress:xe,onRatechange:Ie,onReset:We,onResize:Ne,onScroll:$e,onScrollend:Be,onSecuritypolicyviolation:ze,onSeeked:Ve,onSeeking:Ge,onSelect:Ke,onSlotchange:Je,onStalled:Qe,onSubmit:_e,onSuspend:Xe,onTimeupdate:Ye,onVolumechange:Ze,onWaiting:et,onSelectstart:tt,onSelectionchange:nt,onToggle:ot,onPointercancel:rt,onPointerdown:at,onPointerup:it,onPointermove:st,onPointerout:lt,onPointerover:ct,onPointerenter:ut,onPointerleave:dt,onGotpointercapture:ft,onLostpointercapture:gt,onMozfullscreenchange:pt,onMozfullscreenerror:ht,onAnimationcancel:mt,onAnimationend:yt,onAnimationiteration:bt,onAnimationstart:wt,onTransitioncancel:vt,onTransitionend:St,onTransitionrun:Et,onTransitionstart:Lt,onWebkitanimationend:Tt,onWebkitanimationiteration:Pt,onWebkitanimationstart:Rt,onWebkittransitionend:At,onError:Ut,once:j,passive:x,capture:I},Ot=e=>H.get(e);const Ft=e=>q.get(e);const qt=!(document.currentScript instanceof HTMLScriptElement),Ht=HTMLScriptElement.supports("importmap"),jt=new Map,xt=["GET","HEAD","DELETE","OPTIONS"],It='meta[name="description"], meta[itemprop="description"], meta[property="og:description"], meta[name="twitter:description"]',Wt=new MutationObserver((e=>e.forEach((e=>bn(e.target))))),Nt=new MutationObserver((e=>e.forEach(Xt))),$t="root",Bt=document,zt=Symbol.for("aegis:navigate:event:close"),Vt=matchMedia("(prefers-reduced-motion: reduce)");let Gt=document.getElementById($t)??document.body,Kt="#"+$t;const Jt="trustedTypes"in globalThis,Qt=e=>Jt&&trustedTypes.isHTML(e),_t="function"==typeof document.startViewTransition?(e,t)=>document.startViewTransition({update:e,types:t}):e=>Promise.try(e);function Xt(e){e instanceof MutationRecord?Xt(e.target):"A"!==e.tagName||e.classList.contains("no-router")||e.hasAttribute(X)?e.querySelectorAll(`a:not(.no-router, [${X}])`).forEach((e=>Kn(e,e.dataset))):Kn(e,e.dataset)}const Yt="aegis:navigate",Zt={navigate:"aegis:router:navigate",back:"aegis:router:back",forward:"aegis:router:forward",reload:"aegis:router:reload",pop:"aegis:router:pop",go:"aegis:router:go",load:"aegis:router:load",submit:"aegis:router:submit"},en=[Zt.back,Zt.forward,Zt.navigate,Zt.submit,Zt.reload,Zt.go];class tn extends CustomEvent{#s;#l;#c=new AsyncDisposableStack;#u=new AbortController;#d=[];#f=[];constructor(t=Yt,n="unknown",{bubbles:o=!1,cancelable:r=!0,detail:a={oldState:e(),oldURL:new URL(location.href)}}={}){super(t,{bubbles:o,cancelable:r,detail:a}),this.#s=n,this.#l=location.href}get aborted(){return this.#u.signal.aborted}get disposed(){return this.#c.disposed}get error(){switch(this.#f.length){case 0:return null;case 1:return this.#f[0];default:return new AggregateError(this.#f)}}get reason(){return this.#s}get signal(){return this.#u.signal}get stack(){return this.#c}get url(){return this.#l}async[zt](){const e=await Promise.allSettled(this.#d).then((e=>(this.#f.push(...e.filter((e=>"rejected"===e.status)).map((e=>e.reason))),this.cancelable&&this.defaultPrevented)));return this.#u.abort(),e}adopt(e,t){return this.#c.adopt(e,t)}abort(e){this.#u.abort(e)}defer(e){this.#c.defer(e)}async disposeAsync(){await this[Symbol.asyncDispose]()}use(e){return this.#c.use(e)}waitUntil(e,{signal:t}={}){const{promise:n,resolve:o,reject:r}=Promise.withResolvers();this.#d.push(n),t instanceof AbortSignal&&!t.aborted&&t.addEventListener("abort",(({target:e})=>{r(e.reason),this.cancelable&&!this.defaultPrevented&&super.preventDefault()}),{once:!0,signal:this.#u.signal}),this.#u.signal.aborted?r(this.#u.signal.reason):t instanceof AbortSignal&&t.aborted?(r(t.reason),this.cancelable&&!this.defaultPrevented&&super.preventDefault()):!this.defaultPrevented&&e instanceof Function?Promise.try((()=>e(this,{signal:t instanceof AbortSignal?AbortSignal.any([t,this.#u.signal]):this.#u.signal,timestamp:performance.now(),stack:this.#c}))).then(o,r):!this.defaultPrevented&&e instanceof Promise&&e.then(o,r)}[Symbol.toStringTag](){return"NavigationEvent"}async[Symbol.asyncDispose](){this.#u.signal.aborted||this.#u.abort(new DOMException("The stack of the event was disposed.","AbortError")),this.#c.disposed||await this.#c.disposeAsync()}static get defaultType(){return Yt}static get reasons(){return Zt}}const nn=Jt?trustedTypes.createPolicy("aegis-router#html",{createHTML:e=>e}):Object.freeze({createPolicy:e=>e});async function on(e){const o=t(e.state??{}),r=new tn(Yt,Zt.pop,{detail:{newState:e.state,oldState:null,oldURL:new URL(location.href),method:"GET",formData:null}});try{if(Bt.dispatchEvent(r),!await r[zt]()){const e=history.scrollRestoration,[t]=await Promise.all([Pn(new URL(location.href)),n(o)]);history.scrollRestoration="auto",fn(t),history.scrollRestoration=e}}finally{requestAnimationFrame(r[Symbol.asyncDispose].bind(r))}}function rn(e){e instanceof CSSStyleSheet&&!document.adoptedStyleSheets.includes(e)?document.adoptedStyleSheets=[...document.adoptedStyleSheets,e]:Array.isArray(e)&&0!==e.length&&(document.adoptedStyleSheets=[...document.adoptedStyleSheets,...e.filter((e=>e instanceof CSSStyleSheet&&!document.adoptedStyleSheets.includes(e)))])}function an(e={}){const t=document.createElement("meta");return Object.entries(e).forEach((([e,n])=>t.setAttribute(e,n))),t}function sn(e,{relList:t=[],crossOrigin:n="anonymous",referrerPolicy:o="no-referrer",fetchPriority:r="auto",signal:a,as:i,integrity:s,media:l,type:c}={}){const{promise:u,resolve:d,reject:f}=Promise.withResolvers(),g=document.createElement("link");if(!(a instanceof AbortSignal&&a.aborted)){if(g.relList.add(...t),"string"==typeof r&&(g.fetchPriority=r),"string"==typeof n&&(g.crossOrigin=n),"string"==typeof c&&(g.type=c),"string"==typeof l?g.media=l:l instanceof MediaQueryList&&(g.media=l.media),"string"==typeof i&&(g.as=i),"string"==typeof s&&(g.integrity=s),g.relList.contains("preload")||g.relList.contains("modulepreload")){const t=new AbortController,n=a instanceof AbortSignal?AbortSignal.any([t.signal,a]):t.signal;return a instanceof AbortSignal&&a.addEventListener("abort",(({target:e})=>{f(e.reason)}),{signal:t.signal,once:!0}),g.referrerPolicy=o,g.addEventListener("load",(()=>{d(),t.abort()}),{signal:n}),g.addEventListener("error",(()=>{f(new DOMException(`Error loading ${e}`,"NotFoundError")),t.abort()}),{signal:n}),g.href=function(e){if(ln(e))return URL.parse(e,document.baseURI);if(Ht){if(qt)return import.meta.resolve(e);throw new TypeError("Cannot resolve a module specifier outside of a module script.")}throw new TypeError("Importmaps and module specifiers are not supported")}(e),document.head.append(g),u.then((()=>g.remove())).catch((e=>{g.isConnected&&g.remove(),reportError(e)}))}return g.href=e,document.head.append(g),d(),u}f(a.reason)}function ln(e){switch(e[0]){case"/":case".":return!0;case"h":return"http"===e.substring(0,"4")&&URL.canParse(e);default:return!1}}function cn(e){if(e.target.classList.contains("no-router")||e.target.hasAttribute(X))e.target.removeEventListener(cn);else if(e.isTrusted&&e.currentTarget.href.startsWith(location.origin)&&!(e.metaKey||e.ctrlKey||e.shiftKey)){e.preventDefault();const t=function(e){const t=Object.entries(e.dataset).filter((([e])=>e.startsWith("aegisState"))).map((([e,t])=>[e[10].toLowerCase()+e.substring(11),t]));return Object.fromEntries(t)}(e.currentTarget);Rn(e.currentTarget.href,t,{integrity:e.currentTarget.dataset.integrity,cache:e.currentTarget.dataset.cache,referrerPolicy:e.currentTarget.dataset.referrerPolicy})}}async function un(t){if(t.target.classList.contains("no-router")||t.target.hasAttribute(_e))t.target.removeEventListener("submit",un);else if(t.isTrusted&&t.target.action.startsWith(location.origin)){t.preventDefault();const{target:n,submitter:o}=t,{method:r,action:a}=n,i=new FormData(n),s=new tn(Yt,Zt.submit,{detail:{oldState:e(),oldURL:new URL(location.href),formData:i}});try{if(o instanceof HTMLButtonElement&&(o.disabled=!0),Bt.dispatchEvent(s),await s[zt]())return;if(xt.includes(r.toUpperCase())){const t=new URL(a),n=new URLSearchParams(i);for(const[e,o]of n.entries())t.searchParams.append(e,o);await Rn(t,e(),{method:r})}else await Rn(a,e(),{method:r,formData:i})}finally{o instanceof HTMLButtonElement&&(o.disabled=!1),requestAnimationFrame(s[Symbol.asyncDispose].bind(s))}}}async function dn(t,{signal:n,method:o="GET",body:r,integrity:a,cache:i="default",referrerPolicy:s="no-referrer"}={}){const l=await fetch(t,{method:o,body:xt.includes(o.toUpperCase())?null:r,headers:{Accept:"text/html"},cache:i,referrerPolicy:s,integrity:a,signal:n}).catch((e=>e));if(l.ok){const e=await l.text();return Document.parseHTMLUnsafe(nn.createHTML(e))}return l instanceof Error?l:async function(t=location,n="GET",{signal:o,formData:r,integrity:a}={}){const i=performance.now(),s=new AsyncDisposableStack;try{if("string"==typeof hn)return await pn(hn,{url:t,matches:null,signal:o,method:n,formData:r,timestamp:i,integrity:a});hn instanceof Function&&fn(hn({timestamp:i,state:e(),url:t,matches:null,signal:o,method:n,formData:r,integrity:a}))}finally{s.disposeAsync()}}(t,o,{signal:n})}async function fn(t){const n=performance.now();await _t((()=>{if(t instanceof Document){0!==t.head.childElementCount&&(qn(t.title),Hn(t.querySelector(It)?.content));const e="string"==typeof Kt?t.body.querySelector(Kt)??t.body:t.body;Gt.replaceChildren(...e.childNodes)}else t instanceof HTMLTemplateElement?Gt.replaceChildren(t.content):t instanceof Function&&t.prototype instanceof HTMLElement?Gt.replaceChildren(new t({state:e(),url:new URL(location.href),timestamp:n})):t instanceof Node?Gt.replaceChildren(t):t instanceof Function?fn(t()):"string"==typeof t?Gt.setHTMLUnsafe(nn.createHTML(t)):Qt(t)?Gt.setHTMLUnsafe(t):t instanceof Error?(reportError(t),Gt.textContent=t.message):t instanceof URL?Rn(t):null!=t&&(Gt.textContent=t)}));const o=new tn(Yt,Zt.load,{cancelable:!1});if(Promise.try((()=>Bt.dispatchEvent(o))).finally(o[Symbol.asyncDispose].bind(o)),"manual"===history.scrollRestoration)if(location.hash.length>1){(document.getElementById(location.hash.substring(1))??document.body).scrollIntoView({behavior:Vt.matches?"instant":"smooth"})}else{const e=Gt.querySelector("[autofocus]");e instanceof Element?e.focus():document.body.scrollIntoView({behavior:Vt.matches?"instant":"smooth"})}}async function gn({title:e,description:t}={},{state:n,matches:o,params:r,url:a,signal:i}={}){"string"==typeof e?qn(e):"function"==typeof e&&qn(await e({state:n,matches:o,params:r,url:a,signal:i})),"string"==typeof t?Hn(t):"function"==typeof t&&Hn(await t({state:n,matches:o,params:r,url:a,signal:i}))}async function pn(t,{state:n=e(),matches:o={},params:r={},stack:a,signal:i,...s}={}){const l=await Promise.try((()=>t instanceof Function?t(s):"string"==typeof t||l instanceof URL?ln(t)?import(URL.parse(t,document.baseURI)):import(t):new TypeError("Invalid module src."))).catch((e=>e)),c=new URL(location.href),u=performance.now();if(l instanceof URL)await Rn(l,n,s);else{if(l instanceof Error)return l.message;if(!("default"in l))return new Error(`${t} has no default export.`);if(l.default instanceof Function&&l.default.prototype instanceof HTMLElement)return"string"!=typeof customElements.getName(l.default)&&customElements.define(l.default[Symbol.for("tagName")]??`aegis-el-${crypto.randomUUID()}`,l.default),void 0!==l.styles&&rn(l.styles),gn(l,{state:n,matches:o,params:r,url:c,signal:i}),new l.default({url:c,matches:o,params:r,state:n,stack:a,timestamp:u,signal:zn({signal:i}),...s});if(l.default instanceof Function)return void 0!==l.styles&&rn(l.styles),gn(l,{state:n,matches:o,params:r,url:c,signal:i}),await l.default({url:c,matches:o,params:r,state:n,stack:a,timestamp:u,signal:zn({signal:i}),...s});if(l.default instanceof Node||l.default instanceof Error)void 0!==l.styles&&rn(l.styles),gn(l,{state:n,matches:o,params:r,url:c,signal:i}),fn(l.default);else{if(!(l.default instanceof URL&&l.default.origin===location.origin))throw new TypeError(`${t} has a missing or invalid default export.`);Rn(l.default)}}}let hn=({url:e=location,method:t="GET"})=>{const n=document.createElement("div"),o=document.createElement("p"),r=document.createElement("a");return o.textContent=`${t.toUpperCase()} ${e.href} [404 Not Found]`,r.href=document.baseURI,r.textContent="Go Home",r.addEventListener("click",cn),n.append(o,r),n};const mn=e=>jt.keys().find((t=>t.test(e))),yn=e=>hn=e;function bn(e=document.body,{signal:t}={}){if("string"==typeof e)bn(document.querySelector(e),{signal:t});else{if(!(e instanceof HTMLElement||e instanceof ShadowRoot))throw new TypeError("Cannot intercept navigation on a non-Element. Element or selector is required.");e instanceof HTMLAnchorElement&&!e.classList.contains("no-router")&&!e.hasAttribute(X)&&e.href.startsWith(location.origin)?e.addEventListener("click",cn,{signal:t,passive:!1}):e instanceof HTMLFormElement&&!e.classList.contains("no-router")&&!e.hasAttribute(_e)&&e.action.startsWith(location.origin)?(e.addEventListener("submit",un,{signal:t,passive:!1}),e.querySelectorAll(`a[href]:not([rel~="external"], [download], .no-router, [${X}])`).forEach((e=>{e.href.startsWith(location.origin)&&e.addEventListener("click",cn,{passive:!1,signal:t})}))):(e.querySelectorAll(`a[href]:not([rel~="external"], [download], .no-router, [${X}])`).forEach((e=>{e.href.startsWith(location.origin)&&e.addEventListener("click",cn,{passive:!1,signal:t})})),e.querySelectorAll(`form:not(.no-router, [${_e}])`).forEach((e=>{e.addEventListener("submit",un,{passive:!1,signal:t})})))}}function wn(e,t){if(e instanceof HTMLElement)Gt=e,Kt="string"==typeof t?t:e.hasAttribute("id")?`#${e.id}`:null,"string"!=typeof Gt.ariaLive&&(Gt.ariaLive="assertive");else{if("string"!=typeof e)throw new TypeError("Cannot set root to a non-html element.");wn(document.querySelector(e),e)}}function vn(e=document.body,{signal:t}={}){if(t instanceof AbortSignal&&t.aborted)throw t.reason;if("string"==typeof e)vn(document.querySelector(e),{signal:t});else{if(!(e instanceof HTMLElement||e instanceof ShadowRoot))throw new TypeError("Cannot observe link on a non-Element. Requires an Element or selector.");bn(e,{signal:t}),Wt.observe(e,{childList:!0,subtree:!0}),t instanceof AbortSignal&&t.addEventListener("abort",(()=>Wt.disconnect()),{once:!0})}}function Sn(e,t=location.origin){return e instanceof URLPattern?e:"string"==typeof e?new URLPattern(e,t):e instanceof URL?new URLPattern(e.href):null}function En(e,t,{fallbackValue:n="",baseURL:o=location.origin}={}){const r=Sn(e,o);return Object.freeze({toString:()=>r.exec(location.href)?.pathname.groups?.[t]??n,[Symbol.toPrimitive](e="default"){return"number"===e?parseFloat(this.toString()):this.toString()}})}async function Ln(e,t,{preload:n=!1,signal:o,baseURL:r=location.origin,crossOrigin:a="anonymous",referrerPolicy:i="no-referrer"}={}){if(o instanceof AbortSignal&&o.aborted)throw o.reason;if("string"==typeof e)await Ln(new URLPattern(e,r),t,{preload:n,signal:o,crossOrigin:a,referrerPolicy:i});else if(e instanceof URL)await Ln(new URLPattern(e.href),t,{preload:n,baseURL:r,signal:o,crossOrigin:a,referrerPolicy:i});else{if(!("string"==typeof t||t instanceof Function||t instanceof URL))throw new TypeError("Module source/handler must be a module specifier/url or handler function.");if(!(e instanceof URLPattern))throw new TypeError(`Could not convert ${e} to a URLPattern.`);jt.set(e,t),n&&("string"==typeof t||t instanceof URL)&&await xn(t,{signal:o,crossOrigin:a,referrerPolicy:i}),o instanceof AbortSignal&&o.addEventListener("abort",Tn,{once:!0})}}function Tn(){jt.clear()}async function Pn(t=location,{method:n="GET",state:o=e(),formData:r=new FormData,cache:a="default",referrerPolicy:i="no-referrer",integrity:s,signal:l}={}){const c=performance.now(),u=new AsyncDisposableStack;try{if(null===t)throw new Error("Invalid path.");if(t instanceof URL){const e=mn(t);if(e instanceof URLPattern){const a=jt.get(e),i=e.exec(t),l="object"==typeof i?{...i.protocol.groups,...i.username.groups,...i.password.groups,...i.hostname.groups,...i.port.groups,...i.pathname.groups,...i.search.groups,...i.hash.groups}:{};return delete l[0],await pn(a,{url:t,matches:i,params:l,state:o,stack:u,method:n,formData:r,integrity:s,timestamp:c})}return await dn(t,{method:n,signal:zn({signal:l}),body:r,state:o,stack:u,integrity:s,cache:a,referrerPolicy:i})}return await Pn(URL.parse(t,document.baseURI),{signal:l,method:n,formData:r,state:o,stack:u,integrity:s,cache:a,referrerPolicy:i})}finally{requestAnimationFrame(u.disposeAsync.bind(u))}}async function Rn(o,r=e(),{signal:a,method:i="GET",cache:s="default",referrerPolicy:l="no-referrer",formData:c,integrity:u,scrollRestoration:d=null}={}){if(null===o)throw new TypeError("URL cannot be null.");if(a instanceof AbortSignal&&a.aborted)throw a.reason;if(!(o instanceof URL))return await Rn(URL.parse(o,document.baseURI),r,{signal:a,method:i,cache:s,referrerPolicy:l,formData:c,integrity:u});if(c instanceof FormData&&xt.includes(i.toUpperCase())){const e=new URLSearchParams(c);for(const[t,n]of e)o.searchParams.append(t,n);return await Rn(o,r,{signal:a,method:i,cache:s,referrerPolicy:l,integrity:u})}if(o.href!==location.href){const f=e(),g=new tn(Yt,Zt.navigate,{detail:{newState:r,oldState:f,oldURL:new URL(location.href),newURL:o,method:i,formData:c}});try{const e=t(r,f);if(Bt.dispatchEvent(g),await g[zt]())return null;{"string"==typeof d&&(history.scrollRestoration=d),history.pushState(r,"",o);const t=await Pn(o,{signal:a,method:i,cache:s,referrerPolicy:l,formData:c,state:r,integrity:u});return await n(e),fn(t),t}}catch(e){An(),reportError(e)}finally{requestAnimationFrame(g[Symbol.asyncDispose].bind(g))}}}async function An({signal:e}={}){const t=new tn(Yt,Zt.back);Bt.dispatchEvent(t),await t[zt]().then((async t=>{t||(history.back(),await Vn({signal:e,reasons:[Zt.load]}))})).finally(t[Symbol.asyncDispose].bind(t))}async function Un({signal:e}={}){const t=new tn(Yt,Zt.forward);Bt.dispatchEvent(t),await t[zt]().then((async t=>{t||(history.forward(),await Vn({signal:e,reasons:[Zt.load]}))})).finally(t[Symbol.asyncDispose].bind(t))}async function kn(e=0,{signal:t}={}){const n=new tn(Yt,Zt.go);Bt.dispatchEvent(n),await n[zt]().then((async n=>{n||(history.go(e),await Vn({signal:t,reasons:[Zt.load]}))})).finally(n[Symbol.asyncDispose].bind(n))}function Mn(){const e=new tn(Yt,Zt.reload);Bt.dispatchEvent(e),e[zt]().then((e=>{e||history.go(0)})).finally(e[Symbol.asyncDispose].bind(e))}function Cn({signal:e}={}){globalThis.addEventListener("popstate",on,{signal:e})}function Dn(){globalThis.removeEventListener("popstate",on)}function On(e="auto"){history.scrollRestoration=e}function Fn(){return history.scrollRestoration}function qn(e){"string"==typeof e&&(document.title=e)}function Hn(e){if("string"==typeof e&&0!==e.length){document.head.querySelectorAll(It).forEach((e=>e.remove())),document.head.append(an({name:"description",content:e}),an({itemprop:"description",content:e}),an({property:"og:description",content:e}),an({name:"twitter:description",content:e}))}}async function jn(e,{preload:t=!1,observePreloads:n=!1,inteceptRoot:o=document.body,baseURL:r=location.origin,crossOrigin:a="anonymous",referrerPolicy:i="no-referrer",fetchPriority:s="low",as:l="script",scrollRestoration:c="manual",notFound:u,rootEl:d,transition:{keyframes:f,options:{duration:g=150,easing:p="ease-out",delay:h=0,composite:m="replace",fill:y="both"}={}}={},signal:b}={}){if("string"==typeof e)await jn(document.querySelector(e),{preload:t,observePreloads:n,inteceptRoot:o,baseURL:r,notFound:u,rootEl:d,transition:{keyframes:f,options:{duration:g,easing:p,delay:h,composite:m,fill:y}},signal:b});else if(e instanceof HTMLScriptElement&&"application/json"===e.type)await jn(JSON.parse(e.textContent),{preload:t,observePreloads:n,inteceptRoot:o,baseURL:r,notFound:u,rootEl:d,transition:{keyframes:f,options:{duration:g,easing:p,delay:h,composite:m,fill:y}},signal:b});else{if("object"!=typeof e||null===e||Object.getPrototypeOf(e)!==Object.prototype)throw new TypeError("Routes must be a plain object, a script with JSON, or the selector to such a script.");if("string"==typeof o)jn(e,{preload:t,observePreloads:n,inteceptRoot:document.querySelector(o),baseURL:r,notFound:u,rootEl:Gt,signal:b});else if("string"==typeof d)jn(e,{preload:t,observePreloads:n,inteceptRoot:o,baseURL:r,notFound:u,rootEl:document.querySelector(d),transition:{keyframes:f,options:{duration:g,easing:p,delay:h,composite:m,fill:y}},signal:b});else{if(!(o instanceof HTMLElement||o instanceof ShadowRoot))throw new TypeError("`interceptRoot` must be a selector, HTMLElement, or ShadowRoot.");if(!(d instanceof HTMLElement||d instanceof ShadowRoot))throw new TypeError("`rootEl` must be a selector, HTMLElement, or ShadowRoot.");{const s={preload:t,signal:b,crossOrigin:a,referrerPolicy:i,baseURL:r},l=Object.entries(e).map((([e,t])=>Ln(e,t,s)));if(n&&Jn(o),"string"==typeof u&&(yn(u),t&&xn(u)),d instanceof HTMLElement||d instanceof ShadowRoot||"string"==typeof d?wn(d):Gt instanceof HTMLElement&&"string"!=typeof Gt.ariaLive&&(Gt.ariaLive="assertive"),(o instanceof HTMLElement||o instanceof ShadowRoot||"string"==typeof o)&&vn(o,{signal:b}),Cn({signal:b}),"object"==typeof f&&null!==f){const e=[Zt.navigate,Zt.go,Zt.back,Zt.forward];Bt.addEventListener(Yt,(t=>{!t.defaultPrevented&&e.includes(t.reason)?t.waitUntil((()=>Gt.animate(f,{duration:g,easing:p,fill:y,delay:h,composite:m,direction:"normal"}).finished),{signal:b}):t.reason===Zt.load&&t.waitUntil((()=>Gt.animate(f,{duration:g,easing:p,fill:y,delay:h,composite:m,direction:"reverse"}).finished),{signal:b})}),{signal:b})}if(await Promise.allSettled(l).then((e=>{const t=e.filter((e=>"rejected"===e.status));if(1===t.length)throw t[0].reason;if(0!==t.length)throw new AggregateError(t.map((e=>e.reason)),"Error initializing module routes.")})),jt.keys().some((e=>e.test(location.href)))){const e=await Pn(new URL(location.href));On(c),fn(e)}}}}return zn({signal:b})}async function xn(e,{crossOrigin:t="anonymous",referrerPolicy:n="no-referrer",fetchPriority:o="low",as:r="script",signal:a,integrity:i}={}){await sn(e,{relList:["modulepreload"],crossOrigin:t,referrerPolicy:n,fetchPriority:o,as:r,signal:a,integrity:i})}async function In(e,{crossOrigin:t="anonymous",referrerPolicy:n="no-referrer",fetchPriority:o="auto",signal:r,as:a,integrity:i,media:s,type:l}={}){await sn(e,{relList:["preload"],crossOrigin:t,referrerPolicy:n,fetchPriority:o,as:a,signal:r,type:l,media:s,integrity:i})}function Wn(e,{referrerPolicy:t="no-referrer"}={}){const n=document.createElement("link");n.referrerPolicy=t,n.relList.add("prefetch"),n.href=e,document.head.append(n)}async function Nn(e,{crossOrigin:t="anonymous",referrerPolicy:n="no-referrer"}={}){const o=e instanceof URL?e:URL.parse(e);if(!(o instanceof URL))throw new TypeError(`Invalid origin: ${e}.`);if(o.href!==`${o.origin}/`)throw new TypeError("Preconnect requires only the origin of a URL.");await sn(o.origin,{relList:["preconnect"],crossOrigin:t,referrerPolicy:n,fetchPriority:null,signal:null})}async function $n(e){const t=URL.parse(e);t instanceof URL&&t.origin===`${t.origin}/`&&await sn(e,{relList:["dns-prefetch"],crossOrigin:null,referrerPolicy:null,fetchPriority:null,signal:null})}function Bn({signal:e,reasons:t=en}={}){if("string"==typeof t)return Bn({signal:e,reasons:[t]});if(Array.isArray(t)&&0!==t.length){if(e instanceof AbortSignal&&e.aborted)throw e.reason;{const n=new AbortController;return e instanceof AbortSignal&&e.addEventListener("abort",(({target:e})=>{n.abort(e.reason)}),{once:!0,signal:n.signal}),Bt.addEventListener(Yt,(e=>{t.includes(e.reason)&&setTimeout(n.abort.bind(n),50,`Navigated away from ${location.href}.`)}),{passive:!0,signal:n.signal}),n}}throw new TypeError("`reasosn` must be an array of reasons for the naviation event.")}function zn({signal:e,reasons:t=en}={}){return Bn({signal:e,reasons:t}).signal}async function Vn({signal:e,reasons:t=en}={}){const{resolve:n,reject:o,promise:r}=Promise.withResolvers();if("string"==typeof t)return Vn({signal:e,reasons:[t]});if(e instanceof AbortSignal&&e.aborted)o(e.reason);else if(Array.isArray(t)&&0!==t.length){const r=new AbortController;document.addEventListener(Yt,(e=>{t.includes(e.reason)&&(n(new URL(location.href)),r.abort())}),{signal:r.signal}),e instanceof AbortSignal&&e.addEventListener("abort",(({target:e})=>{o(e.reason),r.abort(e.reason)}),{once:!0,signal:r.signal})}else o(new TypeError("`reasosn` must be an array of reasons for the naviation event."));return r}const Gn=async({signal:e})=>await Vn({signal:e,reasons:[Zt.load]});async function Kn(e,{crossOrigin:t="anonymous",referrerPolicy:n="no-referrer",fetchPriority:o="high",signal:r}={}){const{resolve:a,reject:i,promise:s}=Promise.withResolvers();"string"==typeof e?await Promise.all(Array.from(document.querySelectorAll(e),(e=>Kn(e)))).then(a,i):e instanceof HTMLElement&&!e.classList.contains("no-router")&&"string"==typeof e.href&&e.origin===location.origin&&0===e.download.length&&URL.canParse(e.href)?e.addEventListener("mouseover",(async({currentTarget:e})=>{const i=mn(e.href);i instanceof URLPattern?(await xn(jt.get(i),{fetchPriority:o,referrerPolicy:n,crossOrigin:t,integrity:e.dataset.integrity,signal:r}),a()):(await In(e.href,{fetchPriority:o,crossOrigin:t,referrerPolicy:n,as:e.dataset.preloadAs??"fetch",type:e.dataset.preloadType??"text/html",integrity:e.dataset.integrity,signal:r}),a())}),{once:!0,passive:!0,signal:r}):a(),await s}function Jn(e,t=document.documentElement){if("string"==typeof e)Jn(t.querySelector(e));else{if(!(e instanceof HTMLElement||e instanceof ShadowRoot))throw new TypeError("`observePreloadsOn` requires a selector or HTMLElement or ShadowRoot.");Nt.observe(e,{childList:!0,subtree:!0}),Xt(e)}}function Qn(e,t=document.documentElement){if("string"==typeof e)Qn(t.querySelector(e));else{if(!(e instanceof HTMLElement||e instanceof ShadowRoot))throw new TypeError("`observe` requires a selector or HTMLElement or ShadowRoot.");vn(e),Jn(e)}}async function _n({signal:e}={}){const{resolve:t,promise:n,reject:o}=Promise.withResolvers(),r=new AbortController,a=new AbortController;return e instanceof AbortSignal&&(e.aborted?o(e.reason):e.addEventListener("abort",(({target:e})=>{o(e.reason),r.abort(e.reason),a.abort(e.reason)}),{signal:a.signal})),Bt.addEventListener(Yt,(e=>{if([Zt.navigate,Zt.back,Zt.forward,Zt.go].includes(e.reason)){r.abort();const e=performance.now();Bt.addEventListener(Yt,(n=>{n.reason===Zt.load&&(t(performance.now()-e),a.abort())}),{signal:a.signal})}}),{signal:r.signal}),n}export{tn as AegisNavigationEvent,Zt as EVENT_TYPES,Yt as NAV_EVENT,Cn as addPopstateListener,An as back,Tn as clearPaths,$n as dnsPrefetch,mn as findPath,Un as forward,Pn as getModule,Bn as getNavController,zn as getNavSignal,Fn as getScrollRestoration,En as getURLPath,Sn as getURLPattern,kn as go,jn as init,bn as interceptNav,Rn as navigate,Qn as observe,vn as observeLinksOn,Jn as observePreloadsOn,Nn as preconnect,Wn as prefetch,In as preload,xn as preloadModule,Kn as preloadOnHover,Ln as registerPath,Mn as reload,Dn as removeListener,yn as set404,Hn as setDescription,wn as setRoot,On as setScrollRestoration,qn as setTitle,_n as timeNavigation,a as url,Gn as whenLoaded,Vn as whenNavigated}; //# sourceMappingURL=router.mjs.map