@kitbag/router 0.7.1 → 0.7.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/README.md +2 -2
- package/dist/kitbag-router.d.ts +69 -71
- package/dist/kitbag-router.js +423 -420
- package/dist/kitbag-router.umd.cjs +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(y,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],i):(y=typeof globalThis<"u"?globalThis:y||self,i(y["@kitbag/router"]={},y.Vue))})(this,function(y,i){"use strict";var or=Object.defineProperty;var ar=(y,i,T)=>i in y?or(y,i,{enumerable:!0,configurable:!0,writable:!0,value:T}):y[i]=T;var O=(y,i,T)=>(ar(y,typeof i!="symbol"?i+"":i,T),T);class T extends Error{constructor(e){super(`Invalid Param "${e}": Router does not support multiple params by the same name. All param names must be unique.`)}}class ut extends Error{constructor(){super("Router not installed")}}class _t extends Error{constructor(e,n){super(`useRoute called with incorrect route. Given ${e}, expected ${n}`)}}const wt=Symbol();function it(){const t=i.inject(wt);if(!t)throw new ut;return t}class Y extends Error{}function K(t){return typeof t!="string"?!1:/^(https?:\/\/|\/).*/g.test(t)}function Wt(t,e={},n={}){const r=it(),o=i.computed(()=>i.toValue(t)),a=i.computed(()=>i.toValue(e)),s=i.computed(()=>i.toValue(n)),c=i.computed(()=>{if(K(o.value))return o.value;try{return r.resolve(o.value,a.value,s.value)}catch(l){throw l instanceof Y&&console.error(`Failed to resolve route "${o.value.toString()}" in RouterLink.`,l),l}}),u=i.computed(()=>r.find(c.value,s.value)),h=i.computed(()=>!!u.value&&r.route.matches.includes(u.value.matched)),d=i.computed(()=>!!u.value&&r.route.matched===u.value.matched);return{route:u,href:c,isMatch:h,isExactMatch:d,push:l=>r.push(c.value,{},{...s.value,...l}),replace:l=>r.replace(c.value,{},{...s.value,...l})}}const vt=Symbol();function Dt(){const t=i.inject(vt);if(!t)throw new ut;return t}function Mt(t,e){return[t,e].filter(n=>!!n).join(".")}const Tt=Symbol("isRouterRouteSymbol");function Ce(t){return typeof t=="object"&&t!==null&&Tt in t}function Oe(t,e){function n(d,l,S){if(typeof d=="object"){const A={...t.params,...d};return e(t.key,A,l)}const m={...t.params,[d]:l};return e(t.key,m,S)}const{matched:r,matches:o,key:a,query:s,params:c,state:u}=i.toRefs(t),h=i.reactive({matched:r,matches:o,state:u,query:s,params:c,key:a,update:n,[Tt]:!0});return new Proxy(h,{get:(d,l,S)=>l==="params"?new Proxy(t.params,{set(m,A,x){return n(A,x),!0}}):l==="state"?new Proxy(t.state,{set(m,A,x){return n({},{state:{...t.state,[A]:x}}),!0}}):Reflect.get(d,l,S)})}function It(t,e,{exact:n}={}){if(!Ce(t))return!1;if(e===void 0)return!0;const r=qe(t);if(n){const o=r.at(-1);return e===o}return r.includes(e)}function qe(t){return t.matches.map(n=>n.name).reduce((n,r)=>{const o=n.pop(),a=r?[Mt(o,r)]:[];return o?[...n,o,...a]:a},[])}function Ft(t,e){const n=it();function r(){if(!t)return;if(!It(n.route,t,e))throw new _t(t,n.route.key)}return i.watch(n.route,r,{immediate:!0,deep:!0}),n.route}const Jt=Symbol();function Et(){return i.inject(Jt,0)}class ft{constructor(){O(this,"onBeforeRouteEnter",new Set);O(this,"onBeforeRouteUpdate",new Set);O(this,"onBeforeRouteLeave",new Set);O(this,"onAfterRouteEnter",new Set);O(this,"onAfterRouteUpdate",new Set);O(this,"onAfterRouteLeave",new Set)}}class Kt extends Error{}class rt extends Error{constructor(n){super("Error occurred during a router push operation.");O(this,"to");this.to=n}}class Pt extends Error{constructor(n){super(`Routing action rejected: ${n}`);O(this,"type");this.type=n}}function X(t){return Array.isArray(t)?t:[t]}function _e(t,e){const n=new ft;return t.matches.forEach((r,o)=>{r.onBeforeRouteEnter&&St(t,e,o)&&X(r.onBeforeRouteEnter).forEach(a=>n.onBeforeRouteEnter.add(a)),r.onBeforeRouteUpdate&&kt(t,e,o)&&X(r.onBeforeRouteUpdate).forEach(a=>n.onBeforeRouteUpdate.add(a))}),e.matches.forEach((r,o)=>{r.onBeforeRouteLeave&&bt(t,e,o)&&X(r.onBeforeRouteLeave).forEach(a=>n.onBeforeRouteLeave.add(a))}),n}function We(t,e){const n=new ft;return t.matches.forEach((r,o)=>{r.onAfterRouteEnter&&St(t,e,o)&&X(r.onAfterRouteEnter).forEach(a=>n.onAfterRouteEnter.add(a)),r.onAfterRouteUpdate&&kt(t,e,o)&&X(r.onAfterRouteUpdate).forEach(a=>n.onAfterRouteUpdate.add(a))}),e.matches.forEach((r,o)=>{r.onAfterRouteLeave&&bt(t,e,o)&&X(r.onAfterRouteLeave).forEach(a=>n.onAfterRouteLeave.add(a))}),n}function De(){const t=s=>{throw new Pt(s)},e=(...s)=>{throw new rt(s)},n=(s,c,u)=>{if(K(s)){const l=c??{};throw new rt([s,{...l,replace:!0}])}const h=c,d=u??{};throw new rt([s,h,{...d,replace:!0}])},r=()=>{throw new Kt};async function o({to:s,from:c,hooks:u}){const{global:h,component:d}=u,l=_e(s,c),S=[...h.onBeforeRouteEnter,...l.onBeforeRouteEnter,...h.onBeforeRouteUpdate,...l.onBeforeRouteUpdate,...d.onBeforeRouteUpdate,...h.onBeforeRouteLeave,...l.onBeforeRouteLeave,...d.onBeforeRouteLeave];try{const m=S.map(A=>A(s,{from:c,reject:t,push:e,replace:n,abort:r}));await Promise.all(m)}catch(m){if(m instanceof rt)return{status:"PUSH",to:m.to};if(m instanceof Pt)return{status:"REJECT",type:m.type};if(m instanceof Kt)return{status:"ABORT"};throw m}return{status:"SUCCESS"}}async function a({to:s,from:c,hooks:u}){const{global:h,component:d}=u,l=We(s,c),S=[...d.onAfterRouteLeave,...l.onAfterRouteLeave,...h.onAfterRouteLeave,...d.onAfterRouteUpdate,...l.onAfterRouteUpdate,...h.onAfterRouteUpdate,...d.onAfterRouteEnter,...l.onAfterRouteEnter,...h.onAfterRouteEnter];try{const m=S.map(A=>A(s,{from:c,reject:t,push:e,replace:n}));await Promise.all(m)}catch(m){if(m instanceof rt)return{status:"PUSH",to:m.to};if(m instanceof Pt)return{status:"REJECT",type:m.type};throw m}return{status:"SUCCESS"}}return{runBeforeRouteHooks:o,runAfterRouteHooks:a}}const St=(t,e,n)=>{const r=t.matches,o=(e==null?void 0:e.matches)??[];return r.length<n||r[n]!==o[n]},bt=(t,e,n)=>{const r=t.matches,o=(e==null?void 0:e.matches)??[];return r.length<n||r[n]!==o[n]},kt=(t,e,n)=>t.matches[n]===(e==null?void 0:e.matches[n]);function Qt(t){switch(t){case"onBeforeRouteEnter":case"onAfterRouteEnter":return St;case"onBeforeRouteUpdate":case"onAfterRouteUpdate":return kt;case"onBeforeRouteLeave":case"onAfterRouteLeave":return bt;default:throw new Error(`Switch is not exhaustive for lifecycle: ${t}`)}}class Me{constructor(){O(this,"global",new ft);O(this,"component",new ft)}addBeforeRouteHook({lifecycle:e,timing:n,depth:r,hook:o}){const a=Qt(e),s=this[n][e],c=(u,h)=>{if(a(u,h.from,r))return o(u,h)};return s.add(c),()=>s.delete(c)}addAfterRouteHook({lifecycle:e,timing:n,depth:r,hook:o}){const a=Qt(e),s=this[n][e],c=(u,h)=>{if(a(u,h.from,r))return o(u,h)};return s.add(c),()=>s.delete(c)}}const Gt=Symbol();function Te(){const t=new Me;return{onBeforeRouteEnter:c=>t.addBeforeRouteHook({lifecycle:"onBeforeRouteEnter",hook:c,timing:"global",depth:0}),onBeforeRouteUpdate:c=>t.addBeforeRouteHook({lifecycle:"onBeforeRouteUpdate",hook:c,timing:"global",depth:0}),onBeforeRouteLeave:c=>t.addBeforeRouteHook({lifecycle:"onBeforeRouteLeave",hook:c,timing:"global",depth:0}),onAfterRouteEnter:c=>t.addAfterRouteHook({lifecycle:"onAfterRouteEnter",hook:c,timing:"global",depth:0}),onAfterRouteUpdate:c=>t.addAfterRouteHook({lifecycle:"onAfterRouteUpdate",hook:c,timing:"global",depth:0}),onAfterRouteLeave:c=>t.addAfterRouteHook({lifecycle:"onAfterRouteLeave",hook:c,timing:"global",depth:0}),hooks:t}}function zt(){const t=i.inject(Gt);if(!t)throw new ut;return t}function Yt(t){return e=>{const n=Et(),o=zt().addBeforeRouteHook({lifecycle:t,hook:e,depth:n,timing:"component"});return i.onUnmounted(o),o}}function At(t){return e=>{const n=Et(),o=zt().addAfterRouteHook({lifecycle:t,hook:e,depth:n,timing:"component"});return i.onUnmounted(o),o}}const Ie=Yt("onBeforeRouteUpdate"),Fe=Yt("onBeforeRouteLeave"),Je=At("onAfterRouteEnter"),Ke=At("onAfterRouteUpdate"),Qe=At("onAfterRouteLeave"),Ge=["href"],Xt=i.defineComponent({__name:"routerLink",props:{to:{type:[String,Function]},query:{},replace:{type:Boolean},state:{}},setup(t){const e=t,n=it(),r=i.computed(()=>K(e.to)?e.to:e.to(n.resolve)),o=i.computed(()=>{const{to:l,...S}=e;return S}),{href:a,isMatch:s,isExactMatch:c}=Wt(r),u=i.computed(()=>({"router-link--match":s.value,"router-link--exact-match":c.value})),h=i.computed(()=>n.isExternal(r.value));function d(l){l.preventDefault(),n.push(a.value,o.value)}return(l,S)=>(i.openBlock(),i.createElementBlock("a",{href:r.value,class:i.normalizeClass(["router-link",u.value]),onClick:d},[i.renderSlot(l.$slots,"default",i.normalizeProps(i.guardReactiveProps({resolved:r.value,isMatch:i.unref(s),isExactMatch:i.unref(c),isExternal:h.value})))],10,Ge))}});function Zt(t,e){return i.defineComponent({name:"PropsWrapper",expose:[],setup(){const n=e();return"then"in n?()=>i.h(ze(t,n)):()=>i.h(t,n)}})}function ze(t,e){return i.defineComponent({name:"AsyncPropsWrapper",expose:[],async setup(){const n=await e;return()=>i.h(t,n)}})}class Ye extends Error{constructor(e){super(`Child property on meta for ${e} conflicts with the parent meta.`)}}function Xe(t,e){return Ze(t,e),{...t,...e}}function Ze(t,e){const n=Object.keys(t).find(r=>r in e&&typeof e[r]!=typeof t[r]);if(n)throw new Ye(n)}function Z(...t){const e=t.flatMap(n=>Array.isArray(n)?n:Object.keys(n).map(en));for(const n of e)if(tn(e,n)>1)throw new T(n)}function tn(t,e){return t.filter(n=>e===n).length}function en(t){return t.startsWith("?")?t.slice(1):t}function nn(t,e){Z(t.params,e.params);const n=`${t.path}${e.path}`;return{path:n,params:{...t.params,...e.params},toString:()=>n}}function xt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function rn(t){return t.every(e=>Array.isArray(e))}function lt(t){return typeof t=="string"&&t.length>0}function on(t,e){Z(t.params,e.params);const n=[t.query,e.query].filter(lt).join("&");return{query:n,params:{...t.params,...e.params},toString:()=>n}}function an(t,e){return Z(t,e),{...t,...e}}function sn(t){return"host"in t&&!!t.host}function te(t){return"parent"in t&&!!t.parent}function ee(t){return"component"in t&&!!t.component}function ne(t){return"components"in t&&!!t.components}function cn(t){return"state"in t&&!!t.state}function re(t,e){return{...e,key:Mt(t.key,e.key),path:nn(t.path,e.path),query:on(t.query,e.query),meta:Xe(t.meta,e.meta),state:an(t.state,e.state),matches:[...t.matches,e.matched],host:t.host,depth:t.depth+1}}const oe=i.defineComponent({__name:"routerView",props:{name:{}},setup(t){const{name:e="default"}=t,n=Ft(),r=Dt(),o=Et(),a=i.resolveComponent("RouterView",!0);i.provide(Jt,o+1);const s=i.computed(()=>{if(r.value)return r.value.component;const l=n.matches.at(o);if(!l)return null;const S=c(l),m=h(l);return S?m?Zt(S,()=>m(n.params)):S:null});function c(l){return u(l)[e]}function u(l){return ne(l)?l.components:ee(l)?{default:l.component}:typeof a=="string"?{}:{default:a}}function h(l){return d(l)[e]}function d(l){return ne(l)?l.props??{}:ee(l)?{default:l.props}:{}}return(l,S)=>s.value?i.renderSlot(l.$slots,"default",i.normalizeProps(i.mergeProps({key:0},{route:i.unref(n),component:s.value,rejection:i.unref(r)})),()=>[(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.value)))]):i.createCommentVNode("",!0)}}),D="[",I="]";function un(t){return t!==String&&t!==Boolean&&t!==Number&&t!==Date}function fn(t){return typeof t=="function"&&un(t)}function ht(t){return typeof t=="object"&&"get"in t&&typeof t.get=="function"&&"set"in t&&typeof t.set=="function"}function ae(t){return ht(t)&&t.defaultValue!==void 0}function ln(t,e){return fe(t,e)}function hn(t,e){return t[e]??String}const H={invalid:t=>{throw new Y(t)}},pn={get:t=>t,set:(t,{invalid:e})=>{if(typeof t!="string")throw e();return t}},se={get:(t,{invalid:e})=>{if(t==="true")return!0;if(t==="false")return!1;throw e()},set:(t,{invalid:e})=>{if(typeof t!="boolean")throw e();return t.toString()}},ce={get:(t,{invalid:e})=>{const n=Number(t);if(isNaN(n))throw e();return n},set:(t,{invalid:e})=>{if(typeof t!="number")throw e();return t.toString()}},ue={get:(t,{invalid:e})=>{const n=new Date(t);if(isNaN(n.getTime()))throw e();return n},set:(t,{invalid:e})=>{if(typeof t!="object"||!(t instanceof Date))throw e();return t.toISOString()}},ie={get:(t,{invalid:e})=>{try{return JSON.parse(t)}catch{throw e()}},set:(t,{invalid:e})=>{try{return JSON.stringify(t)}catch{throw e()}}};function ot(t,e,n=!1){if(t===void 0||!lt(t)){if(ae(e))return e.defaultValue;if(n)return;throw new Y}if(e===String)return pn.get(t,H);if(e===Boolean)return se.get(t,H);if(e===Number)return ce.get(t,H);if(e===Date)return ue.get(t,H);if(e===JSON)return ie.get(t,H);if(fn(e))return e(t,H);if(ht(e))return e.get(t,H);if(e instanceof RegExp){if(e.test(t))return t;throw new Y}return t}function at(t,e,n=!1){if(t===void 0){if(n)return"";throw new Y}if(e===Boolean)return se.set(t,H);if(e===Number)return ce.set(t,H);if(e===Date)return ue.set(t,H);if(e===JSON)return ie.set(t,H);if(ht(e))return e.set(t,H);try{return t.toString()}catch{throw new Y}}function fe(t,e){return ht(t)?{...t,defaultValue:e??t.defaultValue}:{get:n=>ot(n,t),set:n=>at(n,t),defaultValue:e}}function F(){return F=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},F.apply(this,arguments)}var $;(function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"})($||($={}));var tt=process.env.NODE_ENV!=="production"?function(t){return Object.freeze(t)}:function(t){return t};function Q(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}var pt="beforeunload",dn="hashchange",le="popstate";function he(t){t===void 0&&(t={});var e=t,n=e.window,r=n===void 0?document.defaultView:n,o=r.history;function a(){var R=r.location,f=R.pathname,p=R.search,E=R.hash,P=o.state||{};return[P.idx,tt({pathname:f,search:p,hash:E,state:P.usr||null,key:P.key||"default"})]}var s=null;function c(){if(s)m.call(s),s=null;else{var R=$.Pop,f=a(),p=f[0],E=f[1];if(m.length)if(p!=null){var P=d-p;P&&(s={action:R,location:E,retry:function(){b(P*-1)}},b(P))}else process.env.NODE_ENV!=="production"&&Q(!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 q(R)}}r.addEventListener(le,c);var u=$.Pop,h=a(),d=h[0],l=h[1],S=et(),m=et();d==null&&(d=0,o.replaceState(F({},o.state,{idx:d}),""));function A(R){return typeof R=="string"?R:G(R)}function x(R,f){return f===void 0&&(f=null),tt(F({pathname:l.pathname,hash:"",search:""},typeof R=="string"?st(R):R,{state:f,key:mt()}))}function j(R,f){return[{usr:R.state,key:R.key,idx:f},A(R)]}function V(R,f,p){return!m.length||(m.call({action:R,location:f,retry:p}),!1)}function q(R){u=R;var f=a();d=f[0],l=f[1],S.call({action:u,location:l})}function g(R,f){var p=$.Push,E=x(R,f);function P(){g(R,f)}if(V(p,E,P)){var B=j(E,d+1),U=B[0],N=B[1];try{o.pushState(U,"",N)}catch{r.location.assign(N)}q(p)}}function w(R,f){var p=$.Replace,E=x(R,f);function P(){w(R,f)}if(V(p,E,P)){var B=j(E,d),U=B[0],N=B[1];o.replaceState(U,"",N),q(p)}}function b(R){o.go(R)}var k={get action(){return u},get location(){return l},createHref:A,push:g,replace:w,go:b,back:function(){b(-1)},forward:function(){b(1)},listen:function(f){return S.push(f)},block:function(f){var p=m.push(f);return m.length===1&&r.addEventListener(pt,dt),function(){p(),m.length||r.removeEventListener(pt,dt)}}};return k}function mn(t){t===void 0&&(t={});var e=t,n=e.window,r=n===void 0?document.defaultView:n,o=r.history;function a(){var f=st(r.location.hash.substr(1)),p=f.pathname,E=p===void 0?"/":p,P=f.search,B=P===void 0?"":P,U=f.hash,N=U===void 0?"":U,C=o.state||{};return[C.idx,tt({pathname:E,search:B,hash:N,state:C.usr||null,key:C.key||"default"})]}var s=null;function c(){if(s)m.call(s),s=null;else{var f=$.Pop,p=a(),E=p[0],P=p[1];if(m.length)if(E!=null){var B=d-E;B&&(s={action:f,location:P,retry:function(){k(B*-1)}},k(B))}else process.env.NODE_ENV!=="production"&&Q(!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 g(f)}}r.addEventListener(le,c),r.addEventListener(dn,function(){var f=a(),p=f[1];G(p)!==G(l)&&c()});var u=$.Pop,h=a(),d=h[0],l=h[1],S=et(),m=et();d==null&&(d=0,o.replaceState(F({},o.state,{idx:d}),""));function A(){var f=document.querySelector("base"),p="";if(f&&f.getAttribute("href")){var E=r.location.href,P=E.indexOf("#");p=P===-1?E:E.slice(0,P)}return p}function x(f){return A()+"#"+(typeof f=="string"?f:G(f))}function j(f,p){return p===void 0&&(p=null),tt(F({pathname:l.pathname,hash:"",search:""},typeof f=="string"?st(f):f,{state:p,key:mt()}))}function V(f,p){return[{usr:f.state,key:f.key,idx:p},x(f)]}function q(f,p,E){return!m.length||(m.call({action:f,location:p,retry:E}),!1)}function g(f){u=f;var p=a();d=p[0],l=p[1],S.call({action:u,location:l})}function w(f,p){var E=$.Push,P=j(f,p);function B(){w(f,p)}if(process.env.NODE_ENV!=="production"&&Q(P.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.push("+JSON.stringify(f)+")"),q(E,P,B)){var U=V(P,d+1),N=U[0],C=U[1];try{o.pushState(N,"",C)}catch{r.location.assign(C)}g(E)}}function b(f,p){var E=$.Replace,P=j(f,p);function B(){b(f,p)}if(process.env.NODE_ENV!=="production"&&Q(P.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.replace("+JSON.stringify(f)+")"),q(E,P,B)){var U=V(P,d),N=U[0],C=U[1];o.replaceState(N,"",C),g(E)}}function k(f){o.go(f)}var R={get action(){return u},get location(){return l},createHref:x,push:w,replace:b,go:k,back:function(){k(-1)},forward:function(){k(1)},listen:function(p){return S.push(p)},block:function(p){var E=m.push(p);return m.length===1&&r.addEventListener(pt,dt),function(){E(),m.length||r.removeEventListener(pt,dt)}}};return R}function pe(t){t===void 0&&(t={});var e=t,n=e.initialEntries,r=n===void 0?["/"]:n,o=e.initialIndex,a=r.map(function(g){var w=tt(F({pathname:"/",search:"",hash:"",state:null,key:mt()},typeof g=="string"?st(g):g));return process.env.NODE_ENV!=="production"&&Q(w.pathname.charAt(0)==="/","Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: "+JSON.stringify(g)+")"),w}),s=de(o??a.length-1,0,a.length-1),c=$.Pop,u=a[s],h=et(),d=et();function l(g){return typeof g=="string"?g:G(g)}function S(g,w){return w===void 0&&(w=null),tt(F({pathname:u.pathname,search:"",hash:""},typeof g=="string"?st(g):g,{state:w,key:mt()}))}function m(g,w,b){return!d.length||(d.call({action:g,location:w,retry:b}),!1)}function A(g,w){c=g,u=w,h.call({action:c,location:u})}function x(g,w){var b=$.Push,k=S(g,w);function R(){x(g,w)}process.env.NODE_ENV!=="production"&&Q(u.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.push("+JSON.stringify(g)+")"),m(b,k,R)&&(s+=1,a.splice(s,a.length,k),A(b,k))}function j(g,w){var b=$.Replace,k=S(g,w);function R(){j(g,w)}process.env.NODE_ENV!=="production"&&Q(u.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.replace("+JSON.stringify(g)+")"),m(b,k,R)&&(a[s]=k,A(b,k))}function V(g){var w=de(s+g,0,a.length-1),b=$.Pop,k=a[w];function R(){V(g)}m(b,k,R)&&(s=w,A(b,k))}var q={get index(){return s},get action(){return c},get location(){return u},createHref:l,push:x,replace:j,go:V,back:function(){V(-1)},forward:function(){V(1)},listen:function(w){return h.push(w)},block:function(w){return d.push(w)}};return q}function de(t,e,n){return Math.min(Math.max(t,e),n)}function dt(t){t.preventDefault(),t.returnValue=""}function et(){var t=[];return{get length(){return t.length},push:function(n){return t.push(n),function(){t=t.filter(function(r){return r!==n})}},call:function(n){t.forEach(function(r){return r&&r(n)})}}}function mt(){return Math.random().toString(36).substr(2,8)}function G(t){var e=t.pathname,n=e===void 0?"/":e,r=t.search,o=r===void 0?"":r,a=t.hash,s=a===void 0?"":a;return o&&o!=="?"&&(n+=o.charAt(0)==="?"?o:"?"+o),s&&s!=="#"&&(n+=s.charAt(0)==="#"?s:"#"+s),n}function st(t){var e={};if(t){var n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));var r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function Rn(t,e){const n=i.reactive({...t}),r=s=>{Object.assign(n,{...s})},o=n,a=Oe(o,e);return{currentRoute:o,routerRoute:a,updateRoute:r}}function z(t){return!t.startsWith("http")?yn(t):gn(t)}function gn(t){const{protocol:e,host:n,pathname:r,search:o,searchParams:a,hash:s}=new URL(t,t);return{protocol:e,host:n,pathname:r,search:o,searchParams:a,hash:s}}function yn(t){const{pathname:e,search:n,searchParams:r,hash:o}=new URL(t,"https://localhost");return{pathname:e,search:n,searchParams:r,hash:o}}function wn(t){return e=>{const{host:n}=z(e);return!(n===void 0||n===t)}}function me(){return typeof window<"u"&&typeof window.document<"u"}function vn({mode:t,listener:e}){const n=En(t),r=(u,h)=>{if(h!=null&&h.replace)return n.replace(u,h.state);n.push(u,h==null?void 0:h.state)},o=()=>{const u=G(n.location);return n.replace(u)};let a;return{...n,update:r,refresh:o,startListening:()=>{a==null||a(),a=n.listen(e)},stopListening:()=>{a==null||a()}}}function En(t="auto"){switch(t){case"auto":return me()?he():pe();case"browser":return he();case"memory":return pe();case"hash":return mn();default:const e=t;throw new Error(`Switch is not exhaustive for mode: ${e}`)}}function Pn(t){return i.defineComponent(()=>()=>i.h("h1",t),{name:t,props:[]})}function Re(t){const e=new URLSearchParams(t);return{get:n=>e.get(n),getAll:n=>e.getAll(n)}}const ge=Symbol();function Sn({rejections:t}){const e=s=>{const c={...t};return i.markRaw(c[s]??Pn(s))},n=s=>{const c=i.markRaw(e(s)),u={name:s,component:c,meta:{},state:{}};return{matched:u,matches:[u],key:s,query:Re(""),params:{},state:{},[ge]:!0}},r=s=>ge in s,o=s=>{if(!s){a.value=null;return}const c=e(s);a.value={type:s,component:c}},a=i.ref(null);return{setRejection:o,rejection:a,getRejectionRoute:n,isRejectionRoute:r}}class bn extends Error{constructor(e){super(`Route not found: "${e}"`)}}function Bt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function kn(t,e){const n=Array.from(t.matchAll(e));if(n.length===0)return[t];let r=0;const o=n.reduce((s,c)=>{const u=Bt(t.slice(r,c.index));u.length&&s.push(u);const[h]=c;return s.push(h),r=c.index+h.length,s},[]),a=t.slice(r);return a&&o.push(a),o}function An(t){const e=ye(t.path.toString());return new RegExp(`^${e}$`,"i")}function xn(t){const e=new URLSearchParams(t.query.toString());return Array.from(e.entries()).filter(([,n])=>!Ut(n)).map(([n,r])=>{const o=ye(r);return new RegExp(`${Bt(n)}=${o}(&|$)`,"i")})}function ye(t){return kn(t,new RegExp(Bn,"g")).map(e=>e.startsWith(D)?we(e):Bt(e)).join("")}function we(t){return[Ln,Un].reduce((e,n)=>n(e),t)}const Bn=`\\${D}\\??([\\w-_]+)\\${I}`,Lt=`\\${D}\\?([\\w-_]+)\\${I}`,ve=`\\${D}([\\w-_]+)\\${I}`;function Ln(t){return t.replace(new RegExp(Lt,"g"),".*")}function Ut(t){return new RegExp(Lt,"g").test(t)}function Un(t){return t.replace(new RegExp(ve,"g"),".+")}function Rt(t){const[e]=gt(t,new RegExp(Lt,"g")),[n]=gt(t,new RegExp(ve,"g"));return e??n}function gt(t,e){return Array.from(t.matchAll(e)).flatMap(([,...r])=>r.map(o=>lt(o)?o:""))}function Ee(t,e,n){const r=Se(e,n),[o]=gt(t,r);return o}function Pe(t,e){if(!e)return t;const{name:n,param:r,value:o}=e,a=Se(t,n);return gt(t,a).reduce((c,u)=>u===void 0?c:c.replace(u,()=>at(o,r,n.startsWith("?"))),t)}function Se(t,e){const n=[$n,Nn,we].reduce((r,o)=>o(r,e),t);return new RegExp(n,"g")}function $n(t,e){if(!e.startsWith("?"))return t;const n=new RegExp(`\\${D}\\${e}\\${I}`,"g");return t.replace(n,"(.*)")}function Nn(t,e){if(e.startsWith("?"))return t;const n=new RegExp(`\\${D}${e}\\${I}`,"g");return t.replace(n,"(.+)")}function be(t,...e){return e.reduce((n,r)=>{if(!r)return n;const o=new URLSearchParams(r).toString();return Object.keys(o).length===0?n:n.includes("?")?`${n}&${o}`:`${n}?${o}`},t)}function jn(t,e={}){const{params:n={},query:r}=e,o=Hn(t.host,n),a=Vn(t.path,n),s=Cn(t.query,n);return be(`${o}${a}`,s,r)}function Hn(t,e){const n=t.toString();return Object.entries(t.params).reduce((r,[o,a])=>{const s=Rt(`${D}${o}${I}`);return s?Pe(r,{name:o,param:a,value:e[s]}):r},n)}function Vn(t,e){const n=t.toString();return Object.entries(t.params).reduce((r,[o,a])=>{const s=Rt(`${D}${o}${I}`);return s?Pe(r,{name:o,param:a,value:e[s]}):r},n)}function Cn(t,e){const n=t.toString();if(!n)return{};const r=new URLSearchParams(n);return Array.from(r.entries()).reduce((o,[a,s])=>{const c=Rt(s);if(!c)return{...o,[a]:s};const h=at(e[c],t.params[c],Ut(s)),d=e[c]===void 0&&h==="";return Ut(s)&&d?o:{...o,[a]:h}},{})}function On(t){return(e,n,r)=>{if(K(e))return be(e,(n??{}).query);const o=n??{},a=r??{},s=t.find(u=>u.key===e);if(!s)throw new bn(String(e));return jn(s,{params:o,query:a.query})}}class qn extends Error{constructor(){super("initialUrl must be set if window.location is unavailable")}}function _n(t){if(t)return t;if(me())return window.location.toString();throw new qn}const Wn=(t,e)=>{try{ke(t,e)}catch{return!1}return!0},ke=(t,e)=>{const{pathname:n,search:r}=z(e);return{...Dn(t.path,n),...Mn(t.query,r)}};function Dn(t,e){const n={},r=decodeURIComponent(e);for(const[o,a]of Object.entries(t.params)){const s=o.startsWith("?"),c=s?o.slice(1):o,u=Ee(r,t.toString(),o),h=ot(u,a,s);n[c]=h}return n}function Mn(t,e){const n={},r=new URLSearchParams(e);for(const[o,a]of Object.entries(t.params)){const s=o.startsWith("?"),c=s?o.slice(1):o,u=r.get(c)??void 0,h=ot(u,a,s);n[c]=h}return n}const Tn=t=>"name"in t.matched&&!!t.matched.name,In=(t,e)=>{const{pathname:n}=z(e);return An(t).test(n)},Fn=(t,e)=>{const{search:n}=z(e);return xn(t).every(o=>o.test(n))};function Jn(t){const{searchParams:e,pathname:n}=z(t),r=-1,o=1;return(a,s)=>{const c=xe(a,e),u=Ae(a,n),h=xe(s,e),d=Ae(s,n);return a.depth>s.depth?r:a.depth<s.depth?o:c+u>h+d?r:c+u<h+d?o:0}}function Ae(t,e){const n=Object.keys(t.path.params).filter(o=>o.startsWith("?")).map(o=>o),r=n.filter(o=>Ee(e,t.path.toString(),o)===void 0);return n.length-r.length}function xe(t,e){const n=new URLSearchParams(t.query.toString()),r=Array.from(n.keys()),o=r.filter(a=>!e.has(a));return r.length-o.length}function Be(t){return!!t&&typeof t=="object"}const yt=!0;function Kn(t,e,n){if(Be(t)&&e in t){const r=t[e];if(typeof r=="string")return ot(r,n,yt)}return ot(void 0,n,yt)}function Qn(t,e){const n={};for(const[r,o]of Object.entries(t)){const a=Kn(e,r,o);n[r]=a}return n}function Gn(t,e,n){if(Be(t)&&e in t){const r=t[e];return at(r,n,yt)}return at(void 0,n,yt)}const Le=(t,e)=>{const n={};for(const[r,o]of Object.entries(t)){const a=Gn(e,r,o);n[r]=a}return n},zn=[Tn,In,Fn,Wn];function $t(t,e,n){const r=Jn(e),o=t.filter(c=>zn.every(u=>u(c,e))).sort(r);if(o.length===0)return;const[a]=o,{search:s}=z(e);return{matched:a.matched,matches:a.matches,key:a.key,query:Re(s),params:ke(a,e),state:Qn(a.state,n)}}function Nt(t,e){const n=new RegExp(`\\${D}(\\??[\\w-_]+)\\${I}`,"g");return Array.from(t.matchAll(n)).reduce((o,[a,s])=>{const c=Rt(a);if(!c)return o;const u=hn(e,c);return Z([c],o),o[s]=u,o},{})}function Ue(t,e){return{host:t,params:Nt(t,e),toString:()=>t}}function $e(t){return t===void 0?"":t}function jt(t,e){return{path:t,params:Nt(t,e),toString:()=>t}}function Yn(t){return xt(t)&&typeof t.path=="string"}function Ne(t){return t===void 0?jt("",{}):Yn(t)?t:jt(t,{})}function Ht(t,e){return{query:t,params:Nt(t,e),toString:()=>t}}function Xn(t){return xt(t)&&typeof t.query=="string"}function je(t){return t===void 0?Ht("",{}):Xn(t)?t:Ht(t,{})}function Vt(t){const e=$e(t.name),n=Ne(t.path),r=je(t.query),o=t.meta??{},a=cn(t)?t.state:{},s=i.markRaw({meta:{},state:{},...t}),c={matched:s,matches:[s],key:e,path:n,query:r,meta:o,state:a,depth:1,host:Ue("",{})},u=te(t)?re(t.parent,c):c;return Z(u.path.params,u.query.params),u}function Zn(t,e){if(!lt(e))return t;const n=Vt({path:e});return t.map(r=>Vt({parent:n,...r}))}function tr(t,e={}){const n=rn(t)?t.flat():t,r=Zn(n,e.base),o=On(r),a=vn({mode:e.historyMode,listener:({location:v})=>{const L=G(v);x(L,{state:v.state})}}),{runBeforeRouteHooks:s,runAfterRouteHooks:c}=De(),{hooks:u,onBeforeRouteEnter:h,onAfterRouteUpdate:d,onBeforeRouteLeave:l,onAfterRouteEnter:S,onBeforeRouteUpdate:m,onAfterRouteLeave:A}=Te();async function x(v,L={}){if(a.stopListening(),N(v))return a.update(v,L);const _=$t(r,v,L.state)??k("NotFound"),W={...f},nt=await s({to:_,from:W,hooks:u});switch(nt.status){case"ABORT":return;case"PUSH":a.update(v,L),await j(...nt.to);return;case"REJECT":a.update(v,L),w(nt.type),E(_);break;case"SUCCESS":a.update(v,L),w(null),E(_);break;default:throw new Error(`Switch is not exhaustive for before hook response status: ${JSON.stringify(nt)}`)}const J=await c({to:_,from:W,hooks:u});switch(J.status){case"PUSH":await j(...J.to);break;case"REJECT":w(J.type);break;case"SUCCESS":break;default:const M=J;throw new Error(`Switch is not exhaustive for after hook response status: ${JSON.stringify(M)}`)}a.startListening()}const j=(v,L,_)=>{if(K(v)){const ct={...L},qt=o(v,ct);return x(qt,ct)}const W={..._},J=o(v,L??{},W),M=Ct(v),Ot=Le((M==null?void 0:M.state)??{},W.state);return x(J,{...W,state:Ot})},V=(v,L,_)=>{if(K(v)){const ct={...L,replace:!0},qt=o(v,ct);return x(qt,ct)}const W={..._,replace:!0},J=o(v,L??{},W),M=Ct(v),Ot=Le((M==null?void 0:M.state)??{},W.state);return x(J,{...W,state:Ot})},q=v=>w(v),g=(v,L={})=>{if(!K(v)){const _=o(v,L);return $t(r,_)}if(!N(v))return $t(r,v)},{setRejection:w,rejection:b,getRejectionRoute:k}=Sn(e),R=k("NotFound"),{currentRoute:f,routerRoute:p,updateRoute:E}=Rn(R,j);a.startListening();const P=_n(e.initialUrl),B=a.location.state,{host:U}=z(P),N=wn(U),C=x(P,{replace:!0,state:B});function Ct(v){return r.find(L=>L.key===v)}function rr(v){v.component("RouterView",oe),v.component("RouterLink",Xt),v.provide(vt,b),v.provide(Gt,u),v.provide(wt,Ve)}const Ve={route:p,resolve:o,push:j,replace:V,reject:q,find:g,refresh:a.refresh,forward:a.forward,back:a.back,go:a.go,install:rr,initialized:C,isExternal:N,onBeforeRouteEnter:h,onAfterRouteUpdate:d,onBeforeRouteLeave:l,onAfterRouteEnter:S,onBeforeRouteUpdate:m,onAfterRouteLeave:A};return Ve}function er(t){return xt(t)&&typeof t.host=="string"}function He(t){return er(t)?t:Ue(t,{})}function nr(t){const e=$e(t.name),n=Ne(t.path),r=je(t.query),o=t.meta??{},a=sn(t)?He(t.host):He(""),s=i.markRaw({meta:{},state:{},...t}),c={matched:s,matches:[s],key:e,host:a,path:n,query:r,meta:o,depth:1,state:{}},u=te(t)?re(t.parent,c):c;return Z(u.path.params,u.query.params,u.host.params),u}y.DuplicateParamsError=T,y.RouterLink=Xt,y.RouterNotInstalledError=ut,y.RouterView=oe,y.UseRouteInvalidError=_t,y.component=Zt,y.createExternalRoute=nr,y.createParam=fe,y.createRoute=Vt,y.createRouter=tr,y.isParamWithDefault=ae,y.isRoute=It,y.onAfterRouteEnter=Je,y.onAfterRouteLeave=Ke,y.onAfterRouteUpdate=Qe,y.onBeforeRouteLeave=Ie,y.onBeforeRouteUpdate=Fe,y.path=jt,y.query=Ht,y.routerInjectionKey=wt,y.routerRejectionKey=vt,y.useLink=Wt,y.useRejection=Dt,y.useRoute=Ft,y.useRouter=it,y.withDefault=ln,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(y,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],i):(y=typeof globalThis<"u"?globalThis:y||self,i(y["@kitbag/router"]={},y.Vue))})(this,function(y,i){"use strict";var or=Object.defineProperty;var ar=(y,i,T)=>i in y?or(y,i,{enumerable:!0,configurable:!0,writable:!0,value:T}):y[i]=T;var O=(y,i,T)=>(ar(y,typeof i!="symbol"?i+"":i,T),T);class T extends Error{constructor(e){super(`Invalid Param "${e}": Router does not support multiple params by the same name. All param names must be unique.`)}}class ut extends Error{constructor(){super("Router not installed")}}class Wt extends Error{constructor(e,n){super(`useRoute called with incorrect route. Given ${e}, expected ${n}`)}}const wt=Symbol();function it(){const t=i.inject(wt);if(!t)throw new ut;return t}class Y extends Error{}function Q(t){return typeof t!="string"?!1:/^(https?:\/\/|\/).*/g.test(t)}function Dt(t,e={},n={}){const r=it(),o=i.computed(()=>i.toValue(t)),a=i.computed(()=>i.toValue(e)),s=i.computed(()=>i.toValue(n)),c=i.computed(()=>{if(Q(o.value))return o.value;try{return r.resolve(o.value,a.value,s.value)}catch(l){throw l instanceof Y&&console.error(`Failed to resolve route "${o.value.toString()}" in RouterLink.`,l),l}}),u=i.computed(()=>r.find(c.value,s.value)),h=i.computed(()=>!!u.value&&r.route.matches.includes(u.value.matched)),d=i.computed(()=>!!u.value&&r.route.matched===u.value.matched);return{route:u,href:c,isMatch:h,isExactMatch:d,push:l=>r.push(c.value,{},{...s.value,...l}),replace:l=>r.replace(c.value,{},{...s.value,...l})}}const vt=Symbol();function Mt(){const t=i.inject(vt);if(!t)throw new ut;return t}const Tt=Symbol("isRouterRouteSymbol");function Ce(t){return typeof t=="object"&&t!==null&&Tt in t}function Oe(t,e){function n(d,l,S){if(typeof d=="object"){const k={...t.params,...d};return e(t.name,k,l)}const m={...t.params,[d]:l};return e(t.name,m,S)}const{matched:r,matches:o,name:a,query:s,params:c,state:u}=i.toRefs(t),h=i.reactive({matched:r,matches:o,state:u,query:s,params:c,name:a,update:n,[Tt]:!0});return new Proxy(h,{get:(d,l,S)=>l==="params"?new Proxy(t.params,{set(m,k,x){return n(k,x),!0}}):l==="state"?new Proxy(t.state,{set(m,k,x){return n({},{state:{...t.state,[k]:x}}),!0}}):Reflect.get(d,l,S)})}function Et(t){return t===void 0?"":t}function It(t,e,{exact:n}={}){if(!Ce(t))return!1;if(e===void 0)return!0;const r=t.matches.map(o=>Et(o.name));if(n){const o=r.at(-1);return e===o}return r.includes(e)}function Ft(t,e){const n=it();function r(){if(!t)return;if(!It(n.route,t,e))throw new Wt(t,n.route.name)}return i.watch(n.route,r,{immediate:!0,deep:!0}),n.route}const Jt=Symbol();function Pt(){return i.inject(Jt,0)}class ft{constructor(){O(this,"onBeforeRouteEnter",new Set);O(this,"onBeforeRouteUpdate",new Set);O(this,"onBeforeRouteLeave",new Set);O(this,"onAfterRouteEnter",new Set);O(this,"onAfterRouteUpdate",new Set);O(this,"onAfterRouteLeave",new Set)}}class Qt extends Error{}class rt extends Error{constructor(n){super("Error occurred during a router push operation.");O(this,"to");this.to=n}}class St extends Error{constructor(n){super(`Routing action rejected: ${n}`);O(this,"type");this.type=n}}function X(t){return Array.isArray(t)?t:[t]}function Kt(t,e){return t.filter(n=>e===n).length}function qe(t,e){const n=new ft;return t.matches.forEach((r,o)=>{r.onBeforeRouteEnter&&bt(t,e,o)&&X(r.onBeforeRouteEnter).forEach(a=>n.onBeforeRouteEnter.add(a)),r.onBeforeRouteUpdate&&kt(t,e,o)&&X(r.onBeforeRouteUpdate).forEach(a=>n.onBeforeRouteUpdate.add(a))}),e.matches.forEach((r,o)=>{r.onBeforeRouteLeave&&At(t,e,o)&&X(r.onBeforeRouteLeave).forEach(a=>n.onBeforeRouteLeave.add(a))}),n}function _e(t,e){const n=new ft;return t.matches.forEach((r,o)=>{r.onAfterRouteEnter&&bt(t,e,o)&&X(r.onAfterRouteEnter).forEach(a=>n.onAfterRouteEnter.add(a)),r.onAfterRouteUpdate&&kt(t,e,o)&&X(r.onAfterRouteUpdate).forEach(a=>n.onAfterRouteUpdate.add(a))}),e.matches.forEach((r,o)=>{r.onAfterRouteLeave&&At(t,e,o)&&X(r.onAfterRouteLeave).forEach(a=>n.onAfterRouteLeave.add(a))}),n}function We(){const t=s=>{throw new St(s)},e=(...s)=>{throw new rt(s)},n=(s,c,u)=>{if(Q(s)){const l=c??{};throw new rt([s,{...l,replace:!0}])}const h=c,d=u??{};throw new rt([s,h,{...d,replace:!0}])},r=()=>{throw new Qt};async function o({to:s,from:c,hooks:u}){const{global:h,component:d}=u,l=qe(s,c),S=[...h.onBeforeRouteEnter,...l.onBeforeRouteEnter,...h.onBeforeRouteUpdate,...l.onBeforeRouteUpdate,...d.onBeforeRouteUpdate,...h.onBeforeRouteLeave,...l.onBeforeRouteLeave,...d.onBeforeRouteLeave];try{const m=S.map(k=>k(s,{from:c,reject:t,push:e,replace:n,abort:r}));await Promise.all(m)}catch(m){if(m instanceof rt)return{status:"PUSH",to:m.to};if(m instanceof St)return{status:"REJECT",type:m.type};if(m instanceof Qt)return{status:"ABORT"};throw m}return{status:"SUCCESS"}}async function a({to:s,from:c,hooks:u}){const{global:h,component:d}=u,l=_e(s,c),S=[...d.onAfterRouteLeave,...l.onAfterRouteLeave,...h.onAfterRouteLeave,...d.onAfterRouteUpdate,...l.onAfterRouteUpdate,...h.onAfterRouteUpdate,...d.onAfterRouteEnter,...l.onAfterRouteEnter,...h.onAfterRouteEnter];try{const m=S.map(k=>k(s,{from:c,reject:t,push:e,replace:n}));await Promise.all(m)}catch(m){if(m instanceof rt)return{status:"PUSH",to:m.to};if(m instanceof St)return{status:"REJECT",type:m.type};throw m}return{status:"SUCCESS"}}return{runBeforeRouteHooks:o,runAfterRouteHooks:a}}const bt=(t,e,n)=>{const r=t.matches,o=(e==null?void 0:e.matches)??[];return r.length<n||r[n]!==o[n]},At=(t,e,n)=>{const r=t.matches,o=(e==null?void 0:e.matches)??[];return r.length<n||r[n]!==o[n]},kt=(t,e,n)=>t.matches[n]===(e==null?void 0:e.matches[n]);function Gt(t){switch(t){case"onBeforeRouteEnter":case"onAfterRouteEnter":return bt;case"onBeforeRouteUpdate":case"onAfterRouteUpdate":return kt;case"onBeforeRouteLeave":case"onAfterRouteLeave":return At;default:throw new Error(`Switch is not exhaustive for lifecycle: ${t}`)}}class De{constructor(){O(this,"global",new ft);O(this,"component",new ft)}addBeforeRouteHook({lifecycle:e,timing:n,depth:r,hook:o}){const a=Gt(e),s=this[n][e],c=(u,h)=>{if(a(u,h.from,r))return o(u,h)};return s.add(c),()=>s.delete(c)}addAfterRouteHook({lifecycle:e,timing:n,depth:r,hook:o}){const a=Gt(e),s=this[n][e],c=(u,h)=>{if(a(u,h.from,r))return o(u,h)};return s.add(c),()=>s.delete(c)}}const zt=Symbol();function Me(){const t=new De;return{onBeforeRouteEnter:c=>t.addBeforeRouteHook({lifecycle:"onBeforeRouteEnter",hook:c,timing:"global",depth:0}),onBeforeRouteUpdate:c=>t.addBeforeRouteHook({lifecycle:"onBeforeRouteUpdate",hook:c,timing:"global",depth:0}),onBeforeRouteLeave:c=>t.addBeforeRouteHook({lifecycle:"onBeforeRouteLeave",hook:c,timing:"global",depth:0}),onAfterRouteEnter:c=>t.addAfterRouteHook({lifecycle:"onAfterRouteEnter",hook:c,timing:"global",depth:0}),onAfterRouteUpdate:c=>t.addAfterRouteHook({lifecycle:"onAfterRouteUpdate",hook:c,timing:"global",depth:0}),onAfterRouteLeave:c=>t.addAfterRouteHook({lifecycle:"onAfterRouteLeave",hook:c,timing:"global",depth:0}),hooks:t}}function Yt(){const t=i.inject(zt);if(!t)throw new ut;return t}function Xt(t){return e=>{const n=Pt(),o=Yt().addBeforeRouteHook({lifecycle:t,hook:e,depth:n,timing:"component"});return i.onUnmounted(o),o}}function xt(t){return e=>{const n=Pt(),o=Yt().addAfterRouteHook({lifecycle:t,hook:e,depth:n,timing:"component"});return i.onUnmounted(o),o}}const Te=Xt("onBeforeRouteUpdate"),Ie=Xt("onBeforeRouteLeave"),Fe=xt("onAfterRouteEnter"),Je=xt("onAfterRouteUpdate"),Qe=xt("onAfterRouteLeave"),Ke=["href"],Zt=i.defineComponent({__name:"routerLink",props:{to:{type:[String,Function]},query:{},replace:{type:Boolean},state:{}},setup(t){const e=t,n=it(),r=i.computed(()=>Q(e.to)?e.to:e.to(n.resolve)),o=i.computed(()=>{const{to:l,...S}=e;return S}),{href:a,isMatch:s,isExactMatch:c}=Dt(r),u=i.computed(()=>({"router-link--match":s.value,"router-link--exact-match":c.value})),h=i.computed(()=>n.isExternal(r.value));function d(l){l.preventDefault(),n.push(a.value,o.value)}return(l,S)=>(i.openBlock(),i.createElementBlock("a",{href:r.value,class:i.normalizeClass(["router-link",u.value]),onClick:d},[i.renderSlot(l.$slots,"default",i.normalizeProps(i.guardReactiveProps({resolved:r.value,isMatch:i.unref(s),isExactMatch:i.unref(c),isExternal:h.value})))],10,Ke))}});function te(t,e){return i.defineComponent({name:"PropsWrapper",expose:[],setup(){const n=e();return"then"in n?()=>i.h(Ge(t,n)):()=>i.h(t,n)}})}function Ge(t,e){return i.defineComponent({name:"AsyncPropsWrapper",expose:[],async setup(){const n=await e;return()=>i.h(t,n)}})}class ze extends Error{constructor(e){super(`Child property on meta for ${e} conflicts with the parent meta.`)}}function Ye(t,e){return Xe(t,e),{...t,...e}}function Xe(t,e){const n=Object.keys(t).find(r=>r in e&&typeof e[r]!=typeof t[r]);if(n)throw new ze(n)}function Z(...t){const e=t.flatMap(n=>Array.isArray(n)?n:Object.keys(n).map(Ze));for(const n of e)if(Kt(e,n)>1)throw new T(n)}function Ze(t){return t.startsWith("?")?t.slice(1):t}function tn(t,e){Z(t.params,e.params);const n=`${t.path}${e.path}`;return{path:n,params:{...t.params,...e.params},toString:()=>n}}function Bt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function en(t){return t.every(e=>Array.isArray(e))}function lt(t){return typeof t=="string"&&t.length>0}function nn(t,e){Z(t.params,e.params);const n=[t.query,e.query].filter(lt).join("&");return{query:n,params:{...t.params,...e.params},toString:()=>n}}function rn(t,e){return Z(t,e),{...t,...e}}function on(t){return"host"in t&&!!t.host}function ee(t){return"parent"in t&&!!t.parent}function ne(t){return"component"in t&&!!t.component}function re(t){return"components"in t&&!!t.components}function an(t){return"state"in t&&!!t.state}function oe(t,e){return{...e,path:tn(t.path,e.path),query:nn(t.query,e.query),meta:Ye(t.meta,e.meta),state:rn(t.state,e.state),matches:[...t.matches,e.matched],host:t.host,depth:t.depth+1}}const ae=i.defineComponent({__name:"routerView",props:{name:{}},setup(t){const{name:e="default"}=t,n=Ft(),r=Mt(),o=Pt(),a=i.resolveComponent("RouterView",!0);i.provide(Jt,o+1);const s=i.computed(()=>{if(r.value)return r.value.component;const l=n.matches.at(o);if(!l)return null;const S=c(l),m=h(l);return S?m?te(S,()=>m(n.params)):S:null});function c(l){return u(l)[e]}function u(l){return re(l)?l.components:ne(l)?{default:l.component}:typeof a=="string"?{}:{default:a}}function h(l){return d(l)[e]}function d(l){return re(l)?l.props??{}:ne(l)?{default:l.props}:{}}return(l,S)=>s.value?i.renderSlot(l.$slots,"default",i.normalizeProps(i.mergeProps({key:0},{route:i.unref(n),component:s.value,rejection:i.unref(r)})),()=>[(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.value)))]):i.createCommentVNode("",!0)}}),D="[",I="]";function sn(t){return t!==String&&t!==Boolean&&t!==Number&&t!==Date}function cn(t){return typeof t=="function"&&sn(t)}function ht(t){return typeof t=="object"&&"get"in t&&typeof t.get=="function"&&"set"in t&&typeof t.set=="function"}function se(t){return ht(t)&&t.defaultValue!==void 0}function un(t,e){return le(t,e)}function fn(t,e){return t[e]??String}const H={invalid:t=>{throw new Y(t)}},ln={get:t=>t,set:(t,{invalid:e})=>{if(typeof t!="string")throw e();return t}},ce={get:(t,{invalid:e})=>{if(t==="true")return!0;if(t==="false")return!1;throw e()},set:(t,{invalid:e})=>{if(typeof t!="boolean")throw e();return t.toString()}},ue={get:(t,{invalid:e})=>{const n=Number(t);if(isNaN(n))throw e();return n},set:(t,{invalid:e})=>{if(typeof t!="number")throw e();return t.toString()}},ie={get:(t,{invalid:e})=>{const n=new Date(t);if(isNaN(n.getTime()))throw e();return n},set:(t,{invalid:e})=>{if(typeof t!="object"||!(t instanceof Date))throw e();return t.toISOString()}},fe={get:(t,{invalid:e})=>{try{return JSON.parse(t)}catch{throw e()}},set:(t,{invalid:e})=>{try{return JSON.stringify(t)}catch{throw e()}}};function ot(t,e,n=!1){if(t===void 0||!lt(t)){if(se(e))return e.defaultValue;if(n)return;throw new Y}if(e===String)return ln.get(t,H);if(e===Boolean)return ce.get(t,H);if(e===Number)return ue.get(t,H);if(e===Date)return ie.get(t,H);if(e===JSON)return fe.get(t,H);if(cn(e))return e(t,H);if(ht(e))return e.get(t,H);if(e instanceof RegExp){if(e.test(t))return t;throw new Y}return t}function at(t,e,n=!1){if(t===void 0){if(n)return"";throw new Y}if(e===Boolean)return ce.set(t,H);if(e===Number)return ue.set(t,H);if(e===Date)return ie.set(t,H);if(e===JSON)return fe.set(t,H);if(ht(e))return e.set(t,H);try{return t.toString()}catch{throw new Y}}function le(t,e){return ht(t)?{...t,defaultValue:e??t.defaultValue}:{get:n=>ot(n,t),set:n=>at(n,t),defaultValue:e}}function F(){return F=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},F.apply(this,arguments)}var N;(function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"})(N||(N={}));var tt=process.env.NODE_ENV!=="production"?function(t){return Object.freeze(t)}:function(t){return t};function K(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}var pt="beforeunload",hn="hashchange",he="popstate";function pe(t){t===void 0&&(t={});var e=t,n=e.window,r=n===void 0?document.defaultView:n,o=r.history;function a(){var R=r.location,f=R.pathname,p=R.search,E=R.hash,P=o.state||{};return[P.idx,tt({pathname:f,search:p,hash:E,state:P.usr||null,key:P.key||"default"})]}var s=null;function c(){if(s)m.call(s),s=null;else{var R=N.Pop,f=a(),p=f[0],E=f[1];if(m.length)if(p!=null){var P=d-p;P&&(s={action:R,location:E,retry:function(){b(P*-1)}},b(P))}else process.env.NODE_ENV!=="production"&&K(!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 q(R)}}r.addEventListener(he,c);var u=N.Pop,h=a(),d=h[0],l=h[1],S=et(),m=et();d==null&&(d=0,o.replaceState(F({},o.state,{idx:d}),""));function k(R){return typeof R=="string"?R:G(R)}function x(R,f){return f===void 0&&(f=null),tt(F({pathname:l.pathname,hash:"",search:""},typeof R=="string"?st(R):R,{state:f,key:mt()}))}function j(R,f){return[{usr:R.state,key:R.key,idx:f},k(R)]}function V(R,f,p){return!m.length||(m.call({action:R,location:f,retry:p}),!1)}function q(R){u=R;var f=a();d=f[0],l=f[1],S.call({action:u,location:l})}function g(R,f){var p=N.Push,E=x(R,f);function P(){g(R,f)}if(V(p,E,P)){var B=j(E,d+1),U=B[0],$=B[1];try{o.pushState(U,"",$)}catch{r.location.assign($)}q(p)}}function w(R,f){var p=N.Replace,E=x(R,f);function P(){w(R,f)}if(V(p,E,P)){var B=j(E,d),U=B[0],$=B[1];o.replaceState(U,"",$),q(p)}}function b(R){o.go(R)}var A={get action(){return u},get location(){return l},createHref:k,push:g,replace:w,go:b,back:function(){b(-1)},forward:function(){b(1)},listen:function(f){return S.push(f)},block:function(f){var p=m.push(f);return m.length===1&&r.addEventListener(pt,dt),function(){p(),m.length||r.removeEventListener(pt,dt)}}};return A}function pn(t){t===void 0&&(t={});var e=t,n=e.window,r=n===void 0?document.defaultView:n,o=r.history;function a(){var f=st(r.location.hash.substr(1)),p=f.pathname,E=p===void 0?"/":p,P=f.search,B=P===void 0?"":P,U=f.hash,$=U===void 0?"":U,C=o.state||{};return[C.idx,tt({pathname:E,search:B,hash:$,state:C.usr||null,key:C.key||"default"})]}var s=null;function c(){if(s)m.call(s),s=null;else{var f=N.Pop,p=a(),E=p[0],P=p[1];if(m.length)if(E!=null){var B=d-E;B&&(s={action:f,location:P,retry:function(){A(B*-1)}},A(B))}else process.env.NODE_ENV!=="production"&&K(!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 g(f)}}r.addEventListener(he,c),r.addEventListener(hn,function(){var f=a(),p=f[1];G(p)!==G(l)&&c()});var u=N.Pop,h=a(),d=h[0],l=h[1],S=et(),m=et();d==null&&(d=0,o.replaceState(F({},o.state,{idx:d}),""));function k(){var f=document.querySelector("base"),p="";if(f&&f.getAttribute("href")){var E=r.location.href,P=E.indexOf("#");p=P===-1?E:E.slice(0,P)}return p}function x(f){return k()+"#"+(typeof f=="string"?f:G(f))}function j(f,p){return p===void 0&&(p=null),tt(F({pathname:l.pathname,hash:"",search:""},typeof f=="string"?st(f):f,{state:p,key:mt()}))}function V(f,p){return[{usr:f.state,key:f.key,idx:p},x(f)]}function q(f,p,E){return!m.length||(m.call({action:f,location:p,retry:E}),!1)}function g(f){u=f;var p=a();d=p[0],l=p[1],S.call({action:u,location:l})}function w(f,p){var E=N.Push,P=j(f,p);function B(){w(f,p)}if(process.env.NODE_ENV!=="production"&&K(P.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.push("+JSON.stringify(f)+")"),q(E,P,B)){var U=V(P,d+1),$=U[0],C=U[1];try{o.pushState($,"",C)}catch{r.location.assign(C)}g(E)}}function b(f,p){var E=N.Replace,P=j(f,p);function B(){b(f,p)}if(process.env.NODE_ENV!=="production"&&K(P.pathname.charAt(0)==="/","Relative pathnames are not supported in hash history.replace("+JSON.stringify(f)+")"),q(E,P,B)){var U=V(P,d),$=U[0],C=U[1];o.replaceState($,"",C),g(E)}}function A(f){o.go(f)}var R={get action(){return u},get location(){return l},createHref:x,push:w,replace:b,go:A,back:function(){A(-1)},forward:function(){A(1)},listen:function(p){return S.push(p)},block:function(p){var E=m.push(p);return m.length===1&&r.addEventListener(pt,dt),function(){E(),m.length||r.removeEventListener(pt,dt)}}};return R}function de(t){t===void 0&&(t={});var e=t,n=e.initialEntries,r=n===void 0?["/"]:n,o=e.initialIndex,a=r.map(function(g){var w=tt(F({pathname:"/",search:"",hash:"",state:null,key:mt()},typeof g=="string"?st(g):g));return process.env.NODE_ENV!=="production"&&K(w.pathname.charAt(0)==="/","Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: "+JSON.stringify(g)+")"),w}),s=me(o??a.length-1,0,a.length-1),c=N.Pop,u=a[s],h=et(),d=et();function l(g){return typeof g=="string"?g:G(g)}function S(g,w){return w===void 0&&(w=null),tt(F({pathname:u.pathname,search:"",hash:""},typeof g=="string"?st(g):g,{state:w,key:mt()}))}function m(g,w,b){return!d.length||(d.call({action:g,location:w,retry:b}),!1)}function k(g,w){c=g,u=w,h.call({action:c,location:u})}function x(g,w){var b=N.Push,A=S(g,w);function R(){x(g,w)}process.env.NODE_ENV!=="production"&&K(u.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.push("+JSON.stringify(g)+")"),m(b,A,R)&&(s+=1,a.splice(s,a.length,A),k(b,A))}function j(g,w){var b=N.Replace,A=S(g,w);function R(){j(g,w)}process.env.NODE_ENV!=="production"&&K(u.pathname.charAt(0)==="/","Relative pathnames are not supported in memory history.replace("+JSON.stringify(g)+")"),m(b,A,R)&&(a[s]=A,k(b,A))}function V(g){var w=me(s+g,0,a.length-1),b=N.Pop,A=a[w];function R(){V(g)}m(b,A,R)&&(s=w,k(b,A))}var q={get index(){return s},get action(){return c},get location(){return u},createHref:l,push:x,replace:j,go:V,back:function(){V(-1)},forward:function(){V(1)},listen:function(w){return h.push(w)},block:function(w){return d.push(w)}};return q}function me(t,e,n){return Math.min(Math.max(t,e),n)}function dt(t){t.preventDefault(),t.returnValue=""}function et(){var t=[];return{get length(){return t.length},push:function(n){return t.push(n),function(){t=t.filter(function(r){return r!==n})}},call:function(n){t.forEach(function(r){return r&&r(n)})}}}function mt(){return Math.random().toString(36).substr(2,8)}function G(t){var e=t.pathname,n=e===void 0?"/":e,r=t.search,o=r===void 0?"":r,a=t.hash,s=a===void 0?"":a;return o&&o!=="?"&&(n+=o.charAt(0)==="?"?o:"?"+o),s&&s!=="#"&&(n+=s.charAt(0)==="#"?s:"#"+s),n}function st(t){var e={};if(t){var n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));var r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}function dn(t,e){const n=i.reactive({...t}),r=s=>{Object.assign(n,{...s})},o=n,a=Oe(o,e);return{currentRoute:o,routerRoute:a,updateRoute:r}}function z(t){return!t.startsWith("http")?Rn(t):mn(t)}function mn(t){const{protocol:e,host:n,pathname:r,search:o,searchParams:a,hash:s}=new URL(t,t);return{protocol:e,host:n,pathname:r,search:o,searchParams:a,hash:s}}function Rn(t){const{pathname:e,search:n,searchParams:r,hash:o}=new URL(t,"https://localhost");return{pathname:e,search:n,searchParams:r,hash:o}}function gn(t){return e=>{const{host:n}=z(e);return!(n===void 0||n===t)}}function Re(){return typeof window<"u"&&typeof window.document<"u"}function yn({mode:t,listener:e}){const n=wn(t),r=(u,h)=>{if(h!=null&&h.replace)return n.replace(u,h.state);n.push(u,h==null?void 0:h.state)},o=()=>{const u=G(n.location);return n.replace(u)};let a;return{...n,update:r,refresh:o,startListening:()=>{a==null||a(),a=n.listen(e)},stopListening:()=>{a==null||a()}}}function wn(t="auto"){switch(t){case"auto":return Re()?pe():de();case"browser":return pe();case"memory":return de();case"hash":return pn();default:const e=t;throw new Error(`Switch is not exhaustive for mode: ${e}`)}}function vn(t){return i.defineComponent(()=>()=>i.h("h1",t),{name:t,props:[]})}function ge(t){const e=new URLSearchParams(t);return{get:n=>e.get(n),getAll:n=>e.getAll(n)}}const ye=Symbol();function En({rejections:t}){const e=s=>{const c={...t};return i.markRaw(c[s]??vn(s))},n=s=>{const c=i.markRaw(e(s)),u={name:s,component:c,meta:{},state:{}};return{matched:u,matches:[u],name:s,query:ge(""),params:{},state:{},[ye]:!0}},r=s=>ye in s,o=s=>{if(!s){a.value=null;return}const c=e(s);a.value={type:s,component:c}},a=i.ref(null);return{setRejection:o,rejection:a,getRejectionRoute:n,isRejectionRoute:r}}class Pn extends Error{constructor(e){super(`Route not found: "${e}"`)}}function Lt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Sn(t,e){const n=Array.from(t.matchAll(e));if(n.length===0)return[t];let r=0;const o=n.reduce((s,c)=>{const u=Lt(t.slice(r,c.index));u.length&&s.push(u);const[h]=c;return s.push(h),r=c.index+h.length,s},[]),a=t.slice(r);return a&&o.push(a),o}function bn(t){const e=we(t.path.toString());return new RegExp(`^${e}$`,"i")}function An(t){const e=new URLSearchParams(t.query.toString());return Array.from(e.entries()).filter(([,n])=>!Nt(n)).map(([n,r])=>{const o=we(r);return new RegExp(`${Lt(n)}=${o}(&|$)`,"i")})}function we(t){return Sn(t,new RegExp(kn,"g")).map(e=>e.startsWith(D)?ve(e):Lt(e)).join("")}function ve(t){return[xn,Bn].reduce((e,n)=>n(e),t)}const kn=`\\${D}\\??([\\w-_]+)\\${I}`,Ut=`\\${D}\\?([\\w-_]+)\\${I}`,Ee=`\\${D}([\\w-_]+)\\${I}`;function xn(t){return t.replace(new RegExp(Ut,"g"),".*")}function Nt(t){return new RegExp(Ut,"g").test(t)}function Bn(t){return t.replace(new RegExp(Ee,"g"),".+")}function Rt(t){const[e]=gt(t,new RegExp(Ut,"g")),[n]=gt(t,new RegExp(Ee,"g"));return e??n}function gt(t,e){return Array.from(t.matchAll(e)).flatMap(([,...r])=>r.map(o=>lt(o)?o:""))}function Pe(t,e,n){const r=be(e,n),[o]=gt(t,r);return o}function Se(t,e){if(!e)return t;const{name:n,param:r,value:o}=e,a=be(t,n);return gt(t,a).reduce((c,u)=>u===void 0?c:c.replace(u,()=>at(o,r,n.startsWith("?"))),t)}function be(t,e){const n=[Ln,Un,ve].reduce((r,o)=>o(r,e),t);return new RegExp(n,"g")}function Ln(t,e){if(!e.startsWith("?"))return t;const n=new RegExp(`\\${D}\\${e}\\${I}`,"g");return t.replace(n,"(.*)")}function Un(t,e){if(e.startsWith("?"))return t;const n=new RegExp(`\\${D}${e}\\${I}`,"g");return t.replace(n,"(.+)")}function Ae(t,...e){return e.reduce((n,r)=>{if(!r)return n;const o=new URLSearchParams(r).toString();return Object.keys(o).length===0?n:n.includes("?")?`${n}&${o}`:`${n}?${o}`},t)}function Nn(t,e={}){const{params:n={},query:r}=e,o=$n(t.host,n),a=jn(t.path,n),s=Hn(t.query,n);return Ae(`${o}${a}`,s,r)}function $n(t,e){const n=t.toString();return Object.entries(t.params).reduce((r,[o,a])=>{const s=Rt(`${D}${o}${I}`);return s?Se(r,{name:o,param:a,value:e[s]}):r},n)}function jn(t,e){const n=t.toString();return Object.entries(t.params).reduce((r,[o,a])=>{const s=Rt(`${D}${o}${I}`);return s?Se(r,{name:o,param:a,value:e[s]}):r},n)}function Hn(t,e){const n=t.toString();if(!n)return{};const r=new URLSearchParams(n);return Array.from(r.entries()).reduce((o,[a,s])=>{const c=Rt(s);if(!c)return{...o,[a]:s};const h=at(e[c],t.params[c],Nt(s)),d=e[c]===void 0&&h==="";return Nt(s)&&d?o:{...o,[a]:h}},{})}function Vn(t){return(e,n,r)=>{if(Q(e))return Ae(e,(n??{}).query);const o=n??{},a=r??{},s=t.find(u=>u.name===e);if(!s)throw new Pn(String(e));return Nn(s,{params:o,query:a.query})}}class Cn extends Error{constructor(){super("initialUrl must be set if window.location is unavailable")}}function On(t){if(t)return t;if(Re())return window.location.toString();throw new Cn}const qn=(t,e)=>{try{ke(t,e)}catch{return!1}return!0},ke=(t,e)=>{const{pathname:n,search:r}=z(e);return{..._n(t.path,n),...Wn(t.query,r)}};function _n(t,e){const n={},r=decodeURIComponent(e);for(const[o,a]of Object.entries(t.params)){const s=o.startsWith("?"),c=s?o.slice(1):o,u=Pe(r,t.toString(),o),h=ot(u,a,s);n[c]=h}return n}function Wn(t,e){const n={},r=new URLSearchParams(e);for(const[o,a]of Object.entries(t.params)){const s=o.startsWith("?"),c=s?o.slice(1):o,u=r.get(c)??void 0,h=ot(u,a,s);n[c]=h}return n}const Dn=t=>"name"in t.matched&&!!t.matched.name,Mn=(t,e)=>{const{pathname:n}=z(e);return bn(t).test(n)},Tn=(t,e)=>{const{search:n}=z(e);return An(t).every(o=>o.test(n))};function In(t){const{searchParams:e,pathname:n}=z(t),r=-1,o=1;return(a,s)=>{const c=Be(a,e),u=xe(a,n),h=Be(s,e),d=xe(s,n);return a.depth>s.depth?r:a.depth<s.depth?o:c+u>h+d?r:c+u<h+d?o:0}}function xe(t,e){const n=Object.keys(t.path.params).filter(o=>o.startsWith("?")).map(o=>o),r=n.filter(o=>Pe(e,t.path.toString(),o)===void 0);return n.length-r.length}function Be(t,e){const n=new URLSearchParams(t.query.toString()),r=Array.from(n.keys()),o=r.filter(a=>!e.has(a));return r.length-o.length}function Le(t){return!!t&&typeof t=="object"}const yt=!0;function Fn(t,e,n){if(Le(t)&&e in t){const r=t[e];if(typeof r=="string")return ot(r,n,yt)}return ot(void 0,n,yt)}function Jn(t,e){const n={};for(const[r,o]of Object.entries(t)){const a=Fn(e,r,o);n[r]=a}return n}function Qn(t,e,n){if(Le(t)&&e in t){const r=t[e];return at(r,n,yt)}return at(void 0,n,yt)}const Ue=(t,e)=>{const n={};for(const[r,o]of Object.entries(t)){const a=Qn(e,r,o);n[r]=a}return n},Kn=[Dn,Mn,Tn,qn];function $t(t,e,n){const r=In(e),o=t.filter(c=>Kn.every(u=>u(c,e))).sort(r);if(o.length===0)return;const[a]=o,{search:s}=z(e);return{matched:a.matched,matches:a.matches,name:a.name,query:ge(s),params:ke(a,e),state:Jn(a.state,n)}}function jt(t,e){const n=new RegExp(`\\${D}(\\??[\\w-_]+)\\${I}`,"g");return Array.from(t.matchAll(n)).reduce((o,[a,s])=>{const c=Rt(a);if(!c)return o;const u=fn(e,c);return Z([c],o),o[s]=u,o},{})}function Ne(t,e){return{host:t,params:jt(t,e),toString:()=>t}}function Ht(t,e){return{path:t,params:jt(t,e),toString:()=>t}}function Gn(t){return Bt(t)&&typeof t.path=="string"}function $e(t){return t===void 0?Ht("",{}):Gn(t)?t:Ht(t,{})}function Vt(t,e){return{query:t,params:jt(t,e),toString:()=>t}}function zn(t){return Bt(t)&&typeof t.query=="string"}function je(t){return t===void 0?Vt("",{}):zn(t)?t:Vt(t,{})}function Ct(t){const e=Et(t.name),n=$e(t.path),r=je(t.query),o=t.meta??{},a=an(t)?t.state:{},s=i.markRaw({meta:{},state:{},...t}),c={matched:s,matches:[s],name:e,path:n,query:r,meta:o,state:a,depth:1,host:Ne("",{})},u=ee(t)?oe(t.parent,c):c;return Z(u.path.params,u.query.params),u}function Yn(t,e){if(!lt(e))return t;const n=Ct({path:e});return t.map(r=>Ct({parent:n,...r}))}class Xn extends Error{constructor(e){super(`Invalid Name "${e}": Router does not support multiple routes with the same name. All name names must be unique.`)}}function Zn(t){const e=t.map(({name:n})=>n);for(const n of e)if(Kt(e,n)>1)throw new Xn(n)}function tr(t,e={}){const n=en(t)?t.flat():t,r=Yn(n,e.base);Zn(r);const o=Vn(r),a=yn({mode:e.historyMode,listener:({location:v})=>{const L=G(v);x(L,{state:v.state})}}),{runBeforeRouteHooks:s,runAfterRouteHooks:c}=We(),{hooks:u,onBeforeRouteEnter:h,onAfterRouteUpdate:d,onBeforeRouteLeave:l,onAfterRouteEnter:S,onBeforeRouteUpdate:m,onAfterRouteLeave:k}=Me();async function x(v,L={}){if(a.stopListening(),$(v))return a.update(v,L);const _=$t(r,v,L.state)??A("NotFound"),W={...f},nt=await s({to:_,from:W,hooks:u});switch(nt.status){case"ABORT":return;case"PUSH":a.update(v,L),await j(...nt.to);return;case"REJECT":a.update(v,L),w(nt.type),E(_);break;case"SUCCESS":a.update(v,L),w(null),E(_);break;default:throw new Error(`Switch is not exhaustive for before hook response status: ${JSON.stringify(nt)}`)}const J=await c({to:_,from:W,hooks:u});switch(J.status){case"PUSH":await j(...J.to);break;case"REJECT":w(J.type);break;case"SUCCESS":break;default:const M=J;throw new Error(`Switch is not exhaustive for after hook response status: ${JSON.stringify(M)}`)}a.startListening()}const j=(v,L,_)=>{if(Q(v)){const ct={...L},_t=o(v,ct);return x(_t,ct)}const W={..._},J=o(v,L??{},W),M=Ot(v),qt=Ue((M==null?void 0:M.state)??{},W.state);return x(J,{...W,state:qt})},V=(v,L,_)=>{if(Q(v)){const ct={...L,replace:!0},_t=o(v,ct);return x(_t,ct)}const W={..._,replace:!0},J=o(v,L??{},W),M=Ot(v),qt=Ue((M==null?void 0:M.state)??{},W.state);return x(J,{...W,state:qt})},q=v=>w(v),g=(v,L={})=>{if(!Q(v)){const _=o(v,L);return $t(r,_)}if(!$(v))return $t(r,v)},{setRejection:w,rejection:b,getRejectionRoute:A}=En(e),R=A("NotFound"),{currentRoute:f,routerRoute:p,updateRoute:E}=dn(R,j);a.startListening();const P=On(e.initialUrl),B=a.location.state,{host:U}=z(P),$=gn(U),C=x(P,{replace:!0,state:B});function Ot(v){return r.find(L=>L.name===v)}function rr(v){v.component("RouterView",ae),v.component("RouterLink",Zt),v.provide(vt,b),v.provide(zt,u),v.provide(wt,Ve)}const Ve={route:p,resolve:o,push:j,replace:V,reject:q,find:g,refresh:a.refresh,forward:a.forward,back:a.back,go:a.go,install:rr,initialized:C,isExternal:$,onBeforeRouteEnter:h,onAfterRouteUpdate:d,onBeforeRouteLeave:l,onAfterRouteEnter:S,onBeforeRouteUpdate:m,onAfterRouteLeave:k};return Ve}function er(t){return Bt(t)&&typeof t.host=="string"}function He(t){return er(t)?t:Ne(t,{})}function nr(t){const e=Et(t.name),n=$e(t.path),r=je(t.query),o=t.meta??{},a=on(t)?He(t.host):He(""),s=i.markRaw({meta:{},state:{},...t}),c={matched:s,matches:[s],name:e,host:a,path:n,query:r,meta:o,depth:1,state:{}},u=ee(t)?oe(t.parent,c):c;return Z(u.path.params,u.query.params,u.host.params),u}y.DuplicateParamsError=T,y.RouterLink=Zt,y.RouterNotInstalledError=ut,y.RouterView=ae,y.UseRouteInvalidError=Wt,y.component=te,y.createExternalRoute=nr,y.createParam=le,y.createRoute=Ct,y.createRouter=tr,y.isParamWithDefault=se,y.isRoute=It,y.onAfterRouteEnter=Fe,y.onAfterRouteLeave=Je,y.onAfterRouteUpdate=Qe,y.onBeforeRouteLeave=Te,y.onBeforeRouteUpdate=Ie,y.path=Ht,y.query=Vt,y.routerInjectionKey=wt,y.routerRejectionKey=vt,y.useLink=Dt,y.useRejection=Mt,y.useRoute=Ft,y.useRouter=it,y.withDefault=un,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
|