@kitbag/router 0.17.1 → 0.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kitbag-router.d.ts +3 -2
- package/dist/kitbag-router.js +772 -638
- package/dist/kitbag-router.umd.cjs +3 -3
- package/package.json +12 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(A,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],c):(A=typeof globalThis<"u"?globalThis:A||self,c(A["@kitbag/router"]={},A.Vue))})(this,function(A,c){"use strict";var so=Object.defineProperty;var co=(A,c,N)=>c in A?so(A,c,{enumerable:!0,configurable:!0,writable:!0,value:N}):A[c]=N;var F=(A,c,N)=>co(A,typeof c!="symbol"?c+"":c,N);function N(e){return typeof e!="string"?!1:/^(https?:\/\/|\/).*/g.test(e)}function Ce(e){return N(e)?e:`/${e}`}class Ze extends Error{constructor(t){super(`Invalid Param "${t}": Router does not support multiple params by the same name. All param names must be unique.`)}}class et extends Error{constructor(t){super(`Child property on meta for ${t} conflicts with the parent meta.`)}}class X extends Error{constructor(){super("Router not installed")}}class tt extends Error{constructor(t,r){super(`useRoute called with incorrect route. Given ${t}, expected ${r}`)}}const rt=Symbol();function ye(){const e=c.inject(rt);if(!e)throw new X;return e}function le(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W(e){return typeof e=="string"&&e.length>0}function ge(e){return{value:W(e)?e.replace(/^#*/,""):void 0}}function lr(e,t){return ge(`${e.value??""}${t.value??""}`)}function hr(e,t){return dr(e,t),{...e,...t}}function dr(e,t){const r=Object.keys(e).find(n=>n in t&&typeof t[n]!=typeof e[n]);if(r)throw new et(r)}function ae(e){return Array.isArray(e)?e:[e]}function nt(e,t){return e.filter(r=>t===r).length}function se(...e){const t=e.flatMap(r=>Array.isArray(r)?r:Object.keys(r).map(pr));for(const r of t)if(nt(t,r)>1)throw new Ze(r)}function pr(e){return e.startsWith("?")?e.slice(1):e}function mr(e,t){return se(e.params,t.params),{value:`${e.value}${t.value}`,params:{...e.params,...t.params}}}function Rr(e,t){return se(e.params,t.params),{value:[e.value,t.value].filter(W).join("&"),params:{...e.params,...t.params}}}function yr(e,t){return se(e,t),{...e,...t}}function gr(e){return"host"in e&&!!e.host}function ot(e){return"parent"in e&&!!e.parent}function at(e){return"component"in e&&!!e.component}function st(e){return"props"in e&&typeof e.props=="function"}function ct(e){return"components"in e&&!!e.components}function ut(e){return"props"in e&&typeof e.props=="object"}function wr(e){return"state"in e&&!!e.state}function it(e,t){return{...t,path:mr(e.path,t.path),query:Rr(e.query,t.query),meta:hr(e.meta,t.meta),state:yr(e.state,t.state),hash:lr(e.hash,t.hash),matches:[...e.matches,t.matched],host:e.host,depth:e.depth+1}}function xe(){return typeof window<"u"&&typeof window.document<"u"}class J extends Error{}const G="[",z="]";function Er(e){return e!==String&&e!==Boolean&&e!==Number&&e!==Date}function vr(e){return typeof e=="function"&&Er(e)}function we(e){return typeof e=="object"&&"get"in e&&typeof e.get=="function"&&"set"in e&&typeof e.set=="function"}function ft(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Pr(e){return we(e)&&e.defaultValue!==void 0}function br(e,t){return pt(e,t)}function Sr(e,t){return e[t]??String}const j={invalid:e=>{throw new J(e)}},lt={get:e=>e,set:(e,{invalid:t})=>{if(typeof e!="string")throw t();return e}},Be={get:(e,{invalid:t})=>{if(e==="true")return!0;if(e==="false")return!1;throw t()},set:(e,{invalid:t})=>{if(typeof e!="boolean")throw t();return e.toString()}},Ve={get:(e,{invalid:t})=>{const r=Number(e);if(isNaN(r))throw t();return r},set:(e,{invalid:t})=>{if(typeof e!="number")throw t();return e.toString()}},ht={get:(e,{invalid:t})=>{const r=new Date(e);if(isNaN(r.getTime()))throw t();return r},set:(e,{invalid:t})=>{if(typeof e!="object"||!(e instanceof Date))throw t();return e.toISOString()}},dt={get:(e,{invalid:t})=>{try{return JSON.parse(e)}catch{throw t()}},set:(e,{invalid:t})=>{try{return JSON.stringify(e)}catch{throw t()}}};function Ar(e,t){switch(typeof t){case"string":return lt.get(e,j)===t;case"number":return Ve.get(e,j)===t;case"boolean":return Be.get(e,j)===t;default:return!1}}function Z(e,t,r=!1){if(e===void 0||!W(e)){if(Pr(t))return t.defaultValue;if(r)return;throw new J}if(t===String)return lt.get(e,j);if(t===Boolean)return Be.get(e,j);if(t===Number)return Ve.get(e,j);if(t===Date)return ht.get(e,j);if(t===JSON)return dt.get(e,j);if(vr(t))return t(e,j);if(we(t))return t.get(e,j);if(t instanceof RegExp){if(t.test(e))return e;throw new J}if(ft(t)){if(Ar(e,t))return t;throw new J}return e}function kr(e,t,r=!1){try{return Z(e,t,r)}catch(n){if(n instanceof J)return;throw n}}function Ur(e,t,r=!1){try{return ee(e,t,r)}catch(n){if(n instanceof J)return;throw n}}function ee(e,t,r=!1){if(e===void 0){if(r)return"";throw new J}if(t===Boolean)return Be.set(e,j);if(t===Number)return Ve.set(e,j);if(t===Date)return ht.set(e,j);if(t===JSON)return dt.set(e,j);if(we(t))return t.set(e,j);if(ft(t)){if(t!==e)throw new J;return e.toString()}try{return e.toString()}catch{throw new J}}function pt(e,t){return we(e)?{...e,defaultValue:t??e.defaultValue}:{get:r=>Z(r,e),set:r=>ee(r,e),defaultValue:t}}function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},K.apply(null,arguments)}var H;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(H||(H={}));var ce=process.env.NODE_ENV!=="production"?function(e){return Object.freeze(e)}:function(e){return e};function te(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}var Ee="beforeunload",Lr="hashchange",mt="popstate";function Rt(e){e===void 0&&(e={});var t=e,r=t.window,n=r===void 0?document.defaultView:r,o=n.history;function a(){var m=n.location,h=m.pathname,v=m.search,U=m.hash,C=o.state||{};return[C.idx,ce({pathname:h,search:v,hash:U,state:C.usr||null,key:C.key||"default"})]}var s=null;function f(){if(s)y.call(s),s=null;else{var m=H.Pop,h=a(),v=h[0],U=h[1];if(y.length)if(v!=null){var C=R-v;C&&(s={action:m,location:U,retry:function(){S(C*-1)}},S(C))}else process.env.NODE_ENV!=="production"&&te(!1,"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.");else k(m)}}n.addEventListener(mt,f);var l=H.Pop,i=a(),R=i[0],P=i[1],x=ue(),y=ue();R==null&&(R=0,o.replaceState(K({},o.state,{idx:R}),""));function p(m){return typeof m=="string"?m:re(m)}function g(m,h){return h===void 0&&(h=null),ce(K({pathname:P.pathname,hash:"",search:""},typeof m=="string"?he(m):m,{state:h,key:Pe()}))}function u(m,h){return[{usr:m.state,key:m.key,idx:h},p(m)]}function d(m,h,v){return!y.length||(y.call({action:m,location:h,retry:v}),!1)}function k(m){l=m;var h=a();R=h[0],P=h[1],x.call({action:l,location:P})}function w(m,h){var v=H.Push,U=g(m,h);function C(){w(m,h)}if(d(v,U,C)){var V=u(U,R+1),$=V[0],_=V[1];try{o.pushState($,"",_)}catch{n.location.assign(_)}k(v)}}function E(m,h){var v=H.Replace,U=g(m,h);function C(){E(m,h)}if(d(v,U,C)){var V=u(U,R),$=V[0],_=V[1];o.replaceState($,"",_),k(v)}}function S(m){o.go(m)}var L={get action(){return l},get location(){return P},createHref:p,push:w,replace:E,go:S,back:function(){S(-1)},forward:function(){S(1)},listen:function(h){return x.push(h)},block:function(h){var v=y.push(h);return y.length===1&&n.addEventListener(Ee,ve),function(){v(),y.length||n.removeEventListener(Ee,ve)}}};return L}function Cr(e){e===void 0&&(e={});var t=e,r=t.window,n=r===void 0?document.defaultView:r,o=n.history;function a(){var h=he(n.location.hash.substr(1)),v=h.pathname,U=v===void 0?"/":v,C=h.search,V=C===void 0?"":C,$=h.hash,_=$===void 0?"":$,I=o.state||{};return[I.idx,ce({pathname:U,search:V,hash:_,state:I.usr||null,key:I.key||"default"})]}var s=null;function f(){if(s)y.call(s),s=null;else{var h=H.Pop,v=a(),U=v[0],C=v[1];if(y.length)if(U!=null){var V=R-U;V&&(s={action:h,location:C,retry:function(){L(V*-1)}},L(V))}else process.env.NODE_ENV!=="production"&&te(!1,"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.");else w(h)}}n.addEventListener(mt,f),n.addEventListener(Lr,function(){var h=a(),v=h[1];re(v)!==re(P)&&f()});var l=H.Pop,i=a(),R=i[0],P=i[1],x=ue(),y=ue();R==null&&(R=0,o.replaceState(K({},o.state,{idx:R}),""));function p(){var h=document.querySelector("base"),v="";if(h&&h.getAttribute("href")){var U=n.location.href,C=U.indexOf("#");v=C===-1?U:U.slice(0,C)}return v}function g(h){return p()+"#"+(typeof h=="string"?h:re(h))}function u(h,v){return v===void 0&&(v=null),ce(K({pathname:P.pathname,hash:"",search:""},typeof h=="string"?he(h):h,{state:v,key:Pe()}))}function d(h,v){return[{usr:h.state,key:h.key,idx:v},g(h)]}function k(h,v,U){return!y.length||(y.call({action:h,location:v,retry:U}),!1)}function w(h){l=h;var v=a();R=v[0],P=v[1],x.call({action:l,location:P})}function E(h,v){var U=H.Push,C=u(h,v);function V(){E(h,v)}if(process.env.NODE_ENV!=="production"&&te(C.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.push("+JSON.stringify(h)+")"),k(U,C,V)){var $=d(C,R+1),_=$[0],I=$[1];try{o.pushState(_,"",I)}catch{n.location.assign(I)}w(U)}}function S(h,v){var U=H.Replace,C=u(h,v);function V(){S(h,v)}if(process.env.NODE_ENV!=="production"&&te(C.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.replace("+JSON.stringify(h)+")"),k(U,C,V)){var $=d(C,R),_=$[0],I=$[1];o.replaceState(_,"",I),w(U)}}function L(h){o.go(h)}var m={get action(){return l},get location(){return P},createHref:g,push:E,replace:S,go:L,back:function(){L(-1)},forward:function(){L(1)},listen:function(v){return x.push(v)},block:function(v){var U=y.push(v);return y.length===1&&n.addEventListener(Ee,ve),function(){U(),y.length||n.removeEventListener(Ee,ve)}}};return m}function yt(e){e===void 0&&(e={});var t=e,r=t.initialEntries,n=r===void 0?["/"]:r,o=t.initialIndex,a=n.map(function(w){var E=ce(K({pathname:"/",search:"",hash:"",state:null,key:Pe()},typeof w=="string"?he(w):w));return process.env.NODE_ENV!=="production"&&te(E.pathname.charAt(0)==="/","Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: "+JSON.stringify(w)+")"),E}),s=gt(o??a.length-1,0,a.length-1),f=H.Pop,l=a[s],i=ue(),R=ue();function P(w){return typeof w=="string"?w:re(w)}function x(w,E){return E===void 0&&(E=null),ce(K({pathname:l.pathname,search:"",hash:""},typeof w=="string"?he(w):w,{state:E,key:Pe()}))}function y(w,E,S){return!R.length||(R.call({action:w,location:E,retry:S}),!1)}function p(w,E){f=w,l=E,i.call({action:f,location:l})}function g(w,E){var S=H.Push,L=x(w,E);function m(){g(w,E)}process.env.NODE_ENV!=="production"&&te(l.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.push("+JSON.stringify(w)+")"),y(S,L,m)&&(s+=1,a.splice(s,a.length,L),p(S,L))}function u(w,E){var S=H.Replace,L=x(w,E);function m(){u(w,E)}process.env.NODE_ENV!=="production"&&te(l.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.replace("+JSON.stringify(w)+")"),y(S,L,m)&&(a[s]=L,p(S,L))}function d(w){var E=gt(s+w,0,a.length-1),S=H.Pop,L=a[E];function m(){d(w)}y(S,L,m)&&(s=E,p(S,L))}var k={get index(){return s},get action(){return f},get location(){return l},createHref:P,push:g,replace:u,go:d,back:function(){d(-1)},forward:function(){d(1)},listen:function(E){return i.push(E)},block:function(E){return R.push(E)}};return k}function gt(e,t,r){return Math.min(Math.max(e,t),r)}function ve(e){e.preventDefault(),e.returnValue=""}function ue(){var e=[];return{get length(){return e.length},push:function(r){return e.push(r),function(){e=e.filter(function(n){return n!==r})}},call:function(r){e.forEach(function(n){return n&&n(r)})}}}function Pe(){return Math.random().toString(36).substr(2,8)}function re(e){var t=e.pathname,r=t===void 0?"/":t,n=e.search,o=n===void 0?"":n,a=e.hash,s=a===void 0?"":a;return o&&o!=="?"&&(r+=o.charAt(0)==="?"?o:"?"+o),s&&s!=="#"&&(r+=s.charAt(0)==="#"?s:"#"+s),r}function he(e){var t={};if(e){var r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));var n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}const wt=Symbol();function xr(){const e=c.inject(wt);if(!e)throw new X;return e}const Et=Symbol("isRouterRouteSymbol");function Br(e){return typeof e=="object"&&e!==null&&Et in e}function Vr(e,t){function r(u,d,k){if(typeof u=="object"){const E={...e.params,...u};return t(e.name,E,d)}const w={...e.params,[u]:d};return t(e.name,w,k)}const n=(...u)=>{const d=new URLSearchParams(e.query);d.set(...u),r({},{query:d})},o=(...u)=>{const d=new URLSearchParams(e.query);d.append(...u),r({},{query:d})},a=(...u)=>{const d=new URLSearchParams(e.query);d.delete(...u),r({},{query:d})},{id:s,matched:f,matches:l,name:i,hash:R,href:P}=c.toRefs(e),x=c.computed({get(){return new Proxy(e.params,{set(u,d,k){return r(d,k),!0}})},set(u){r(u)}}),y=c.computed({get(){return new Proxy(e.query,{get(u,d,k){switch(d){case"append":return o;case"set":return n;case"delete":return a;default:return Reflect.get(u,d,k)}}})},set(u){r({},{query:u})}}),p=c.computed({get(){return new Proxy(e.state,{set(u,d,k){return r({},{state:{...e.state,[d]:k}}),!0}})},set(u){r({},{state:u})}});return c.reactive({id:s,matched:f,matches:l,state:p,query:y,hash:R,params:x,name:i,href:P,update:r,[Et]:!0})}const vt=Symbol();function Nr(e,t){const r=c.reactive({...e}),n=s=>{Object.assign(r,{[vt]:!1,...s})},o=r,a=Vr(o,t);return{currentRoute:o,routerRoute:a,updateRoute:n}}function q(e){return!e.startsWith("http")?$r(e):jr(e)}function jr(e){const{protocol:t,host:r,pathname:n,search:o,searchParams:a,hash:s}=new URL(e,e);return{protocol:t,host:r,pathname:n,search:o,searchParams:a,hash:s}}function $r(e){const{pathname:t,search:r,searchParams:n,hash:o}=new URL(e,"https://localhost");return{pathname:t,search:r,searchParams:n,hash:o}}function Hr(e){return t=>{const{host:r}=q(t);return!(r===void 0||r===e)}}function _r({mode:e,listener:t}){const r=qr(e),n=(l,i)=>{if(i!=null&&i.replace){r.replace(l,i.state);return}r.push(l,i==null?void 0:i.state)},o=()=>{const l=re(r.location);r.replace(l)};let a;return{...r,update:n,refresh:o,startListening:()=>{a==null||a(),a=r.listen(t)},stopListening:()=>{a==null||a()}}}function qr(e="auto"){switch(e){case"auto":return xe()?Rt():yt();case"browser":return Rt();case"memory":return yt();case"hash":return Cr();default:const t=e;throw new Error(`Switch is not exhaustive for mode: ${t}`)}}class Pt extends Error{constructor(){super("Uncaught CallbackContextAbortError");F(this,"response");this.response={status:"ABORT"}}}class ie extends Error{constructor(r){super("Uncaught CallbackContextPushError");F(this,"response");this.response={status:"PUSH",to:r}}}class be extends Error{constructor(r){super("Uncaught CallbackContextRejectionError");F(this,"response");this.response={status:"REJECT",type:r}}}function bt(){return{reject:o=>{throw new be(o)},push:(...o)=>{throw new ie(o)},replace:(o,a,s)=>{if(N(o)){const i=a??{};throw new ie([o,{...i,replace:!0}])}const f=a,l=s??{};throw new ie([o,f,{...l,replace:!0}])},abort:()=>{throw new Pt}}}class ne{constructor(){F(this,"onBeforeRouteEnter",new Set);F(this,"onBeforeRouteUpdate",new Set);F(this,"onBeforeRouteLeave",new Set);F(this,"onAfterRouteEnter",new Set);F(this,"onAfterRouteUpdate",new Set);F(this,"onAfterRouteLeave",new Set)}}const de=(e,t,r)=>{var a,s;const n=e.matches,o=(t==null?void 0:t.matches)??[];return((a=n.at(r))==null?void 0:a.id)!==((s=o.at(r))==null?void 0:s.id)},pe=(e,t,r)=>{var a,s;const n=e.matches,o=(t==null?void 0:t.matches)??[];return((a=n.at(r))==null?void 0:a.id)!==((s=o.at(r))==null?void 0:s.id)},me=(e,t,r)=>{var n,o;return((n=e.matches.at(r))==null?void 0:n.id)===((o=t==null?void 0:t.matches.at(r))==null?void 0:o.id)};function St(e){switch(e){case"onBeforeRouteEnter":case"onAfterRouteEnter":return de;case"onBeforeRouteUpdate":case"onAfterRouteUpdate":return me;case"onBeforeRouteLeave":case"onAfterRouteLeave":return pe;default:throw new Error(`Switch is not exhaustive for lifecycle: ${e}`)}}function Or(e,t){const r=new ne;return e.matches.forEach((n,o)=>{n.onBeforeRouteEnter&&de(e,t,o)&&ae(n.onBeforeRouteEnter).forEach(a=>r.onBeforeRouteEnter.add(a)),n.onBeforeRouteUpdate&&me(e,t,o)&&ae(n.onBeforeRouteUpdate).forEach(a=>r.onBeforeRouteUpdate.add(a))}),t==null||t.matches.forEach((n,o)=>{n.onBeforeRouteLeave&&pe(e,t,o)&&ae(n.onBeforeRouteLeave).forEach(a=>r.onBeforeRouteLeave.add(a))}),r}function Ir(e,t){const r=new ne;return e.matches.forEach((n,o)=>{n.onAfterRouteEnter&&de(e,t,o)&&ae(n.onAfterRouteEnter).forEach(a=>r.onAfterRouteEnter.add(a)),n.onAfterRouteUpdate&&me(e,t,o)&&ae(n.onAfterRouteUpdate).forEach(a=>r.onAfterRouteUpdate.add(a))}),t==null||t.matches.forEach((n,o)=>{n.onAfterRouteLeave&&pe(e,t,o)&&ae(n.onAfterRouteLeave).forEach(a=>r.onAfterRouteLeave.add(a))}),r}function Mr(e,t,r){const n=new ne;return e.matches.forEach((o,a)=>{de(e,t,a)&&r.onBeforeRouteEnter.forEach(s=>n.onBeforeRouteEnter.add(s)),me(e,t,a)&&r.onBeforeRouteUpdate.forEach(s=>n.onBeforeRouteUpdate.add(s))}),t==null||t.matches.forEach((o,a)=>{pe(e,t,a)&&r.onBeforeRouteLeave.forEach(s=>n.onBeforeRouteLeave.add(s))}),n}function Tr(e,t,r){const n=new ne;return e.matches.forEach((o,a)=>{de(e,t,a)&&r.onAfterRouteEnter.forEach(s=>n.onAfterRouteEnter.add(s)),me(e,t,a)&&r.onAfterRouteUpdate.forEach(s=>n.onAfterRouteUpdate.add(s))}),t==null||t.matches.forEach((o,a)=>{pe(e,t,a)&&r.onAfterRouteLeave.forEach(s=>n.onAfterRouteLeave.add(s))}),n}const At=Symbol();function Dr(){const e={global:new ne,component:new ne},{reject:t,push:r,replace:n,abort:o}=bt(),a=u=>(e.global.onBeforeRouteEnter.add(u),()=>e.global.onBeforeRouteEnter.delete(u)),s=u=>(e.global.onBeforeRouteUpdate.add(u),()=>e.global.onBeforeRouteUpdate.delete(u)),f=u=>(e.global.onBeforeRouteLeave.add(u),()=>e.global.onBeforeRouteLeave.delete(u)),l=u=>(e.global.onAfterRouteEnter.add(u),()=>e.global.onAfterRouteEnter.delete(u)),i=u=>(e.global.onAfterRouteUpdate.add(u),()=>e.global.onAfterRouteUpdate.delete(u)),R=u=>(e.global.onAfterRouteLeave.add(u),()=>e.global.onAfterRouteLeave.delete(u));async function P({to:u,from:d}){const{global:k,component:w}=e,E=Or(u,d),S=Mr(u,d,k),L=[...S.onBeforeRouteEnter,...E.onBeforeRouteEnter,...S.onBeforeRouteUpdate,...E.onBeforeRouteUpdate,...w.onBeforeRouteUpdate,...S.onBeforeRouteLeave,...E.onBeforeRouteLeave,...w.onBeforeRouteLeave];try{const m=L.map(h=>h(u,{from:d,reject:t,push:r,replace:n,abort:o}));await Promise.all(m)}catch(m){if(m instanceof ie||m instanceof be||m instanceof Pt)return m.response;throw m}return{status:"SUCCESS"}}async function x({to:u,from:d}){const{global:k,component:w}=e,E=Ir(u,d),S=Tr(u,d,k),L=[...w.onAfterRouteLeave,...E.onAfterRouteLeave,...S.onAfterRouteLeave,...w.onAfterRouteUpdate,...E.onAfterRouteUpdate,...S.onAfterRouteUpdate,...w.onAfterRouteEnter,...E.onAfterRouteEnter,...S.onAfterRouteEnter];try{const m=L.map(h=>h(u,{from:d,reject:t,push:r,replace:n}));await Promise.all(m)}catch(m){if(m instanceof ie||m instanceof be)return m.response;throw m}return{status:"SUCCESS"}}return{runBeforeRouteHooks:P,runAfterRouteHooks:x,addComponentBeforeRouteHook:({lifecycle:u,depth:d,hook:k})=>{const w=St(u),E=e.component[u],S=(L,m)=>{if(w(L,m.from,d))return k(L,m)};return E.add(S),()=>E.delete(S)},addComponentAfterRouteHook:({lifecycle:u,depth:d,hook:k})=>{const w=St(u),E=e.component[u],S=(L,m)=>{if(w(L,m.from,d))return k(L,m)};return E.add(S),()=>E.delete(S)},addGlobalRouteHooks:u=>{u.onBeforeRouteEnter.forEach(d=>a(d)),u.onBeforeRouteUpdate.forEach(d=>s(d)),u.onBeforeRouteLeave.forEach(d=>f(d)),u.onAfterRouteEnter.forEach(d=>l(d)),u.onAfterRouteUpdate.forEach(d=>i(d)),u.onAfterRouteLeave.forEach(d=>R(d))},onBeforeRouteEnter:a,onBeforeRouteUpdate:s,onBeforeRouteLeave:f,onAfterRouteEnter:l,onAfterRouteUpdate:i,onAfterRouteLeave:R}}function Fr(e){return c.defineComponent(()=>()=>c.h("h1",e),{name:e,props:[]})}function Ne(e){const t=new URLSearchParams(e);return{get:(...r)=>t.get(...r),getAll:(...r)=>t.getAll(...r),set:(...r)=>{t.set(...r)},append:(...r)=>{t.append(...r)},delete:(...r)=>{t.delete(...r)},toString:(...r)=>t.toString(...r),forEach:(...r)=>{t.forEach(...r)},entries:(...r)=>t.entries(...r),keys:(...r)=>t.keys(...r),values:(...r)=>t.values(...r),has:(...r)=>t.has(...r),size:t.size,sort:()=>{t.sort()},[Symbol.iterator]:()=>t[Symbol.iterator]()}}function je(){let e=0;return()=>(++e).toString()}const Wr=je()();function Jr(e){return e===Wr}const $e=je();function Gr(e){const t=a=>c.markRaw(e[a]??Fr(a)),r=a=>{const s=c.markRaw(t(a)),f={id:$e(),component:s,meta:{},state:{}};return{id:f.id,matched:f,matches:[f],name:a,query:Ne(""),params:{},state:{},href:"/",hash:"",[vt]:!0}},n=a=>{if(!a){o.value=null;return}const s=t(a);o.value={type:a,component:s}},o=c.ref(null);return{setRejection:n,rejection:o,getRejectionRoute:r}}class Qr extends Error{constructor(){super("initialUrl must be set if window.location is unavailable")}}function zr(e){if(e)return e;if(xe())return window.location.toString();throw new Qr}function kt(e){return!!e&&typeof e=="object"}const Se=!0;function Kr(e,t,r){if(kt(e)&&t in e){const n=e[t];return typeof n=="string"?Z(n,r,Se):n}return Z(void 0,r,Se)}function Ut(e,t){const r={};for(const[n,o]of Object.entries(e)){const a=Kr(t,n,o);r[n]=a}return r}function Yr(e,t,r){if(kt(e)&&t in e){const n=e[t];return ee(n,r,Se)}return ee(void 0,r,Se)}const Lt=(e,t)=>{const r={};for(const[n,o]of Object.entries(e)){const a=Yr(t,n,o);r[n]=a}return r};function Xr(){const e=c.reactive(new Map),t=xe()?s():null,r=f=>{e.set(f,!1),t==null||t.observe(f)},n=f=>{e.delete(f),t==null||t.unobserve(f)},o=()=>{t==null||t.disconnect()},a=f=>e.get(f)??!1;function s(){return new IntersectionObserver(f=>{f.forEach(l=>{e.set(l.target,l.isIntersecting)})})}return{observe:r,unobserve:n,disconnect:o,isElementVisible:a}}const Ct=Symbol("visibilityObserver");function Zr(e){const t=c.inject(Ct);if(!t)throw new X;return c.watch(e,(n,o)=>{n&&t.observe(n),o&&t.unobserve(o)},{immediate:!0}),c.onUnmounted(()=>{e.value&&t.unobserve(e.value)}),{isElementVisible:c.computed(()=>e.value?t.isElementVisible(e.value):!1)}}class en extends Error{constructor(t){super(`Route not found: "${t}"`)}}function He(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tn(e,t){const r=Array.from(e.matchAll(t));if(r.length===0)return[e];let n=0;const o=r.reduce((s,f)=>{const l=He(e.slice(n,f.index));l.length&&s.push(l);const[i]=f;return s.push(i),n=f.index+i.length,s},[]),a=e.slice(n);return a&&o.push(a),o}function rn(e){const t=xt(e.path.value);return new RegExp(`^${t}$`,"i")}function nn(e){const t=new URLSearchParams(e.query.value);return Array.from(t.entries()).filter(([,r])=>!qe(r)).map(([r,n])=>{const o=xt(n);return new RegExp(`${He(r)}=${o}(&|$)`,"i")})}function xt(e){return tn(e,new RegExp(on,"g")).map(t=>t.startsWith(G)?Bt(t):He(t)).join("")}function Bt(e){return[an,sn].reduce((t,r)=>r(t),e)}const on=`\\${G}\\??([\\w-_]+)\\${z}`,_e=`\\${G}\\?([\\w-_]+)\\${z}`,Vt=`\\${G}([\\w-_]+)\\${z}`;function an(e){return e.replace(new RegExp(_e,"g"),".*")}function qe(e){return new RegExp(_e,"g").test(e)}function sn(e){return e.replace(new RegExp(Vt,"g"),".+")}function Re(e){const[t]=Ae(e,new RegExp(_e,"g")),[r]=Ae(e,new RegExp(Vt,"g"));return t??r}function Ae(e,t){return Array.from(e.matchAll(t)).flatMap(([,...n])=>n.map(o=>W(o)?o:""))}function Nt(e,t,r){const n=$t(t,r),[o]=Ae(e,n);return o}function jt(e,t){if(!t)return e;const{name:r,param:n,value:o}=t,a=$t(e,r);return Ae(e,a).reduce((f,l)=>l===void 0?f:f.replace(l,()=>ee(o,n,r.startsWith("?"))),e)}function $t(e,t){const r=[cn,un,Bt].reduce((n,o)=>o(n,t),e);return new RegExp(r,"g")}function cn(e,t){if(!t.startsWith("?"))return e;const r=new RegExp(`\\${G}\\${t}\\${z}`,"g");return e.replace(r,"(.*)")}function un(e,t){if(t.startsWith("?"))return e;const r=new RegExp(`\\${G}${t}\\${z}`,"g");return e.replace(r,"(.+)")}function Ht({protocol:e,host:t,pathname:r,search:n,searchParams:o,hash:a}){const s=new URL("https://localhost");e&&(s.protocol=e),t&&(s.host=t),r&&(s.pathname=r),o?s.search=new URLSearchParams(o).toString():n&&(s.search=n),a&&(s.hash=a);const f=s.toString().replace(/^https:\/\/localhost\/*/,"/");return Ce(f)}function Oe(...e){const t=new URLSearchParams;for(const r of e){const n=new URLSearchParams(r);for(const[o,a]of n.entries())t.append(o,a)}return t}function fn(e,t={}){const{params:r={},query:n}=t,o=dn(e.query,r),a=Oe(o,n),s=hn(e.path,r),f=ge(e.hash.value??t.hash).value,l=ln(e.host,r),{protocol:i,host:R}=q(l);return Ht({protocol:i,host:R,pathname:s,searchParams:a,hash:f})}function ln(e,t){const r=e.value&&!e.value.startsWith("http")?`https://${e.value}`:e.value;return Object.entries(e.params).reduce((n,[o,a])=>{const s=Re(`${G}${o}${z}`);return s?jt(n,{name:o,param:a,value:t[s]}):n},r)}function hn(e,t){return Object.entries(e.params).reduce((r,[n,o])=>{const a=Re(`${G}${n}${z}`);return a?jt(r,{name:n,param:o,value:t[a]}):r},e.value)}function dn(e,t){const r=new URLSearchParams(e.value);if(!e.value)return r;for(const[n,o]of Array.from(r.entries())){const a=Re(o);if(!a)continue;const f=qe(o),l=f?`?${a}`:a,i=ee(t[a],e.params[l],f),R=t[a]===void 0&&i==="";f&&R?r.delete(n,o):r.set(n,i)}return r}const pn=(e,t)=>{try{Ie(e,t)}catch{return!1}return!0},Ie=(e,t)=>{const{pathname:r,search:n}=q(t);return{...mn(e.path,r),...Rn(e.query,n)}};function mn(e,t){const r={},n=decodeURIComponent(t);for(const[o,a]of Object.entries(e.params)){const s=o.startsWith("?"),f=s?o.slice(1):o,l=Nt(n,e.value,o),i=Z(l,a,s);r[f]=i}return r}function Rn(e,t){const r={},n=new URLSearchParams(e.value),o=new URLSearchParams(t);for(const[a,s]of Array.from(n.entries())){const f=Re(s);if(!f)continue;const i=qe(s),R=i?`?${f}`:f,P=o.get(a)??void 0,x=Z(P,e.params[R],i);r[f]=x}return r}function yn(e,t={},r={}){const n=fn(e,{params:t,query:r.query,hash:r.hash}),{search:o,hash:a}=q(n);return{id:e.id,matched:e.matched,matches:e.matches,name:e.name,query:Ne(o),params:Ie(e,n),state:Ut(e.state,r.state),hash:a,href:n}}const gn=e=>"name"in e.matched&&!!e.matched.name,wn=(e,t)=>{const{pathname:r}=q(t);return rn(e).test(r)},En=(e,t)=>{const{search:r}=q(t);return nn(e).every(o=>o.test(r))},Me=(e,t)=>{const{hash:r}=q(t),{value:n}=e.hash;return n===void 0||`#${n.toLowerCase()}`===r.toLowerCase()};function vn(e){const{searchParams:t,pathname:r}=q(e),n=-1,o=1;return(a,s)=>{const f=qt(a,t),l=_t(a,r),i=qt(s,t),R=_t(s,r);return a.depth>s.depth?n:a.depth<s.depth?o:f+l>i+R?n:f+l<i+R?o:Me(a,e)?n:Me(s,e)?o:0}}function _t(e,t){const r=Object.keys(e.path.params).filter(o=>o.startsWith("?")).map(o=>o),n=r.filter(o=>Nt(t,e.path.value,o)===void 0);return r.length-n.length}function qt(e,t){const r=new URLSearchParams(t),n=new URLSearchParams(e.query.value),o=Array.from(n.keys()),a=o.filter(s=>!r.has(s));return o.length-a.length}const Pn=[gn,wn,En,Me,pn];function bn(e,t){const r=vn(t);return e.filter(n=>Pn.every(o=>o(n,t))).sort(r)}function Sn(e,t,r){const n=bn(e,t);if(!n.length)return;const[o]=n,{searchParams:a,hash:s}=q(t);return{id:o.id,matched:o.matched,matches:o.matches,name:o.name,query:Ne(a),params:Ie(o,t),state:Ut(o.state,r),hash:s,href:Ce(t)}}function Ot(e,t){const r=typeof e=="string"?q(e):e,n=typeof t=="string"?q(t):t,o=r.searchParams??new URLSearchParams(r.search),a=n.searchParams??new URLSearchParams(n.search);return Ht({protocol:W(n.protocol)?n.protocol:r.protocol,host:W(n.host)?n.host:r.host,pathname:W(n.pathname)?n.pathname:r.pathname,searchParams:Oe(a,o),hash:W(n.hash)?n.hash:r.hash})}function Te(e,t){const r=new RegExp(`\\${G}(\\??[\\w-_]+)\\${z}`,"g");return Array.from(e.matchAll(r)).reduce((o,[a,s])=>{const f=Re(a);if(!f)return o;const l=Sr(t,f);return se([f],o),o[s]=l,o},{})}function ke(e,t){return{value:e,params:Te(e,t)}}function An(e,t){return W(t)?e.map(r=>{const n=`${t}${r.path.value}`;return{...r,path:ke(n,r.path.params)}}):e}class kn extends Error{constructor(t){super(`Invalid Name "${t}": Router does not support multiple routes with the same name. All name names must be unique.`)}}function Un(e){const t=e.map(({name:r})=>r);for(const r of t)if(nt(t,r)>1)throw new kn(r)}function Ln(e,t=[],r){const n=[...e,...t.map(o=>o.routes)].flat();return Un(n),An(n,r)}function Cn(e={},t=[]){const r=new ne;return fe("onBeforeRouteEnter",e,t).forEach(n=>r.onBeforeRouteEnter.add(n)),fe("onBeforeRouteUpdate",e,t).forEach(n=>r.onBeforeRouteUpdate.add(n)),fe("onBeforeRouteLeave",e,t).forEach(n=>r.onBeforeRouteLeave.add(n)),fe("onAfterRouteEnter",e,t).forEach(n=>r.onAfterRouteEnter.add(n)),fe("onAfterRouteUpdate",e,t).forEach(n=>r.onAfterRouteUpdate.add(n)),fe("onAfterRouteLeave",e,t).forEach(n=>r.onAfterRouteLeave.add(n)),r}function fe(e,t,r){return[t[e],...r.map(o=>o[e])].flat().filter(o=>o!==void 0)}function It(e){return typeof e=="object"&&e!==null&&"then"in e}function De(e,t,{exact:r}={}){return Br(e)?t===void 0?!0:r?e.matched.name===t:e.matches.map(n=>n.name).includes(t):!1}function Fe(e,t){const r=ye();function n(){if(!e)return;if(!De(r.route,e,t))throw new tt(e,r.route.name)}return c.watch(r.route,n,{immediate:!0,deep:!0}),r.route}function xn(e,t,r){return c.defineComponent({name:"PropsWrapper",expose:[],setup(){const n=c.getCurrentInstance(),o=er(),a=Fe();return()=>{const s=o.getProps(e.id,t,a);return s instanceof Error?"":It(s)?n!=null&&n.suspense?c.h(Vn,{component:r,props:s}):c.h(Bn,{component:r,props:s}):c.h(r,s)}}})}const Bn=c.defineComponent(e=>{const t=c.ref();return c.watch(()=>e.props,async r=>{t.value=await r},{immediate:!0,deep:!0}),()=>t.value instanceof Error?"":t.value?c.h(e.component,t.value):""},{props:["component","props"]}),Vn=c.defineComponent(async e=>{const t=c.ref();return t.value=await e.props,c.watch(()=>t.value,async r=>{t.value=await r},{deep:!0}),()=>t.value instanceof Error?"":t.value?c.h(e.component,t.value):""},{props:["component","props"]}),Mt=Symbol();function We(){return c.inject(Mt,0)}function Nn(){const e=c.inject(Tt);if(!e)throw new X;return e}const Je=c.defineComponent({__name:"routerView",props:{name:{default:"default"}},setup(e){const t=Fe(),r=xr(),n=We(),{getRouteComponents:o}=Nn();c.provide(Mt,n+1);const a=c.computed(()=>{if(r.value)return r.value.component;const s=t.matches.at(n);return s?o(s)[e.name]:null});return(s,f)=>a.value?c.renderSlot(s.$slots,"default",c.normalizeProps(c.mergeProps({key:0},{route:c.unref(t),component:a.value,rejection:c.unref(r)})),()=>[(c.openBlock(),c.createBlock(c.resolveDynamicComponent(a.value)))]):c.createCommentVNode("",!0)}}),Tt=Symbol();function jn(){const e=new Map;return{getRouteComponents:r=>{const n=e.get(r.id);if(n)return n;const o=$n(r);return e.set(r.id,o),o}}}function $n(e){return ct(e)?Dt(e,e.components):at(e)?Dt(e,{default:e.component}):{default:Je}}function Dt(e,t){return Object.fromEntries(Object.entries(t).map(([r,n])=>[r,xn(e,r,n)]))}function Hn(e,t,r=[]){const n=Ln(e,r,t==null?void 0:t.base),o=Dr();o.addGlobalRouteHooks(Cn(t,r));const a=je(),s=Gn(),f=jn(),l=Xr(),i=_r({mode:t==null?void 0:t.historyMode,listener:({location:b})=>{const B=re(b);P(B,{state:b.state,replace:!0})}});function R(b,B={}){return Sn(n,b,B.state)}async function P(b,B={}){const Q=a();if(i.stopListening(),U(b)){i.update(b,B);return}const M=R(b,B)??k("NotFound"),O=ir(Q),Y=await o.runBeforeRouteHooks({to:M,from:O});switch(Y.status){case"ABORT":return;case"PUSH":i.update(b,B),await y(...Y.to);return;case"REJECT":i.update(b,B),u(Y.type);break;case"SUCCESS":i.update(b,B),u(null);break;default:throw new Error(`Switch is not exhaustive for before hook response status: ${JSON.stringify(Y)}`)}const Ke=Q;s.setProps(M).then(T=>{if(Ke===Q)switch(T.status){case"SUCCESS":break;case"PUSH":y(...T.to);break;case"REJECT":u(T.type);break;default:const Ye=T;throw new Error(`Switch is not exhaustive for prop store response status: ${JSON.stringify(Ye)}`)}}),L(M);const D=await o.runAfterRouteHooks({to:M,from:O});switch(D.status){case"PUSH":await y(...D.to);break;case"REJECT":u(D.type);break;case"SUCCESS":break;default:const T=D;throw new Error(`Switch is not exhaustive for after hook response status: ${JSON.stringify(T)}`)}i.startListening()}const x=(b,B={},Q={})=>{const M=n.find(O=>O.name===b);if(!M)throw new en(String(b));return yn(M,B,Q)},y=(b,B,Q)=>{if(N(b)){const D={...B},T=Ot(b,{searchParams:D.query,hash:D.hash});return P(T,D)}if(typeof b=="string"){const{replace:D,...T}={...Q},Ye={...B},Xe=x(b,Ye,T),ao=Lt({...Xe.matched.state},{...Xe.state,...T.state});return P(Xe.href,{replace:D,state:ao})}const{replace:M,...O}={...B},Y=Lt({...b.matched.state},{...b.state,...O.state}),Ke=Ot(b.href,{searchParams:O.query,hash:O.hash});return P(Ke,{replace:M,state:Y})},p=(b,B,Q)=>{if(N(b)){const O={...B,replace:!0};return y(b,O)}if(typeof b=="string"){const O={...Q,replace:!0},Y={...B};return y(b,Y,O)}const M={...B,replace:!0};return y(b,M)},g=b=>{u(b)},{setRejection:u,rejection:d,getRejectionRoute:k}=Gr({...r.reduce((b,B)=>({...b,...B.rejections}),{}),...t==null?void 0:t.rejections}),w=k("NotFound"),{currentRoute:E,routerRoute:S,updateRoute:L}=Nr(w,y),m=zr(t==null?void 0:t.initialUrl),h=i.location.state,{host:v}=q(m),U=Hr(v);let C=!1;const{promise:V,resolve:$}=Promise.withResolvers();async function _(){if(C)return V;C=!0,await P(m,{replace:!0,state:h}),i.startListening(),$()}function I(){i.stopListening()}function ir(b){return Jr(b)?null:{...E}}function oo(b){b.component("RouterView",Je),b.component("RouterLink",or),b.provide(wt,d),b.provide(At,o),b.provide(Zt,s),b.provide(Tt,f),b.provide(Ct,l),b.provide(rt,fr),_()}const fr={route:S,resolve:x,find:R,push:y,replace:p,reject:g,refresh:i.refresh,forward:i.forward,back:i.back,go:i.go,install:oo,isExternal:U,onBeforeRouteEnter:o.onBeforeRouteEnter,onBeforeRouteUpdate:o.onBeforeRouteUpdate,onBeforeRouteLeave:o.onBeforeRouteLeave,onAfterRouteEnter:o.onAfterRouteEnter,onAfterRouteUpdate:o.onAfterRouteUpdate,onAfterRouteLeave:o.onAfterRouteLeave,prefetch:t==null?void 0:t.prefetch,start:_,stop:I};return fr}function Ge(e,t){return{value:e,params:Te(e,t)}}function _n(e){return{routes:e.routes??[],rejections:e.rejections??{},...e}}function Ft(...e){return{get:(t,{invalid:r})=>{for(const n of e){const o=kr(t,n);if(o!==void 0)return o}throw r(`Value ${t} does not satisfy any of the possible values`)},set:(t,{invalid:r})=>{for(const n of e){const o=Ur(t,n);if(o!==void 0)return o}throw r(`Value ${t} does not satisfy any of the possible values`)}}}function qn(...e){const t=Ft(...e);return{get:(r,n)=>r.split(",").map(o=>t.get(o,n)),set:(r,n)=>{if(!Array.isArray(r))throw n.invalid("Expected an array");return r.map(o=>t.set(o,n)).join(",")}}}function On(...e){return{get:t=>{const r=t.split(",");return e.map((n,o)=>Z(r.at(o),n))},set:(t,{invalid:r})=>{if(!Array.isArray(t))throw r("Expected a tuple");if(t.length!==e.length)throw r(`Expected tuple with ${e.length} values but received ${t.length} values`);return e.map((n,o)=>ee(t.at(o),n)).join(",")}}}function Wt(e,t){return{value:e,params:Te(e,t)}}function In(e){return le(e)&&typeof e.hash=="string"}function Jt(e){return e===void 0?ge():In(e)?e:ge(e)}function Gt(e){return e===void 0?"":e}function Mn(e){return le(e)&&typeof e.value=="string"}function Qt(e){return e===void 0?ke("",{}):Mn(e)?e:ke(e,{})}function Tn(e){return le(e)&&typeof e.value=="string"}function zt(e){return e===void 0?Ge("",{}):Tn(e)?e:Ge(e,{})}function oe(e,t){const r=$e(),n=Gt(e.name),o=Qt(e.path),a=zt(e.query),s=Jt(e.hash),f=e.meta??{},l=wr(e)?e.state:{},i=c.markRaw({id:r,meta:{},state:{},...e,props:t}),R={id:r,matched:i,matches:[i],name:n,path:o,query:a,hash:s,meta:f,state:l,depth:1,host:Wt("",{}),prefetch:e.prefetch},P=ot(e)?it(e.parent,R):R;return se(P.path.params,P.query.params),P}const Ue={template:"<div>This is component</div>"},Qe=oe({name:"parentA",path:"/parentA/[paramA]"}),Kt=oe({parent:Qe,name:"parentA.childA",path:"/childA/[?paramB]"}),Dn=oe({parent:Qe,name:"parentA.childB",path:"/childB/[paramD]",component:Ue}),Fn=oe({parent:Kt,name:"parentA.childA.grandChildA",path:"/[paramC]",component:Ue});oe({name:"parentB",path:"/parentB",component:Ue}),oe({name:"parentC",path:"/",component:Ue});const Wn="lazy",Jn={components:!0,props:!1};function Le(e){return["eager","lazy","intent"].includes(e)}function Yt({routerPrefetch:e,routePrefetch:t,linkPrefetch:r},n){const o=ze(r,n),a=ze(t,n),s=ze(e,n),f=[o,a,s,Jn[n],Wn].reduce((l,i)=>Le(l)?l:l===!0&&Le(i)?i:l===!0&&!Le(i)?l:l===void 0?i:l,void 0);return Le(f)?f:!1}function ze(e,t){return le(e)?e[t]:e}function Xt(e){try{const t=e();return It(t)?t.catch(r=>r):t}catch(t){return t}}const Zt=Symbol();function Gn(){const e=c.reactive(new Map),{push:t,replace:r,reject:n}=bt(),o=(y,p,g)=>p.matches.filter(u=>Yt({...g,routePrefetch:u.prefetch},"props")===y).flatMap(u=>P(u)).reduce((u,{id:d,name:k,props:w})=>{if(!w)return u;const E=R(d,k,p),S=Xt(()=>w(p,{push:t,replace:r,reject:n,parent:l(p,!0)}));return u[E]=S,u},{}),a=y=>{Object.entries(y).forEach(([p,g])=>{e.set(p,g)})},s=async y=>{const p=y.matches.flatMap(P),g=[],u=[];for(const{id:d,name:k,props:w}of p){if(!w)continue;const E=R(d,k,y);if(g.push(E),!e.has(E)){const S=Xt(()=>w(y,{push:t,replace:r,reject:n,parent:l(y)}));e.set(E,S)}u.push((async()=>{const S=await e.get(E);if(S instanceof Error)throw S})())}x(g);try{return await Promise.all(u),{status:"SUCCESS"}}catch(d){if(d instanceof ie||d instanceof be)return d.response;throw d}},f=(y,p,g)=>{const u=R(y,p,g);return e.get(u)};function l(y,p=!1){const g=y.matches.at(-2);if(g)return st(g)?{name:g.name??"",get props(){return i(g,"default",y,p)}}:ut(g)?{name:g.name??"",props:new Proxy({},{get(u,d){return typeof d!="string"?Reflect.get(u,d):i(g,d,y,p)}})}:{name:g.name??"",props:void 0}}function i(y,p,g,u=!1){const d=f(y.id,p,g);if(u&&!d){const k=y.name??"unknown",w=g.name||"unknown";console.warn(`
|
|
2
|
-
Unable to access parent props "${
|
|
1
|
+
(function(k,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue"),require("zod")):typeof define=="function"&&define.amd?define(["exports","vue","zod"],c):(k=typeof globalThis<"u"?globalThis:k||self,c(k["@kitbag/router"]={},k.Vue,k.zod))})(this,function(k,c,b){"use strict";var mo=Object.defineProperty;var yo=(k,c,b)=>c in k?mo(k,c,{enumerable:!0,configurable:!0,writable:!0,value:b}):k[c]=b;var F=(k,c,b)=>yo(k,typeof c!="symbol"?c+"":c,b);function Z(e){return typeof e!="string"?!1:/^(https?:\/\/|\/).*/g.test(e)}function Ve(e){return Z(e)?e:`/${e}`}class at extends Error{constructor(t){super(`Invalid Param "${t}": Router does not support multiple params by the same name. All param names must be unique.`)}}class st extends Error{constructor(t){super(`Child property on meta for ${t} conflicts with the parent meta.`)}}class z extends Error{constructor(){super("Router not installed")}}class ct extends Error{constructor(t,r){super(`useRoute called with incorrect route. Given ${t}, expected ${r}`)}}const it=Symbol();function Ee(){const e=c.inject(it);if(!e)throw new z;return e}function de(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function J(e){return typeof e=="string"&&e.length>0}function Pe(e){return{value:J(e)?e.replace(/^#*/,""):void 0}}function Rr(e,t){return Pe(`${e.value??""}${t.value??""}`)}function wr(e,t){return Er(e,t),{...e,...t}}function Er(e,t){const r=Object.keys(e).find(n=>n in t&&typeof t[n]!=typeof e[n]);if(r)throw new st(r)}function se(e){return Array.isArray(e)?e:[e]}function ut(e,t){return e.filter(r=>t===r).length}function ce(...e){const t=e.flatMap(r=>Array.isArray(r)?r:Object.keys(r).map(Pr));for(const r of t)if(ut(t,r)>1)throw new at(r)}function Pr(e){return e.startsWith("?")?e.slice(1):e}function br(e,t){return ce(e.params,t.params),{value:`${e.value}${t.value}`,params:{...e.params,...t.params}}}function Sr(e,t){return ce(e.params,t.params),{value:[e.value,t.value].filter(J).join("&"),params:{...e.params,...t.params}}}function vr(e,t){return ce(e,t),{...e,...t}}function Ar(e){return"host"in e&&!!e.host}function ft(e){return"parent"in e&&!!e.parent}function lt(e){return"component"in e&&!!e.component}function ht(e){return"props"in e&&typeof e.props=="function"}function pt(e){return"components"in e&&!!e.components}function dt(e){return"props"in e&&typeof e.props=="object"}function kr(e){return"state"in e&&!!e.state}function mt(e,t){return{...t,path:br(e.path,t.path),query:Sr(e.query,t.query),meta:wr(e.meta,t.meta),state:vr(e.state,t.state),hash:Rr(e.hash,t.hash),matches:[...e.matches,t.matched],host:e.host,depth:e.depth+1}}function je(){return typeof window<"u"&&typeof window.document<"u"}class W extends Error{}const G="[",K="]";function Ur(e){return e!==String&&e!==Boolean&&e!==Number&&e!==Date}function Lr(e){return typeof e=="function"&&Ur(e)}function be(e){return typeof e=="object"&&"get"in e&&typeof e.get=="function"&&"set"in e&&typeof e.set=="function"}function yt(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Br(e){return be(e)&&e.defaultValue!==void 0}function Cr(e,t){return Pt(e,t)}function gt(e){return{get:(t,{invalid:r})=>{try{return $e(t,e)}catch{throw r()}},set:(t,{invalid:r})=>{try{return He(t,e)}catch{throw r()}}}}const xr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;function ie(e,t){if(typeof t=="string"&&xr.test(t)){const r=new Date(t);return isNaN(r.getTime())?t:r}return t}function ue(e){for(const t of e)try{return t()}catch{continue}throw new Error("All functions failed")}function Se(e,t){return e instanceof b.ZodString?1:t instanceof b.ZodString?-1:0}function $e(e,t){if(t instanceof b.ZodString)return t.parse(e);if(t instanceof b.ZodBoolean)return t.parse(!!e);if(t instanceof b.ZodDate)return t.parse(new Date(e));if(t instanceof b.ZodNumber)return t.parse(Number(e));if(t instanceof b.ZodLiteral)return ue([()=>t.parse(Number(e)),()=>t.parse(!!e),()=>t.parse(e)]);if(t instanceof b.ZodObject)return t.parse(JSON.parse(e,ie));if(t instanceof b.ZodEnum)return t.parse(e);if(t instanceof b.ZodNativeEnum)return ue([()=>t.parse(Number(e)),()=>t.parse(e)]);if(t instanceof b.ZodArray||t instanceof b.ZodTuple)return t.parse(JSON.parse(e,ie));if(t instanceof b.ZodUnion){const r=Array.from(t._def.options).sort(Se).map(n=>()=>$e(e,n));return ue(r)}if(t instanceof b.ZodDiscriminatedUnion){const r=Array.from(t.options).sort(Se).map(n=>()=>$e(e,n));return ue(r)}if(t instanceof b.ZodRecord)return t.parse(JSON.parse(e,ie));if(t instanceof b.ZodMap)return t.parse(new Map(JSON.parse(e,ie)));if(t instanceof b.ZodSet)return t.parse(new Set(JSON.parse(e,ie)));if(t instanceof b.ZodIntersection)throw new Error("Intersection schemas are not supported");if(t instanceof b.ZodPromise)throw new Error("Promise schemas are not supported");if(t instanceof b.ZodFunction)throw new Error("Function schemas are not supported");return t.parse(e)}function He(e,t){if(t instanceof b.ZodString)return t.parse(e);if(t instanceof b.ZodBoolean)return t.parse(e).toString();if(t instanceof b.ZodDate)return t.parse(e).toISOString();if(t instanceof b.ZodNumber)return t.parse(Number(e)).toString();if(t instanceof b.ZodLiteral)return t.parse(e).toString();if(t instanceof b.ZodObject)return JSON.stringify(t.parse(e));if(t instanceof b.ZodEnum)return t.parse(e);if(t instanceof b.ZodNativeEnum)return t.parse(e).toString();if(t instanceof b.ZodArray||t instanceof b.ZodTuple)return JSON.stringify(t.parse(e));if(t instanceof b.ZodUnion){const r=Array.from(t._def.options).sort(Se).map(n=>()=>He(e,n));return ue(r)}if(t instanceof b.ZodDiscriminatedUnion){const r=Array.from(t.options).sort(Se).map(n=>()=>He(e,n));return ue(r)}if(t instanceof b.ZodRecord)return JSON.stringify(t.parse(e));if(t instanceof b.ZodMap){const r=t.parse(e);return JSON.stringify(Array.from(r.entries()))}if(t instanceof b.ZodSet){const r=t.parse(e);return JSON.stringify(Array.from(r.values()))}if(t instanceof b.ZodIntersection)throw new Error("Intersection schemas are not supported");if(t instanceof b.ZodPromise)throw new Error("Promise schemas are not supported");if(t instanceof b.ZodFunction)throw new Error("Function schemas are not supported");return JSON.stringify(t.parse(e))}function Nr(e,t){return e[t]??String}const j={invalid:e=>{throw new W(e)}},Rt={get:e=>e,set:(e,{invalid:t})=>{if(typeof e!="string")throw t();return e}},_e={get:(e,{invalid:t})=>{if(e==="true")return!0;if(e==="false")return!1;throw t()},set:(e,{invalid:t})=>{if(typeof e!="boolean")throw t();return e.toString()}},Oe={get:(e,{invalid:t})=>{const r=Number(e);if(isNaN(r))throw t();return r},set:(e,{invalid:t})=>{if(typeof e!="number")throw t();return e.toString()}},wt={get:(e,{invalid:t})=>{const r=new Date(e);if(isNaN(r.getTime()))throw t();return r},set:(e,{invalid:t})=>{if(typeof e!="object"||!(e instanceof Date))throw t();return e.toISOString()}},Et={get:(e,{invalid:t})=>{try{return JSON.parse(e)}catch{throw t()}},set:(e,{invalid:t})=>{try{return JSON.stringify(e)}catch{throw t()}}};function Vr(e,t){switch(typeof t){case"string":return Rt.get(e,j)===t;case"number":return Oe.get(e,j)===t;case"boolean":return _e.get(e,j)===t;default:return!1}}function ee(e,t,r=!1){if(e===void 0||!J(e)){if(Br(t))return t.defaultValue;if(r)return;throw new W}if(t===String)return Rt.get(e,j);if(t===Boolean)return _e.get(e,j);if(t===Number)return Oe.get(e,j);if(t===Date)return wt.get(e,j);if(t===JSON)return Et.get(e,j);if(Lr(t))return t(e,j);if(be(t))return t.get(e,j);if(t instanceof RegExp){if(t.test(e))return e;throw new W}if(yt(t)){if(Vr(e,t))return t;throw new W}return t instanceof b.ZodSchema?gt(t).get(e,j):e}function jr(e,t,r=!1){try{return ee(e,t,r)}catch(n){if(n instanceof W)return;throw n}}function $r(e,t,r=!1){try{return te(e,t,r)}catch(n){if(n instanceof W)return;throw n}}function te(e,t,r=!1){if(e===void 0){if(r)return"";throw new W}if(t===Boolean)return _e.set(e,j);if(t===Number)return Oe.set(e,j);if(t===Date)return wt.set(e,j);if(t===JSON)return Et.set(e,j);if(be(t))return t.set(e,j);if(yt(t)){if(t!==e)throw new W;return e.toString()}if(t instanceof b.ZodSchema)return gt(t).set(e,j);try{return e.toString()}catch{throw new W}}function Pt(e,t){return be(e)?{...e,defaultValue:t??e.defaultValue}:{get:r=>ee(r,e),set:r=>te(r,e),defaultValue:t}}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Y.apply(null,arguments)}var H;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(H||(H={}));var fe=process.env.NODE_ENV!=="production"?function(e){return Object.freeze(e)}:function(e){return e};function re(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}var ve="beforeunload",Hr="hashchange",bt="popstate";function St(e){e===void 0&&(e={});var t=e,r=t.window,n=r===void 0?document.defaultView:r,o=n.history;function a(){var m=n.location,h=m.pathname,P=m.search,L=m.hash,C=o.state||{};return[C.idx,fe({pathname:h,search:P,hash:L,state:C.usr||null,key:C.key||"default"})]}var s=null;function f(){if(s)g.call(s),s=null;else{var m=H.Pop,h=a(),P=h[0],L=h[1];if(g.length)if(P!=null){var C=y-P;C&&(s={action:m,location:L,retry:function(){A(C*-1)}},A(C))}else process.env.NODE_ENV!=="production"&&re(!1,"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.");else U(m)}}n.addEventListener(bt,f);var l=H.Pop,u=a(),y=u[0],S=u[1],x=le(),g=le();y==null&&(y=0,o.replaceState(Y({},o.state,{idx:y}),""));function d(m){return typeof m=="string"?m:ne(m)}function R(m,h){return h===void 0&&(h=null),fe(Y({pathname:S.pathname,hash:"",search:""},typeof m=="string"?me(m):m,{state:h,key:ke()}))}function i(m,h){return[{usr:m.state,key:m.key,idx:h},d(m)]}function p(m,h,P){return!g.length||(g.call({action:m,location:h,retry:P}),!1)}function U(m){l=m;var h=a();y=h[0],S=h[1],x.call({action:l,location:S})}function w(m,h){var P=H.Push,L=R(m,h);function C(){w(m,h)}if(p(P,L,C)){var V=i(L,y+1),$=V[0],_=V[1];try{o.pushState($,"",_)}catch{n.location.assign(_)}U(P)}}function E(m,h){var P=H.Replace,L=R(m,h);function C(){E(m,h)}if(p(P,L,C)){var V=i(L,y),$=V[0],_=V[1];o.replaceState($,"",_),U(P)}}function A(m){o.go(m)}var B={get action(){return l},get location(){return S},createHref:d,push:w,replace:E,go:A,back:function(){A(-1)},forward:function(){A(1)},listen:function(h){return x.push(h)},block:function(h){var P=g.push(h);return g.length===1&&n.addEventListener(ve,Ae),function(){P(),g.length||n.removeEventListener(ve,Ae)}}};return B}function _r(e){e===void 0&&(e={});var t=e,r=t.window,n=r===void 0?document.defaultView:r,o=n.history;function a(){var h=me(n.location.hash.substr(1)),P=h.pathname,L=P===void 0?"/":P,C=h.search,V=C===void 0?"":C,$=h.hash,_=$===void 0?"":$,D=o.state||{};return[D.idx,fe({pathname:L,search:V,hash:_,state:D.usr||null,key:D.key||"default"})]}var s=null;function f(){if(s)g.call(s),s=null;else{var h=H.Pop,P=a(),L=P[0],C=P[1];if(g.length)if(L!=null){var V=y-L;V&&(s={action:h,location:C,retry:function(){B(V*-1)}},B(V))}else process.env.NODE_ENV!=="production"&&re(!1,"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.");else w(h)}}n.addEventListener(bt,f),n.addEventListener(Hr,function(){var h=a(),P=h[1];ne(P)!==ne(S)&&f()});var l=H.Pop,u=a(),y=u[0],S=u[1],x=le(),g=le();y==null&&(y=0,o.replaceState(Y({},o.state,{idx:y}),""));function d(){var h=document.querySelector("base"),P="";if(h&&h.getAttribute("href")){var L=n.location.href,C=L.indexOf("#");P=C===-1?L:L.slice(0,C)}return P}function R(h){return d()+"#"+(typeof h=="string"?h:ne(h))}function i(h,P){return P===void 0&&(P=null),fe(Y({pathname:S.pathname,hash:"",search:""},typeof h=="string"?me(h):h,{state:P,key:ke()}))}function p(h,P){return[{usr:h.state,key:h.key,idx:P},R(h)]}function U(h,P,L){return!g.length||(g.call({action:h,location:P,retry:L}),!1)}function w(h){l=h;var P=a();y=P[0],S=P[1],x.call({action:l,location:S})}function E(h,P){var L=H.Push,C=i(h,P);function V(){E(h,P)}if(process.env.NODE_ENV!=="production"&&re(C.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.push("+JSON.stringify(h)+")"),U(L,C,V)){var $=p(C,y+1),_=$[0],D=$[1];try{o.pushState(_,"",D)}catch{n.location.assign(D)}w(L)}}function A(h,P){var L=H.Replace,C=i(h,P);function V(){A(h,P)}if(process.env.NODE_ENV!=="production"&&re(C.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.replace("+JSON.stringify(h)+")"),U(L,C,V)){var $=p(C,y),_=$[0],D=$[1];o.replaceState(_,"",D),w(L)}}function B(h){o.go(h)}var m={get action(){return l},get location(){return S},createHref:R,push:E,replace:A,go:B,back:function(){B(-1)},forward:function(){B(1)},listen:function(P){return x.push(P)},block:function(P){var L=g.push(P);return g.length===1&&n.addEventListener(ve,Ae),function(){L(),g.length||n.removeEventListener(ve,Ae)}}};return m}function vt(e){e===void 0&&(e={});var t=e,r=t.initialEntries,n=r===void 0?["/"]:r,o=t.initialIndex,a=n.map(function(w){var E=fe(Y({pathname:"/",search:"",hash:"",state:null,key:ke()},typeof w=="string"?me(w):w));return process.env.NODE_ENV!=="production"&&re(E.pathname.charAt(0)==="/","Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: "+JSON.stringify(w)+")"),E}),s=At(o??a.length-1,0,a.length-1),f=H.Pop,l=a[s],u=le(),y=le();function S(w){return typeof w=="string"?w:ne(w)}function x(w,E){return E===void 0&&(E=null),fe(Y({pathname:l.pathname,search:"",hash:""},typeof w=="string"?me(w):w,{state:E,key:ke()}))}function g(w,E,A){return!y.length||(y.call({action:w,location:E,retry:A}),!1)}function d(w,E){f=w,l=E,u.call({action:f,location:l})}function R(w,E){var A=H.Push,B=x(w,E);function m(){R(w,E)}process.env.NODE_ENV!=="production"&&re(l.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.push("+JSON.stringify(w)+")"),g(A,B,m)&&(s+=1,a.splice(s,a.length,B),d(A,B))}function i(w,E){var A=H.Replace,B=x(w,E);function m(){i(w,E)}process.env.NODE_ENV!=="production"&&re(l.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.replace("+JSON.stringify(w)+")"),g(A,B,m)&&(a[s]=B,d(A,B))}function p(w){var E=At(s+w,0,a.length-1),A=H.Pop,B=a[E];function m(){p(w)}g(A,B,m)&&(s=E,d(A,B))}var U={get index(){return s},get action(){return f},get location(){return l},createHref:S,push:R,replace:i,go:p,back:function(){p(-1)},forward:function(){p(1)},listen:function(E){return u.push(E)},block:function(E){return y.push(E)}};return U}function At(e,t,r){return Math.min(Math.max(e,t),r)}function Ae(e){e.preventDefault(),e.returnValue=""}function le(){var e=[];return{get length(){return e.length},push:function(r){return e.push(r),function(){e=e.filter(function(n){return n!==r})}},call:function(r){e.forEach(function(n){return n&&n(r)})}}}function ke(){return Math.random().toString(36).substr(2,8)}function ne(e){var t=e.pathname,r=t===void 0?"/":t,n=e.search,o=n===void 0?"":n,a=e.hash,s=a===void 0?"":a;return o&&o!=="?"&&(r+=o.charAt(0)==="?"?o:"?"+o),s&&s!=="#"&&(r+=s.charAt(0)==="#"?s:"#"+s),r}function me(e){var t={};if(e){var r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));var n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}const kt=Symbol();function Or(){const e=c.inject(kt);if(!e)throw new z;return e}const Ut=Symbol("isRouterRouteSymbol");function qr(e){return typeof e=="object"&&e!==null&&Ut in e}function Zr(e,t){function r(i,p,U){if(typeof i=="object"){const E={...e.params,...i};return t(e.name,E,p)}const w={...e.params,[i]:p};return t(e.name,w,U)}const n=(...i)=>{const p=new URLSearchParams(e.query);p.set(...i),r({},{query:p})},o=(...i)=>{const p=new URLSearchParams(e.query);p.append(...i),r({},{query:p})},a=(...i)=>{const p=new URLSearchParams(e.query);p.delete(...i),r({},{query:p})},{id:s,matched:f,matches:l,name:u,hash:y,href:S}=c.toRefs(e),x=c.computed({get(){return new Proxy(e.params,{set(i,p,U){return r(p,U),!0}})},set(i){r(i)}}),g=c.computed({get(){return new Proxy(e.query,{get(i,p,U){switch(p){case"append":return o;case"set":return n;case"delete":return a;default:return Reflect.get(i,p,U)}}})},set(i){r({},{query:i})}}),d=c.computed({get(){return new Proxy(e.state,{set(i,p,U){return r({},{state:{...e.state,[p]:U}}),!0}})},set(i){r({},{state:i})}});return c.reactive({id:s,matched:f,matches:l,state:d,query:g,hash:y,params:x,name:u,href:S,update:r,[Ut]:!0})}const Lt=Symbol();function Dr(e,t){const r=c.reactive({...e}),n=s=>{Object.assign(r,{[Lt]:!1,...s})},o=r,a=Zr(o,t);return{currentRoute:o,routerRoute:a,updateRoute:n}}function O(e){return!e.startsWith("http")?Tr(e):Ir(e)}function Ir(e){const{protocol:t,host:r,pathname:n,search:o,searchParams:a,hash:s}=new URL(e,e);return{protocol:t,host:r,pathname:n,search:o,searchParams:a,hash:s}}function Tr(e){const{pathname:t,search:r,searchParams:n,hash:o}=new URL(e,"https://localhost");return{pathname:t,search:r,searchParams:n,hash:o}}function Mr(e){return t=>{const{host:r}=O(t);return!(r===void 0||r===e)}}function Fr({mode:e,listener:t}){const r=Jr(e),n=(l,u)=>{if(u!=null&&u.replace){r.replace(l,u.state);return}r.push(l,u==null?void 0:u.state)},o=()=>{const l=ne(r.location);r.replace(l)};let a;return{...r,update:n,refresh:o,startListening:()=>{a==null||a(),a=r.listen(t)},stopListening:()=>{a==null||a()}}}function Jr(e="auto"){switch(e){case"auto":return je()?St():vt();case"browser":return St();case"memory":return vt();case"hash":return _r();default:const t=e;throw new Error(`Switch is not exhaustive for mode: ${t}`)}}class Bt extends Error{constructor(){super("Uncaught CallbackContextAbortError");F(this,"response");this.response={status:"ABORT"}}}class he extends Error{constructor(r){super("Uncaught CallbackContextPushError");F(this,"response");this.response={status:"PUSH",to:r}}}class Ue extends Error{constructor(r){super("Uncaught CallbackContextRejectionError");F(this,"response");this.response={status:"REJECT",type:r}}}function Ct(){return{reject:o=>{throw new Ue(o)},push:(...o)=>{throw new he(o)},replace:(o,a,s)=>{if(Z(o)){const u=a??{};throw new he([o,{...u,replace:!0}])}const f=a,l=s??{};throw new he([o,f,{...l,replace:!0}])},abort:()=>{throw new Bt}}}class oe{constructor(){F(this,"onBeforeRouteEnter",new Set);F(this,"onBeforeRouteUpdate",new Set);F(this,"onBeforeRouteLeave",new Set);F(this,"onAfterRouteEnter",new Set);F(this,"onAfterRouteUpdate",new Set);F(this,"onAfterRouteLeave",new Set)}}const ye=(e,t,r)=>{var a,s;const n=e.matches,o=(t==null?void 0:t.matches)??[];return((a=n.at(r))==null?void 0:a.id)!==((s=o.at(r))==null?void 0:s.id)},ge=(e,t,r)=>{var a,s;const n=e.matches,o=(t==null?void 0:t.matches)??[];return((a=n.at(r))==null?void 0:a.id)!==((s=o.at(r))==null?void 0:s.id)},Re=(e,t,r)=>{var n,o;return((n=e.matches.at(r))==null?void 0:n.id)===((o=t==null?void 0:t.matches.at(r))==null?void 0:o.id)};function xt(e){switch(e){case"onBeforeRouteEnter":case"onAfterRouteEnter":return ye;case"onBeforeRouteUpdate":case"onAfterRouteUpdate":return Re;case"onBeforeRouteLeave":case"onAfterRouteLeave":return ge;default:throw new Error(`Switch is not exhaustive for lifecycle: ${e}`)}}function Wr(e,t){const r=new oe;return e.matches.forEach((n,o)=>{n.onBeforeRouteEnter&&ye(e,t,o)&&se(n.onBeforeRouteEnter).forEach(a=>r.onBeforeRouteEnter.add(a)),n.onBeforeRouteUpdate&&Re(e,t,o)&&se(n.onBeforeRouteUpdate).forEach(a=>r.onBeforeRouteUpdate.add(a))}),t==null||t.matches.forEach((n,o)=>{n.onBeforeRouteLeave&&ge(e,t,o)&&se(n.onBeforeRouteLeave).forEach(a=>r.onBeforeRouteLeave.add(a))}),r}function Gr(e,t){const r=new oe;return e.matches.forEach((n,o)=>{n.onAfterRouteEnter&&ye(e,t,o)&&se(n.onAfterRouteEnter).forEach(a=>r.onAfterRouteEnter.add(a)),n.onAfterRouteUpdate&&Re(e,t,o)&&se(n.onAfterRouteUpdate).forEach(a=>r.onAfterRouteUpdate.add(a))}),t==null||t.matches.forEach((n,o)=>{n.onAfterRouteLeave&&ge(e,t,o)&&se(n.onAfterRouteLeave).forEach(a=>r.onAfterRouteLeave.add(a))}),r}function Qr(e,t,r){const n=new oe;return e.matches.forEach((o,a)=>{ye(e,t,a)&&r.onBeforeRouteEnter.forEach(s=>n.onBeforeRouteEnter.add(s)),Re(e,t,a)&&r.onBeforeRouteUpdate.forEach(s=>n.onBeforeRouteUpdate.add(s))}),t==null||t.matches.forEach((o,a)=>{ge(e,t,a)&&r.onBeforeRouteLeave.forEach(s=>n.onBeforeRouteLeave.add(s))}),n}function Kr(e,t,r){const n=new oe;return e.matches.forEach((o,a)=>{ye(e,t,a)&&r.onAfterRouteEnter.forEach(s=>n.onAfterRouteEnter.add(s)),Re(e,t,a)&&r.onAfterRouteUpdate.forEach(s=>n.onAfterRouteUpdate.add(s))}),t==null||t.matches.forEach((o,a)=>{ge(e,t,a)&&r.onAfterRouteLeave.forEach(s=>n.onAfterRouteLeave.add(s))}),n}const Nt=Symbol();function Yr(){const e={global:new oe,component:new oe},{reject:t,push:r,replace:n,abort:o}=Ct(),a=i=>(e.global.onBeforeRouteEnter.add(i),()=>e.global.onBeforeRouteEnter.delete(i)),s=i=>(e.global.onBeforeRouteUpdate.add(i),()=>e.global.onBeforeRouteUpdate.delete(i)),f=i=>(e.global.onBeforeRouteLeave.add(i),()=>e.global.onBeforeRouteLeave.delete(i)),l=i=>(e.global.onAfterRouteEnter.add(i),()=>e.global.onAfterRouteEnter.delete(i)),u=i=>(e.global.onAfterRouteUpdate.add(i),()=>e.global.onAfterRouteUpdate.delete(i)),y=i=>(e.global.onAfterRouteLeave.add(i),()=>e.global.onAfterRouteLeave.delete(i));async function S({to:i,from:p}){const{global:U,component:w}=e,E=Wr(i,p),A=Qr(i,p,U),B=[...A.onBeforeRouteEnter,...E.onBeforeRouteEnter,...A.onBeforeRouteUpdate,...E.onBeforeRouteUpdate,...w.onBeforeRouteUpdate,...A.onBeforeRouteLeave,...E.onBeforeRouteLeave,...w.onBeforeRouteLeave];try{const m=B.map(h=>h(i,{from:p,reject:t,push:r,replace:n,abort:o}));await Promise.all(m)}catch(m){if(m instanceof he||m instanceof Ue||m instanceof Bt)return m.response;throw m}return{status:"SUCCESS"}}async function x({to:i,from:p}){const{global:U,component:w}=e,E=Gr(i,p),A=Kr(i,p,U),B=[...w.onAfterRouteLeave,...E.onAfterRouteLeave,...A.onAfterRouteLeave,...w.onAfterRouteUpdate,...E.onAfterRouteUpdate,...A.onAfterRouteUpdate,...w.onAfterRouteEnter,...E.onAfterRouteEnter,...A.onAfterRouteEnter];try{const m=B.map(h=>h(i,{from:p,reject:t,push:r,replace:n}));await Promise.all(m)}catch(m){if(m instanceof he||m instanceof Ue)return m.response;throw m}return{status:"SUCCESS"}}return{runBeforeRouteHooks:S,runAfterRouteHooks:x,addComponentBeforeRouteHook:({lifecycle:i,depth:p,hook:U})=>{const w=xt(i),E=e.component[i],A=(B,m)=>{if(w(B,m.from,p))return U(B,m)};return E.add(A),()=>E.delete(A)},addComponentAfterRouteHook:({lifecycle:i,depth:p,hook:U})=>{const w=xt(i),E=e.component[i],A=(B,m)=>{if(w(B,m.from,p))return U(B,m)};return E.add(A),()=>E.delete(A)},addGlobalRouteHooks:i=>{i.onBeforeRouteEnter.forEach(p=>a(p)),i.onBeforeRouteUpdate.forEach(p=>s(p)),i.onBeforeRouteLeave.forEach(p=>f(p)),i.onAfterRouteEnter.forEach(p=>l(p)),i.onAfterRouteUpdate.forEach(p=>u(p)),i.onAfterRouteLeave.forEach(p=>y(p))},onBeforeRouteEnter:a,onBeforeRouteUpdate:s,onBeforeRouteLeave:f,onAfterRouteEnter:l,onAfterRouteUpdate:u,onAfterRouteLeave:y}}function Xr(e){return c.defineComponent(()=>()=>c.h("h1",e),{name:e,props:[]})}function qe(e){const t=new URLSearchParams(e);return{get:(...r)=>t.get(...r),getAll:(...r)=>t.getAll(...r),set:(...r)=>{t.set(...r)},append:(...r)=>{t.append(...r)},delete:(...r)=>{t.delete(...r)},toString:(...r)=>t.toString(...r),forEach:(...r)=>{t.forEach(...r)},entries:(...r)=>t.entries(...r),keys:(...r)=>t.keys(...r),values:(...r)=>t.values(...r),has:(...r)=>t.has(...r),size:t.size,sort:()=>{t.sort()},[Symbol.iterator]:()=>t[Symbol.iterator]()}}function Ze(){let e=0;return()=>(++e).toString()}const zr=Ze()();function en(e){return e===zr}const De=Ze();function tn(e){const t=a=>c.markRaw(e[a]??Xr(a)),r=a=>{const s=c.markRaw(t(a)),f={id:De(),component:s,meta:{},state:{}};return{id:f.id,matched:f,matches:[f],name:a,query:qe(""),params:{},state:{},href:"/",hash:"",[Lt]:!0}},n=a=>{if(!a){o.value=null;return}const s=t(a);o.value={type:a,component:s}},o=c.ref(null);return{setRejection:n,rejection:o,getRejectionRoute:r}}class rn extends Error{constructor(){super("initialUrl must be set if window.location is unavailable")}}function nn(e){if(e)return e;if(je())return window.location.toString();throw new rn}function Vt(e){return!!e&&typeof e=="object"}const Le=!0;function on(e,t,r){if(Vt(e)&&t in e){const n=e[t];return typeof n=="string"?ee(n,r,Le):n}return ee(void 0,r,Le)}function jt(e,t){const r={};for(const[n,o]of Object.entries(e)){const a=on(t,n,o);r[n]=a}return r}function an(e,t,r){if(Vt(e)&&t in e){const n=e[t];return te(n,r,Le)}return te(void 0,r,Le)}const $t=(e,t)=>{const r={};for(const[n,o]of Object.entries(e)){const a=an(t,n,o);r[n]=a}return r};function sn(){const e=c.reactive(new Map),t=je()?s():null,r=f=>{e.set(f,!1),t==null||t.observe(f)},n=f=>{e.delete(f),t==null||t.unobserve(f)},o=()=>{t==null||t.disconnect()},a=f=>e.get(f)??!1;function s(){return new IntersectionObserver(f=>{f.forEach(l=>{e.set(l.target,l.isIntersecting)})})}return{observe:r,unobserve:n,disconnect:o,isElementVisible:a}}const Ht=Symbol("visibilityObserver");function cn(e){const t=c.inject(Ht);if(!t)throw new z;return c.watch(e,(n,o)=>{n&&t.observe(n),o&&t.unobserve(o)},{immediate:!0}),c.onUnmounted(()=>{e.value&&t.unobserve(e.value)}),{isElementVisible:c.computed(()=>e.value?t.isElementVisible(e.value):!1)}}class un extends Error{constructor(t){super(`Route not found: "${t}"`)}}function Ie(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function fn(e,t){const r=Array.from(e.matchAll(t));if(r.length===0)return[e];let n=0;const o=r.reduce((s,f)=>{const l=Ie(e.slice(n,f.index));l.length&&s.push(l);const[u]=f;return s.push(u),n=f.index+u.length,s},[]),a=e.slice(n);return a&&o.push(a),o}function ln(e){const t=_t(e.path.value);return new RegExp(`^${t}$`,"i")}function hn(e){const t=new URLSearchParams(e.query.value);return Array.from(t.entries()).filter(([,r])=>!Me(r)).map(([r,n])=>{const o=_t(n);return new RegExp(`${Ie(r)}=${o}(&|$)`,"i")})}function _t(e){return fn(e,new RegExp(pn,"g")).map(t=>t.startsWith(G)?Ot(t):Ie(t)).join("")}function Ot(e){return[dn,mn].reduce((t,r)=>r(t),e)}const pn=`\\${G}\\??([\\w-_]+)\\${K}`,Te=`\\${G}\\?([\\w-_]+)\\${K}`,qt=`\\${G}([\\w-_]+)\\${K}`;function dn(e){return e.replace(new RegExp(Te,"g"),".*")}function Me(e){return new RegExp(Te,"g").test(e)}function mn(e){return e.replace(new RegExp(qt,"g"),".+")}function we(e){const[t]=Be(e,new RegExp(Te,"g")),[r]=Be(e,new RegExp(qt,"g"));return t??r}function Be(e,t){return Array.from(e.matchAll(t)).flatMap(([,...n])=>n.map(o=>J(o)?o:""))}function Zt(e,t,r){const n=It(t,r),[o]=Be(e,n);return o}function Dt(e,t){if(!t)return e;const{name:r,param:n,value:o}=t,a=It(e,r);return Be(e,a).reduce((f,l)=>l===void 0?f:f.replace(l,()=>te(o,n,r.startsWith("?"))),e)}function It(e,t){const r=[yn,gn,Ot].reduce((n,o)=>o(n,t),e);return new RegExp(r,"g")}function yn(e,t){if(!t.startsWith("?"))return e;const r=new RegExp(`\\${G}\\${t}\\${K}`,"g");return e.replace(r,"(.*)")}function gn(e,t){if(t.startsWith("?"))return e;const r=new RegExp(`\\${G}${t}\\${K}`,"g");return e.replace(r,"(.+)")}function Tt({protocol:e,host:t,pathname:r,search:n,searchParams:o,hash:a}){const s=new URL("https://localhost");e&&(s.protocol=e),t&&(s.host=t),r&&(s.pathname=r),o?s.search=new URLSearchParams(o).toString():n&&(s.search=n),a&&(s.hash=a);const f=s.toString().replace(/^https:\/\/localhost\/*/,"/");return Ve(f)}function Fe(...e){const t=new URLSearchParams;for(const r of e){const n=new URLSearchParams(r);for(const[o,a]of n.entries())t.append(o,a)}return t}function Rn(e,t={}){const{params:r={},query:n}=t,o=Pn(e.query,r),a=Fe(o,n),s=En(e.path,r),f=Pe(e.hash.value??t.hash).value,l=wn(e.host,r),{protocol:u,host:y}=O(l);return Tt({protocol:u,host:y,pathname:s,searchParams:a,hash:f})}function wn(e,t){const r=e.value&&!e.value.startsWith("http")?`https://${e.value}`:e.value;return Object.entries(e.params).reduce((n,[o,a])=>{const s=we(`${G}${o}${K}`);return s?Dt(n,{name:o,param:a,value:t[s]}):n},r)}function En(e,t){return Object.entries(e.params).reduce((r,[n,o])=>{const a=we(`${G}${n}${K}`);return a?Dt(r,{name:n,param:o,value:t[a]}):r},e.value)}function Pn(e,t){const r=new URLSearchParams(e.value);if(!e.value)return r;for(const[n,o]of Array.from(r.entries())){const a=we(o);if(!a)continue;const f=Me(o),l=f?`?${a}`:a,u=te(t[a],e.params[l],f),y=t[a]===void 0&&u==="";f&&y?r.delete(n,o):r.set(n,u)}return r}const bn=(e,t)=>{try{Je(e,t)}catch{return!1}return!0},Je=(e,t)=>{const{pathname:r,search:n}=O(t);return{...Sn(e.path,r),...vn(e.query,n)}};function Sn(e,t){const r={},n=decodeURIComponent(t);for(const[o,a]of Object.entries(e.params)){const s=o.startsWith("?"),f=s?o.slice(1):o,l=Zt(n,e.value,o),u=ee(l,a,s);r[f]=u}return r}function vn(e,t){const r={},n=new URLSearchParams(e.value),o=new URLSearchParams(t);for(const[a,s]of Array.from(n.entries())){const f=we(s);if(!f)continue;const u=Me(s),y=u?`?${f}`:f,S=o.get(a)??void 0,x=ee(S,e.params[y],u);r[f]=x}return r}function An(e,t={},r={}){const n=Rn(e,{params:t,query:r.query,hash:r.hash}),{search:o,hash:a}=O(n);return{id:e.id,matched:e.matched,matches:e.matches,name:e.name,query:qe(o),params:Je(e,n),state:jt(e.state,r.state),hash:a,href:n}}const kn=e=>"name"in e.matched&&!!e.matched.name,Un=(e,t)=>{const{pathname:r}=O(t);return ln(e).test(r)},Ln=(e,t)=>{const{search:r}=O(t);return hn(e).every(o=>o.test(r))},We=(e,t)=>{const{hash:r}=O(t),{value:n}=e.hash;return n===void 0||`#${n.toLowerCase()}`===r.toLowerCase()};function Bn(e){const{searchParams:t,pathname:r}=O(e),n=-1,o=1;return(a,s)=>{const f=Ft(a,t),l=Mt(a,r),u=Ft(s,t),y=Mt(s,r);return a.depth>s.depth?n:a.depth<s.depth?o:f+l>u+y?n:f+l<u+y?o:We(a,e)?n:We(s,e)?o:0}}function Mt(e,t){const r=Object.keys(e.path.params).filter(o=>o.startsWith("?")).map(o=>o),n=r.filter(o=>Zt(t,e.path.value,o)===void 0);return r.length-n.length}function Ft(e,t){const r=new URLSearchParams(t),n=new URLSearchParams(e.query.value),o=Array.from(n.keys()),a=o.filter(s=>!r.has(s));return o.length-a.length}const Cn=[kn,Un,Ln,We,bn];function xn(e,t){const r=Bn(t);return e.filter(n=>Cn.every(o=>o(n,t))).sort(r)}function Nn(e,t,r){const n=xn(e,t);if(!n.length)return;const[o]=n,{searchParams:a,hash:s}=O(t);return{id:o.id,matched:o.matched,matches:o.matches,name:o.name,query:qe(a),params:Je(o,t),state:jt(o.state,r),hash:s,href:Ve(t)}}function Jt(e,t){const r=typeof e=="string"?O(e):e,n=typeof t=="string"?O(t):t,o=r.searchParams??new URLSearchParams(r.search),a=n.searchParams??new URLSearchParams(n.search);return Tt({protocol:J(n.protocol)?n.protocol:r.protocol,host:J(n.host)?n.host:r.host,pathname:J(n.pathname)?n.pathname:r.pathname,searchParams:Fe(a,o),hash:J(n.hash)?n.hash:r.hash})}function Ge(e,t){const r=new RegExp(`\\${G}(\\??[\\w-_]+)\\${K}`,"g");return Array.from(e.matchAll(r)).reduce((o,[a,s])=>{const f=we(a);if(!f)return o;const l=Nr(t,f);return ce([f],o),o[s]=l,o},{})}function Ce(e,t){return{value:e,params:Ge(e,t)}}function Vn(e,t){return J(t)?e.map(r=>{const n=`${t}${r.path.value}`;return{...r,path:Ce(n,r.path.params)}}):e}class jn extends Error{constructor(t){super(`Invalid Name "${t}": Router does not support multiple routes with the same name. All name names must be unique.`)}}function $n(e){const t=e.map(({name:r})=>r);for(const r of t)if(ut(t,r)>1)throw new jn(r)}function Hn(e,t=[],r){const n=[...e,...t.map(o=>o.routes)].flat();return $n(n),Vn(n,r)}function _n(e={},t=[]){const r=new oe;return pe("onBeforeRouteEnter",e,t).forEach(n=>r.onBeforeRouteEnter.add(n)),pe("onBeforeRouteUpdate",e,t).forEach(n=>r.onBeforeRouteUpdate.add(n)),pe("onBeforeRouteLeave",e,t).forEach(n=>r.onBeforeRouteLeave.add(n)),pe("onAfterRouteEnter",e,t).forEach(n=>r.onAfterRouteEnter.add(n)),pe("onAfterRouteUpdate",e,t).forEach(n=>r.onAfterRouteUpdate.add(n)),pe("onAfterRouteLeave",e,t).forEach(n=>r.onAfterRouteLeave.add(n)),r}function pe(e,t,r){return[t[e],...r.map(o=>o[e])].flat().filter(o=>o!==void 0)}function Wt(e){return typeof e=="object"&&e!==null&&"then"in e}function Qe(e,t,{exact:r}={}){return qr(e)?t===void 0?!0:r?e.matched.name===t:e.matches.map(n=>n.name).includes(t):!1}function Ke(e,t){const r=Ee();function n(){if(!e)return;if(!Qe(r.route,e,t))throw new ct(e,r.route.name)}return c.watch(r.route,n,{immediate:!0,deep:!0}),r.route}function On(e,t,r){return c.defineComponent({name:"PropsWrapper",expose:[],setup(){const n=c.getCurrentInstance(),o=cr(),a=Ke();return()=>{const s=o.getProps(e.id,t,a);return s instanceof Error?"":Wt(s)?n!=null&&n.suspense?c.h(Zn,{component:r,props:s}):c.h(qn,{component:r,props:s}):c.h(r,s)}}})}const qn=c.defineComponent(e=>{const t=c.ref();return c.watch(()=>e.props,async r=>{t.value=await r},{immediate:!0,deep:!0}),()=>t.value instanceof Error?"":t.value?c.h(e.component,t.value):""},{props:["component","props"]}),Zn=c.defineComponent(async e=>{const t=c.ref();return t.value=await e.props,c.watch(()=>t.value,async r=>{t.value=await r},{deep:!0}),()=>t.value instanceof Error?"":t.value?c.h(e.component,t.value):""},{props:["component","props"]}),Gt=Symbol();function Ye(){return c.inject(Gt,0)}function Dn(){const e=c.inject(Qt);if(!e)throw new z;return e}const Xe=c.defineComponent({__name:"routerView",props:{name:{default:"default"}},setup(e){const t=Ke(),r=Or(),n=Ye(),{getRouteComponents:o}=Dn();c.provide(Gt,n+1);const a=c.computed(()=>{if(r.value)return r.value.component;const s=t.matches.at(n);return s?o(s)[e.name]:null});return(s,f)=>a.value?c.renderSlot(s.$slots,"default",c.normalizeProps(c.mergeProps({key:0},{route:c.unref(t),component:a.value,rejection:c.unref(r)})),()=>[(c.openBlock(),c.createBlock(c.resolveDynamicComponent(a.value)))]):c.createCommentVNode("",!0)}}),Qt=Symbol();function In(){const e=new Map;return{getRouteComponents:r=>{const n=e.get(r.id);if(n)return n;const o=Tn(r);return e.set(r.id,o),o}}}function Tn(e){return pt(e)?Kt(e,e.components):lt(e)?Kt(e,{default:e.component}):{default:Xe}}function Kt(e,t){return Object.fromEntries(Object.entries(t).map(([r,n])=>[r,On(e,r,n)]))}function Mn(e,t,r=[]){const n=Hn(e,r,t==null?void 0:t.base),o=Yr();o.addGlobalRouteHooks(_n(t,r));const a=Ze(),s=to(),f=In(),l=sn(),u=Fr({mode:t==null?void 0:t.historyMode,listener:({location:v})=>{const N=ne(v);S(N,{state:v.state,replace:!0})}});function y(v,N={}){return Nn(n,v,N.state)}async function S(v,N={}){const Q=a();if(u.stopListening(),L(v)){u.update(v,N);return}const I=y(v,N)??U("NotFound"),q=yr(Q),X=await o.runBeforeRouteHooks({to:I,from:q});switch(X.status){case"ABORT":return;case"PUSH":u.update(v,N),await g(...X.to);return;case"REJECT":u.update(v,N),i(X.type);break;case"SUCCESS":u.update(v,N),i(null);break;default:throw new Error(`Switch is not exhaustive for before hook response status: ${JSON.stringify(X)}`)}const rt=Q;s.setProps(I).then(T=>{if(rt===Q)switch(T.status){case"SUCCESS":break;case"PUSH":g(...T.to);break;case"REJECT":i(T.type);break;default:const nt=T;throw new Error(`Switch is not exhaustive for prop store response status: ${JSON.stringify(nt)}`)}}),B(I);const M=await o.runAfterRouteHooks({to:I,from:q});switch(M.status){case"PUSH":await g(...M.to);break;case"REJECT":i(M.type);break;case"SUCCESS":break;default:const T=M;throw new Error(`Switch is not exhaustive for after hook response status: ${JSON.stringify(T)}`)}u.startListening()}const x=(v,N={},Q={})=>{const I=n.find(q=>q.name===v);if(!I)throw new un(String(v));return An(I,N,Q)},g=(v,N,Q)=>{if(Z(v)){const M={...N},T=Jt(v,{searchParams:M.query,hash:M.hash});return S(T,M)}if(typeof v=="string"){const{replace:M,...T}={...Q},nt={...N},ot=x(v,nt,T),po=$t({...ot.matched.state},{...ot.state,...T.state});return S(ot.href,{replace:M,state:po})}const{replace:I,...q}={...N},X=$t({...v.matched.state},{...v.state,...q.state}),rt=Jt(v.href,{searchParams:q.query,hash:q.hash});return S(rt,{replace:I,state:X})},d=(v,N,Q)=>{if(Z(v)){const q={...N,replace:!0};return g(v,q)}if(typeof v=="string"){const q={...Q,replace:!0},X={...N};return g(v,X,q)}const I={...N,replace:!0};return g(v,I)},R=v=>{i(v)},{setRejection:i,rejection:p,getRejectionRoute:U}=tn({...r.reduce((v,N)=>({...v,...N.rejections}),{}),...t==null?void 0:t.rejections}),w=U("NotFound"),{currentRoute:E,routerRoute:A,updateRoute:B}=Dr(w,g),m=nn(t==null?void 0:t.initialUrl),h=u.location.state,{host:P}=O(m),L=Mr(P);let C=!1;const{promise:V,resolve:$}=Promise.withResolvers();async function _(){if(C)return V;C=!0,await S(m,{replace:!0,state:h}),u.startListening(),$()}function D(){u.stopListening()}function yr(v){return en(v)?null:{...E}}function ho(v){v.component("RouterView",Xe),v.component("RouterLink",lr),v.provide(kt,p),v.provide(Nt,o),v.provide(sr,s),v.provide(Qt,f),v.provide(Ht,l),v.provide(it,gr),_()}const gr={route:A,resolve:x,find:y,push:g,replace:d,reject:R,refresh:u.refresh,forward:u.forward,back:u.back,go:u.go,install:ho,isExternal:L,onBeforeRouteEnter:o.onBeforeRouteEnter,onBeforeRouteUpdate:o.onBeforeRouteUpdate,onBeforeRouteLeave:o.onBeforeRouteLeave,onAfterRouteEnter:o.onAfterRouteEnter,onAfterRouteUpdate:o.onAfterRouteUpdate,onAfterRouteLeave:o.onAfterRouteLeave,prefetch:t==null?void 0:t.prefetch,start:_,stop:D};return gr}function ze(e,t){return{value:e,params:Ge(e,t)}}function Fn(e){return{routes:e.routes??[],rejections:e.rejections??{},...e}}function Yt(...e){return{get:(t,{invalid:r})=>{for(const n of e){const o=jr(t,n);if(o!==void 0)return o}throw r(`Value ${t} does not satisfy any of the possible values`)},set:(t,{invalid:r})=>{for(const n of e){const o=$r(t,n);if(o!==void 0)return o}throw r(`Value ${t} does not satisfy any of the possible values`)}}}function Jn(...e){const t=Yt(...e);return{get:(r,n)=>r.split(",").map(o=>t.get(o,n)),set:(r,n)=>{if(!Array.isArray(r))throw n.invalid("Expected an array");return r.map(o=>t.set(o,n)).join(",")}}}function Wn(...e){return{get:t=>{const r=t.split(",");return e.map((n,o)=>ee(r.at(o),n))},set:(t,{invalid:r})=>{if(!Array.isArray(t))throw r("Expected a tuple");if(t.length!==e.length)throw r(`Expected tuple with ${e.length} values but received ${t.length} values`);return e.map((n,o)=>te(t.at(o),n)).join(",")}}}function Xt(e,t){return{value:e,params:Ge(e,t)}}function Gn(e){return de(e)&&typeof e.hash=="string"}function zt(e){return e===void 0?Pe():Gn(e)?e:Pe(e)}function er(e){return e===void 0?"":e}function Qn(e){return de(e)&&typeof e.value=="string"}function tr(e){return e===void 0?Ce("",{}):Qn(e)?e:Ce(e,{})}function Kn(e){return de(e)&&typeof e.value=="string"}function rr(e){return e===void 0?ze("",{}):Kn(e)?e:ze(e,{})}function ae(e,t){const r=De(),n=er(e.name),o=tr(e.path),a=rr(e.query),s=zt(e.hash),f=e.meta??{},l=kr(e)?e.state:{},u=c.markRaw({id:r,meta:{},state:{},...e,props:t}),y={id:r,matched:u,matches:[u],name:n,path:o,query:a,hash:s,meta:f,state:l,depth:1,host:Xt("",{}),prefetch:e.prefetch},S=ft(e)?mt(e.parent,y):y;return ce(S.path.params,S.query.params),S}const xe={template:"<div>This is component</div>"},et=ae({name:"parentA",path:"/parentA/[paramA]"}),nr=ae({parent:et,name:"parentA.childA",path:"/childA/[?paramB]"}),Yn=ae({parent:et,name:"parentA.childB",path:"/childB/[paramD]",component:xe}),Xn=ae({parent:nr,name:"parentA.childA.grandChildA",path:"/[paramC]",component:xe});ae({name:"parentB",path:"/parentB",component:xe}),ae({name:"parentC",path:"/",component:xe});const zn="lazy",eo={components:!0,props:!1};function Ne(e){return["eager","lazy","intent"].includes(e)}function or({routerPrefetch:e,routePrefetch:t,linkPrefetch:r},n){const o=tt(r,n),a=tt(t,n),s=tt(e,n),f=[o,a,s,eo[n],zn].reduce((l,u)=>Ne(l)?l:l===!0&&Ne(u)?u:l===!0&&!Ne(u)?l:l===void 0?u:l,void 0);return Ne(f)?f:!1}function tt(e,t){return de(e)?e[t]:e}function ar(e){try{const t=e();return Wt(t)?t.catch(r=>r):t}catch(t){return t}}const sr=Symbol();function to(){const e=c.reactive(new Map),{push:t,replace:r,reject:n}=Ct(),o=(g,d,R)=>d.matches.filter(i=>or({...R,routePrefetch:i.prefetch},"props")===g).flatMap(i=>S(i)).reduce((i,{id:p,name:U,props:w})=>{if(!w)return i;const E=y(p,U,d),A=ar(()=>w(d,{push:t,replace:r,reject:n,parent:l(d,!0)}));return i[E]=A,i},{}),a=g=>{Object.entries(g).forEach(([d,R])=>{e.set(d,R)})},s=async g=>{const d=g.matches.flatMap(S),R=[],i=[];for(const{id:p,name:U,props:w}of d){if(!w)continue;const E=y(p,U,g);if(R.push(E),!e.has(E)){const A=ar(()=>w(g,{push:t,replace:r,reject:n,parent:l(g)}));e.set(E,A)}i.push((async()=>{const A=await e.get(E);if(A instanceof Error)throw A})())}x(R);try{return await Promise.all(i),{status:"SUCCESS"}}catch(p){if(p instanceof he||p instanceof Ue)return p.response;throw p}},f=(g,d,R)=>{const i=y(g,d,R);return e.get(i)};function l(g,d=!1){const R=g.matches.at(-2);if(R)return ht(R)?{name:R.name??"",get props(){return u(R,"default",g,d)}}:dt(R)?{name:R.name??"",props:new Proxy({},{get(i,p){return typeof p!="string"?Reflect.get(i,p):u(R,p,g,d)}})}:{name:R.name??"",props:void 0}}function u(g,d,R,i=!1){const p=f(g.id,d,R);if(i&&!p){const U=g.name??"unknown",w=R.name||"unknown";console.warn(`
|
|
2
|
+
Unable to access parent props "${d}" from route "${U}" while prefetching props for route "${w}".
|
|
3
3
|
This may occur if the parent route's props were not also prefetched.
|
|
4
|
-
`)}return
|
|
4
|
+
`)}return p}function y(g,d,R){return[g,d,R.id,JSON.stringify(R.params)].join("-")}function S(g){return ht(g)?[{id:g.id,name:"default",props:g.props}]:dt(g)?Object.entries(g.props).map(([d,R])=>({id:g.id,name:d,props:R})):[]}function x(g){for(const d of e.keys())g.includes(d)||e.delete(d)}return{getPrefetchProps:o,setPrefetchProps:a,getProps:f,setProps:s}}function cr(){const e=c.inject(sr);if(!e)throw new z;return e}const ro=c.defineAsyncComponent(()=>new Promise(e=>{e({default:{template:"foo"}})}));function ir(e){return e.name===ro.name&&"__asyncLoader"in e}function ur(e,t,r){c.watch(e,(n,o)=>{n&&n.addEventListener(t,r),o&&o.removeEventListener(t,r)},{immediate:!0}),c.onUnmounted(()=>{e.value&&e.value.removeEventListener(t,r)})}function no(e){const t=new Map,r=c.ref(),{getPrefetchProps:n,setPrefetchProps:o}=cr(),{isElementVisible:a}=cn(r),s=()=>{const u=Array.from(t.values()).reduce((y,S)=>(Object.assign(y,S),y),{});o(u)};c.watch(()=>c.toValue(e),({route:u,...y})=>{t.clear(),u&&l("eager",u,y)},{immediate:!0}),c.watch(a,u=>{const{route:y,...S}=c.toValue(e);!y||!u||l("lazy",y,S)},{immediate:!0}),ur(r,"focusin",f),ur(r,"mouseover",f);function f(){const{route:u,...y}=c.toValue(e);u&&l("intent",u,y)}function l(u,y,S){oo(u,y,S),t.has(u)||t.set(u,n(u,y,S))}return{element:r,commit:s}}function oo(e,t,r){t.matches.forEach(n=>{or({...r,routePrefetch:n.prefetch},"components")===e&&(lt(n)&&ir(n.component)&&n.component.__asyncLoader(),pt(n)&&Object.values(n.components).forEach(a=>{ir(a)&&a.__asyncLoader()}))})}function fr(e,t={},r={}){const n=Ee(),o=c.computed(()=>{const d=c.toValue(e);return typeof d!="string"?d:Z(d)?n.find(d,c.toValue(r)):n.resolve(d,c.toValue(t),c.toValue(r))}),a=c.computed(()=>{if(o.value)return o.value.href;const d=c.toValue(e);if(Z(d))return d;console.error(new Error("Failed to resolve route in RouterLink."))}),s=c.computed(()=>Qe(n.route)&&n.route.matches.some(d=>{var R;return d.id===((R=o.value)==null?void 0:R.id)})),f=c.computed(()=>{var d;return n.route.id===((d=o.value)==null?void 0:d.id)}),l=c.computed(()=>!!a.value&&n.isExternal(a.value)),u=c.computed(()=>{const d=c.toValue(e);return typeof d!="string"||Z(d)?c.toValue(t):c.toValue(r)}),{element:y,commit:S}=no(()=>({route:o.value,routerPrefetch:n.prefetch,linkPrefetch:u.value.prefetch})),x=d=>{S();const R={replace:(d==null?void 0:d.replace)??u.value.replace,query:Fe(u.value.query,d==null?void 0:d.query),hash:(d==null?void 0:d.hash)??u.value.hash,state:{...u.value.state,...d==null?void 0:d.state}},i=c.toValue(e);return Z(i)||typeof i=="object"?n.push(i,R):n.push(i,c.toValue(t),R)};return{element:y,route:o,href:a,isMatch:s,isExactMatch:f,isExternal:l,push:x,replace:d=>x({...d,replace:!0})}}const ao=["href"],lr=c.defineComponent({__name:"routerLink",props:{to:{},prefetch:{type:[Boolean,String,Object],default:void 0},query:{},hash:{},replace:{type:Boolean},state:{}},setup(e){const t=e,r=Ee(),n=c.computed(()=>x(t.to)),o=c.computed(()=>g(t.to)),a=c.computed(()=>{const{to:R,...i}=t;return i}),{element:s,isMatch:f,isExactMatch:l,isExternal:u,push:y}=fr(()=>typeof t.to=="function"?t.to(r.resolve):t.to,a),S=c.computed(()=>({"router-link--match":f.value,"router-link--exact-match":l.value}));function x(R){if(typeof R=="function"){const i=R(r.resolve);return x(i)}return Z(R)?r.find(R):R}function g(R){if(typeof R=="function"){const i=R(r.resolve);return g(i)}return Z(R)?R:R==null?void 0:R.href}function d(R){R.preventDefault(),y()}return(R,i)=>(c.openBlock(),c.createElementBlock("a",{ref_key:"element",ref:s,href:o.value,class:c.normalizeClass(["router-link",S.value]),onClick:d},[c.renderSlot(R.$slots,"default",c.normalizeProps(c.guardReactiveProps({route:n.value,isMatch:c.unref(f),isExactMatch:c.unref(l),isExternal:c.unref(u)})))],10,ao))}});function hr(){const e=c.inject(Nt);if(!e)throw new z;return e}function pr(e){return t=>{const r=Ye(),o=hr().addComponentBeforeRouteHook({lifecycle:e,hook:t,depth:r-1});return c.onUnmounted(o),o}}function dr(e){return t=>{const r=Ye(),o=hr().addComponentAfterRouteHook({lifecycle:e,hook:t,depth:r-1});return c.onUnmounted(o),o}}const so=pr("onBeforeRouteLeave"),co=pr("onBeforeRouteUpdate"),io=dr("onAfterRouteLeave"),uo=dr("onAfterRouteUpdate");function fo(e){return de(e)&&typeof e.value=="string"}function mr(e){return fo(e)?e:Xt(e,{})}function lo(e){const t=De(),r=er(e.name),n=tr(e.path),o=rr(e.query),a=zt(e.hash),s=e.meta??{},f=Ar(e)?mr(e.host):mr(""),l=c.markRaw({id:t,meta:{},state:{},...e}),u={id:t,matched:l,matches:[l],name:r,host:f,path:n,query:o,hash:a,meta:s,depth:1,state:{}},y=ft(e)?mt(e.parent,u):u;return ce(y.path.params,y.query.params,y.host.params),y}k.DuplicateParamsError=at,k.MetaPropertyConflict=st,k.RouterLink=lr,k.RouterNotInstalledError=z,k.RouterView=Xe,k.UseRouteInvalidError=ct,k.arrayOf=Jn,k.asUrl=Ve,k.createExternalRoute=lo,k.createParam=Pt,k.createRoute=ae,k.createRouter=Mn,k.createRouterPlugin=Fn,k.isRoute=Qe,k.isUrl=Z,k.onAfterRouteLeave=io,k.onAfterRouteUpdate=uo,k.onBeforeRouteLeave=so,k.onBeforeRouteUpdate=co,k.path=Ce,k.query=ze,k.tupleOf=Wn,k.unionOf=Yt,k.useLink=fr,k.useRoute=Ke,k.useRouter=Ee,k.withDefault=Cr,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kitbag/router",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.17.
|
|
4
|
+
"version": "0.17.2",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/kitbagjs/router/issues"
|
|
7
7
|
},
|
|
@@ -43,21 +43,27 @@
|
|
|
43
43
|
"@kitbag/eslint-config": "1.0.2",
|
|
44
44
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
45
45
|
"@vue/test-utils": "^2.4.6",
|
|
46
|
-
"eslint": "^9.
|
|
46
|
+
"eslint": "^9.19.0",
|
|
47
47
|
"globals": "^15.14.0",
|
|
48
|
-
"happy-dom": "^16.
|
|
48
|
+
"happy-dom": "^16.7.3",
|
|
49
49
|
"typedoc": "^0.27.6",
|
|
50
50
|
"typedoc-plugin-markdown": "^4.4.1",
|
|
51
51
|
"typedoc-vitepress-theme": "^1.1.2",
|
|
52
52
|
"typescript": "^5.7.3",
|
|
53
|
-
"vite": "^6.0.
|
|
53
|
+
"vite": "^6.0.11",
|
|
54
54
|
"vite-plugin-dts": "^4.5.0",
|
|
55
|
-
"vitepress": "^1.
|
|
55
|
+
"vitepress": "^1.6.3",
|
|
56
56
|
"vitest": "^2.1.6",
|
|
57
57
|
"vue-tsc": "^2.2.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"vue": "^3.5.0"
|
|
60
|
+
"vue": "^3.5.0",
|
|
61
|
+
"zod": "^3.24.1"
|
|
62
|
+
},
|
|
63
|
+
"peerDependenciesMeta": {
|
|
64
|
+
"zod": {
|
|
65
|
+
"optional": true
|
|
66
|
+
}
|
|
61
67
|
},
|
|
62
68
|
"dependencies": {
|
|
63
69
|
"history": "^5.3.0"
|