@fox-js/fox 3.1.1-19 → 3.1.1-20

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/libs/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(d,g){typeof exports=="object"&&typeof module<"u"?g(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],g):(d=typeof globalThis<"u"?globalThis:d||self,g(d.Fox={},d.Vue))})(this,function(d,g){"use strict";const le=typeof window<"u",A=function(){return window},Ue=function(){return window.document};function or(r){let e=r,t=e.lastIndexOf("/");return t>0&&t<e.length-1?e=e.substring(0,t+1):t===0&&e.indexOf(".")!==-1?e="/":t===-1&&(e.indexOf(".")==-1?e=`/${e}/`:e="/"),e.indexOf("/")!==0&&(e=`/${e}`),e}function pt(){if(!le)return"/";let r=A().location,e=`${r.protocol}//${r.host}`;return e+=or(r.pathname),e}function Ve(r,e,t,s=!1){r.addEventListener?r.addEventListener(e,t,s):r.attachEvent?r.attachEvent(`on${e}`,t):r[`on${e}`]=t}function gt(r,e,t){r.removeEventListener?r.removeEventListener(e,t):r.detachEvent?r.detachEvent(`on${e}`,t):r[`on${e}`]=null}const ze=(r,e,t)=>{e=e??{bubbles:!1,cancelable:!1,detail:void 0};const s=document.createEvent("Events");let n=!0,i=!0;for(let a in e)a==="bubbles"?n=!!e[a]:a==="cancelable"?i=!!e[a]:s[a]=e[a];s.initEvent(r,n,i),(t??document).dispatchEvent(s)},vt=Array.isArray,lr=r=>We(r)==="[object Map]",ar=r=>We(r)==="[object Set]",ur=r=>r instanceof Date,S=r=>typeof r=="function",fr=r=>typeof r=="string",cr=r=>typeof r=="symbol",is=r=>r!==null&&typeof r=="object",hr=r=>is(r)&&S(r.then)&&S(r.catch),Ae=r=>r==null,yr=Object.prototype.toString,We=r=>yr.call(r),os=r=>We(r)==="[object Object]",dr=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol";function wt(r){return r.__esModule||dr&&r[Symbol.toStringTag]==="Module"}const mr=typeof Promise<"u"&&Promise.toString().indexOf("[native code]")!==-1;function E(...r){let e=r[0]!==void 0&&r[0]!==null?r[0]:{},t=1,s=r.length,n=!1;for(typeof e=="boolean"&&(n=e,e=r[t]??{},t++),typeof e!="object"&&(e={});t<s;t++)if(r[t]!==null&&r[t]!==void 0){let i=r[t];for(let o in i){let a=e[o],l=i[o];if(a!==l)if(n===!0&&l&&typeof l=="object"){let u;Array.isArray(l)?u=a&&Array.isArray(a)?a:[]:u=a&&typeof a=="object"?a:{},e[o]=E(n,u,l)}else l!==void 0&&(e[o]=l)}}return e}function Je(r,e,t=!1){if(!t)E(!0,r,e);else{if(typeof e!="object")return{};typeof r!="object"&&(r={});for(let s of Reflect.ownKeys(e)){let n=r[s],i=e[s];if(n!==i)if(typeof i=="object"){if(!Array.isArray(i)&&!os(i))continue;n=Je(n,i,t),r[s]=n}else{if(typeof i=="function")continue;r[s]=i}}}return r}class se{static seed=new Date().getTime();static get(){let e=++se.seed;return e>=Number.MAX_VALUE&&(se.seed=0),e}}const bt=mr?Promise.resolve():null;function Ee(r,...e){bt!==null?e&&e.length>0?bt.then(()=>{r(e)}):bt.then(r):e&&e.length>0?setTimeout(()=>{r(e)}):setTimeout(r)}function Rt(r){return r==null?!1:typeof r=="boolean"?r:typeof r=="string"?r.toLocaleLowerCase()==="true":!!r}function pr(r){return typeof r=="number"?r:Number(r)}const gr={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regExp","[object Object]":"object"};function St(r){let t=Object.prototype.toString.call(r);return r==null?String(r):gr[t]||"object"}function xt(r,e){if(r==e)return!0;if(r===void 0||e===void 0)return!1;let t=St(r),s=St(e);if(t!==s)return!1;if(t==="object"){let n=Object.keys(r),i=Object.keys(e);if(n.length!==i.length)return!1;for(let o=0;o<n.length;o++){let a=n[o],l=r[a],u=e[a];if(!xt(l,u))return!1}return!0}else if(t==="array"){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++){let i=r[n],o=e[n];if(!xt(i,o))return!1}return!0}return!1}const ls=r=>{const e={};for(let t of Reflect.ownKeys(r)){let s=r[t];s&&!Array.isArray(s)&&typeof s=="object"&&(s=ls(s)),typeof t=="symbol"?e[String(t)]=s:e[t]=s}return e},vr=/^Symbol\((.*)\)$/,as=r=>{const e={};for(let t of Reflect.ownKeys(r)){let s=r[t];s&&!Array.isArray(s)&&typeof s=="object"&&(s=as(s));const n=vr.exec(t);if(n&&n[1]){const i=Symbol.for(n[1]);e[i]=s}else e[t]=s}return e};function us(r,e){let t=null;return function(...s){t&&clearTimeout(t),t=setTimeout(()=>{t=null,Reflect.apply(r,null,[...s])},e)}}const fs=Symbol("idKey"),ae=Symbol("valueKey"),P=Symbol("childrenKey"),B=Symbol("growKey");class cs{[B]=!0;[fs];[ae]=g.ref();[P]=new Map;constructor(e){this[fs]=e}}class wr{get(e,t){if(t=="value")return e[ae].value;if(t==="grow")return e[B];let s=e[P].get(t);if(s)return $e(s);if(e[B])return s=Ft(t),s[B]=e[B],e[P].set(t,s),$e(s)}set(e,t,s){return t=="value"?(e[ae].value=s,!0):t==="grow"?(e[B]=Rt(s),!0):s==null?(e[P].delete(t),!0):(console.error(`illegal property:${t}`),!1)}deleteProperty(e,t){return t==="value"||t=="grow"?(console.error(`can not delete property:${String(t)}`),!1):(e[P].delete(t),!0)}}const Pt="__proxy__";function Ft(r){const e=new cs(r);return Reflect.set(e,Pt,new Proxy(e,new wr)),e}function $e(r){return Reflect.get(r,Pt)}let br=class{name="";persistPolicy="memory";storage;initFlag=!1;state={};constructor(e={},t){if(e.persistPolicy&&e.persistPolicy!=="memory"&&Ae(e.name))throw new Error("name can not be empty, where persistPolicy is not memory.");this.name=e.name??"",this.persistPolicy=e.persistPolicy??"memory",this.storage=e.storage,t&&typeof t=="object"&&Object.assign(this.state,t)}init(e){this.restore(e),this.initFlag=!0}getStorage(){if(!this.persistPolicy||this.persistPolicy==="memory")return null;let e=null;if(this.persistPolicy==="custom")e=this.storage;else if(le){const t=A();e=this.persistPolicy==="session"?t.sessionStorage:t.localStorage}return e}saveState(){if(!this.persistPolicy||this.persistPolicy==="memory")return;let e=this.getStorage();if(e===null||!this.state)return;const t=`_bus_${this.name}`,s=JSON.stringify(this.state??{});e.setItem(t,s)}removeState(){if(!this.persistPolicy||this.persistPolicy==="memory")return;let e=this.getStorage();if(e===null||!this.state)return;const t=`_bus_${this.name}`;e.removeItem(t)}restore(e){if(!this.persistPolicy||this.persistPolicy==="memory")return;let t=this.getStorage();if(t===null)return;const s=`_bus_${this.name}`,n=t.getItem(s);if(n){const i=JSON.parse(n);Object.assign(this.state,i),Reflect.ownKeys(this.state).forEach(a=>{if(typeof a!="string")return;const l=this.state[a],u=a.split(/\//g);u.push(l),Reflect.apply(e.put,e,u)})}}put(e){if(this.initFlag&&this.persistPolicy!=="memory")try{const t=e.length,s=e.slice(0,t-1).join("/"),n=e[t-1];this.state[s]=n,this.saveState()}catch(t){console.error(t)}}remove(e){if(this.initFlag&&this.persistPolicy!=="memory")try{const t=e.length,s=e.slice(0,t-1).join("/"),n={};Reflect.ownKeys(this.state).forEach(o=>{typeof o=="string"&&(o===s||o.startsWith(s)||(n[o]=this.state[o]))}),this.state=n,this.saveState()}catch(t){console.error(t)}}clear(){if(this.initFlag)try{this.state={},this.removeState()}catch(e){console.error(e)}}};class hs extends cs{_persistHandler;constructor(e={},t){super("__root__"),this._persistHandler=new br(e,t),this._persistHandler.init(this)}put(...e){let t=e.length;if(t<2)return console.error("参数至少包括一个(key, value)"),!1;let s=this;for(let n=0;n<t-1;n++){let i=e[n],o;s[P].has(i)?o=s[P].get(i):(o=Ft(i),s[P].set(i,o)),s=o}return s[ae].value=e[t-1],this._persistHandler.put(e),!0}get(...e){let t=e.length;if(t===0)return;let s=this;for(let n=0;n<t;n++){let i=e[n];if(s[P].has(i))s=s[P].get(i);else return}return s[ae].value}remove(...e){let t=e.length;if(t==0)return!1;let s=this;for(let i=0;i<t-1;i++){const o=e[i];if(s[P].has(o))s=s[P].get(o);else return!1}const n=e[t-1];return s[P].has(n)?(s[P].delete(n),this._persistHandler.remove(e),!0):!1}contains(...e){const t=e.length;if(t==0)return!1;let s=this;for(let i=0;i<t-1;i++){let o=e[i];if(s[P].has(o))s=s[P].get(o);else return!1}const n=e[t-1];return s[P].has(n)}clear(){this[P].clear(),this._persistHandler.clear()}}const Rr=["put","get","contains","remove","clear","_persistHandler"];function ys(r){return Rr.includes(r)}class Sr{get(e,t){if(t=="value")return e[ae].value;if(t==="grow")return e[B];if(t===P)return e[P];if(typeof t=="string"&&ys(t))return e[t];const s=String(t);let n=e[P].get(s);if(n)return $e(n);if(e[B])return n=Ft(s),n[B]=e[B],e[P].set(s,n),$e(n)}set(e,t,s){return t=="value"?(e[ae].value=s,!0):t==="grow"?(e[B]=Rt(s),!0):ys(t)?!1:s==null?(e[P].delete(t),!0):(console.error(`illegal property:${t}`),!1)}deleteProperty(e,t){return t==="value"||t=="grow"?(console.error(`can not delete property:${String(t)}`),!1):(e[P].delete(t),!0)}}function xr(r,e){const t=new hs(r,e),s=new Sr,n=new Proxy(t,s);return Reflect.set(t,Pt,n),t}const Ct=new Proxy(hs,{construct(r,e){const t=e[0]??{},s=e[1],n=xr(t,s);return $e(n)}}),At=r=>!r||typeof r!="object"?!0:Reflect.ownKeys(r).length===0;class ds{name="";persistPolicy="memory";storage;constructor(e={}){if(e.persistPolicy&&e.persistPolicy!=="memory"&&Ae(e.name))throw new Error("name can not be empty, where persistPolicy is not memory.");this.name=e.name??"",this.persistPolicy=e.persistPolicy??"memory",this.storage=e.storage}getStorage(){if(!this.persistPolicy||this.persistPolicy==="memory")return null;let e=null;if(this.persistPolicy==="custom")e=this.storage;else if(le){const t=A();e=this.persistPolicy==="session"?t.sessionStorage:t.localStorage}return e}saveState(e){if(!this.persistPolicy||this.persistPolicy==="memory")return;let t=this.getStorage();if(t===null||At(e))return;const s=`_state_${this.name}`,n=JSON.stringify(e??{});t.setItem(s,n)}removeState(){if(!this.persistPolicy||this.persistPolicy==="memory")return;let e=this.getStorage();if(e===null)return;const t=`_state_${this.name}`;e.removeItem(t)}restore(e){if(!this.persistPolicy||this.persistPolicy==="memory")return;let t=this.getStorage();if(t===null)return;const s=`_state_${this.name}`,n=t.getItem(s);if(n){const i=JSON.parse(n);Object.assign(e,i)}}}function ms(r,e,t){const s=new ds(t);s.restore(e);const n=l=>{const u=g.toRaw(l),f={};for(let c in u){const h=u[c];Ae(h)||(f[c]=h)}At(f)?s.removeState():s.saveState(f)};let i=null;if(t&&t.debounce===!1)i=n;else{const l=t&&t.debounceDelay?t.debounceDelay:250;i=us(n,l)}const o=r?g.shallowReactive(e):g.reactive(e);return g.effectScope(!0).run(()=>{g.watch(o,l=>{const u=g.toRaw(l);i(u)})}),o}function Pr(r,e){return ms(!1,r,e)}function Fr(r,e){return ms(!0,r,e)}function Cr(r,e){const t=new ds(e);t.restore(r);const s=a=>{const l=g.toRaw(a),u={};for(let f in l){const c=l[f];Ae(c)||(u[f]=c)}At(u)?t.removeState():t.saveState(u)};let n=null;if(e&&e.debounce===!1)n=s;else{const a=e&&e.debounceDelay?e.debounceDelay:250;n=us(s,a)}const i={get(a,l){return a[l]},set(a,l,u){return a[l]=u,n(a),!0}};return new Proxy(r,i)}function Ar(r,e){return Cr(r,e)}const J="default",ps=Symbol("sync"),L=Symbol("normalizeRoute");function gs(r){let e=!1;return function(...t){if(!e)return e=!0,Reflect.apply(r,{},t)}}function Er(r){let e=r.src;return new Promise((t,s)=>{const n=gs(a=>{wt(a)&&(a=a.default),r.component=a,console.debug("success load async module"),t()}),i=gs(a=>{console.debug("reject load async module"),s(a)});let o;try{o=e(n,i)}catch(a){i(a)}if(o)if(typeof o.then=="function")o.then(n,i);else{const a=o.component;a&&typeof a.then=="function"&&a.then(n,i)}})}class $r{name;level;rootName;rootIndex=0;constructor(e,t,s,n){this.name=e,this.level=t,this.rootName=s,this.rootIndex=n}}class pe{to;routeModel;from;data={};constructor(e,t){this.to=e,this.from=t}static from(e){const t=new pe(e.to,e.from),s=e.data??{};return E(!0,t.data,s),t}static clear(e){for(let t in e)e[t]=void 0}}class x{path;get fullPath(){const e=this.path??`/${this.name}`;return`${this.root??J}!${e}`}alias;name;root;params;query;traceless;template;matched;meta;success;error;destroy;opsType;updateType;historyUpdatePolicy;viewTagAttrs;index;active;slot;static clone(e,t){let s=new x;return Je(s,e,t),s}static isSame(e,t){return!e||!t?!1:e===t?!0:e.root!==t.root||e.index!==t.index?!1:e.path&&t.path&&e.path===t.path?!0:!!(e.name&&t.name&&e.name===t.name)}static isSamePathForRoute(e,t){return!e||!t?!1:e===t||e.path&&t.path&&e.path===t.path?!0:!!(e.name&&t.name&&e.name===t.name)}static from(e){let t=new x;if(e==null)return t;let s=t;for(let i in e){let o=e[i];s[i]=o}const n=Object.getOwnPropertySymbols(e);if(Array.isArray(n)&&n.length>0)for(let i of n)s[i]=e[i];return t}}class _r{id;name;props;src;component;constructor(e,t,s){this.id=se.get(),this.name=e,this.src=t,typeof t!="function"&&(this.component=t),this.props=s}get isResolved(){return this.component!==void 0}resolve(){return Er(this)}}class vs{models=[]}class Et{path;match;redirect;name;meta;matchedRoutes;layers=[]}var C=(r=>(r[r.Push=0]="Push",r[r.Replace=1]="Replace",r[r.Put=2]="Put",r[r.Append=3]="Append",r[r.Open=4]="Open",r))(C||{});const ws="FoxBeforeEnter",bs="FoxEnter",Rs="FoxLeave",Ss="FoxLeave",Ge="FoxLeaveEnd",Xe=Symbol("rk"),$t=Symbol("vd"),xs=Symbol("rv"),_t=Symbol("rvi"),Ps=Symbol("pv"),Kt=Symbol("pvi"),_e=Symbol("registerKey");class Kr{[_e]=new Map;constructor(){}set(e,t){this[_e].set(e,t)}get(e){return this[_e].get(e)}has(e){return this[_e].has(e)}delete(e){return this[_e].delete(e)}}const ue=Symbol("lc");function Qe(r,e=!1){let t=r;if(Reflect.has(t,ue))return t[ue];if(e){const s=new Kr;return t[ue]=s,s}return null}function Fs(r,e=!1){let t=null,s=r;for(;s&&!(Reflect.has(s,ue)&&(t=s[ue],t));)s=s.$parent;if(!t&&e){const n=r;n&&n.$parent&&(t=Qe(n.$parent,e))}return t}function jt(r,e){let t=r;for(;t;){if(Reflect.has(t,ue)){const s=t[ue];if(s.has(e))return s.get(e)}t=t.$parent}return null}function jr(r,e,t){Fs(r,!0)?.set(e,t)}function qr(r,e){Fs(r,!0)?.delete(e)}function Cs(r){if(Array.isArray(r.children)&&r.children.length>0){let e=r.children[0];if(e!=null&&e.component!=null&&e.component.proxy!=null)return Qe(e.component.proxy,!1)}return null}const Ye=Symbol("hooksKey");function Tr(r){let e=r.get(Ye);e||(e=[],r.set(Ye,e))}function As(r,e){let t=r.get(Ye);if(t!=null)for(let s=t.length-1;s>=0;s--){let n=t[s];if(n.type===e)try{Reflect.apply(n.hook,n.target,[])}catch(i){console.error(i.message,i)}}}var qt=(r=>(r.DEACTIVATED="da",r.ACTIVATED="a",r))(qt||{});class kr{type;hook;target;constructor(e,t,s){this.target=s,this.hook=t,this.type=e}}function Lr(r,e,t,s){let n=new kr(e,t,s);return r.push(n),!0}function Or(r,e,t,s){let n=-1;for(let i=0;i<r.length;i++){let o=r[i];if(o.type===e&&o.hook===t&&o.target===s){n=i;break}}return n!=-1?(r.splice(n,1),!0):!1}function Es(r){return(e,t)=>{let s;if(t)s=t;else{const i=g.getCurrentInstance();if(i==null||i.proxy==null){console.error("can not get current instance or proxy");return}s=i.proxy}const n=jt(s,Ye);if(n==null){console.warn("hooks context not found");return}g.onUnmounted(()=>{Or(n,r,e,s)}),Lr(n,r,e,s)}}const Mr=Es("a"),Ir=Es("da"),$s=Symbol("routeKey");function _s(r,e){r.set($s,e)}function Tt(r){let e=jt(r,$s);return typeof e=="function"?e():e??null}function Ks(r,e=!1){let t=null;return e?t=r.showFromClass??r.enterFromClass:t=r.enterFromClass,t||(t=r.transitionName,t?e?`${t}-show-from`:`${t}-enter-from`:null)}function js(r,e=!1){let t=null;return e?t=r.showActiveClass??r.enterActiveClass:t=r.enterActiveClass,t||(t=r.transitionName,t?e?`${t}-show-active`:`${t}-enter-active`:null)}function Nr(r,e=!1){let t=null;return e?t=r.showToClass??r.enterToClass:t=r.enterToClass,t||(t=r.transitionName,t?e?`${t}-show-to`:`${t}-enter-to`:null)}function qs(r,e=!1){let t=null;return e?t=r.hideFromClass??r.leaveFromClass:t=r.leaveFromClass,t||(t=r.transitionName,t?e?`${t}-hide-from`:`${t}-leave-from`:null)}function Ts(r,e=!1){let t=null;return e?t=r.hideActiveClass??r.leaveActiveClass:t=r.leaveActiveClass,t||(t=r.transitionName,t?e?`${t}-hide-active`:`${t}-leave-active`:null)}function Hr(r,e=!1){let t=null;return e?t=r.hideToClass??r.leaveToClass:t=r.leaveToClass,t||(t=r.transitionName,t?e?`${t}-hide-to`:`${t}-leave-to`:null)}function Dr(r,e=!1){let t=null;return e?t=r.beforeShow??r.beforeEnter:t=r.beforeEnter,t}function Br(r,e=!1){let t=null;return e?t=r.show??r.enter:t=r.enter,t}function Ur(r,e=!1){let t=null;return e?t=r.afterShow??r.afterEnter:t=r.afterEnter,t}function Vr(r,e=!1){let t=null;return e?t=r.showCancelled??r.enterCancelled:t=r.enterCancelled,t}function zr(r,e=!1){let t=null;return e?t=r.beforeHide??r.beforeLeave:t=r.beforeLeave,t}function Wr(r,e=!1){let t=null;return e?t=r.hide??r.leave:t=r.leave,t}function Jr(r,e=!1){let t=null;return e?t=r.afterHide??r.afterLeave:t=r.afterLeave,t}function Gr(r,e=!1){let t=null;return e?t=r.hideCancelled??r.leaveCancelled:t=r.leaveCancelled,t}function kt(r){let e,t=r.transitionDuration;return typeof t=="object"?e={enter:t.enter??-1,leave:t.leave??-1,show:t.show??-1,hide:t.hide??-1}:(typeof t=="string"&&(t=t.length==0?-1:Number(t)),e={enter:t,leave:t,show:t,hide:t}),e}function ge(r,e){r.classList.contains(e)||r.classList.add(e)}function ve(r,e){r.classList.remove(e)}const Xr=le&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout;function Ze(r){Xr(r)}function K(r,e,t){S(e)&&(r==null&&(r={}),Reflect.apply(e,r,t))}function ks(r,e,t,s=-1,n,i,o){let a=[];const l=()=>{for(let u of a)gt(e,u.type,u.listener);a=[]};if(S(i)){if(n!==void 0&&n>=0){setTimeout(()=>{Reflect.apply(i,r,[e,t,s])},n);return}const u=["animationend","transitionend",Ge],f=c=>{const h=c.target||c.srcElement,y=c.currentTarget;h===y&&(l(),Reflect.apply(i,r,[e,t,s]))};u.forEach(c=>{Ve(e,c,f),a.push({type:c,listener:f})})}if(S(o)){const u="animationcancel",f=c=>{const h=c.target||c.srcElement,y=c.currentTarget;h===y&&(l(),Reflect.apply(o,r,[e,t,s]))};Ve(e,u,f),a.push({type:u,listener:f})}}function et(r){return!le||r===null?!1:r.opsType===C.Append||r.opsType===C.Open}function Ls(r,e,t,s={},n,i=-1){if(e||et(n)){const o=Ks(s,e);o&&ge(t,o);const a=js(s,e);a&&ge(t,a);const l=Dr(s,e);K(r,l,[t,e,n,i])}}function Os(r,e,t,s={},n,i,o,a){if(!et(i)&&!e){S(a)&&a(r,a,[t]);return}const l=Ks(s,e),u=js(s,e),f=Nr(s,e),c=Br(s,e),h=Ur(s,e),y=Vr(s,e);if(!l&&!u&&!f&&!c){S(a)&&a(r,a,[t]);return}Ze(()=>{ks(r,t,i,o,n,()=>{u&&ve(t,u),f&&ve(t,f),S(h)&&K(r,h,[t,e,i,o]),S(a)&&a(r,a,[t])},()=>{S(y)&&K(r,y,[t,e,i,o])}),l&&ve(t,l),f&&ge(t,f),S(c)&&K(r,c,[t,e,i,o])})}function Ms(r,e,t,s={},n,i=-1){if(e||et(n)){const o=qs(s,e);o&&ge(t,o);const a=Ts(s,e);a&&ge(t,a);const l=zr(s,e);K(r,l,[t,e,n,i])}}function Is(r,e,t,s={},n,i,o,a,l){if(!et(o)&&!e){S(l)&&K(r,l,[t]),!e&&S(i)&&i();return}const u=qs(s,e),f=Ts(s,e),c=Hr(s,e),h=Wr(s,e),y=Jr(s,e),m=Gr(s,e);if(!u&&!f&&!c&&!h){S(l)&&K(r,l,[t]),!e&&S(i)&&i();return}Ze(()=>{ks(r,t,o,a,n,()=>{try{f&&ve(t,f),c&&ve(t,c),S(y)&&K(r,y,[t,e,o,a]),S(l)&&K(r,l,[t])}finally{!e&&S(i)&&i()}},()=>{try{S(m)&&K(r,m,[t,e,o,a]),S(l)&&K(r,l,[t])}finally{!e&&S(i)&&i()}}),u&&ve(t,u),c&&ge(t,c),S(h)&&K(r,h,[t,e,o,a])})}function Lt(r,e,t={},s,n=-1){const i=t.mode??"default",o=kt(t);return{mode:i,persisted:!1,beforeEnter:l=>{Ls(r,!1,l,t,s,n)},enter:l=>{Os(r,!1,l,t,o.enter,s,n)},leave:(l,u)=>{Ms(r,!1,l,t,s,n),Is(r,!1,l,t,o.leave,u,s,n,()=>{e.transition=null,e=null})},clone:l=>Lt(r,e,t,s,n)}}function Ns(r){return r.el}function Qr(r,e,t={},s,n,i,o){if(i===!0){const a=Ns(e);if(a==null)return;const l=kt(t);Ls(r,!0,a,t,s,n),Os(r,!0,a,t,l.show,s,n,u=>{S(o)&&K(r,o,[u])})}else S(o)&&K(r,o,[])}function Yr(r,e,t={},s,n,i,o){if(i===!0){const a=Ns(e);if(a==null)return;const l=kt(t);Ms(r,!0,a,t,s,n),Is(r,!0,a,t,l.hide,null,s,n,u=>{S(o)&&K(r,o,[u])})}else S(o)&&K(r,o,[])}function Zr(r,e={}){Ze(()=>{for(let t=0;t<r.length;t++)Reflect.apply(r[t],e,[])})}function Hs(r,e,t={},s,n=-1){return{mode:t.mode??"default",persisted:!1,beforeEnter:a=>{ze(ws,{},a)},enter:a=>{ze(bs,{},a)},leave:(a,l)=>{ze(Rs,{},a),Ze(()=>{const u=f=>{const c=f.target||f.srcElement,h=f.currentTarget;c===h&&(gt(a,Ge,u),l&&Reflect.apply(l,r,[]),e.transition=null,e=null)};Ve(a,Ge,u),ze(Ss,{},a)})},clone:a=>Hs(r,e,t,s,n)}}const U=Symbol("rootKey"),V=Symbol("rootNodeKey"),fe=Symbol("parentNodeKey"),tt=Symbol("nameKey");class re{instance=null;model;route;active=!0;index=0;constructor(e,t,s=0,n=!0){this.route=e,this.model=t,this.index=s,this.active=n}}class Ke{_slots;get slots(){return this._slots==null&&(this._slots=g.shallowRef([])),this._slots}get empty(){return this._slots==null||this._slots.value.length==0}[tt];[U];[V]=null;[fe]=null;get name(){return this[tt]}constructor(e,t,s){this[tt]=e,this[U]=t,s&&(this[V]=s)}}class I{view;index;level;constructor(e,t,s){this.view=e,this.index=t,this.level=s}static include(e,t){for(let s=0;s<e.length;s++){let n=e[s];if(n.view===t.view&&(t.index==-1||n.index===t.index)&&n.level===t.level)return!0}return!1}}class Ot{views=[]}class en{layers=[]}function ne(r,e,t){return typeof r=="function"?Reflect.apply(r,{},[e,t]):r}function Mt(r,e){if(!r)return null;const t=r(e);return t.length===1?t[0]:t}function we(r,e){return typeof e=="function"?e(r):r}class tn{node;state;constructor(e,t){this.node=e,this.state=t}}const st=g.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,required:!1,default:"default"},modelSlot:{type:[Object],required:!1},multi:{type:Boolean,required:!1,default:!1},tag:{type:[String,Object,Function],required:!1,default:"div"},viewTag:{type:[String,Object,Function],required:!1,default:"div"},viewTagProps:{type:[Object,Function],required:!1,default(){return{}}},viewClass:{type:[String,Function],required:!1},viewActiveClass:{type:[String,Function],required:!1},viewInactiveClass:{type:[String,Function],required:!1},transition:{type:[Boolean,String,Function],required:!1,default:!1},transitionName:{type:String,required:!1},transitionDuration:{type:[String,Number,Object],required:!1},enterFromClass:{type:String,required:!1},enterActiveClass:{type:String,required:!1},enterToClass:{type:String,required:!1},leaveFromClass:{type:String,required:!1},leaveActiveClass:{type:String,required:!1},leaveToClass:{type:String,required:!1},showFromClass:{type:String,required:!1},showActiveClass:{type:String,required:!1},showToClass:{type:String,required:!1},hideFromClass:{type:String,required:!1},hideActiveClass:{type:String,required:!1},hideToClass:{type:String,required:!1},beforeEnter:{type:Function,required:!1},enter:{type:Function,required:!1},afterEnter:{type:Function,required:!1},enterCancelled:{type:Function,required:!1},beforeLeave:{type:Function,required:!1},leave:{type:Function,required:!1},afterLeave:{type:Function,required:!1},leaveCancelled:{type:Function,required:!1},beforeShow:{type:Function,required:!1},show:{type:Function,required:!1},afterShow:{type:Function,required:!1},showCancelled:{type:Function,required:!1},beforeHide:{type:Function,required:!1},hide:{type:Function,required:!1},afterHide:{type:Function,required:!1},hideCancelled:{type:Function,required:!1}},setup(r,e){const t=g.getCurrentInstance();if(t===null||t.proxy===null){console.error("instance or instance.proxy not exist");return}const s=r.multi===!0,n=g.inject(Xe,null),i=g.inject($t,0),o=g.inject(xs,null),a=g.inject(_t,-1);let l=null,u=r.modelSlot;if(u){if(g.provide($t,i+1),g.provide(_t,u.index),g.provide(Kt,u.index),!u.route){console.warn("child view render error, route not exist");return}const h=Qe(t.proxy,!0);Tr(h),_s(h,()=>u?.route??null)}else{if(n==null){console.error("router is not been injected");return}const c=r.name,h=g.inject(Ps,null),y=g.inject(Kt,0);if(l=n[ps](c,i,o,a,h,y),l===null)return;g.provide(Ps,l);const m=l[U]===!0;if(m&&g.provide(xs,l),!s&&(g.provide(_t,-1),g.provide($t,i+1),g.provide(Kt,-1),m)){const v=Qe(t.proxy,!0);_s(v,()=>{const w=l.slots.value;return w.length>0?w[0].route:null})}}const f={value:new Map};return g.onUnmounted(()=>{if(f.value&&f.value.clear(),u){const c=u;c.route=null,c.model=null,c.instance=null,u=void 0}}),()=>{if(s){const c=new Map,h=[],y=l?.slots.value,m=[];for(let b=0;b<y.length;b++){const p=y[b],_=`${r.name}_${p.index}`,Q=ne(r.transition,p.route,b)??!0,Z={modelSlot:p};let Fe;e.slots.default?Fe=g.h(st,Z,{default:e.slots.default}):Fe=g.h(st,Z);const T={},k=ne(r.viewClass,p.route,b);typeof k=="string"&&k.length>0&&(T[k]=!0);const me=ne(r.viewActiveClass,p.route,b),ee=ne(r.viewInactiveClass,p.route,b),M=f.value.get(_);if(typeof me=="string"&&me.length>0&&(T[me]=p.active),typeof ee=="string"&&ee.length>0&&(T[ee]=!p.active),M&&p.active!==M.state){const D=M.node;p.active?m.unshift(()=>{const ns=()=>{let Be=Cs(D);Be!=null&&As(Be,qt.ACTIVATED)};Qr(t,D,r,p.route,b,Q,ns)}):m.push(()=>{const ns=()=>{const Be=Cs(D);Be!=null&&As(Be,qt.DEACTIVATED)};Yr(t,D,r,p.route,b,Q,ns)})}const Y={class:T,key:_},W=ne(r.viewTagProps,p.route,b);if(W!==null&&typeof W=="object"){const D=we(W,n?.propsFilter);E(!0,Y,D)}if(p.route?.viewTagAttrs&&typeof p.route?.viewTagAttrs=="object"){const D=we(p.route.viewTagAttrs,n?.propsFilter);E(!0,Y,D)}const te=ne(r.viewTag,p.route,b),Ce=g.h(te,Y,{default:()=>[Fe]});if(c.set(_,new tn(Ce,p.active)),f.value.delete(_),Q===!0){const D=Lt(t,Ce,r,p.route,b);Ce.transition=D}else if(Q==="custom"){const D=Hs(t,Ce,r,p.route,b);Ce.transition=D}h.push(Ce)}f.value=c,Zr(m,t);const v=ne(r.tag,null,-1),w={};return Object.assign(w,e.attrs),g.h(v,w,{default:()=>h})}else if(u!=null){const c=u.model,h={};if(c.props){if(typeof c.props=="object"){const m=we(c.props,n?.propsFilter);E(!1,h,m)}else if(c.props===!0&&typeof u.route?.params=="object"){const m=we(u.route.params,n?.propsFilter);E(!1,h,m)}}const y=g.h(c.component,h);return Mt(e.slots.default,{Component:y,route:u.route})??y}else{const c=l.slots.value;if(c.length>0){const h=c[0],y=h.route??(t.proxy&&Tt(t.proxy))??null,m=h.model,v={};if(m.props){if(typeof m.props=="object"){const p=we(m.props,n?.propsFilter);E(!1,v,p)}else if(m.props===!0&&typeof y?.params=="object"){const p=we(y.params,n?.propsFilter);E(!1,v,p)}}const w=g.h(m.component,v);if(ne(r.transition,y,-1)??!0){const p=Lt(t,w,r,y,-1);w.transition=p}return Mt(e.slots.default,{Component:w,route:y})??w}else return Mt(e.slots.fallback,{})}}}});function sn(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!=null&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const e=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return r.preventDefault&&r.preventDefault(),!0}}function rn(r,e){return r==null||e==null?!1:!!(r===e||r.path&&r.path===e.path||r.name&&r.name===e.name)}function nn(r,e){return r==null||e==null?!1:!!(r.path&&e.path&&e.path.startsWith(r.path)||r.name&&r.name==e.name)}function be(r,e){return typeof r=="function"?Reflect.apply(r,{},[e]):r}let Ds=g.defineComponent({name:"RouterLink",inheritAttrs:!1,props:{tag:{type:[String,Object,Function],required:!1,default:"a"},to:{type:[String,Object,Function],required:!0},root:{type:String},activeClass:{type:[String,Function],required:!1,default:"fox-router-link-active"},exact:{type:[String,Boolean,Function],required:!1},exactActiveClass:{type:[String,Function],required:!1,default:"fox-router-link-exact-active"},event:{type:[String,Function],required:!1,default:"onClick"}},setup(r,e){const t=g.inject(Xe,null);return()=>{let s=be(r.to,null),n=be(r.tag,s);if(n==null){console.warn("can not resolve link tag");return}let i=null,o=null;t!==null&&(i=t[L](s),r.root&&(i.root=r.root),o=t.currentRoute.value);let a={},l=be(r.activeClass,i);if(typeof l=="string"&&l.length>0&&(a[l]=nn(i,o)),be(r.exact,i)===!0){let h=be(r.exactActiveClass,i);typeof h=="string"&&h.length>0&&(a[h]=rn(i,o))}let f={class:a};(n==="a"||n==="A")&&(f.href=i?.path??i?.name??"#"),E(!0,f,e.attrs);let c=be(r.event,i);if(typeof c=="string"){const h=y=>{if(t==null){console.warn("router is not been injected");return}if(i==null){console.warn("route is not been resolved");return}sn(y)&&t.to(i)};f[c]=h}return g.h(n,f,e.slots)}}});const N=Symbol("chainKey"),O=Symbol("cursorKey"),It=Symbol("$persistentModeKey"),$=Symbol("statusKey"),G=Symbol("argsKey"),rt=Symbol("exArgsKey"),Re=Symbol("successFnsKey"),je=Symbol("errorFnsKey"),ie=Symbol("sessionKey"),X=Symbol("_go");class qe{[N]=[];[O]=0;[It]=!1;[$]="Free";[G]=[];[rt]=[];[Re]=[];[je]=[];[ie];get session(){return this[ie]}constructor(e,t=!1){this[ie]=e,this[It]=t}[X](e,...t){let s=this[$];if(this[$]="Busy",this[O]+=e,this[O]<0&&(this[O]=0),this[G]=t,s==="Exception"||s==="Reject"){let a=[{session:this[ie]},...this[rt]];for(;this[je].length>0;)try{let l=this[je].shift();typeof l=="function"&&Ee(()=>{Reflect.apply(l,{},a)})}catch(l){console.error(l.message,l)}return this[$]=s,this[N]=[],this[O]=0,this}else if(s==="Finished"||this[O]>=this[N].length){let a=[{session:this[ie]},...this[G]];for(;this[Re].length>0;){let l=this[Re].shift();typeof l=="function"&&Ee(()=>{Reflect.apply(l,{},a)})}return this[$]="Free",this}if(this[O]>=this[N].length)return this[$]="Free",this;let n=this[N][this[O]];this[It]||(this[N].splice(0,this[O]+1),this[O]=-1);let i=this[O]+1;try{let o=!1,a={go:(l,...u)=>{o||(o=!0,Reflect.apply(this[X],this,[l,...u]))},resolve:(...l)=>{o||(o=!0,Reflect.apply(this[X],this,[1,...l]))},reject:(...l)=>{o||(o=!0,Reflect.apply(this.reject,this,[...l]))},insert:l=>{o||(this[N].splice(i,0,l),i++)},session:this[ie]};Ee(()=>{Reflect.apply(n,{},[a,...this[G]])})}catch(o){this.throw(o)}return this}go(e,...t){return Reflect.apply(this[X],this,[e,...t])}finish(...e){return this[$]="Finished",this[G]=e,Reflect.apply(this[X],this,[0])}reject(...e){return this[$]="Reject",this[rt]=e,Reflect.apply(this[X],this,[0])}throw(...e){return this[$]="Exception",this[rt]=e,Reflect.apply(this[X],this,[0])}reset(...e){this[$]="Busy",this[G]=e,this[N]=[],this[O]=0;let s=[{session:this[ie]},...this[G]];for(;this[Re].length>0;){let n=this[Re].shift();Ee(()=>{Reflect.apply(n,this,s)})}return this[$]="Free",this}post(e){return this[$]==="Reject"||this[$]==="Exception"?this:(Array.isArray(e)?this[N]=[...this[N],...e]:this[N].push(e),this[$]==="Busy"?this:(Reflect.apply(this[X],this,[0,...this[G]]),this))}wait(e,t){return e&&typeof e=="function"&&this[Re].push(e),t&&typeof t=="function"&&this[je].push(t),this[$]==="Busy"?this:(Reflect.apply(this[X],this,[0,...this[G]]),this)}exception(e){return e&&typeof e=="function"&&this[je].push(e),this[$]==="Busy"?this:Reflect.apply(this[X],this,[0,...this[G]])}isFinish(){return this[$]=="Reject"||this[$]=="Free"&&this[O]>=this[N].length}}const Se=Symbol("registerKey");class on{policy;callback;constructor(e,t){this.callback=e,this.policy=t}}class Nt{[Se]=new Map;constructor(){}on(e,t,s=!1){let n=this[Se].get(e);n||(n=new Array,this[Se].set(e,n));let i=s===!0?1:0,o=new on(t,i);return n.push(o),this}off(e,t){if(!t)return this[Se].delete(e),this;let s=this[Se].get(e);if(s){for(let n=0;n<s.length;n++)if(s[n].callback===t){s.splice(n,1);break}}return this}bind(e,t,s=!1){return this.on(e,t,s)}unbind(e,t){return this.off(e,t)}once(e,t){return this.on(e,t,!0)}all(...e){let t=e.length;if(t<1)return this;let s=e[t-1];if(typeof s!="function")return console.error("callback can not benn empty"),this;let n=t-1,i=new Array(n),o=[].splice.call(e,0,n);for(let a=0;a<o.length;a++)this.once(o[a],l=>{i[a]=l,n-=1,n==0&&Reflect.apply(s,{},i)});return this}emit(e,...t){let s=this[Se].get(e);if(!s)return this;for(let n=0;n<s.length;){let i=s[n];if(i.policy==1?s.splice(n,1):n++,typeof i.callback=="function")try{Ee(()=>{Reflect.apply(i.callback,{},t)})}catch(o){console.error(o.message,o)}}return this}trigger(e,...t){return Reflect.apply(this.emit,this,[e,...t])}}var Te=(r=>(r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r))(Te||{});const ln={type:0,value:""},an=/[a-zA-Z0-9_]/;function un(r){if(!r)return[[]];if(r==="/")return[[ln]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function e(y){throw new Error(`ERR (${t})/"${u}": ${y}`)}let t=0,s=t;const n=[];let i;function o(){i&&n.push(i),i=[]}let a=0,l,u="",f="";function c(){u&&(t===0?i.push({type:0,value:u}):t===1||t===2||t===3?(i.length>1&&(l==="*"||l==="+")&&e(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):e("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;a<r.length;){if(l=r[a++],l==="\\"&&t!==2){s=t,t=4;continue}switch(t){case 0:l==="/"?(u&&c(),o()):l===":"?(c(),t=1):h();break;case 4:h(),t=s;break;case 1:l==="("?t=2:an.test(l)?h():(c(),t=0,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case 2:l===")"?f[f.length-1]=="\\"?f=f.slice(0,-1)+l:t=3:f+=l;break;case 3:c(),t=0,l!=="*"&&l!=="?"&&l!=="+"&&a--,f="";break;default:e("Unknown state");break}}return t===2&&e(`Unfinished custom RegExp for param "${u}"`),c(),o(),n}const Bs="[^/]+?",fn={sensitive:!1,strict:!1,start:!0,end:!0},cn=/[.+*?^${}()[\]/\\]/g;function hn(r,e){const t=E(!0,{},fn,e),s=[];let n=t.start?"^":"";const i=[];for(const u of r){const f=u.length?[]:[90];t.strict&&!u.length&&(n+="/");for(let c=0;c<u.length;c++){const h=u[c];let y=40+(t.sensitive?.25:0);if(h.type===Te.Static)c||(n+="/"),n+=h.value.replace(cn,"\\$&"),y+=40;else if(h.type===Te.Param){const{value:m,repeatable:v,optional:w,regexp:b}=h;i.push({name:m,repeatable:v,optional:w});const p=b||Bs;if(p!==Bs){y+=10;try{new RegExp(`(${p})`)}catch(Q){throw new Error(`Invalid custom RegExp for param "${m}" (${p}): `+Q.message)}}let _=v?`((?:${p})(?:/(?:${p}))*)`:`(${p})`;c||(_=w&&u.length<2?`(?:/${_})`:"/"+_),w&&(_+="?"),n+=_,y+=20,w&&(y+=-8),v&&(y+=-20),p===".*"&&(y+=-50)}f.push(y)}s.push(f)}if(t.strict&&t.end){const u=s.length-1;s[u][s[u].length-1]+=.7000000000000001}t.strict||(n+="/?"),t.end?n+="$":t.strict&&!n.endsWith("/")&&(n+="(?:/|$)");const o=new RegExp(n,t.sensitive?"":"i");function a(u){const f=u.match(o),c={};if(!f)return null;for(let h=1;h<f.length;h++){const y=f[h]||"",m=i[h-1];c[m.name]=y&&m.repeatable?y.split("/"):y}return c}function l(u){let f="",c=!1;for(const h of r){(!c||!f.endsWith("/"))&&(f+="/"),c=!1;for(const y of h)if(y.type===Te.Static)f+=y.value;else if(y.type===Te.Param){const{value:m,repeatable:v,optional:w}=y,b=m in u?u[m]:"";if(vt(b)&&!v)throw new Error(`Provided param "${m}" is an array but it is not repeatable (* or + modifiers)`);const p=vt(b)?b.join("/"):b;if(!p)if(w)h.length<2&&(f.endsWith("/")?f=f.slice(0,-1):c=!0);else throw new Error(`Missing required param "${m}"`);f+=p}}return f||"/"}return{re:o,score:s,keys:i,parse:a,stringify:l}}function yn(r,e){const t=hn(un(r),e);return function(s){const n=t.parse(s);return n?{path:s,params:n}:null}}var nt=(r=>(r[r.Part=0]="Part",r[r.All=1]="All",r))(nt||{});class dn{time;route}class mn{forbidTime=300;submitRecorder=new dn;isSameRoute(e,t){return e==null||t==null?!1:e.name===t.name&&e.path===t.path&&e.root===t.root}acquire(e){let t=new Date().getTime();if(this.isSameRoute(e,this.submitRecorder.route)&&this.submitRecorder.time&&t-this.submitRecorder.time<=this.forbidTime){this.submitRecorder.time=t;return}return this.submitRecorder.route=e,this.submitRecorder.time=t,t}release(e){this.submitRecorder.time===e&&(this.submitRecorder.route=void 0)}}const xe=Symbol("_notifyChange");class Us{currentRoute;routes;constructor(e,t){this.currentRoute=e,this.routes=t}}const ce=Symbol("historyChangeConsumerKey"),Vs=Symbol("_navigateFirstRoute"),it=Symbol("_getRouteMark"),Ht=Symbol("_getUrlSearch"),Dt=Symbol("_generateLocation"),ot=Symbol("_setRouteMarkRecorder"),ke=Symbol("beforeRestoreFiltersKey"),zs=Symbol("_beforeRestore"),Ws="Symbol(_fox_restore_point)";function Le(r,...e){return typeof r=="function"?Reflect.apply(r,null,[...e]):r}function Js(r){if(!Array.isArray(r))return!1;if(r.length===0)return!0;const e=r[0];return!!(Reflect.has(e,"path")&&Reflect.has(e,"root"))}class Gs{base;storage;mode;query;firstNavigate=!0;historyMonitor;traceless=!1;changeHandler;historyChange;[ce]=!1;[ke]=new Array;backTimeout=320;constructor(e="hash",t="",s="",n=!0,i=!0,o=!1,a,l){this.mode=e,this.base=t,this.query=s,this.firstNavigate=n,this.historyMonitor=i,this.traceless=o,this.storage=a??A().sessionStorage,this.backTimeout=l??320}init(e=!0){const t=A();return typeof this.historyChange!="function"&&(this.historyChange=()=>{if(typeof this[ce]=="function"){const s=this[ce]();if(this[ce]=!1,s)return}else if(this[ce]===!0){this[ce]=!1;return}if(Le(this.historyMonitor)){const s=t.history.state;this[xe](s);try{let n=[];if(typeof s=="string"?n=JSON.parse(s):n=s,Array.isArray(n)&&n.length>0){const i=this[it]()??"/";this[ot](i,n)}}catch{}}}),Ve(t,"popstate",this.historyChange),this.firstNavigate&&e&&this[Vs](),Promise.resolve()}destroy(){if(this.historyChange){const e=A();gt(e,"popstate",this.historyChange)}}[zs](e,t,s,n){for(let i of this[ke])try{const o=Reflect.apply(i,{},[e,t,s,n]);if(o===!1)return o}catch(o){console.error(o.message,o)}return!0}beforeRestoreEach(e){this[ke].push(e)}removeBeforeRestoreEach(e){const t=this[ke].indexOf(e);return t!==-1?(this[ke].splice(t,1),!0):!1}[Vs](){const e=this[it]()??"/",t=this.storage.getItem(Ws);if(t)try{const o=JSON.parse(t);if(o.mark===e&&Array.isArray(o.routes)&&o.routes.length>0){const a=o.routes.filter((l,u)=>(l.params=l.params?as(l.params):{},this[zs](l,u,e,o.routes)));if(a.length>0){const l=this[Ht](),u=a.length-1;a[u].query=l||a[u].query,this[xe](a);return}}}catch{}const s=e.indexOf("!");let n;s!=-1?n=e.substring(s+1):n=e;const i=new x;i.path=n,i.query=this[Ht](),this[xe]([i])}[ot](e,t){try{t.forEach(i=>{i.params=i.params?ls(i.params):{}});const n=JSON.stringify({mark:e,routes:t});this.storage.setItem(Ws,n)}catch(s){console.error(s.message,s)}}setRestorePoint(e){const t=this[it]()??"/";this[ot](t,e)}[xe](e){typeof this.changeHandler=="function"&&this.changeHandler(e)}[it](){const e=A();if(this.mode==="path"){let t=e.location.pathname;return this.base&&t.indexOf(this.base)===0&&(t=t.substring(this.base.length)),t}else{const t=e.location.hash,s=t.indexOf("#");if(s!=-1)return t.substring(s+1)}return null}[Ht](){let t=A().location.search;return t.length>0&&t.indexOf("?")===0&&(t=t.substring(1)),t}listen(e){this.changeHandler=e}go(e,t=!1){const s=A();this[ce]=t,s.history.go(e)}goBack(e,t){const s=A(),n=s.history.state;if(Js(n)&&n.length>0){let i=!1;for(let f=n.length-1;f>=0;f--){const c=x.from(n[f]);if(!(c.historyUpdatePolicy==="traceless"||Le(this.traceless,c))&&x.isSame(c,e)){i=!0;break}}if(!i){t();return}const o=this.backTimeout;let a=null;const l=()=>{s.history.go(-1),a=setTimeout(l,o)},u=()=>{clearTimeout(a);const c=A().history.state;if(Js(c)&&c.length>0){let h=c.length;const y=c[h-1],m=x.from(y);if(x.isSame(m,e))return t(),!0;if(h>0){let v=!1;for(let w=h-1;w>=0;w--){const b=x.from(c[w]);if(!(b.traceless===!0||Le(this.traceless,b))&&x.isSame(b,e)){v=!0;break}}return v?(setTimeout(()=>{a=setTimeout(l,o),this.go(-1,u)},0),!0):(t(),!0)}}return t(),!0};a=setTimeout(l,o),this.go(-1,u)}else t()}setRouteMark(e){const t=e.currentRoute.fullPath;this[ot](t,e.routes)}push(e){const t=this[Dt](e.currentRoute);e.currentRoute.historyUpdatePolicy!=="traceless"&&!Le(this.traceless,e.currentRoute)&&A().history.pushState(e.routes,"",t),this.setRouteMark(e)}replace(e){const t=this[Dt](e.currentRoute);(e.currentRoute.historyUpdatePolicy!=="traceless"||!Le(this.traceless,e.currentRoute))&&A().history.replaceState(e.routes,"",t),this.setRouteMark(e)}[Dt](e){const t=A();let s="";if(e.query){let a="";if(typeof e.query=="object")for(let l of Reflect.ownKeys(e.query)){let u=encodeURIComponent(e.query[l]),f=`${encodeURIComponent(String(l))}=${u}`;a.length>0&&(a+="&"),a+=f}else a=e.query;this.query?(s=a.length>0?`${this.query}&${a}`:this.query,s.length>0&&s.charAt(0)!=="?"&&(s=`?${s}`)):a.length>0&&(s=`?${a}`)}const n=t.location;let i=e.alias??e.fullPath;i.startsWith(J)&&(i=i.substring(J.length+1));let o;return s?this.mode=="path"?i.indexOf("/")===0?o=`${this.base}${i}${s}`:o=`${this.base}/${i}${s}`:o=`${n.pathname}${s}#${i}`:this.mode=="path"?i.indexOf("/")===0?o=`${this.base}${i}`:o=`${this.base}/${i}`:o=`${n.pathname}#${i}`,`${n.origin}${o}`}}function pn(r=!0,e=null,t="",s=!0,n=!1,i){return e!==null&&(e=A().location.pathname),e&&e.endsWith("/")&&(e=e.substring(0,e.length-1)),new Gs("path",e??"",t,r,s,n,i)}function Xs(r=!0,e="",t=!0,s=!1,n){return new Gs("hash","",e,r,t,s,n)}class gn{maxSize=50;cursor=-1;queue=[];changeHandler;base;historyMonitor=!1;traceless=!1;constructor(e,t=50){this.base=e,this.maxSize=t}init(e=!0){return Promise.resolve()}destroy(){this.queue=[]}beforeRestoreEach(e){}removeBeforeRestoreEach(e){return!1}listen(e){this.changeHandler=e}[xe](e){typeof this.changeHandler=="function"&&this.changeHandler(e)}go(e,t=!1){if(this.queue.length==0||this.cursor<=0)return;let s=this.cursor+e;if(s<0?s=0:s>this.queue.length-1&&(s=this.queue.length-1),s!=this.cursor){this.cursor=s;let n=!1;if(typeof t=="function"?n=t():n=t,!n){const i=this.queue[s];this[xe](i.routes)}}}goBack(e,t){if(this.queue.length==0||this.cursor<=0)return;let s=0;if(e===null)s=this.cursor+1;else for(let n=this.cursor;n>=0;n--){const i=this.queue[n];if(x.isSame(i.currentRoute,e))break;s++}if(s===0){t();return}this.go(-s,()=>(t(),!0))}setRouteMark(e){}push(e){this.queue.length>=this.maxSize&&this.queue.splice(0,1),this.queue.push(e),this.cursor=this.queue.length-1}replace(e){let t=this.queue.length-this.cursor;this.queue.splice(this.cursor,t),this.queue[this.cursor]=e}setRestorePoint(e){}}function Qs(r="",e=50){return new gn(r,e)}function qn(r){}const lt=Symbol("_constructRouteModel"),at=Symbol("_findRouteModel"),Bt=Symbol("_findRootView"),vn=Symbol("_getFirstView"),he=Symbol("_removeView"),Ys=Symbol("_buildPage"),Zs=Symbol("_resolveComponent"),er=Symbol("_update"),oe=Symbol("_merge"),Ut=Symbol("_handleHistoryChange"),ye=Symbol("_handleRouteUpdated"),ut=Symbol("routeUpdatedCallback"),Vt=Symbol("currentRoute"),R=Symbol("currentRoutes"),ft=Symbol("routeSessionCacheKey"),tr=Symbol("_addRouteRecorder"),Oe=Symbol("_removeRouteRecorder"),ct=Symbol("_cloneRouteRecorder"),j=Symbol("_handleError"),ht=Symbol("errorCallback"),H=Symbol("registerKey"),yt=Symbol("notFoundKey"),zt=Symbol("notFoundPathKey"),z=Symbol("forestKey"),F=Symbol("historyKey"),Me=Symbol("beforeFiltersKey"),Ie=Symbol("afterFiltersKey"),Ne=Symbol("destroyFiltersKey"),Wt=Symbol("propsFilterKey"),Pe=Symbol("mainDispatcherKey"),Jt=Symbol("initKey"),de=Symbol("readyKey"),Gt=Symbol("readyHandlersKey"),dt=Symbol("_markReady"),sr=Symbol("_createNextFn"),Xt=Symbol("_start"),Qt=Symbol("_before"),Yt=Symbol("_after"),rr=Symbol("_destroy"),Zt=Symbol("_load"),He=Symbol("_unload"),De=Symbol("routerGuardKey");function wn(r){return r.layers.length==0||r.layers[0].views.length==0}class bn{[H]=new Array;[yt];[zt]="*";[de]=!1;[Gt]=[];[z]=new en;[F];[R]=new Array;[Vt]=g.shallowRef(null);[ft]=new WeakMap;[ht]=null;[ut]=null;[Me]=new Array;[Ie]=new Array;[Ne]=new Array;[Wt]=null;[Pe]=new qe;[De]=new mn;[Jt]=!1;get currentRoute(){return g.readonly(this[Vt])}options;constructor(e){this.options=e??{},this.options.notFoundPath&&this.setNotFoundPath(this.options.notFoundPath);let t=this.options.routes||[];this.addRoutes(t),this.options.notFound&&this.setNotFoundRoute(this.options.notFound),e.history?this[F]=e.history:this[F]=le?Xs():Qs(),this[F]?.listen(async s=>{let n=!0;try{if(typeof s=="string"){const i=this[L](s);i&&await this[Ut]([i])}else await this[Ut](s)}catch(i){console.error(i.message,i),n=!1}this[de]===!1&&this[dt](n)})}[j](e="error",t){if(t&&typeof t.error=="function")try{t.error(e)}catch{}if(typeof this[ht]=="function")try{this[ht](e,t)}catch{}console.error(e)}init(){this[Jt]!==!0&&(this[F]?.init(!this[de]),this[Jt]=!0)}isReady(){return this[de]?Promise.resolve():new Promise((e,t)=>{this[Gt].push([e,t])})}[dt](e){this[de]=!0,this[Gt].forEach(([t,s])=>{try{e?t():s()}catch(n){console.error(n.message,n)}})}[Ut](e){try{if(!e){let o=[...this[R]].reverse();return this[He](o),le&&A().location.reload(),Promise.resolve()}let t=null,s=[],n=[],i=0;for(;i<e.length&&i<this[R].length&&x.isSame(e[i],this[R][i]);i++)e[i].active===!0&&e[i].active!==this[R][i].active&&(t=e[i]);if(i<e.length&&(s=e.slice(i)),i<this[R].length&&(n=this[R].slice(i).reverse()),n.length===0&&s.length===0){if(t!==null)return this.restore([t])}else if(n.length>0){if(this[He](n)){if(s.length>0)return this.restore(s);if(t!==null)return this.restore([t])}}else return this.restore(s)}catch(t){this[j](t)}return Promise.resolve()}[ye](e=null){if(this[Vt].value=e,typeof this[ut]=="function")try{this[ut](e)}catch{}}[tr](e,t){if(e.opsType===C.Open){let s=!1;const n=this[R].length-1;for(let i=n;i>=0;i--){const o=this[R][i];if(e.root==o.root){if(e.path===o.path){this[R].splice(i,1,e),s=!0;continue}e.active&&(o.active=!1)}}s||this[R].push(e)}else this[R].push(e);this[ft].set(e,t),this[ye](e)}[ct](){let e=[];for(let t of this[R]){let s=x.clone(t,!0);e.push(s)}return e}[Oe](e){if(!this[R]){this[ye](null);return}let t=-1;for(let s=0;s<this[R].length;s++)if(x.isSame(this[R][s],e)){t=s;break}if(t!=-1){const s=this[R][t];this[R].splice(t,1);const n=this[ft].get(s);if(this[ft].delete(s),this[rr](s,n),s.opsType===C.Append){const i=this[R].length-1;this[ye](this[R][i]??null)}else this[ye](null)}else this[ye](null)}set historyMonitor(e){this[F]&&(this[F].historyMonitor=e)}get historyMonitor(){return this[F]?this[F].historyMonitor:!1}set traceless(e){this[F]&&(this[F].traceless=e)}get traceless(){return this[F]?this[F].traceless:!1}set propsFilter(e){this[Wt]=e}get propsFilter(){return this[Wt]}setRestorePoint(){const e=this[ct]();this[F]?.setRestorePoint(e)}onRouteUpdated(e){this[ut]=e}onError(e){this[ht]=e}beforeEach(e){this[Me].push(e)}removeBeforeEach(e){const t=this[Me].indexOf(e);return t!==-1?(this[Me].splice(t,1),!0):!1}afterEach(e){this[Ie].push(e)}removeAfterEach(e){const t=this[Ie].indexOf(e);return t!==-1?(this[Ie].splice(t,1),!0):!1}destroyEach(e){this[Ne].push(e)}removeDestroyEach(e){const t=this[Ne].indexOf(e);return t!==-1?(this[Ne].splice(t,1),!0):!1}beforeRestoreEach(e){this[F]?.beforeRestoreEach(e)}removeBeforeRestoreEach(e){return this[F]?.removeBeforeRestoreEach(e)??!1}addRoutes(e){for(let t of e)this.addRoute(t)}addRoute(e,t=-1){if(e.path===this[zt]){this.setNotFoundRoute(e);return}const s=this[lt](e);if(t==-1)this[H]=[...this[H],...s];else for(let n=s.length-1;n>=0;n--)this[H].splice(t,0,s[n])}removeRoute(e){const t=this[L](e);if(t===null)return console.warn("route格式错误",e),!1;for(let s=0;s<this[H].length;s++){const n=this[H][s];if(t?.path&&n.path===t.path)return this[H].splice(s,1),!0;if(t?.name&&n.name===t.name)return this[H].splice(s,1),!0}return!1}hasRoute(e){const t=this[L](e);return t===null?(console.warn("route格式错误",e),!1):this[H].findIndex(n=>{if(t?.path&&n.path===t.path||t?.name&&n.name===t.name)return!0})!==-1}setNotFoundPath(e){this[zt]=e}setNotFoundRoute(e){const t=this[lt](e);this[yt]=t[0]}getRoutes(){return[...this[H]]}[lt](e){let t=e.path??"";t.length>0&&t.charAt(0)!=="/"&&(t=`/${t}`);let s=e.components??(e.component&&{"":e.component});if(!s){const l=new Et;return l.path=t,l.redirect=e.redirect,[l]}const n=new x;n.path=t,n.name=e.name,n.meta=e.meta;let i=[];for(let l in s){const u=s[l];l.length===0&&(l=J);const f=new _r(l,u,e.props);i.push(f)}let o=!1,a=[];if(e.children)for(let l of e.children){const u=this[lt](l);for(let f of u){let c=new Et;c.name=f.name,f.path&&f.path.length>0?t!=="/"?c.path=`${t}${f.path}`:c.path=f.path:(o=!0,c.path=t);let h=new vs;h.models=[...i],c.layers=[h,...f.layers];const y=f.matchedRoutes??[];c.matchedRoutes=[n,...y],a.push(c)}}if(!o){const l=new vs;l.models=i;const u=new Et;u.name=e.name,u.path=t,u.matchedRoutes=[n],u.layers=[l],a.splice(0,0,u)}return a}[at](e){const t=e.route;try{for(let s of this[H]){const n=t.path?t.template??t.path:null,i=t.name?t.template??t.name:null;if(n&&s.path){let o=s.match;o||(o=s.match=yn(s.path));const a=o(n);if(!a)continue;if(s.redirect){const l=new x;E(!0,l,t),l.path=s.redirect;const u={route:l,find:void 0};return this[at](u)?(e.route=u.route,e.find=u.find,t.template&&e.find&&(e.find={...e.find},e.find.path=t.path),!0):!1}if(t.params=t.params??{},E(!0,t.params,a.params),t.query){const l=t.query;if(typeof l=="string"){const u={},f=l.split("&");for(let c of f){const h=c.split("=");if(h.length!==2)continue;const y=decodeURIComponent(h[0].trim()),m=decodeURIComponent(h[1].trim());u[y]=m}E(!0,t.params,u)}else typeof l=="object"&&E(!0,t.params,l)}return e.find=s,t.template&&e.find&&(e.find={...e.find},e.find.path=t.path),!0}else if(i===s.name)return e.find=s,t.template&&e.find&&(e.find={...e.find},e.find.name=t.name),!0}}catch(s){console.error(s.message,s),typeof t.error=="function"&&t.error(s.message)}return!1}[L](e){let t=null;if(Array.isArray(e))if(t=new x,typeof e[0]=="object")t=x.from(e[0]);else for(let s=0;s<e.length;s++)s===0?e[s].charAt(0)==="/"?t.path=e[s]:t.name=e[s]:s===1?t.params=e[s]:s===2?t.root=e[s]:s===3&&E(!1,t,e[s]);else typeof e=="object"?t=x.from(e):typeof e=="string"&&(t=new x,e.charAt(0)=="/"?t.path=e:t.name=e);if(t){if(t.path){let s=t.path.indexOf("?");s!==-1&&s<t.path.length-1&&(t.query=t.path.substring(s+1),t.path=t.path.substring(0,s))}t.root=t.root??J,t.opsType=t.opsType??this.options.defaultOperationType??C.Push,t.traceless&&!t.historyUpdatePolicy&&(t.historyUpdatePolicy="traceless")}return t}push(...e){const t=this[L](e);return t?(t.opsType=C.Push,t.historyUpdatePolicy=t.historyUpdatePolicy??"push",this.to(t)):(this[j]("resolve route fail",t),this)}put(...e){const t=this[L](e);return t?(t.opsType=C.Put,t.historyUpdatePolicy=t.historyUpdatePolicy??"traceless",this.to(t)):(this[j]("resolve route fail",t),this)}replace(...e){const t=this[L](e);return t?(t.opsType=C.Replace,t.historyUpdatePolicy=t.historyUpdatePolicy??"replace",this.to(t)):(this[j]("resolve route fail",t),this)}append(...e){const t=this[L](e);return t?(t.opsType=C.Append,t.historyUpdatePolicy=t.historyUpdatePolicy??"push",this.to(t)):(this[j]("resolve route fail",t),this)}remove(e,t){return new Promise(s=>{this[Pe].post(n=>{try{if(this[R].length===0){n.resolve(),s(!1);return}let i=-1,o=null,a=[];if(e){if(o=e.root??null,e.all)for(let u=this[R].length-1;u>0;u--){const f=this[R][u];if(f.opsType===C.Append){const c=f.root??J;if(o&&o!==c)continue;a.splice(0,0,f),i=u-1}}else if(e.until)for(let u=this[R].length-1;u>0;u--){let f=this[R][u];if(f.opsType===C.Append&&f.root===o){if(e.until.charAt(0)==="/"&&e.until===f.path){i=u;break}else if(e.until===f.name){i=u;break}a.splice(0,0,f)}}else if(e.to)for(let u=this[R].length-1;u>0;u--){const f=this[R][u];if(f.opsType===C.Append){const c=f.root??J;if(o&&o!==c)continue;if(a.splice(0,0,f),e.to.charAt(0)==="/"&&e.to===f.path){i=u-1;break}else if(e.to===f.name){i=u-1;break}}}}else for(let u=this[R].length-1;u>0;u--){let f=this[R][u];if(f.opsType===C.Append){a.push(f),i=u-1;break}}if(i===-1||a.length===0){let u="can not find route";console.warn(u),n.resolve(u),s(!1);return}let l=null;if(i!==-1&&(l=this[R][i]),this[He](a)){if(t===!1)return n.resolve(),s(!0),!0;const u=()=>(n.resolve(),s(!0),!0),f=this[R].length;if(l&&x.isSame(l,this[R][f-1])){this[F]?.goBack(l,u);return}u()}}catch(i){this[j](i),n.resolve(),s(!1)}})})}open(...e){let t=this[L](e);return t?(t.opsType=C.Open,t.historyUpdatePolicy=t.historyUpdatePolicy??"push",this.to(t)):(this[j]("resolve route fail",t),this)}close(e){return this[Pe].post(t=>{try{let s=this[L](e);if(!s){t.reject("resolve route fail");return}let n=[];for(let i=0;i<this[R].length;i++){let o=this[R][i];if(o.root===s.root){if(!s.path&&!s.name){n.push(o);continue}if(s.path&&s.path===o.path){n.push(o);break}else if(s.name&&s.name===o.name){n.push(o);break}}}if(n.length===0){t.resolve();return}this[He](n),t.resolve()}catch(s){this[j](s),t.resolve()}}),this}to(...e){let t=this[L](e);if(!t)return this[j]("resolve route fail",t),this;let s=this[De].acquire(t);return s==null?(this[j]("route forbid",t),this):(this[Pe].post(n=>{try{let i=this[Xt](t);this[Qt](i),this[Zt](i),this[Yt](i),i.wait((o,a)=>{const l=o.session.to;if(o.session.updateResult&&o.session.updateResult.status==="success")try{let u=x.clone(l,!0);const f=new Us(u,this[ct]());l.historyUpdatePolicy==="replace"?this[F]?.replace(f):l.historyUpdatePolicy==="traceless"?this[F]?.setRouteMark(f):this[F]?.push(f)}catch(u){console.error(u.message,u)}if(pe.clear(o.session),this[De].release(s),typeof t.success=="function")try{Reflect.apply(t.success,{},[])}catch(u){console.error(u.message,u)}this[de]===!1&&this[dt](!0),i=null,n.resolve()},(o,a)=>{this[De].release(s),a!==null&&this[j](a,t),this[de]===!1&&this[dt](!1),pe.clear(o.session),i=null,n.resolve()})}catch(i){this[De].release(s),this[j](i,t),n.resolve()}}),this)}back(e=1){this[F]?.go(-e,!1)}[sr](e){return(t,s)=>{if(typeof t=="boolean")e.session.redirect=!1,t?e.resolve():e.reject(s??null);else if(t){const n=this[L](t);if(n){const i=e.session.to;n.success=i.success,n.error=i.error,e.session.to=n,e.session.redirect=!0,e.session.routeModel=null,e.resolve()}else e.session.redirect=!1,e.reject("route resolve fail")}else e.session.redirect=!1,e.resolve()}}[Xt](e){const t=this[R].length>0?this[R][this[R].length-1]:void 0,s=new pe(e,t),n={route:e,find:null};if(this[at](n),n.find){s.routeModel=n.find,e.matched=n.find.matchedRoutes??[];const o={};if(Array.isArray(n.find?.matchedRoutes))for(let a=0;a<n.find.matchedRoutes.length;a++){const l=n.find.matchedRoutes[a];l.meta&&typeof l.meta=="object"&&Object.assign(o,l.meta)}e.meta&&typeof e.meta=="object"&&Object.assign(o,e.meta),e.meta=o}return new qe(s)}[Qt](e){for(let t of this[Me])e.post(s=>{const n=this[sr](s);Reflect.apply(t,{},[s.session.to,s.session.from,n,s.session])})}[Yt](e){e.post(t=>{for(let s of this[Ie])try{Reflect.apply(s,{},[t.session.to,t.session.from,t.session])}catch(n){console.error(n.message,n)}t.resolve()})}[rr](e,t){for(let s of this[Ne])try{Reflect.apply(s,{},[e,t])}catch(n){console.error(n.message,n)}typeof e.destroy=="function"&&Reflect.apply(e.destroy,e,[])}[Zt](e){e.post(t=>{const s=t.session.to;let n=t.session.routeModel;if(n==null){let o={route:s,find:null};if(this[at](o))n=o.find,t.session.routeModel=n;else if(this[yt])n=this[yt];else{t.reject(`not find route model, path:${s.path??s.name}`);return}}const i=pe.from(t.session);this[Ys](s,n,i).then(o=>{this[z],t.session.updateResult=o??{status:"success",message:""},t.resolve()},o=>{t.reject(o)})})}[He](e){if(e.length==0)return!0;let t=this[z],s=[];for(let n of e){let i=this[Bt](t,n);i!=null&&s.push({...i,route:n})}if(s.length==0)return this[j]("can not find view index"),!1;for(let n of s.reverse())this[he](t,{x:n.x,y:n.y},[n.route.index??0],!0);return!0}[Bt](e,t){const s=t.root??J;let n;for(let i=0;i<e.layers.length;i++){const o=e.layers[i];for(let a=o.views.length-1;a>=0;a--){const l=o.views[a];if(l[U]&&l[tt]===s)return n={x:a,y:i},n}}return null}[vn](e){return e.layers.length>0&&e.layers[0].views.length>0?e.layers[0].views[0]:null}[he](e,t,s=null,n=!0){if(t.y>=e.layers.length||t.x>=e.layers[t.y].views.length)return;let i=e.layers[t.y].views[t.x],o=!1,a=[],l=!1,u=[...i.slots.value];for(let c=u.length-1;c>=0;c--){let h=u[c];(!s||s.indexOf(h.index)!=-1)&&(h.route&&i[U]&&(this[Oe](h.route),h.active===!0&&h.route.opsType==C.Append&&(l=!0)),a.push(new I(i,h.index,t.y)),u.splice(c,1))}if(u.length==0)n?i.slots.value=u:e.layers[t.y].views.splice(t.x,1);else{if(l){let c=u.length-1,h=u[c];h.active=!0,h.route&&(h.route.active=h.active)}i.slots.value=u}e.layers[t.y].views.length==0&&(o=!0);let f=t.y+1;for(;f<e.layers.length;f++){let c=e.layers[f].views,h=[];for(let y=c.length-1;(o||a.length>0)&&y>=0;y--){let m=c[y];if(m[fe]&&(o||I.include(a,m[fe]))){let v=m.slots.value;for(let w=v.length-1;w>=0;w--){let b=v[w];b.route&&m[U]&&this[Oe](b.route),h.push(new I(m,b.index,f)),v.splice(w,1)}e.layers[f].views.splice(y,1)}}a=h,e.layers[f].views.length==0&&(o=!0)}}restore(e){if(!e||this[H].length==0){let t=this[z];if(t.layers.length>0){let s=t.layers[0].views;s.length>0&&(s[0].slots.value=[])}return this[R]=[],this[ye](null),Promise.resolve()}else return new Promise((s,n)=>{let i=null,o=!1;for(let a=0;a<e.length;a++){const l=e[a];this[Pe].post(u=>{const f=this[Xt](l);this[Qt](f),this[Zt](f),this[Yt](f),f.wait((c,h)=>{i=c.session.to,o=c.session.redirect,u.resolve()},(c,h)=>{i=null,h!==null&&this[j](h),u.resolve()})})}this[Pe].post(a=>{if(i&&o===!0){const l=x.clone(i,!0),u=new Us(l,this[ct]());this[F]?.replace(u)}a.resolve(),s()})})}[Ys](e,t,s){const n=e.updateType??nt.Part;return this[Zs](t).then(()=>{const o=this[er](t,e,s,n);if(o.status==="error")throw Error(o.message);return o})}[Zs](e){let t=[];for(let s=0;s<e.layers.length;s++){let n=e.layers[s];for(let i=0;i<n.models.length;i++){let o=n.models[i];o.isResolved||t.push(o.resolve())}}return t.length>0?Promise.all(t):Promise.resolve()}[er](e,t,s,n){if(e.layers[0].models.length!==1)return{status:"error",message:"illegal route structure(multi root node)"};const i=e.layers[0].models[0];let o=this[z],a=wn(o),l=t.root??J,u;!a&&n==nt.Part&&(u=this[Bt](o,t));let f,c=0;if(u==null||u==null)if(a||n===nt.All){if(o.layers.length==0&&(o.layers[0]=new Ot),o.layers[0].views.length==0){let h=t.root??J;f=new Ke(h,!0,null),o.layers[0].views=[f]}else f=o.layers[0].views[0];u={x:0,y:0}}else{let h=t.slot;if(!h)return{status:"error",message:"can not rebuild view(because not route slot)"};let y=h.level;if(y>o.layers.length)return{status:"error",message:"can not insert view(override level)"};let m;if(h.rootName){let v=o.layers[y-1];for(let w of v.views){if(w[U]&&w.name===h.rootName){m=new I(w,h.rootIndex??0,y-1);break}if(w[V]&&w[V].view.name===h.rootName&&w[V].index===h.rootIndex){m=w[V];break}}}if(!m)return{status:"error",message:"can not insert view(not find root node ref)"};f=new Ke(l,!0,m),o.layers[y].views.push(f),u={x:o.layers[y].views.length-1,y}}else f=o.layers[u.y].views[u.x];if(c=u.y,f[U]=!0,t.opsType===C.Append){t.index=t.index??se.get(),t.active=!0;let h=f.slots.value;if(h.length>0){let b=h[h.length-1];b.active=!1,b.route&&(b.route.active=b.active)}let y=new re(t,i,t.index,!0);f.slots.value=[...h,y];let m=c+1,v=1,w=new I(f,t.index,c);this[oe](o,m,e,v,w)}else if(t.opsType===C.Open){let h=f.slots.value;const y=t.active??!0;let m=!1;for(let v of h){if(v.route!==null&&x.isSamePathForRoute(v.route,t)){if(v.active===y)return t.index=v.index,t.active=y,v.route=t,{status:"noChange",message:""};v.active=y,m=!0,t.index=v.index,t.active=y,v.route=t}else y&&(v.active=!1);v.route&&(v.route.active=v.active)}if(!m){t.index=t.index??se.get(),t.active=y;let v=new re(t,i,t.index,y);h.push(v);let w=c+1,b=1,p=new I(f,t.index,c);this[oe](o,w,e,b,p)}f.slots.value=[...h]}else{let h=f.slots.value;if(h.length==0){t.index=t.index??se.get(),t.active=!0,f.slots.value=[new re(t,i,t.index)];let y=c+1,m=1,v=new I(f,t.index,c);this[oe](o,y,e,m,v)}else{let y=h[0];if(y.model!==i){this[he](o,u,null,!0),t.index=t.index??se.get(),t.active=!0,f.slots.value=[new re(t,i,t.index)];let m=c+1,v=1,w=new I(f,t.index,c);this[oe](o,m,e,v,w)}else{y.route!==null&&this[Oe](y.route);let m=!1;const v=t.active??!0;y.active!==v&&(y.active=v,m=!0),t.active=v,t.index=y.index,y.route=t;let w=[];for(let Z=1;Z<h.length;Z++)w.push(h[Z].index);w.length>0?this[he](o,u,w,!0):m&&(f.slots.value=[...h]);let b=[new I(f,t.index,c)],p=c+1,_=1,Q=new I(f,t.index,c);for(;b.length>0&&p<o.layers.length&&_<e.layers.length;p++,_++){let Z=[];for(let T=0;T<o.layers[p].views.length;T++){let k=o.layers[p].views[T];k[fe]&&I.include(b,k[fe])&&Z.unshift(T)}let Fe=[];for(let T of Z){let k=o.layers[p].views[T],me=e.layers[_].models,ee;for(let M=0;M<me.length;M++)if(k.name===me[M].name){ee=me[M];break}if(!ee)this[he](o,{x:T,y:p},null,!1);else{let M=k.slots.value;if(M.length==0){let Y=0;k.slots.value=[new re(null,ee,Y)];let W=p+1,te=_+1;this[oe](o,W,e,te,Q)}else{let Y=M[0];if(Y.model!==ee){this[he](o,{x:T,y:p},null,!0),k.slots.value=[new re(null,ee,0)];let W=p+1,te=_+1;this[oe](o,W,e,te,Q)}else{k[U]&&Y.route!==null&&this[Oe](Y.route);let W=[];for(let te=1;te<M.length;te++)W.push(M[te].index);W.length>0&&this[he](o,{x:T,y:p},W,!0),Fe.push(new I(k,Y.index,p))}}k[U]=!1}}b=Fe}this[oe](o,p,e,_,Q)}}}if(f&&f[V]){let h=f[V];h&&(t.slot=new $r(l,c,h?.view.name,h?.index??0))}return s.to=void 0,s.routeModel=void 0,this[tr](t,s),{status:"success",message:""}}[oe](e,t,s,n,i){let o=n,a=t;for(;a<e.layers.length&&o<s.layers.length;a++,o++){let l=e.layers[a].views;for(let u of s.layers[o].models){let f=new Ke(u.name,!1,i),c=new re(null,u);f.slots.value=[c],l.push(f)}}for(;o<s.layers.length;o++){let l=new Ot;l.views=[];for(let u of s.layers[o].models){let f=new Ke(u.name,!1,i),c=new re(null,u);f.slots.value=[c],l.views.push(f)}e.layers.push(l)}}[ps](e,t,s,n,i,o){if(t<0||t>this[z].layers.length)return null;if(t<this[z].layers.length){let f=this[z].layers[t],c=null;for(let h of f.views){let y=!1;if(s!==null?(y=h.name===e&&h[V]?.view===s,y&&n!==-1&&(y=h[V]?.index===n)):y=h.name===e,!!y){i!==null&&(h[fe]={view:i,index:o,level:t-1}),c=h;break}}if(c!==null)return c}let a=null,l=null;i!==null&&(i[U]?a={view:i,index:o,level:t-1}:a=i[V],l={view:i,index:o,level:t-1});let u=new Ke(e,!0,a);if(u[fe]=l,t==this[z].layers.length){let f=new Ot;f.views=[u],this[z].layers.push(f)}else this[z].layers[t].views.push(u);return u}}const Rn="fox-router-view",Sn="fox-router-link";var q=(r=>(r[r.Loading=0]="Loading",r[r.Loaded=1]="Loaded",r[r.Defining=2]="Defining",r[r.Defined=3]="Defined",r))(q||{}),mt=(r=>(r[r.normal=0]="normal",r[r.factory=1]="factory",r))(mt||{});class xn{register=new Map;constructor(){}get(e){return this.register.get(e)??null}set(e,t){this.register.set(e,t)}remove(e){let t=this.register.get(e);return this.register.delete(e),t??null}has(e){return this.register.has(e)}clear(){this.register.clear()}}class nr{moduleManager=new xn;options={paths:{},alias:{},nature:[],timeout:3e3};set paths(e){this.options.paths=e}get paths(){return this.options.paths}set alias(e){this.options.alias=e}get alias(){return this.options.alias}set naturePaths(e){this.options.nature=e}get naturePaths(){return this.options.nature}set timeout(e){this.options.timeout=e}get timeout(){return this.options.timeout}_query;set query(e){this._query=e}get query(){return this._query}get head(){return Ue().head}constructor(){}setModule(e,t){const s={id:e,src:"",status:q.Defined};typeof t=="function"?(s.exports=t,s.type=mt.factory):s.exports=t,this.moduleManager.set(e,s)}removeModule(e){this.moduleManager.remove(e)}ensure(...e){const t=[];let s=e.length-1;const n={};typeof e[s]=="object"&&(Object.assign(n,e[s]),s--);let i=null;typeof e[s]=="function"&&(i=e[s],s--);for(let l=0;l<=s;l++)if(Array.isArray(e[l])){let u=e[l];for(let f=0;f<u.length;f++)u[f]&&t.push(this.resolvePath(u[f]))}else if(typeof e[l]=="string"){let u=e[l].split(",");for(let f=0;f<u.length;f++)u[f]&&t.push(this.resolvePath(u[f]))}const o=new Pn(t.length,(l,u)=>{if(o.isOK())try{typeof i=="function"&&Reflect.apply(i,{},u)}catch(f){console.error(f.message,f)}else try{console.error(l),typeof i=="function"&&Reflect.apply(i,{},[])}catch(f){console.error(f.message,f)}}),a=new qe;for(let l=0;l<t.length;l++){const u=new Fn(l,t[l],n,o);this.mount(a,u)}return this}remove(...e){let t=[],s=e.length-1,n={};typeof e[s]=="object"&&(Object.assign(n,e[s]),s--);let i=null;typeof e[s]=="function"&&(i=e[s],s--);for(let o=0;o<=s;o++)if(Array.isArray(e[o])){let a=e[o];for(let l=0;l<a.length;l++)a[l]&&t.push(this.resolvePath(a[l]))}else{let a=e[o].split(",");for(let l=0;l<a.length;l++)a[l]&&t.push(this.resolvePath(a[l]))}return t.forEach(o=>{this.unmount(o,n)}),typeof i=="function"&&Reflect.apply(i,{},[]),this}mount(e,t){if(t.src==="exports"){e.post(n=>{t.progress.work(!0,t.index,"exports"),n.resolve()});return}else if(t.src==="module"){e.post(n=>{t.progress.work(!0,t.index,"module"),n.resolve()});return}if(this.isNaturePath(t.src)){let n=t.params.jsPoint;n||(n=this.head),this.mountJS(e,t,n);return}else if(this.isNaturePath(t.src)){let n=t.params.cssPoint;n||(n=this.head),this.mountCSS(e,t,n);return}let s=this.getFileNamePostfix(t.src);if(s==="js"||s.length===0){let n=t.params.jsPoint;n||(n=this.head),this.mountJS(e,t,n);return}else if(s==="css"){let n=t.params.cssPoint;n||(n=this.head),this.mountCSS(e,t,n);return}}mountCSS(e,t,s){e.post(n=>{const i=t.src,o=this.moduleManager.get(i);if(o&&(o.status==q.Defined||o.status==q.Loaded)&&o.exports){o.type===mt.factory&&typeof o.exports=="function"?t.progress.work(!0,t.index,o.exports()):t.progress.work(!0,t.index,o.exports),n.resolve();return}const a=Ue(),l=a.createElement("link");if(Reflect.has(l,"onload"))l.onload=()=>{l.onload=null,l.onerror=null,t.progress.work(!0,t.index,t.src),n.resolve()},l.onerror=()=>{try{s.removeChild(l)}catch(c){console.error(c.message,c)}l.onload=null,l.onerror=null,t.progress.work(!1,t.index,null),n.reject()};else{const c={timeout:this.options.timeout??3e3,time:0,success:()=>{t.progress.work(!0,t.index,t.src),n.resolve()},error:()=>{try{s.removeChild(l)}catch(h){console.error(h.message,h)}t.progress.work(!1,t.index,null),n.resolve()}};setTimeout(()=>{ir(l,c)},1)}let f=a.getElementById(i);f&&f.parentNode&&f.parentNode.removeChild(f),l.rel="stylesheet",l.type="text/css",l.id=i,l.href=i,s.appendChild(l)})}mountJS(e,t,s){e.post(n=>{const i=t.src;let o=this.moduleManager.get(i);if(o&&(o.status==q.Defined||o.status==q.Loaded)){if(o.exports){o.type===mt.factory&&typeof o.exports=="function"?t.progress.work(!0,t.index,o.exports()):t.progress.work(!0,t.index,o.exports),n.resolve();return}if(document.querySelector(`script[src='${i}`)){t.progress.work(!0,t.index,o.exports),n.resolve();return}}o={id:i,src:i,status:q.Loading},this.moduleManager.set(i,o);const l=Ue().createElement("script");if("onload"in l)l.onload=()=>{l.onload=null,l.onerror=null,o.status===q.Loading&&(o.status=q.Loaded,t.progress.work(!0,t.index,i)),n.resolve()},l.onerror=()=>{try{s.removeChild(l)}catch(c){console.error(c.message,c)}l.onload=null,l.onerror=null,this.moduleManager.remove(i),t.progress.work(!1,t.index,null),n.resolve()};else{const c=l;c.onreadystatechange=()=>{/loaded|complete/.test(c.readyState)&&(c.onreadystatechange=null,o.status==q.Loading&&(o.status=q.Loaded,t.progress.work(!0,t.index,i)),n.resolve())}}l.defer=!0,l.src=i;const f=A();f.define=this.createDefine(o,t),s.appendChild(l)})}unmount(e,t={}){const s=Ue(),n=this.getFileNamePostfix(e);if(n==="js"||n.length===0){const i=s.querySelector(`script[src="${e}"]`);i&&i.parentNode&&i.parentNode.removeChild(i),this.moduleManager.remove(e);return}else if(n==="css"){const i=s.querySelector(`style[href="${e}"]`);i&&i.parentNode&&i.parentNode.removeChild(i);return}}trimEmptyElement(e){let t=[];for(let s=0;s<e.length;s++){if(e[s]===void 0||e[s]===null)continue;const n=e[s].trim();n.length!==0&&t.push(n)}return t}createDefine(e,t){const s=this,n=function(...i){e.status=q.Defining;let o,a,l,u=i.length;u===1?(l=i[0],o=void 0):u===2?(l=i[1],Array.isArray(i[0])?(a=s.trimEmptyElement(i[0]),o=void 0):a=void 0):(o=i[0],a=s.trimEmptyElement(i[1]),l=i[2]),o&&(e.id=o,s.options.alias[o]=e.src),a&&a.length>0?s.ensure(a,(...f)=>{try{const c=f.map(h=>h==="exports"?((!e.exports||typeof e.exports!="object")&&(e.exports={}),e.exports):h==="module"?e:h);if(typeof l=="function"){const h=Reflect.apply(l,e,c);h&&typeof h=="object"&&(e.exports=h)}else e.exports=l;e.status=q.Defined,t.progress.work(!0,t.index,e.exports)}catch(c){console.error(c),t.progress.work(!1,t.index,[])}}):(typeof l=="function"?e.exports=Reflect.apply(l,e,[]):e.exports=l,e.status=q.Defined,t.progress.work(!0,t.index,e.exports))};return n.amd=!0,n}resolvePath(e){try{if(e==="exports"||e==="module"||this.isNaturePath(e))return e;e=this.parserPath(e,!0);let t=this.getFileNamePostfix(e);t=t.toLowerCase();let s=this.createSearch(this.query);return e.indexOf("?")==-1?(t!=="js"&&t!=="css"&&(e+=".js"),s.length>0&&(e+=`?${s}`)):s.length>0&&(e+=`&${s}`),e}catch(t){throw console.error(`resolve path[${e}] fail`,t),t}}createSearch(e){let t="";if(e){for(let s in e){let n=`${e[s]}`;t+=`${encodeURIComponent(s)}=${encodeURIComponent(n)}&`}t.length>0&&(t=t.substring(0,t.length-1))}return t}getFileNamePostfix(e){let t=e.lastIndexOf("?");t==-1&&(t=e.length);let s=e.lastIndexOf(".",t);return s==-1?"":e.substring(s+1,t)}isNaturePath(e){if(!this.options.nature)return!1;if(typeof this.options.nature=="function")return this.options.nature(e);const t=this.options.nature;if(t&&Array.isArray(t))for(let s=0;s<t.length;s++){const n=t[s];if(e.indexOf(n)===0)return!0}return!1}parserPath(e,t){if(e.indexOf("http://")==0||e.indexOf("https://")==0||e.indexOf("file:///")==0)return e;if(e.indexOf("/")==0)return`${pt()}${e.slice(1)}`;if(e.indexOf("./")==0)return`${pt()}${e.slice(2)}`;if(e.indexOf("//")==0)return`${A().location.protocol}${e}`;if(t){let n=this.options.alias[e];if(!n){let i=e.indexOf("/");if(i==-1)n=e;else{let o=e.slice(0,i),a=this.options.paths[o];a?n=a+e.slice(i):n=e}}return this.parserPath(n,!1)}return`${pt()}${e}`}}function ir(r,e){let t=r.sheet,s=!1;if(e.isOldWebKit)t&&(s=!0);else if(t)try{t.cssRules&&(s=!0)}catch(n){n.name==="NS_ERROR_DOM_SECURITY_ERR"&&(s=!0)}setTimeout(()=>{e.time+=20,s?e.success():e.timeout>e.timeout?e.error():ir(r,e)},20)}class Pn{callback;values;status;size;lastIndex;constructor(e,t){this.size=e,this.callback=t,this.status=!0,this.values=[],this.lastIndex=-1}work(e,t,s){if(this.status=e,this.status===!0&&(this.lastIndex!==t&&this.size--,this.lastIndex=t,this.values[t]=s),this.size===0||this.status===!1)try{Reflect.apply(this.callback,this,[this.status,this.values])}catch(n){console.error(n.message,n)}}isOK(){return this.status}}class Fn{index;src;params;progress;constructor(e,t,s,n){this.index=e,this.src=t,this.params=s,this.progress=n}}const es=Symbol("fk"),ts=Symbol("fbk"),ss=Symbol("fepk");function Cn(r={}){const e=new bn(r),t=new Ct,s=new Nt,n=new nr,i={get router(){return e},get bus(){return t},get Bus(){return Ct},get EventProxy(){return Nt},get eventproxy(){return s},get EventChain(){return qe},get Require(){return nr},get require(){return n},get extend(){return E},get clone(){return Je},get isESModule(){return wt},install(o){o.provide(Xe,e),o.provide(es,i),o.provide(ts,t),o.provide(ss,s),o.component(Rn,st),o.component(Sn,Ds),Reflect.defineProperty(o.config.globalProperties,"$fox",{get(){return i}}),Reflect.defineProperty(o.config.globalProperties,"$router",{get(){return e}}),Reflect.defineProperty(o.config.globalProperties,"$bus",{get(){return t}}),Reflect.defineProperty(o.config.globalProperties,"$bus",{get(){return t}}),Reflect.defineProperty(o.config.globalProperties,"$eventProxy",{get(){return s}}),o.config.globalProperties.$fox_on=function(a,l,u=!1){s.on(a,l,u)},o.config.globalProperties.$fox_off=function(a,l){s.off(a,l)},o.config.globalProperties.$fox_once=function(a,l){s.once(a,l)},o.config.globalProperties.$fox_all=function(...a){let l=s;Reflect.apply(l.all,l,a)},o.config.globalProperties.$fox_trigger=function(a,...l){let u=s;Reflect.apply(u.trigger,u,[a,...l])},o.config.globalProperties.$fox_emit=function(a,...l){let u=s;Reflect.apply(u.trigger,u,[a,...l])},o.mixin({computed:{$route(){return Tt(this)}}}),e.init()}};return i}function rs(r){return r?r.$router:g.inject(Xe)}function An(r){return r||(r=g.getCurrentInstance()?.proxy??void 0),r?Tt(r):null}function En(r){return r?r.$fox:g.inject(es)}function $n(r){return r?r.$bus:g.inject(ts)}function _n(r){return r?r.$eventProxy:g.inject(ss)}function Kn(r){const e=rs(),t=(s,n,i)=>{try{Reflect.apply(r,{},[s,n])}catch(o){console.error(o)}i()};e.beforeEach(t),g.onUnmounted(()=>{e.removeBeforeEach(t)})}function jn(r){const e=rs(),t=(s,n,i)=>{try{Reflect.apply(r,{},[s,n])}catch(o){console.error(o)}i()};e.afterEach(t),g.onUnmounted(()=>{e.removeAfterEach(t)})}d.Bus=Ct,d.EventChain=qe,d.EventProxy=Nt,d.FoxBeforeEnter=ws,d.FoxBeforeLeave=Rs,d.FoxEnter=bs,d.FoxLeave=Ss,d.FoxLeaveEnd=Ge,d.OperationType=C,d.Route=x,d.RouterLink=Ds,d.RouterView=st,d.clone=Je,d.createFox=Cn,d.createMemoryHistory=Qs,d.createWebHashHistory=Xs,d.createWebHistory=pn,d.deleteContextValue=qr,d.extend=E,d.foxBusKey=ts,d.foxEventProxyKey=ss,d.foxKey=es,d.injectContextValue=jt,d.isArray=vt,d.isDate=ur,d.isESModule=wt,d.isEqual=xt,d.isFunction=S,d.isMap=lr,d.isNil=Ae,d.isObject=is,d.isPlainObject=os,d.isPromise=hr,d.isSet=ar,d.isString=fr,d.isSymbol=cr,d.onAfterRouteUpdate=jn,d.onBeforeRouteUpdate=Kn,d.onFoxActivated=Mr,d.onFoxInactivated=Ir,d.provideContextValue=jr,d.rawState=Ar,d.reactiveState=Pr,d.sessionKey=ie,d.shallowReactiveState=Fr,d.toBoolean=Rt,d.toNumber=pr,d.toTypeString=We,d.typeOf=St,d.useBus=$n,d.useEventProxy=_n,d.useFox=En,d.useRoute=An,d.useRouter=rs,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
1
+ (function(d,g){typeof exports=="object"&&typeof module<"u"?g(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],g):(d=typeof globalThis<"u"?globalThis:d||self,g(d.Fox={},d.Vue))})(this,(function(d,g){"use strict";const le=typeof window<"u",A=function(){return window},Ue=function(){return window.document};function or(r){let e=r,t=e.lastIndexOf("/");return t>0&&t<e.length-1?e=e.substring(0,t+1):t===0&&e.indexOf(".")!==-1?e="/":t===-1&&(e.indexOf(".")==-1?e=`/${e}/`:e="/"),e.indexOf("/")!==0&&(e=`/${e}`),e}function pt(){if(!le)return"/";let r=A().location,e=`${r.protocol}//${r.host}`;return e+=or(r.pathname),e}function Ve(r,e,t,s=!1){r.addEventListener?r.addEventListener(e,t,s):r.attachEvent?r.attachEvent(`on${e}`,t):r[`on${e}`]=t}function gt(r,e,t){r.removeEventListener?r.removeEventListener(e,t):r.detachEvent?r.detachEvent(`on${e}`,t):r[`on${e}`]=null}const ze=(r,e,t)=>{e=e??{bubbles:!1,cancelable:!1,detail:void 0};const s=document.createEvent("Events");let n=!0,i=!0;for(let a in e)a==="bubbles"?n=!!e[a]:a==="cancelable"?i=!!e[a]:s[a]=e[a];s.initEvent(r,n,i),(t??document).dispatchEvent(s)},vt=Array.isArray,lr=r=>We(r)==="[object Map]",ar=r=>We(r)==="[object Set]",ur=r=>r instanceof Date,S=r=>typeof r=="function",fr=r=>typeof r=="string",cr=r=>typeof r=="symbol",is=r=>r!==null&&typeof r=="object",hr=r=>is(r)&&S(r.then)&&S(r.catch),Ae=r=>r==null,yr=Object.prototype.toString,We=r=>yr.call(r),os=r=>We(r)==="[object Object]",dr=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol";function wt(r){return r.__esModule||dr&&r[Symbol.toStringTag]==="Module"}const mr=typeof Promise<"u"&&Promise.toString().indexOf("[native code]")!==-1;function E(...r){let e=r[0]!==void 0&&r[0]!==null?r[0]:{},t=1,s=r.length,n=!1;for(typeof e=="boolean"&&(n=e,e=r[t]??{},t++),typeof e!="object"&&(e={});t<s;t++)if(r[t]!==null&&r[t]!==void 0){let i=r[t];for(let o in i){let a=e[o],l=i[o];if(a!==l)if(n===!0&&l&&typeof l=="object"){let u;Array.isArray(l)?u=a&&Array.isArray(a)?a:[]:u=a&&typeof a=="object"?a:{},e[o]=E(n,u,l)}else l!==void 0&&(e[o]=l)}}return e}function Je(r,e,t=!1){if(!t)E(!0,r,e);else{if(typeof e!="object")return{};typeof r!="object"&&(r={});for(let s of Reflect.ownKeys(e)){let n=r[s],i=e[s];if(n!==i)if(typeof i=="object"){if(!Array.isArray(i)&&!os(i))continue;n=Je(n,i,t),r[s]=n}else{if(typeof i=="function")continue;r[s]=i}}}return r}class se{static seed=new Date().getTime();static get(){let e=++se.seed;return e>=Number.MAX_VALUE&&(se.seed=0),e}}const bt=mr?Promise.resolve():null;function Ee(r,...e){bt!==null?e&&e.length>0?bt.then(()=>{r(e)}):bt.then(r):e&&e.length>0?setTimeout(()=>{r(e)}):setTimeout(r)}function Rt(r){return r==null?!1:typeof r=="boolean"?r:typeof r=="string"?r.toLocaleLowerCase()==="true":!!r}function pr(r){return typeof r=="number"?r:Number(r)}const gr={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regExp","[object Object]":"object"};function St(r){let t=Object.prototype.toString.call(r);return r==null?String(r):gr[t]||"object"}function xt(r,e){if(r==e)return!0;if(r===void 0||e===void 0)return!1;let t=St(r),s=St(e);if(t!==s)return!1;if(t==="object"){let n=Object.keys(r),i=Object.keys(e);if(n.length!==i.length)return!1;for(let o=0;o<n.length;o++){let a=n[o],l=r[a],u=e[a];if(!xt(l,u))return!1}return!0}else if(t==="array"){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++){let i=r[n],o=e[n];if(!xt(i,o))return!1}return!0}return!1}const ls=r=>{const e={};for(let t of Reflect.ownKeys(r)){let s=r[t];s&&!Array.isArray(s)&&typeof s=="object"&&(s=ls(s)),typeof t=="symbol"?e[String(t)]=s:e[t]=s}return e},vr=/^Symbol\((.*)\)$/,as=r=>{const e={};for(let t of Reflect.ownKeys(r)){let s=r[t];s&&!Array.isArray(s)&&typeof s=="object"&&(s=as(s));const n=vr.exec(t);if(n&&n[1]){const i=Symbol.for(n[1]);e[i]=s}else e[t]=s}return e};function us(r,e){let t=null;return function(...s){t&&clearTimeout(t),t=setTimeout(()=>{t=null,Reflect.apply(r,null,[...s])},e)}}const fs=Symbol("idKey"),ae=Symbol("valueKey"),P=Symbol("childrenKey"),B=Symbol("growKey");class cs{[B]=!0;[fs];[ae]=g.ref();[P]=new Map;constructor(e){this[fs]=e}}class wr{get(e,t){if(t=="value")return e[ae].value;if(t==="grow")return e[B];let s=e[P].get(t);if(s)return $e(s);if(e[B])return s=Ft(t),s[B]=e[B],e[P].set(t,s),$e(s)}set(e,t,s){return t=="value"?(e[ae].value=s,!0):t==="grow"?(e[B]=Rt(s),!0):s==null?(e[P].delete(t),!0):(console.error(`illegal property:${t}`),!1)}deleteProperty(e,t){return t==="value"||t=="grow"?(console.error(`can not delete property:${String(t)}`),!1):(e[P].delete(t),!0)}}const Pt="__proxy__";function Ft(r){const e=new cs(r);return Reflect.set(e,Pt,new Proxy(e,new wr)),e}function $e(r){return Reflect.get(r,Pt)}let br=class{name="";persistPolicy="memory";storage;initFlag=!1;state={};constructor(e={},t){if(e.persistPolicy&&e.persistPolicy!=="memory"&&Ae(e.name))throw new Error("name can not be empty, where persistPolicy is not memory.");this.name=e.name??"",this.persistPolicy=e.persistPolicy??"memory",this.storage=e.storage,t&&typeof t=="object"&&Object.assign(this.state,t)}init(e){this.restore(e),this.initFlag=!0}getStorage(){if(!this.persistPolicy||this.persistPolicy==="memory")return null;let e=null;if(this.persistPolicy==="custom")e=this.storage;else if(le){const t=A();e=this.persistPolicy==="session"?t.sessionStorage:t.localStorage}return e}saveState(){if(!this.persistPolicy||this.persistPolicy==="memory")return;let e=this.getStorage();if(e===null||!this.state)return;const t=`_bus_${this.name}`,s=JSON.stringify(this.state??{});e.setItem(t,s)}removeState(){if(!this.persistPolicy||this.persistPolicy==="memory")return;let e=this.getStorage();if(e===null||!this.state)return;const t=`_bus_${this.name}`;e.removeItem(t)}restore(e){if(!this.persistPolicy||this.persistPolicy==="memory")return;let t=this.getStorage();if(t===null)return;const s=`_bus_${this.name}`,n=t.getItem(s);if(n){const i=JSON.parse(n);Object.assign(this.state,i),Reflect.ownKeys(this.state).forEach(a=>{if(typeof a!="string")return;const l=this.state[a],u=a.split(/\//g);u.push(l),Reflect.apply(e.put,e,u)})}}put(e){if(this.initFlag&&this.persistPolicy!=="memory")try{const t=e.length,s=e.slice(0,t-1).join("/"),n=e[t-1];this.state[s]=n,this.saveState()}catch(t){console.error(t)}}remove(e){if(this.initFlag&&this.persistPolicy!=="memory")try{const t=e.length,s=e.slice(0,t-1).join("/"),n={};Reflect.ownKeys(this.state).forEach(o=>{typeof o=="string"&&(o===s||o.startsWith(s)||(n[o]=this.state[o]))}),this.state=n,this.saveState()}catch(t){console.error(t)}}clear(){if(this.initFlag)try{this.state={},this.removeState()}catch(e){console.error(e)}}};class hs extends cs{_persistHandler;constructor(e={},t){super("__root__"),this._persistHandler=new br(e,t),this._persistHandler.init(this)}put(...e){let t=e.length;if(t<2)return console.error("参数至少包括一个(key, value)"),!1;let s=this;for(let n=0;n<t-1;n++){let i=e[n],o;s[P].has(i)?o=s[P].get(i):(o=Ft(i),s[P].set(i,o)),s=o}return s[ae].value=e[t-1],this._persistHandler.put(e),!0}get(...e){let t=e.length;if(t===0)return;let s=this;for(let n=0;n<t;n++){let i=e[n];if(s[P].has(i))s=s[P].get(i);else return}return s[ae].value}remove(...e){let t=e.length;if(t==0)return!1;let s=this;for(let i=0;i<t-1;i++){const o=e[i];if(s[P].has(o))s=s[P].get(o);else return!1}const n=e[t-1];return s[P].has(n)?(s[P].delete(n),this._persistHandler.remove(e),!0):!1}contains(...e){const t=e.length;if(t==0)return!1;let s=this;for(let i=0;i<t-1;i++){let o=e[i];if(s[P].has(o))s=s[P].get(o);else return!1}const n=e[t-1];return s[P].has(n)}clear(){this[P].clear(),this._persistHandler.clear()}}const Rr=["put","get","contains","remove","clear","_persistHandler"];function ys(r){return Rr.includes(r)}class Sr{get(e,t){if(t=="value")return e[ae].value;if(t==="grow")return e[B];if(t===P)return e[P];if(typeof t=="string"&&ys(t))return e[t];const s=String(t);let n=e[P].get(s);if(n)return $e(n);if(e[B])return n=Ft(s),n[B]=e[B],e[P].set(s,n),$e(n)}set(e,t,s){return t=="value"?(e[ae].value=s,!0):t==="grow"?(e[B]=Rt(s),!0):ys(t)?!1:s==null?(e[P].delete(t),!0):(console.error(`illegal property:${t}`),!1)}deleteProperty(e,t){return t==="value"||t=="grow"?(console.error(`can not delete property:${String(t)}`),!1):(e[P].delete(t),!0)}}function xr(r,e){const t=new hs(r,e),s=new Sr,n=new Proxy(t,s);return Reflect.set(t,Pt,n),t}const Ct=new Proxy(hs,{construct(r,e){const t=e[0]??{},s=e[1],n=xr(t,s);return $e(n)}}),At=r=>!r||typeof r!="object"?!0:Reflect.ownKeys(r).length===0;class ds{name="";persistPolicy="memory";storage;constructor(e={}){if(e.persistPolicy&&e.persistPolicy!=="memory"&&Ae(e.name))throw new Error("name can not be empty, where persistPolicy is not memory.");this.name=e.name??"",this.persistPolicy=e.persistPolicy??"memory",this.storage=e.storage}getStorage(){if(!this.persistPolicy||this.persistPolicy==="memory")return null;let e=null;if(this.persistPolicy==="custom")e=this.storage;else if(le){const t=A();e=this.persistPolicy==="session"?t.sessionStorage:t.localStorage}return e}saveState(e){if(!this.persistPolicy||this.persistPolicy==="memory")return;let t=this.getStorage();if(t===null||At(e))return;const s=`_state_${this.name}`,n=JSON.stringify(e??{});t.setItem(s,n)}removeState(){if(!this.persistPolicy||this.persistPolicy==="memory")return;let e=this.getStorage();if(e===null)return;const t=`_state_${this.name}`;e.removeItem(t)}restore(e){if(!this.persistPolicy||this.persistPolicy==="memory")return;let t=this.getStorage();if(t===null)return;const s=`_state_${this.name}`,n=t.getItem(s);if(n){const i=JSON.parse(n);Object.assign(e,i)}}}function ms(r,e,t){const s=new ds(t);s.restore(e);const n=l=>{const u=g.toRaw(l),f={};for(let c in u){const h=u[c];Ae(h)||(f[c]=h)}At(f)?s.removeState():s.saveState(f)};let i=null;if(t&&t.debounce===!1)i=n;else{const l=t&&t.debounceDelay?t.debounceDelay:250;i=us(n,l)}const o=r?g.shallowReactive(e):g.reactive(e);return g.effectScope(!0).run(()=>{g.watch(o,l=>{const u=g.toRaw(l);i(u)})}),o}function Pr(r,e){return ms(!1,r,e)}function Fr(r,e){return ms(!0,r,e)}function Cr(r,e){const t=new ds(e);t.restore(r);const s=a=>{const l=g.toRaw(a),u={};for(let f in l){const c=l[f];Ae(c)||(u[f]=c)}At(u)?t.removeState():t.saveState(u)};let n=null;if(e&&e.debounce===!1)n=s;else{const a=e&&e.debounceDelay?e.debounceDelay:250;n=us(s,a)}const i={get(a,l){return a[l]},set(a,l,u){return a[l]=u,n(a),!0}};return new Proxy(r,i)}function Ar(r,e){return Cr(r,e)}const J="default",ps=Symbol("sync"),L=Symbol("normalizeRoute");function gs(r){let e=!1;return function(...t){if(!e)return e=!0,Reflect.apply(r,{},t)}}function Er(r){let e=r.src;return new Promise((t,s)=>{const n=gs(a=>{wt(a)&&(a=a.default),r.component=a,console.debug("success load async module"),t()}),i=gs(a=>{console.debug("reject load async module"),s(a)});let o;try{o=e(n,i)}catch(a){i(a)}if(o)if(typeof o.then=="function")o.then(n,i);else{const a=o.component;a&&typeof a.then=="function"&&a.then(n,i)}})}class $r{name;level;rootName;rootIndex=0;constructor(e,t,s,n){this.name=e,this.level=t,this.rootName=s,this.rootIndex=n}}class pe{to;routeModel;from;data={};constructor(e,t){this.to=e,this.from=t}static from(e){const t=new pe(e.to,e.from),s=e.data??{};return E(!0,t.data,s),t}static clear(e){for(let t in e)e[t]=void 0}}class x{path;get fullPath(){const e=this.path??`/${this.name}`;return`${this.root??J}!${e}`}alias;name;root;params;query;traceless;template;matched;meta;success;error;destroy;opsType;updateType;historyUpdatePolicy;viewTagAttrs;index;active;slot;static clone(e,t){let s=new x;return Je(s,e,t),s}static isSame(e,t){return!e||!t?!1:e===t?!0:e.root!==t.root||e.index!==t.index?!1:e.path&&t.path&&e.path===t.path?!0:!!(e.name&&t.name&&e.name===t.name)}static isSamePathForRoute(e,t){return!e||!t?!1:e===t||e.path&&t.path&&e.path===t.path?!0:!!(e.name&&t.name&&e.name===t.name)}static from(e){let t=new x;if(e==null)return t;let s=t;for(let i in e){let o=e[i];s[i]=o}const n=Object.getOwnPropertySymbols(e);if(Array.isArray(n)&&n.length>0)for(let i of n)s[i]=e[i];return t}}class _r{id;name;props;src;component;constructor(e,t,s){this.id=se.get(),this.name=e,this.src=t,typeof t!="function"&&(this.component=t),this.props=s}get isResolved(){return this.component!==void 0}resolve(){return Er(this)}}class vs{models=[]}class Et{path;match;redirect;name;meta;matchedRoutes;layers=[]}var C=(r=>(r[r.Push=0]="Push",r[r.Replace=1]="Replace",r[r.Put=2]="Put",r[r.Append=3]="Append",r[r.Open=4]="Open",r))(C||{});const ws="FoxBeforeEnter",bs="FoxEnter",Rs="FoxLeave",Ss="FoxLeave",Ge="FoxLeaveEnd",Xe=Symbol("rk"),$t=Symbol("vd"),xs=Symbol("rv"),_t=Symbol("rvi"),Ps=Symbol("pv"),Kt=Symbol("pvi"),_e=Symbol("registerKey");class Kr{[_e]=new Map;constructor(){}set(e,t){this[_e].set(e,t)}get(e){return this[_e].get(e)}has(e){return this[_e].has(e)}delete(e){return this[_e].delete(e)}}const ue=Symbol("lc");function Qe(r,e=!1){let t=r;if(Reflect.has(t,ue))return t[ue];if(e){const s=new Kr;return t[ue]=s,s}return null}function Fs(r,e=!1){let t=null,s=r;for(;s&&!(Reflect.has(s,ue)&&(t=s[ue],t));)s=s.$parent;if(!t&&e){const n=r;n&&n.$parent&&(t=Qe(n.$parent,e))}return t}function jt(r,e){let t=r;for(;t;){if(Reflect.has(t,ue)){const s=t[ue];if(s.has(e))return s.get(e)}t=t.$parent}return null}function jr(r,e,t){Fs(r,!0)?.set(e,t)}function qr(r,e){Fs(r,!0)?.delete(e)}function Cs(r){if(Array.isArray(r.children)&&r.children.length>0){let e=r.children[0];if(e!=null&&e.component!=null&&e.component.proxy!=null)return Qe(e.component.proxy,!1)}return null}const Ye=Symbol("hooksKey");function Tr(r){let e=r.get(Ye);e||(e=[],r.set(Ye,e))}function As(r,e){let t=r.get(Ye);if(t!=null)for(let s=t.length-1;s>=0;s--){let n=t[s];if(n.type===e)try{Reflect.apply(n.hook,n.target,[])}catch(i){console.error(i.message,i)}}}var qt=(r=>(r.DEACTIVATED="da",r.ACTIVATED="a",r))(qt||{});class kr{type;hook;target;constructor(e,t,s){this.target=s,this.hook=t,this.type=e}}function Lr(r,e,t,s){let n=new kr(e,t,s);return r.push(n),!0}function Or(r,e,t,s){let n=-1;for(let i=0;i<r.length;i++){let o=r[i];if(o.type===e&&o.hook===t&&o.target===s){n=i;break}}return n!=-1?(r.splice(n,1),!0):!1}function Es(r){return(e,t)=>{let s;if(t)s=t;else{const i=g.getCurrentInstance();if(i==null||i.proxy==null){console.error("can not get current instance or proxy");return}s=i.proxy}const n=jt(s,Ye);if(n==null){console.warn("hooks context not found");return}g.onUnmounted(()=>{Or(n,r,e,s)}),Lr(n,r,e,s)}}const Mr=Es("a"),Ir=Es("da"),$s=Symbol("routeKey");function _s(r,e){r.set($s,e)}function Tt(r){let e=jt(r,$s);return typeof e=="function"?e():e??null}function Ks(r,e=!1){let t=null;return e?t=r.showFromClass??r.enterFromClass:t=r.enterFromClass,t||(t=r.transitionName,t?e?`${t}-show-from`:`${t}-enter-from`:null)}function js(r,e=!1){let t=null;return e?t=r.showActiveClass??r.enterActiveClass:t=r.enterActiveClass,t||(t=r.transitionName,t?e?`${t}-show-active`:`${t}-enter-active`:null)}function Nr(r,e=!1){let t=null;return e?t=r.showToClass??r.enterToClass:t=r.enterToClass,t||(t=r.transitionName,t?e?`${t}-show-to`:`${t}-enter-to`:null)}function qs(r,e=!1){let t=null;return e?t=r.hideFromClass??r.leaveFromClass:t=r.leaveFromClass,t||(t=r.transitionName,t?e?`${t}-hide-from`:`${t}-leave-from`:null)}function Ts(r,e=!1){let t=null;return e?t=r.hideActiveClass??r.leaveActiveClass:t=r.leaveActiveClass,t||(t=r.transitionName,t?e?`${t}-hide-active`:`${t}-leave-active`:null)}function Hr(r,e=!1){let t=null;return e?t=r.hideToClass??r.leaveToClass:t=r.leaveToClass,t||(t=r.transitionName,t?e?`${t}-hide-to`:`${t}-leave-to`:null)}function Dr(r,e=!1){let t=null;return e?t=r.beforeShow??r.beforeEnter:t=r.beforeEnter,t}function Br(r,e=!1){let t=null;return e?t=r.show??r.enter:t=r.enter,t}function Ur(r,e=!1){let t=null;return e?t=r.afterShow??r.afterEnter:t=r.afterEnter,t}function Vr(r,e=!1){let t=null;return e?t=r.showCancelled??r.enterCancelled:t=r.enterCancelled,t}function zr(r,e=!1){let t=null;return e?t=r.beforeHide??r.beforeLeave:t=r.beforeLeave,t}function Wr(r,e=!1){let t=null;return e?t=r.hide??r.leave:t=r.leave,t}function Jr(r,e=!1){let t=null;return e?t=r.afterHide??r.afterLeave:t=r.afterLeave,t}function Gr(r,e=!1){let t=null;return e?t=r.hideCancelled??r.leaveCancelled:t=r.leaveCancelled,t}function kt(r){let e,t=r.transitionDuration;return typeof t=="object"?e={enter:t.enter??-1,leave:t.leave??-1,show:t.show??-1,hide:t.hide??-1}:(typeof t=="string"&&(t=t.length==0?-1:Number(t)),e={enter:t,leave:t,show:t,hide:t}),e}function ge(r,e){r.classList.contains(e)||r.classList.add(e)}function ve(r,e){r.classList.remove(e)}const Xr=le&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout;function Ze(r){Xr(r)}function K(r,e,t){S(e)&&(r==null&&(r={}),Reflect.apply(e,r,t))}function ks(r,e,t,s=-1,n,i,o){let a=[];const l=()=>{for(let u of a)gt(e,u.type,u.listener);a=[]};if(S(i)){if(n!==void 0&&n>=0){setTimeout(()=>{Reflect.apply(i,r,[e,t,s])},n);return}const u=["animationend","transitionend",Ge],f=c=>{const h=c.target||c.srcElement,y=c.currentTarget;h===y&&(l(),Reflect.apply(i,r,[e,t,s]))};u.forEach(c=>{Ve(e,c,f),a.push({type:c,listener:f})})}if(S(o)){const u="animationcancel",f=c=>{const h=c.target||c.srcElement,y=c.currentTarget;h===y&&(l(),Reflect.apply(o,r,[e,t,s]))};Ve(e,u,f),a.push({type:u,listener:f})}}function et(r){return!le||r===null?!1:r.opsType===C.Append||r.opsType===C.Open}function Ls(r,e,t,s={},n,i=-1){if(e||et(n)){const o=Ks(s,e);o&&ge(t,o);const a=js(s,e);a&&ge(t,a);const l=Dr(s,e);K(r,l,[t,e,n,i])}}function Os(r,e,t,s={},n,i,o,a){if(!et(i)&&!e){S(a)&&a(r,a,[t]);return}const l=Ks(s,e),u=js(s,e),f=Nr(s,e),c=Br(s,e),h=Ur(s,e),y=Vr(s,e);if(!l&&!u&&!f&&!c){S(a)&&a(r,a,[t]);return}Ze(()=>{ks(r,t,i,o,n,()=>{u&&ve(t,u),f&&ve(t,f),S(h)&&K(r,h,[t,e,i,o]),S(a)&&a(r,a,[t])},()=>{S(y)&&K(r,y,[t,e,i,o])}),l&&ve(t,l),f&&ge(t,f),S(c)&&K(r,c,[t,e,i,o])})}function Ms(r,e,t,s={},n,i=-1){if(e||et(n)){const o=qs(s,e);o&&ge(t,o);const a=Ts(s,e);a&&ge(t,a);const l=zr(s,e);K(r,l,[t,e,n,i])}}function Is(r,e,t,s={},n,i,o,a,l){if(!et(o)&&!e){S(l)&&K(r,l,[t]),!e&&S(i)&&i();return}const u=qs(s,e),f=Ts(s,e),c=Hr(s,e),h=Wr(s,e),y=Jr(s,e),m=Gr(s,e);if(!u&&!f&&!c&&!h){S(l)&&K(r,l,[t]),!e&&S(i)&&i();return}Ze(()=>{ks(r,t,o,a,n,()=>{try{f&&ve(t,f),c&&ve(t,c),S(y)&&K(r,y,[t,e,o,a]),S(l)&&K(r,l,[t])}finally{!e&&S(i)&&i()}},()=>{try{S(m)&&K(r,m,[t,e,o,a]),S(l)&&K(r,l,[t])}finally{!e&&S(i)&&i()}}),u&&ve(t,u),c&&ge(t,c),S(h)&&K(r,h,[t,e,o,a])})}function Lt(r,e,t={},s,n=-1){const i=t.mode??"default",o=kt(t);return{mode:i,persisted:!1,beforeEnter:l=>{Ls(r,!1,l,t,s,n)},enter:l=>{Os(r,!1,l,t,o.enter,s,n)},leave:(l,u)=>{Ms(r,!1,l,t,s,n),Is(r,!1,l,t,o.leave,u,s,n,()=>{e.transition=null,e=null})},clone:l=>Lt(r,e,t,s,n)}}function Ns(r){return r.el}function Qr(r,e,t={},s,n,i,o){if(i===!0){const a=Ns(e);if(a==null)return;const l=kt(t);Ls(r,!0,a,t,s,n),Os(r,!0,a,t,l.show,s,n,u=>{S(o)&&K(r,o,[u])})}else S(o)&&K(r,o,[])}function Yr(r,e,t={},s,n,i,o){if(i===!0){const a=Ns(e);if(a==null)return;const l=kt(t);Ms(r,!0,a,t,s,n),Is(r,!0,a,t,l.hide,null,s,n,u=>{S(o)&&K(r,o,[u])})}else S(o)&&K(r,o,[])}function Zr(r,e={}){Ze(()=>{for(let t=0;t<r.length;t++)Reflect.apply(r[t],e,[])})}function Hs(r,e,t={},s,n=-1){return{mode:t.mode??"default",persisted:!1,beforeEnter:a=>{ze(ws,{},a)},enter:a=>{ze(bs,{},a)},leave:(a,l)=>{ze(Rs,{},a),Ze(()=>{const u=f=>{const c=f.target||f.srcElement,h=f.currentTarget;c===h&&(gt(a,Ge,u),l&&Reflect.apply(l,r,[]),e.transition=null,e=null)};Ve(a,Ge,u),ze(Ss,{},a)})},clone:a=>Hs(r,e,t,s,n)}}const U=Symbol("rootKey"),V=Symbol("rootNodeKey"),fe=Symbol("parentNodeKey"),tt=Symbol("nameKey");class re{instance=null;model;route;active=!0;index=0;constructor(e,t,s=0,n=!0){this.route=e,this.model=t,this.index=s,this.active=n}}class Ke{_slots;get slots(){return this._slots==null&&(this._slots=g.shallowRef([])),this._slots}get empty(){return this._slots==null||this._slots.value.length==0}[tt];[U];[V]=null;[fe]=null;get name(){return this[tt]}constructor(e,t,s){this[tt]=e,this[U]=t,s&&(this[V]=s)}}class I{view;index;level;constructor(e,t,s){this.view=e,this.index=t,this.level=s}static include(e,t){for(let s=0;s<e.length;s++){let n=e[s];if(n.view===t.view&&(t.index==-1||n.index===t.index)&&n.level===t.level)return!0}return!1}}class Ot{views=[]}class en{layers=[]}function ne(r,e,t){return typeof r=="function"?Reflect.apply(r,{},[e,t]):r}function Mt(r,e){if(!r)return null;const t=r(e);return t.length===1?t[0]:t}function we(r,e){return typeof e=="function"?e(r):r}class tn{node;state;constructor(e,t){this.node=e,this.state=t}}const st=g.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,required:!1,default:"default"},modelSlot:{type:[Object],required:!1},multi:{type:Boolean,required:!1,default:!1},tag:{type:[String,Object,Function],required:!1,default:"div"},viewTag:{type:[String,Object,Function],required:!1,default:"div"},viewTagProps:{type:[Object,Function],required:!1,default(){return{}}},viewClass:{type:[String,Function],required:!1},viewActiveClass:{type:[String,Function],required:!1},viewInactiveClass:{type:[String,Function],required:!1},transition:{type:[Boolean,String,Function],required:!1,default:!1},transitionName:{type:String,required:!1},transitionDuration:{type:[String,Number,Object],required:!1},enterFromClass:{type:String,required:!1},enterActiveClass:{type:String,required:!1},enterToClass:{type:String,required:!1},leaveFromClass:{type:String,required:!1},leaveActiveClass:{type:String,required:!1},leaveToClass:{type:String,required:!1},showFromClass:{type:String,required:!1},showActiveClass:{type:String,required:!1},showToClass:{type:String,required:!1},hideFromClass:{type:String,required:!1},hideActiveClass:{type:String,required:!1},hideToClass:{type:String,required:!1},beforeEnter:{type:Function,required:!1},enter:{type:Function,required:!1},afterEnter:{type:Function,required:!1},enterCancelled:{type:Function,required:!1},beforeLeave:{type:Function,required:!1},leave:{type:Function,required:!1},afterLeave:{type:Function,required:!1},leaveCancelled:{type:Function,required:!1},beforeShow:{type:Function,required:!1},show:{type:Function,required:!1},afterShow:{type:Function,required:!1},showCancelled:{type:Function,required:!1},beforeHide:{type:Function,required:!1},hide:{type:Function,required:!1},afterHide:{type:Function,required:!1},hideCancelled:{type:Function,required:!1}},setup(r,e){const t=g.getCurrentInstance();if(t===null||t.proxy===null){console.error("instance or instance.proxy not exist");return}const s=r.multi===!0,n=g.inject(Xe,null),i=g.inject($t,0),o=g.inject(xs,null),a=g.inject(_t,-1);let l=null,u=r.modelSlot;if(u){if(g.provide($t,i+1),g.provide(_t,u.index),g.provide(Kt,u.index),!u.route){console.warn("child view render error, route not exist");return}const h=Qe(t.proxy,!0);Tr(h),_s(h,()=>u?.route??null)}else{if(n==null){console.error("router is not been injected");return}const c=r.name,h=g.inject(Ps,null),y=g.inject(Kt,0);if(l=n[ps](c,i,o,a,h,y),l===null)return;g.provide(Ps,l);const m=l[U]===!0;if(m&&g.provide(xs,l),!s&&(g.provide(_t,-1),g.provide($t,i+1),g.provide(Kt,-1),m)){const v=Qe(t.proxy,!0);_s(v,()=>{const w=l.slots.value;return w.length>0?w[0].route:null})}}const f={value:new Map};return g.onUnmounted(()=>{if(f.value&&f.value.clear(),u){const c=u;c.route=null,c.model=null,c.instance=null,u=void 0}}),()=>{if(s){const c=new Map,h=[],y=l?.slots.value,m=[];for(let b=0;b<y.length;b++){const p=y[b],_=`${r.name}_${p.index}`,Q=ne(r.transition,p.route,b)??!0,Z={modelSlot:p};let Fe;e.slots.default?Fe=g.h(st,Z,{default:e.slots.default}):Fe=g.h(st,Z);const T={},k=ne(r.viewClass,p.route,b);typeof k=="string"&&k.length>0&&(T[k]=!0);const me=ne(r.viewActiveClass,p.route,b),ee=ne(r.viewInactiveClass,p.route,b),M=f.value.get(_);if(typeof me=="string"&&me.length>0&&(T[me]=p.active),typeof ee=="string"&&ee.length>0&&(T[ee]=!p.active),M&&p.active!==M.state){const D=M.node;p.active?m.unshift(()=>{const ns=()=>{let Be=Cs(D);Be!=null&&As(Be,qt.ACTIVATED)};Qr(t,D,r,p.route,b,Q,ns)}):m.push(()=>{const ns=()=>{const Be=Cs(D);Be!=null&&As(Be,qt.DEACTIVATED)};Yr(t,D,r,p.route,b,Q,ns)})}const Y={class:T,key:_},W=ne(r.viewTagProps,p.route,b);if(W!==null&&typeof W=="object"){const D=we(W,n?.propsFilter);E(!0,Y,D)}if(p.route?.viewTagAttrs&&typeof p.route?.viewTagAttrs=="object"){const D=we(p.route.viewTagAttrs,n?.propsFilter);E(!0,Y,D)}const te=ne(r.viewTag,p.route,b),Ce=g.h(te,Y,{default:()=>[Fe]});if(c.set(_,new tn(Ce,p.active)),f.value.delete(_),Q===!0){const D=Lt(t,Ce,r,p.route,b);Ce.transition=D}else if(Q==="custom"){const D=Hs(t,Ce,r,p.route,b);Ce.transition=D}h.push(Ce)}f.value=c,Zr(m,t);const v=ne(r.tag,null,-1),w={};return Object.assign(w,e.attrs),g.h(v,w,{default:()=>h})}else if(u!=null){const c=u.model,h={};if(c.props){if(typeof c.props=="object"){const m=we(c.props,n?.propsFilter);E(!1,h,m)}else if(c.props===!0&&typeof u.route?.params=="object"){const m=we(u.route.params,n?.propsFilter);E(!1,h,m)}}const y=g.h(c.component,h);return Mt(e.slots.default,{Component:y,route:u.route})??y}else{const c=l.slots.value;if(c.length>0){const h=c[0],y=h.route??(t.proxy&&Tt(t.proxy))??null,m=h.model,v={};if(m.props){if(typeof m.props=="object"){const p=we(m.props,n?.propsFilter);E(!1,v,p)}else if(m.props===!0&&typeof y?.params=="object"){const p=we(y.params,n?.propsFilter);E(!1,v,p)}}const w=g.h(m.component,v);if(ne(r.transition,y,-1)??!0){const p=Lt(t,w,r,y,-1);w.transition=p}return Mt(e.slots.default,{Component:w,route:y})??w}else return Mt(e.slots.fallback,{})}}}});function sn(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!=null&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const e=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return r.preventDefault&&r.preventDefault(),!0}}function rn(r,e){return r==null||e==null?!1:!!(r===e||r.path&&r.path===e.path||r.name&&r.name===e.name)}function nn(r,e){return r==null||e==null?!1:!!(r.path&&e.path&&e.path.startsWith(r.path)||r.name&&r.name==e.name)}function be(r,e){return typeof r=="function"?Reflect.apply(r,{},[e]):r}let Ds=g.defineComponent({name:"RouterLink",inheritAttrs:!1,props:{tag:{type:[String,Object,Function],required:!1,default:"a"},to:{type:[String,Object,Function],required:!0},root:{type:String},activeClass:{type:[String,Function],required:!1,default:"fox-router-link-active"},exact:{type:[String,Boolean,Function],required:!1},exactActiveClass:{type:[String,Function],required:!1,default:"fox-router-link-exact-active"},event:{type:[String,Function],required:!1,default:"onClick"}},setup(r,e){const t=g.inject(Xe,null);return()=>{let s=be(r.to,null),n=be(r.tag,s);if(n==null){console.warn("can not resolve link tag");return}let i=null,o=null;t!==null&&(i=t[L](s),r.root&&(i.root=r.root),o=t.currentRoute.value);let a={},l=be(r.activeClass,i);if(typeof l=="string"&&l.length>0&&(a[l]=nn(i,o)),be(r.exact,i)===!0){let h=be(r.exactActiveClass,i);typeof h=="string"&&h.length>0&&(a[h]=rn(i,o))}let f={class:a};(n==="a"||n==="A")&&(f.href=i?.path??i?.name??"#"),E(!0,f,e.attrs);let c=be(r.event,i);if(typeof c=="string"){const h=y=>{if(t==null){console.warn("router is not been injected");return}if(i==null){console.warn("route is not been resolved");return}sn(y)&&t.to(i)};f[c]=h}return g.h(n,f,e.slots)}}});const N=Symbol("chainKey"),O=Symbol("cursorKey"),It=Symbol("$persistentModeKey"),$=Symbol("statusKey"),G=Symbol("argsKey"),rt=Symbol("exArgsKey"),Re=Symbol("successFnsKey"),je=Symbol("errorFnsKey"),ie=Symbol("sessionKey"),X=Symbol("_go");class qe{[N]=[];[O]=0;[It]=!1;[$]="Free";[G]=[];[rt]=[];[Re]=[];[je]=[];[ie];get session(){return this[ie]}constructor(e,t=!1){this[ie]=e,this[It]=t}[X](e,...t){let s=this[$];if(this[$]="Busy",this[O]+=e,this[O]<0&&(this[O]=0),this[G]=t,s==="Exception"||s==="Reject"){let a=[{session:this[ie]},...this[rt]];for(;this[je].length>0;)try{let l=this[je].shift();typeof l=="function"&&Ee(()=>{Reflect.apply(l,{},a)})}catch(l){console.error(l.message,l)}return this[$]=s,this[N]=[],this[O]=0,this}else if(s==="Finished"||this[O]>=this[N].length){let a=[{session:this[ie]},...this[G]];for(;this[Re].length>0;){let l=this[Re].shift();typeof l=="function"&&Ee(()=>{Reflect.apply(l,{},a)})}return this[$]="Free",this}if(this[O]>=this[N].length)return this[$]="Free",this;let n=this[N][this[O]];this[It]||(this[N].splice(0,this[O]+1),this[O]=-1);let i=this[O]+1;try{let o=!1,a={go:(l,...u)=>{o||(o=!0,Reflect.apply(this[X],this,[l,...u]))},resolve:(...l)=>{o||(o=!0,Reflect.apply(this[X],this,[1,...l]))},reject:(...l)=>{o||(o=!0,Reflect.apply(this.reject,this,[...l]))},insert:l=>{o||(this[N].splice(i,0,l),i++)},session:this[ie]};Ee(()=>{Reflect.apply(n,{},[a,...this[G]])})}catch(o){this.throw(o)}return this}go(e,...t){return Reflect.apply(this[X],this,[e,...t])}finish(...e){return this[$]="Finished",this[G]=e,Reflect.apply(this[X],this,[0])}reject(...e){return this[$]="Reject",this[rt]=e,Reflect.apply(this[X],this,[0])}throw(...e){return this[$]="Exception",this[rt]=e,Reflect.apply(this[X],this,[0])}reset(...e){this[$]="Busy",this[G]=e,this[N]=[],this[O]=0;let s=[{session:this[ie]},...this[G]];for(;this[Re].length>0;){let n=this[Re].shift();Ee(()=>{Reflect.apply(n,this,s)})}return this[$]="Free",this}post(e){return this[$]==="Reject"||this[$]==="Exception"?this:(Array.isArray(e)?this[N]=[...this[N],...e]:this[N].push(e),this[$]==="Busy"?this:(Reflect.apply(this[X],this,[0,...this[G]]),this))}wait(e,t){return e&&typeof e=="function"&&this[Re].push(e),t&&typeof t=="function"&&this[je].push(t),this[$]==="Busy"?this:(Reflect.apply(this[X],this,[0,...this[G]]),this)}exception(e){return e&&typeof e=="function"&&this[je].push(e),this[$]==="Busy"?this:Reflect.apply(this[X],this,[0,...this[G]])}isFinish(){return this[$]=="Reject"||this[$]=="Free"&&this[O]>=this[N].length}}const Se=Symbol("registerKey");class on{policy;callback;constructor(e,t){this.callback=e,this.policy=t}}class Nt{[Se]=new Map;constructor(){}on(e,t,s=!1){let n=this[Se].get(e);n||(n=new Array,this[Se].set(e,n));let i=s===!0?1:0,o=new on(t,i);return n.push(o),this}off(e,t){if(!t)return this[Se].delete(e),this;let s=this[Se].get(e);if(s){for(let n=0;n<s.length;n++)if(s[n].callback===t){s.splice(n,1);break}}return this}bind(e,t,s=!1){return this.on(e,t,s)}unbind(e,t){return this.off(e,t)}once(e,t){return this.on(e,t,!0)}all(...e){let t=e.length;if(t<1)return this;let s=e[t-1];if(typeof s!="function")return console.error("callback can not benn empty"),this;let n=t-1,i=new Array(n),o=[].splice.call(e,0,n);for(let a=0;a<o.length;a++)this.once(o[a],l=>{i[a]=l,n-=1,n==0&&Reflect.apply(s,{},i)});return this}emit(e,...t){let s=this[Se].get(e);if(!s)return this;for(let n=0;n<s.length;){let i=s[n];if(i.policy==1?s.splice(n,1):n++,typeof i.callback=="function")try{Ee(()=>{Reflect.apply(i.callback,{},t)})}catch(o){console.error(o.message,o)}}return this}trigger(e,...t){return Reflect.apply(this.emit,this,[e,...t])}}var Te=(r=>(r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r))(Te||{});const ln={type:0,value:""},an=/[a-zA-Z0-9_]/;function un(r){if(!r)return[[]];if(r==="/")return[[ln]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function e(y){throw new Error(`ERR (${t})/"${u}": ${y}`)}let t=0,s=t;const n=[];let i;function o(){i&&n.push(i),i=[]}let a=0,l,u="",f="";function c(){u&&(t===0?i.push({type:0,value:u}):t===1||t===2||t===3?(i.length>1&&(l==="*"||l==="+")&&e(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):e("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;a<r.length;){if(l=r[a++],l==="\\"&&t!==2){s=t,t=4;continue}switch(t){case 0:l==="/"?(u&&c(),o()):l===":"?(c(),t=1):h();break;case 4:h(),t=s;break;case 1:l==="("?t=2:an.test(l)?h():(c(),t=0,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case 2:l===")"?f[f.length-1]=="\\"?f=f.slice(0,-1)+l:t=3:f+=l;break;case 3:c(),t=0,l!=="*"&&l!=="?"&&l!=="+"&&a--,f="";break;default:e("Unknown state");break}}return t===2&&e(`Unfinished custom RegExp for param "${u}"`),c(),o(),n}const Bs="[^/]+?",fn={sensitive:!1,strict:!1,start:!0,end:!0},cn=/[.+*?^${}()[\]/\\]/g;function hn(r,e){const t=E(!0,{},fn,e),s=[];let n=t.start?"^":"";const i=[];for(const u of r){const f=u.length?[]:[90];t.strict&&!u.length&&(n+="/");for(let c=0;c<u.length;c++){const h=u[c];let y=40+(t.sensitive?.25:0);if(h.type===Te.Static)c||(n+="/"),n+=h.value.replace(cn,"\\$&"),y+=40;else if(h.type===Te.Param){const{value:m,repeatable:v,optional:w,regexp:b}=h;i.push({name:m,repeatable:v,optional:w});const p=b||Bs;if(p!==Bs){y+=10;try{new RegExp(`(${p})`)}catch(Q){throw new Error(`Invalid custom RegExp for param "${m}" (${p}): `+Q.message)}}let _=v?`((?:${p})(?:/(?:${p}))*)`:`(${p})`;c||(_=w&&u.length<2?`(?:/${_})`:"/"+_),w&&(_+="?"),n+=_,y+=20,w&&(y+=-8),v&&(y+=-20),p===".*"&&(y+=-50)}f.push(y)}s.push(f)}if(t.strict&&t.end){const u=s.length-1;s[u][s[u].length-1]+=.7000000000000001}t.strict||(n+="/?"),t.end?n+="$":t.strict&&!n.endsWith("/")&&(n+="(?:/|$)");const o=new RegExp(n,t.sensitive?"":"i");function a(u){const f=u.match(o),c={};if(!f)return null;for(let h=1;h<f.length;h++){const y=f[h]||"",m=i[h-1];c[m.name]=y&&m.repeatable?y.split("/"):y}return c}function l(u){let f="",c=!1;for(const h of r){(!c||!f.endsWith("/"))&&(f+="/"),c=!1;for(const y of h)if(y.type===Te.Static)f+=y.value;else if(y.type===Te.Param){const{value:m,repeatable:v,optional:w}=y,b=m in u?u[m]:"";if(vt(b)&&!v)throw new Error(`Provided param "${m}" is an array but it is not repeatable (* or + modifiers)`);const p=vt(b)?b.join("/"):b;if(!p)if(w)h.length<2&&(f.endsWith("/")?f=f.slice(0,-1):c=!0);else throw new Error(`Missing required param "${m}"`);f+=p}}return f||"/"}return{re:o,score:s,keys:i,parse:a,stringify:l}}function yn(r,e){const t=hn(un(r),e);return function(s){const n=t.parse(s);return n?{path:s,params:n}:null}}var nt=(r=>(r[r.Part=0]="Part",r[r.All=1]="All",r))(nt||{});class dn{time;route}class mn{forbidTime=300;submitRecorder=new dn;isSameRoute(e,t){return e==null||t==null?!1:e.name===t.name&&e.path===t.path&&e.root===t.root}acquire(e){let t=new Date().getTime();if(this.isSameRoute(e,this.submitRecorder.route)&&this.submitRecorder.time&&t-this.submitRecorder.time<=this.forbidTime){this.submitRecorder.time=t;return}return this.submitRecorder.route=e,this.submitRecorder.time=t,t}release(e){this.submitRecorder.time===e&&(this.submitRecorder.route=void 0)}}const xe=Symbol("_notifyChange");class Us{currentRoute;routes;constructor(e,t){this.currentRoute=e,this.routes=t}}const ce=Symbol("historyChangeConsumerKey"),Vs=Symbol("_navigateFirstRoute"),it=Symbol("_getRouteMark"),Ht=Symbol("_getUrlSearch"),Dt=Symbol("_generateLocation"),ot=Symbol("_setRouteMarkRecorder"),ke=Symbol("beforeRestoreFiltersKey"),zs=Symbol("_beforeRestore"),Ws="Symbol(_fox_restore_point)";function Le(r,...e){return typeof r=="function"?Reflect.apply(r,null,[...e]):r}function Js(r){if(!Array.isArray(r))return!1;if(r.length===0)return!0;const e=r[0];return!!(Reflect.has(e,"path")&&Reflect.has(e,"root"))}class Gs{base;storage;mode;query;firstNavigate=!0;historyMonitor;traceless=!1;changeHandler;historyChange;[ce]=!1;[ke]=new Array;backTimeout=320;constructor(e="hash",t="",s="",n=!0,i=!0,o=!1,a,l){this.mode=e,this.base=t,this.query=s,this.firstNavigate=n,this.historyMonitor=i,this.traceless=o,this.storage=a??A().sessionStorage,this.backTimeout=l??320}init(e=!0){const t=A();return typeof this.historyChange!="function"&&(this.historyChange=()=>{if(typeof this[ce]=="function"){const s=this[ce]();if(this[ce]=!1,s)return}else if(this[ce]===!0){this[ce]=!1;return}if(Le(this.historyMonitor)){const s=t.history.state;this[xe](s);try{let n=[];if(typeof s=="string"?n=JSON.parse(s):n=s,Array.isArray(n)&&n.length>0){const i=this[it]()??"/";this[ot](i,n)}}catch{}}}),Ve(t,"popstate",this.historyChange),this.firstNavigate&&e&&this[Vs](),Promise.resolve()}destroy(){if(this.historyChange){const e=A();gt(e,"popstate",this.historyChange)}}[zs](e,t,s,n){for(let i of this[ke])try{const o=Reflect.apply(i,{},[e,t,s,n]);if(o===!1)return o}catch(o){console.error(o.message,o)}return!0}beforeRestoreEach(e){this[ke].push(e)}removeBeforeRestoreEach(e){const t=this[ke].indexOf(e);return t!==-1?(this[ke].splice(t,1),!0):!1}[Vs](){const e=this[it]()??"/",t=this.storage.getItem(Ws);if(t)try{const o=JSON.parse(t);if(o.mark===e&&Array.isArray(o.routes)&&o.routes.length>0){const a=o.routes.filter((l,u)=>(l.params=l.params?as(l.params):{},this[zs](l,u,e,o.routes)));if(a.length>0){const l=this[Ht](),u=a.length-1;a[u].query=l||a[u].query,this[xe](a);return}}}catch{}const s=e.indexOf("!");let n;s!=-1?n=e.substring(s+1):n=e;const i=new x;i.path=n,i.query=this[Ht](),this[xe]([i])}[ot](e,t){try{t.forEach(i=>{i.params=i.params?ls(i.params):{}});const n=JSON.stringify({mark:e,routes:t});this.storage.setItem(Ws,n)}catch(s){console.error(s.message,s)}}setRestorePoint(e){const t=this[it]()??"/";this[ot](t,e)}[xe](e){typeof this.changeHandler=="function"&&this.changeHandler(e)}[it](){const e=A();if(this.mode==="path"){let t=e.location.pathname;return this.base&&t.indexOf(this.base)===0&&(t=t.substring(this.base.length)),t}else{const t=e.location.hash,s=t.indexOf("#");if(s!=-1)return t.substring(s+1)}return null}[Ht](){let t=A().location.search;return t.length>0&&t.indexOf("?")===0&&(t=t.substring(1)),t}listen(e){this.changeHandler=e}go(e,t=!1){const s=A();this[ce]=t,s.history.go(e)}goBack(e,t){const s=A(),n=s.history.state;if(Js(n)&&n.length>0){let i=!1;for(let f=n.length-1;f>=0;f--){const c=x.from(n[f]);if(!(c.historyUpdatePolicy==="traceless"||Le(this.traceless,c))&&x.isSame(c,e)){i=!0;break}}if(!i){t();return}const o=this.backTimeout;let a=null;const l=()=>{s.history.go(-1),a=setTimeout(l,o)},u=()=>{clearTimeout(a);const c=A().history.state;if(Js(c)&&c.length>0){let h=c.length;const y=c[h-1],m=x.from(y);if(x.isSame(m,e))return t(),!0;if(h>0){let v=!1;for(let w=h-1;w>=0;w--){const b=x.from(c[w]);if(!(b.traceless===!0||Le(this.traceless,b))&&x.isSame(b,e)){v=!0;break}}return v?(setTimeout(()=>{a=setTimeout(l,o),this.go(-1,u)},0),!0):(t(),!0)}}return t(),!0};a=setTimeout(l,o),this.go(-1,u)}else t()}setRouteMark(e){const t=e.currentRoute.fullPath;this[ot](t,e.routes)}push(e){const t=this[Dt](e.currentRoute);e.currentRoute.historyUpdatePolicy!=="traceless"&&!Le(this.traceless,e.currentRoute)&&A().history.pushState(e.routes,"",t),this.setRouteMark(e)}replace(e){const t=this[Dt](e.currentRoute);(e.currentRoute.historyUpdatePolicy!=="traceless"||!Le(this.traceless,e.currentRoute))&&A().history.replaceState(e.routes,"",t),this.setRouteMark(e)}[Dt](e){const t=A();let s="";if(e.query){let a="";if(typeof e.query=="object")for(let l of Reflect.ownKeys(e.query)){let u=encodeURIComponent(e.query[l]),f=`${encodeURIComponent(String(l))}=${u}`;a.length>0&&(a+="&"),a+=f}else a=e.query;this.query?(s=a.length>0?`${this.query}&${a}`:this.query,s.length>0&&s.charAt(0)!=="?"&&(s=`?${s}`)):a.length>0&&(s=`?${a}`)}const n=t.location;let i=e.alias??e.fullPath;i.startsWith(J)&&(i=i.substring(J.length+1));let o;return s?this.mode=="path"?i.indexOf("/")===0?o=`${this.base}${i}${s}`:o=`${this.base}/${i}${s}`:o=`${n.pathname}${s}#${i}`:this.mode=="path"?i.indexOf("/")===0?o=`${this.base}${i}`:o=`${this.base}/${i}`:o=`${n.pathname}#${i}`,`${n.origin}${o}`}}function pn(r=!0,e=null,t="",s=!0,n=!1,i){return e!==null&&(e=A().location.pathname),e&&e.endsWith("/")&&(e=e.substring(0,e.length-1)),new Gs("path",e??"",t,r,s,n,i)}function Xs(r=!0,e="",t=!0,s=!1,n){return new Gs("hash","",e,r,t,s,n)}class gn{maxSize=50;cursor=-1;queue=[];changeHandler;base;historyMonitor=!1;traceless=!1;constructor(e,t=50){this.base=e,this.maxSize=t}init(e=!0){return Promise.resolve()}destroy(){this.queue=[]}beforeRestoreEach(e){}removeBeforeRestoreEach(e){return!1}listen(e){this.changeHandler=e}[xe](e){typeof this.changeHandler=="function"&&this.changeHandler(e)}go(e,t=!1){if(this.queue.length==0||this.cursor<=0)return;let s=this.cursor+e;if(s<0?s=0:s>this.queue.length-1&&(s=this.queue.length-1),s!=this.cursor){this.cursor=s;let n=!1;if(typeof t=="function"?n=t():n=t,!n){const i=this.queue[s];this[xe](i.routes)}}}goBack(e,t){if(this.queue.length==0||this.cursor<=0)return;let s=0;if(e===null)s=this.cursor+1;else for(let n=this.cursor;n>=0;n--){const i=this.queue[n];if(x.isSame(i.currentRoute,e))break;s++}if(s===0){t();return}this.go(-s,()=>(t(),!0))}setRouteMark(e){}push(e){this.queue.length>=this.maxSize&&this.queue.splice(0,1),this.queue.push(e),this.cursor=this.queue.length-1}replace(e){let t=this.queue.length-this.cursor;this.queue.splice(this.cursor,t),this.queue[this.cursor]=e}setRestorePoint(e){}}function Qs(r="",e=50){return new gn(r,e)}function qn(r){}const lt=Symbol("_constructRouteModel"),at=Symbol("_findRouteModel"),Bt=Symbol("_findRootView"),vn=Symbol("_getFirstView"),he=Symbol("_removeView"),Ys=Symbol("_buildPage"),Zs=Symbol("_resolveComponent"),er=Symbol("_update"),oe=Symbol("_merge"),Ut=Symbol("_handleHistoryChange"),ye=Symbol("_handleRouteUpdated"),ut=Symbol("routeUpdatedCallback"),Vt=Symbol("currentRoute"),R=Symbol("currentRoutes"),ft=Symbol("routeSessionCacheKey"),tr=Symbol("_addRouteRecorder"),Oe=Symbol("_removeRouteRecorder"),ct=Symbol("_cloneRouteRecorder"),j=Symbol("_handleError"),ht=Symbol("errorCallback"),H=Symbol("registerKey"),yt=Symbol("notFoundKey"),zt=Symbol("notFoundPathKey"),z=Symbol("forestKey"),F=Symbol("historyKey"),Me=Symbol("beforeFiltersKey"),Ie=Symbol("afterFiltersKey"),Ne=Symbol("destroyFiltersKey"),Wt=Symbol("propsFilterKey"),Pe=Symbol("mainDispatcherKey"),Jt=Symbol("initKey"),de=Symbol("readyKey"),Gt=Symbol("readyHandlersKey"),dt=Symbol("_markReady"),sr=Symbol("_createNextFn"),Xt=Symbol("_start"),Qt=Symbol("_before"),Yt=Symbol("_after"),rr=Symbol("_destroy"),Zt=Symbol("_load"),He=Symbol("_unload"),De=Symbol("routerGuardKey");function wn(r){return r.layers.length==0||r.layers[0].views.length==0}class bn{[H]=new Array;[yt];[zt]="*";[de]=!1;[Gt]=[];[z]=new en;[F];[R]=new Array;[Vt]=g.shallowRef(null);[ft]=new WeakMap;[ht]=null;[ut]=null;[Me]=new Array;[Ie]=new Array;[Ne]=new Array;[Wt]=null;[Pe]=new qe;[De]=new mn;[Jt]=!1;get currentRoute(){return g.readonly(this[Vt])}options;constructor(e){this.options=e??{},this.options.notFoundPath&&this.setNotFoundPath(this.options.notFoundPath);let t=this.options.routes||[];this.addRoutes(t),this.options.notFound&&this.setNotFoundRoute(this.options.notFound),e.history?this[F]=e.history:this[F]=le?Xs():Qs(),this[F]?.listen(async s=>{let n=!0;try{if(typeof s=="string"){const i=this[L](s);i&&await this[Ut]([i])}else await this[Ut](s)}catch(i){console.error(i.message,i),n=!1}this[de]===!1&&this[dt](n)})}[j](e="error",t){if(t&&typeof t.error=="function")try{t.error(e)}catch{}if(typeof this[ht]=="function")try{this[ht](e,t)}catch{}console.error(e)}init(){this[Jt]!==!0&&(this[F]?.init(!this[de]),this[Jt]=!0)}isReady(){return this[de]?Promise.resolve():new Promise((e,t)=>{this[Gt].push([e,t])})}[dt](e){this[de]=!0,this[Gt].forEach(([t,s])=>{try{e?t():s()}catch(n){console.error(n.message,n)}})}[Ut](e){try{if(!e){let o=[...this[R]].reverse();return this[He](o),le&&A().location.reload(),Promise.resolve()}let t=null,s=[],n=[],i=0;for(;i<e.length&&i<this[R].length&&x.isSame(e[i],this[R][i]);i++)e[i].active===!0&&e[i].active!==this[R][i].active&&(t=e[i]);if(i<e.length&&(s=e.slice(i)),i<this[R].length&&(n=this[R].slice(i).reverse()),n.length===0&&s.length===0){if(t!==null)return this.restore([t])}else if(n.length>0){if(this[He](n)){if(s.length>0)return this.restore(s);if(t!==null)return this.restore([t])}}else return this.restore(s)}catch(t){this[j](t)}return Promise.resolve()}[ye](e=null){if(this[Vt].value=e,typeof this[ut]=="function")try{this[ut](e)}catch{}}[tr](e,t){if(e.opsType===C.Open){let s=!1;const n=this[R].length-1;for(let i=n;i>=0;i--){const o=this[R][i];if(e.root==o.root){if(e.path===o.path){this[R].splice(i,1,e),s=!0;continue}e.active&&(o.active=!1)}}s||this[R].push(e)}else this[R].push(e);this[ft].set(e,t),this[ye](e)}[ct](){let e=[];for(let t of this[R]){let s=x.clone(t,!0);e.push(s)}return e}[Oe](e){if(!this[R]){this[ye](null);return}let t=-1;for(let s=0;s<this[R].length;s++)if(x.isSame(this[R][s],e)){t=s;break}if(t!=-1){const s=this[R][t];this[R].splice(t,1);const n=this[ft].get(s);if(this[ft].delete(s),this[rr](s,n),s.opsType===C.Append){const i=this[R].length-1;this[ye](this[R][i]??null)}else this[ye](null)}else this[ye](null)}set historyMonitor(e){this[F]&&(this[F].historyMonitor=e)}get historyMonitor(){return this[F]?this[F].historyMonitor:!1}set traceless(e){this[F]&&(this[F].traceless=e)}get traceless(){return this[F]?this[F].traceless:!1}set propsFilter(e){this[Wt]=e}get propsFilter(){return this[Wt]}setRestorePoint(){const e=this[ct]();this[F]?.setRestorePoint(e)}onRouteUpdated(e){this[ut]=e}onError(e){this[ht]=e}beforeEach(e){this[Me].push(e)}removeBeforeEach(e){const t=this[Me].indexOf(e);return t!==-1?(this[Me].splice(t,1),!0):!1}afterEach(e){this[Ie].push(e)}removeAfterEach(e){const t=this[Ie].indexOf(e);return t!==-1?(this[Ie].splice(t,1),!0):!1}destroyEach(e){this[Ne].push(e)}removeDestroyEach(e){const t=this[Ne].indexOf(e);return t!==-1?(this[Ne].splice(t,1),!0):!1}beforeRestoreEach(e){this[F]?.beforeRestoreEach(e)}removeBeforeRestoreEach(e){return this[F]?.removeBeforeRestoreEach(e)??!1}addRoutes(e){for(let t of e)this.addRoute(t)}addRoute(e,t=-1){if(e.path===this[zt]){this.setNotFoundRoute(e);return}const s=this[lt](e);if(t==-1)this[H]=[...this[H],...s];else for(let n=s.length-1;n>=0;n--)this[H].splice(t,0,s[n])}removeRoute(e){const t=this[L](e);if(t===null)return console.warn("route格式错误",e),!1;for(let s=0;s<this[H].length;s++){const n=this[H][s];if(t?.path&&n.path===t.path)return this[H].splice(s,1),!0;if(t?.name&&n.name===t.name)return this[H].splice(s,1),!0}return!1}hasRoute(e){const t=this[L](e);return t===null?(console.warn("route格式错误",e),!1):this[H].findIndex(n=>{if(t?.path&&n.path===t.path||t?.name&&n.name===t.name)return!0})!==-1}setNotFoundPath(e){this[zt]=e}setNotFoundRoute(e){const t=this[lt](e);this[yt]=t[0]}getRoutes(){return[...this[H]]}[lt](e){let t=e.path??"";t.length>0&&t.charAt(0)!=="/"&&(t=`/${t}`);let s=e.components??(e.component&&{"":e.component});if(!s){const l=new Et;return l.path=t,l.redirect=e.redirect,[l]}const n=new x;n.path=t,n.name=e.name,n.meta=e.meta;let i=[];for(let l in s){const u=s[l];l.length===0&&(l=J);const f=new _r(l,u,e.props);i.push(f)}let o=!1,a=[];if(e.children)for(let l of e.children){const u=this[lt](l);for(let f of u){let c=new Et;c.name=f.name,f.path&&f.path.length>0?t!=="/"?c.path=`${t}${f.path}`:c.path=f.path:(o=!0,c.path=t);let h=new vs;h.models=[...i],c.layers=[h,...f.layers];const y=f.matchedRoutes??[];c.matchedRoutes=[n,...y],a.push(c)}}if(!o){const l=new vs;l.models=i;const u=new Et;u.name=e.name,u.path=t,u.matchedRoutes=[n],u.layers=[l],a.splice(0,0,u)}return a}[at](e){const t=e.route;try{for(let s of this[H]){const n=t.path?t.template??t.path:null,i=t.name?t.template??t.name:null;if(n&&s.path){let o=s.match;o||(o=s.match=yn(s.path));const a=o(n);if(!a)continue;if(s.redirect){const l=new x;E(!0,l,t),l.path=s.redirect;const u={route:l,find:void 0};return this[at](u)?(e.route=u.route,e.find=u.find,t.template&&e.find&&(e.find={...e.find},e.find.path=t.path),!0):!1}if(t.params=t.params??{},E(!0,t.params,a.params),t.query){const l=t.query;if(typeof l=="string"){const u={},f=l.split("&");for(let c of f){const h=c.split("=");if(h.length!==2)continue;const y=decodeURIComponent(h[0].trim()),m=decodeURIComponent(h[1].trim());u[y]=m}E(!0,t.params,u)}else typeof l=="object"&&E(!0,t.params,l)}return e.find=s,t.template&&e.find&&(e.find={...e.find},e.find.path=t.path),!0}else if(i===s.name)return e.find=s,t.template&&e.find&&(e.find={...e.find},e.find.name=t.name),!0}}catch(s){console.error(s.message,s),typeof t.error=="function"&&t.error(s.message)}return!1}[L](e){let t=null;if(Array.isArray(e))if(t=new x,typeof e[0]=="object")t=x.from(e[0]);else for(let s=0;s<e.length;s++)s===0?e[s].charAt(0)==="/"?t.path=e[s]:t.name=e[s]:s===1?t.params=e[s]:s===2?t.root=e[s]:s===3&&E(!1,t,e[s]);else typeof e=="object"?t=x.from(e):typeof e=="string"&&(t=new x,e.charAt(0)=="/"?t.path=e:t.name=e);if(t){if(t.path){let s=t.path.indexOf("?");s!==-1&&s<t.path.length-1&&(t.query=t.path.substring(s+1),t.path=t.path.substring(0,s))}t.root=t.root??J,t.opsType=t.opsType??this.options.defaultOperationType??C.Push,t.traceless&&!t.historyUpdatePolicy&&(t.historyUpdatePolicy="traceless")}return t}push(...e){const t=this[L](e);return t?(t.opsType=C.Push,t.historyUpdatePolicy=t.historyUpdatePolicy??"push",this.to(t)):(this[j]("resolve route fail",t),this)}put(...e){const t=this[L](e);return t?(t.opsType=C.Put,t.historyUpdatePolicy=t.historyUpdatePolicy??"traceless",this.to(t)):(this[j]("resolve route fail",t),this)}replace(...e){const t=this[L](e);return t?(t.opsType=C.Replace,t.historyUpdatePolicy=t.historyUpdatePolicy??"replace",this.to(t)):(this[j]("resolve route fail",t),this)}append(...e){const t=this[L](e);return t?(t.opsType=C.Append,t.historyUpdatePolicy=t.historyUpdatePolicy??"push",this.to(t)):(this[j]("resolve route fail",t),this)}remove(e,t){return new Promise(s=>{this[Pe].post(n=>{try{if(this[R].length===0){n.resolve(),s(!1);return}let i=-1,o=null,a=[];if(e){if(o=e.root??null,e.all)for(let u=this[R].length-1;u>0;u--){const f=this[R][u];if(f.opsType===C.Append){const c=f.root??J;if(o&&o!==c)continue;a.splice(0,0,f),i=u-1}}else if(e.until)for(let u=this[R].length-1;u>0;u--){let f=this[R][u];if(f.opsType===C.Append&&f.root===o){if(e.until.charAt(0)==="/"&&e.until===f.path){i=u;break}else if(e.until===f.name){i=u;break}a.splice(0,0,f)}}else if(e.to)for(let u=this[R].length-1;u>0;u--){const f=this[R][u];if(f.opsType===C.Append){const c=f.root??J;if(o&&o!==c)continue;if(a.splice(0,0,f),e.to.charAt(0)==="/"&&e.to===f.path){i=u-1;break}else if(e.to===f.name){i=u-1;break}}}}else for(let u=this[R].length-1;u>0;u--){let f=this[R][u];if(f.opsType===C.Append){a.push(f),i=u-1;break}}if(i===-1||a.length===0){let u="can not find route";console.warn(u),n.resolve(u),s(!1);return}let l=null;if(i!==-1&&(l=this[R][i]),this[He](a)){if(t===!1)return n.resolve(),s(!0),!0;const u=()=>(n.resolve(),s(!0),!0),f=this[R].length;if(l&&x.isSame(l,this[R][f-1])){this[F]?.goBack(l,u);return}u()}}catch(i){this[j](i),n.resolve(),s(!1)}})})}open(...e){let t=this[L](e);return t?(t.opsType=C.Open,t.historyUpdatePolicy=t.historyUpdatePolicy??"push",this.to(t)):(this[j]("resolve route fail",t),this)}close(e){return this[Pe].post(t=>{try{let s=this[L](e);if(!s){t.reject("resolve route fail");return}let n=[];for(let i=0;i<this[R].length;i++){let o=this[R][i];if(o.root===s.root){if(!s.path&&!s.name){n.push(o);continue}if(s.path&&s.path===o.path){n.push(o);break}else if(s.name&&s.name===o.name){n.push(o);break}}}if(n.length===0){t.resolve();return}this[He](n),t.resolve()}catch(s){this[j](s),t.resolve()}}),this}to(...e){let t=this[L](e);if(!t)return this[j]("resolve route fail",t),this;let s=this[De].acquire(t);return s==null?(this[j]("route forbid",t),this):(this[Pe].post(n=>{try{let i=this[Xt](t);this[Qt](i),this[Zt](i),this[Yt](i),i.wait((o,a)=>{const l=o.session.to;if(o.session.updateResult&&o.session.updateResult.status==="success")try{let u=x.clone(l,!0);const f=new Us(u,this[ct]());l.historyUpdatePolicy==="replace"?this[F]?.replace(f):l.historyUpdatePolicy==="traceless"?this[F]?.setRouteMark(f):this[F]?.push(f)}catch(u){console.error(u.message,u)}if(pe.clear(o.session),this[De].release(s),typeof t.success=="function")try{Reflect.apply(t.success,{},[])}catch(u){console.error(u.message,u)}this[de]===!1&&this[dt](!0),i=null,n.resolve()},(o,a)=>{this[De].release(s),a!==null&&this[j](a,t),this[de]===!1&&this[dt](!1),pe.clear(o.session),i=null,n.resolve()})}catch(i){this[De].release(s),this[j](i,t),n.resolve()}}),this)}back(e=1){this[F]?.go(-e,!1)}[sr](e){return(t,s)=>{if(typeof t=="boolean")e.session.redirect=!1,t?e.resolve():e.reject(s??null);else if(t){const n=this[L](t);if(n){const i=e.session.to;n.success=i.success,n.error=i.error,e.session.to=n,e.session.redirect=!0,e.session.routeModel=null,e.resolve()}else e.session.redirect=!1,e.reject("route resolve fail")}else e.session.redirect=!1,e.resolve()}}[Xt](e){const t=this[R].length>0?this[R][this[R].length-1]:void 0,s=new pe(e,t),n={route:e,find:null};if(this[at](n),n.find){s.routeModel=n.find,e.matched=n.find.matchedRoutes??[];const o={};if(Array.isArray(n.find?.matchedRoutes))for(let a=0;a<n.find.matchedRoutes.length;a++){const l=n.find.matchedRoutes[a];l.meta&&typeof l.meta=="object"&&Object.assign(o,l.meta)}e.meta&&typeof e.meta=="object"&&Object.assign(o,e.meta),e.meta=o}return new qe(s)}[Qt](e){for(let t of this[Me])e.post(s=>{const n=this[sr](s);Reflect.apply(t,{},[s.session.to,s.session.from,n,s.session])})}[Yt](e){e.post(t=>{for(let s of this[Ie])try{Reflect.apply(s,{},[t.session.to,t.session.from,t.session])}catch(n){console.error(n.message,n)}t.resolve()})}[rr](e,t){for(let s of this[Ne])try{Reflect.apply(s,{},[e,t])}catch(n){console.error(n.message,n)}typeof e.destroy=="function"&&Reflect.apply(e.destroy,e,[])}[Zt](e){e.post(t=>{const s=t.session.to;let n=t.session.routeModel;if(n==null){let o={route:s,find:null};if(this[at](o))n=o.find,t.session.routeModel=n;else if(this[yt])n=this[yt];else{t.reject(`not find route model, path:${s.path??s.name}`);return}}const i=pe.from(t.session);this[Ys](s,n,i).then(o=>{this[z],t.session.updateResult=o??{status:"success",message:""},t.resolve()},o=>{t.reject(o)})})}[He](e){if(e.length==0)return!0;let t=this[z],s=[];for(let n of e){let i=this[Bt](t,n);i!=null&&s.push({...i,route:n})}if(s.length==0)return this[j]("can not find view index"),!1;for(let n of s.reverse())this[he](t,{x:n.x,y:n.y},[n.route.index??0],!0);return!0}[Bt](e,t){const s=t.root??J;let n;for(let i=0;i<e.layers.length;i++){const o=e.layers[i];for(let a=o.views.length-1;a>=0;a--){const l=o.views[a];if(l[U]&&l[tt]===s)return n={x:a,y:i},n}}return null}[vn](e){return e.layers.length>0&&e.layers[0].views.length>0?e.layers[0].views[0]:null}[he](e,t,s=null,n=!0){if(t.y>=e.layers.length||t.x>=e.layers[t.y].views.length)return;let i=e.layers[t.y].views[t.x],o=!1,a=[],l=!1,u=[...i.slots.value];for(let c=u.length-1;c>=0;c--){let h=u[c];(!s||s.indexOf(h.index)!=-1)&&(h.route&&i[U]&&(this[Oe](h.route),h.active===!0&&h.route.opsType==C.Append&&(l=!0)),a.push(new I(i,h.index,t.y)),u.splice(c,1))}if(u.length==0)n?i.slots.value=u:e.layers[t.y].views.splice(t.x,1);else{if(l){let c=u.length-1,h=u[c];h.active=!0,h.route&&(h.route.active=h.active)}i.slots.value=u}e.layers[t.y].views.length==0&&(o=!0);let f=t.y+1;for(;f<e.layers.length;f++){let c=e.layers[f].views,h=[];for(let y=c.length-1;(o||a.length>0)&&y>=0;y--){let m=c[y];if(m[fe]&&(o||I.include(a,m[fe]))){let v=m.slots.value;for(let w=v.length-1;w>=0;w--){let b=v[w];b.route&&m[U]&&this[Oe](b.route),h.push(new I(m,b.index,f)),v.splice(w,1)}e.layers[f].views.splice(y,1)}}a=h,e.layers[f].views.length==0&&(o=!0)}}restore(e){if(!e||this[H].length==0){let t=this[z];if(t.layers.length>0){let s=t.layers[0].views;s.length>0&&(s[0].slots.value=[])}return this[R]=[],this[ye](null),Promise.resolve()}else return new Promise((s,n)=>{let i=null,o=!1;for(let a=0;a<e.length;a++){const l=e[a];this[Pe].post(u=>{const f=this[Xt](l);this[Qt](f),this[Zt](f),this[Yt](f),f.wait((c,h)=>{i=c.session.to,o=c.session.redirect,u.resolve()},(c,h)=>{i=null,h!==null&&this[j](h),u.resolve()})})}this[Pe].post(a=>{if(i&&o===!0){const l=x.clone(i,!0),u=new Us(l,this[ct]());this[F]?.replace(u)}a.resolve(),s()})})}[Ys](e,t,s){const n=e.updateType??nt.Part;return this[Zs](t).then(()=>{const o=this[er](t,e,s,n);if(o.status==="error")throw Error(o.message);return o})}[Zs](e){let t=[];for(let s=0;s<e.layers.length;s++){let n=e.layers[s];for(let i=0;i<n.models.length;i++){let o=n.models[i];o.isResolved||t.push(o.resolve())}}return t.length>0?Promise.all(t):Promise.resolve()}[er](e,t,s,n){if(e.layers[0].models.length!==1)return{status:"error",message:"illegal route structure(multi root node)"};const i=e.layers[0].models[0];let o=this[z],a=wn(o),l=t.root??J,u;!a&&n==nt.Part&&(u=this[Bt](o,t));let f,c=0;if(u==null||u==null)if(a||n===nt.All){if(o.layers.length==0&&(o.layers[0]=new Ot),o.layers[0].views.length==0){let h=t.root??J;f=new Ke(h,!0,null),o.layers[0].views=[f]}else f=o.layers[0].views[0];u={x:0,y:0}}else{let h=t.slot;if(!h)return{status:"error",message:"can not rebuild view(because not route slot)"};let y=h.level;if(y>o.layers.length)return{status:"error",message:"can not insert view(override level)"};let m;if(h.rootName){let v=o.layers[y-1];for(let w of v.views){if(w[U]&&w.name===h.rootName){m=new I(w,h.rootIndex??0,y-1);break}if(w[V]&&w[V].view.name===h.rootName&&w[V].index===h.rootIndex){m=w[V];break}}}if(!m)return{status:"error",message:"can not insert view(not find root node ref)"};f=new Ke(l,!0,m),o.layers[y].views.push(f),u={x:o.layers[y].views.length-1,y}}else f=o.layers[u.y].views[u.x];if(c=u.y,f[U]=!0,t.opsType===C.Append){t.index=t.index??se.get(),t.active=!0;let h=f.slots.value;if(h.length>0){let b=h[h.length-1];b.active=!1,b.route&&(b.route.active=b.active)}let y=new re(t,i,t.index,!0);f.slots.value=[...h,y];let m=c+1,v=1,w=new I(f,t.index,c);this[oe](o,m,e,v,w)}else if(t.opsType===C.Open){let h=f.slots.value;const y=t.active??!0;let m=!1;for(let v of h){if(v.route!==null&&x.isSamePathForRoute(v.route,t)){if(v.active===y)return t.index=v.index,t.active=y,v.route=t,{status:"noChange",message:""};v.active=y,m=!0,t.index=v.index,t.active=y,v.route=t}else y&&(v.active=!1);v.route&&(v.route.active=v.active)}if(!m){t.index=t.index??se.get(),t.active=y;let v=new re(t,i,t.index,y);h.push(v);let w=c+1,b=1,p=new I(f,t.index,c);this[oe](o,w,e,b,p)}f.slots.value=[...h]}else{let h=f.slots.value;if(h.length==0){t.index=t.index??se.get(),t.active=!0,f.slots.value=[new re(t,i,t.index)];let y=c+1,m=1,v=new I(f,t.index,c);this[oe](o,y,e,m,v)}else{let y=h[0];if(y.model!==i){this[he](o,u,null,!0),t.index=t.index??se.get(),t.active=!0,f.slots.value=[new re(t,i,t.index)];let m=c+1,v=1,w=new I(f,t.index,c);this[oe](o,m,e,v,w)}else{y.route!==null&&this[Oe](y.route);let m=!1;const v=t.active??!0;y.active!==v&&(y.active=v,m=!0),t.active=v,t.index=y.index,y.route=t;let w=[];for(let Z=1;Z<h.length;Z++)w.push(h[Z].index);w.length>0?this[he](o,u,w,!0):m&&(f.slots.value=[...h]);let b=[new I(f,t.index,c)],p=c+1,_=1,Q=new I(f,t.index,c);for(;b.length>0&&p<o.layers.length&&_<e.layers.length;p++,_++){let Z=[];for(let T=0;T<o.layers[p].views.length;T++){let k=o.layers[p].views[T];k[fe]&&I.include(b,k[fe])&&Z.unshift(T)}let Fe=[];for(let T of Z){let k=o.layers[p].views[T],me=e.layers[_].models,ee;for(let M=0;M<me.length;M++)if(k.name===me[M].name){ee=me[M];break}if(!ee)this[he](o,{x:T,y:p},null,!1);else{let M=k.slots.value;if(M.length==0){let Y=0;k.slots.value=[new re(null,ee,Y)];let W=p+1,te=_+1;this[oe](o,W,e,te,Q)}else{let Y=M[0];if(Y.model!==ee){this[he](o,{x:T,y:p},null,!0),k.slots.value=[new re(null,ee,0)];let W=p+1,te=_+1;this[oe](o,W,e,te,Q)}else{k[U]&&Y.route!==null&&this[Oe](Y.route);let W=[];for(let te=1;te<M.length;te++)W.push(M[te].index);W.length>0&&this[he](o,{x:T,y:p},W,!0),Fe.push(new I(k,Y.index,p))}}k[U]=!1}}b=Fe}this[oe](o,p,e,_,Q)}}}if(f&&f[V]){let h=f[V];h&&(t.slot=new $r(l,c,h?.view.name,h?.index??0))}return s.to=void 0,s.routeModel=void 0,this[tr](t,s),{status:"success",message:""}}[oe](e,t,s,n,i){let o=n,a=t;for(;a<e.layers.length&&o<s.layers.length;a++,o++){let l=e.layers[a].views;for(let u of s.layers[o].models){let f=new Ke(u.name,!1,i),c=new re(null,u);f.slots.value=[c],l.push(f)}}for(;o<s.layers.length;o++){let l=new Ot;l.views=[];for(let u of s.layers[o].models){let f=new Ke(u.name,!1,i),c=new re(null,u);f.slots.value=[c],l.views.push(f)}e.layers.push(l)}}[ps](e,t,s,n,i,o){if(t<0||t>this[z].layers.length)return null;if(t<this[z].layers.length){let f=this[z].layers[t],c=null;for(let h of f.views){let y=!1;if(s!==null?(y=h.name===e&&h[V]?.view===s,y&&n!==-1&&(y=h[V]?.index===n)):y=h.name===e,!!y){i!==null&&(h[fe]={view:i,index:o,level:t-1}),c=h;break}}if(c!==null)return c}let a=null,l=null;i!==null&&(i[U]?a={view:i,index:o,level:t-1}:a=i[V],l={view:i,index:o,level:t-1});let u=new Ke(e,!0,a);if(u[fe]=l,t==this[z].layers.length){let f=new Ot;f.views=[u],this[z].layers.push(f)}else this[z].layers[t].views.push(u);return u}}const Rn="fox-router-view",Sn="fox-router-link";var q=(r=>(r[r.Loading=0]="Loading",r[r.Loaded=1]="Loaded",r[r.Defining=2]="Defining",r[r.Defined=3]="Defined",r))(q||{}),mt=(r=>(r[r.normal=0]="normal",r[r.factory=1]="factory",r))(mt||{});class xn{register=new Map;constructor(){}get(e){return this.register.get(e)??null}set(e,t){this.register.set(e,t)}remove(e){let t=this.register.get(e);return this.register.delete(e),t??null}has(e){return this.register.has(e)}clear(){this.register.clear()}}class nr{moduleManager=new xn;options={paths:{},alias:{},nature:[],timeout:3e3};set paths(e){this.options.paths=e}get paths(){return this.options.paths}set alias(e){this.options.alias=e}get alias(){return this.options.alias}set naturePaths(e){this.options.nature=e}get naturePaths(){return this.options.nature}set timeout(e){this.options.timeout=e}get timeout(){return this.options.timeout}_query;set query(e){this._query=e}get query(){return this._query}get head(){return Ue().head}constructor(){}setModule(e,t){const s={id:e,src:"",status:q.Defined};typeof t=="function"?(s.exports=t,s.type=mt.factory):s.exports=t,this.moduleManager.set(e,s)}removeModule(e){this.moduleManager.remove(e)}ensure(...e){const t=[];let s=e.length-1;const n={};typeof e[s]=="object"&&(Object.assign(n,e[s]),s--);let i=null;typeof e[s]=="function"&&(i=e[s],s--);for(let l=0;l<=s;l++)if(Array.isArray(e[l])){let u=e[l];for(let f=0;f<u.length;f++)u[f]&&t.push(this.resolvePath(u[f]))}else if(typeof e[l]=="string"){let u=e[l].split(",");for(let f=0;f<u.length;f++)u[f]&&t.push(this.resolvePath(u[f]))}const o=new Pn(t.length,(l,u)=>{if(o.isOK())try{typeof i=="function"&&Reflect.apply(i,{},u)}catch(f){console.error(f.message,f)}else try{console.error(l),typeof i=="function"&&Reflect.apply(i,{},[])}catch(f){console.error(f.message,f)}}),a=new qe;for(let l=0;l<t.length;l++){const u=new Fn(l,t[l],n,o);this.mount(a,u)}return this}remove(...e){let t=[],s=e.length-1,n={};typeof e[s]=="object"&&(Object.assign(n,e[s]),s--);let i=null;typeof e[s]=="function"&&(i=e[s],s--);for(let o=0;o<=s;o++)if(Array.isArray(e[o])){let a=e[o];for(let l=0;l<a.length;l++)a[l]&&t.push(this.resolvePath(a[l]))}else{let a=e[o].split(",");for(let l=0;l<a.length;l++)a[l]&&t.push(this.resolvePath(a[l]))}return t.forEach(o=>{this.unmount(o,n)}),typeof i=="function"&&Reflect.apply(i,{},[]),this}mount(e,t){if(t.src==="exports"){e.post(n=>{t.progress.work(!0,t.index,"exports"),n.resolve()});return}else if(t.src==="module"){e.post(n=>{t.progress.work(!0,t.index,"module"),n.resolve()});return}if(this.isNaturePath(t.src)){let n=t.params.jsPoint;n||(n=this.head),this.mountJS(e,t,n);return}else if(this.isNaturePath(t.src)){let n=t.params.cssPoint;n||(n=this.head),this.mountCSS(e,t,n);return}let s=this.getFileNamePostfix(t.src);if(s==="js"||s.length===0){let n=t.params.jsPoint;n||(n=this.head),this.mountJS(e,t,n);return}else if(s==="css"){let n=t.params.cssPoint;n||(n=this.head),this.mountCSS(e,t,n);return}}mountCSS(e,t,s){e.post(n=>{const i=t.src,o=this.moduleManager.get(i);if(o&&(o.status==q.Defined||o.status==q.Loaded)&&o.exports){o.type===mt.factory&&typeof o.exports=="function"?t.progress.work(!0,t.index,o.exports()):t.progress.work(!0,t.index,o.exports),n.resolve();return}const a=Ue(),l=a.createElement("link");if(Reflect.has(l,"onload"))l.onload=()=>{l.onload=null,l.onerror=null,t.progress.work(!0,t.index,t.src),n.resolve()},l.onerror=()=>{try{s.removeChild(l)}catch(c){console.error(c.message,c)}l.onload=null,l.onerror=null,t.progress.work(!1,t.index,null),n.reject()};else{const c={timeout:this.options.timeout??3e3,time:0,success:()=>{t.progress.work(!0,t.index,t.src),n.resolve()},error:()=>{try{s.removeChild(l)}catch(h){console.error(h.message,h)}t.progress.work(!1,t.index,null),n.resolve()}};setTimeout(()=>{ir(l,c)},1)}let f=a.getElementById(i);f&&f.parentNode&&f.parentNode.removeChild(f),l.rel="stylesheet",l.type="text/css",l.id=i,l.href=i,s.appendChild(l)})}mountJS(e,t,s){e.post(n=>{const i=t.src;let o=this.moduleManager.get(i);if(o&&(o.status==q.Defined||o.status==q.Loaded)){if(o.exports){o.type===mt.factory&&typeof o.exports=="function"?t.progress.work(!0,t.index,o.exports()):t.progress.work(!0,t.index,o.exports),n.resolve();return}if(document.querySelector(`script[src='${i}`)){t.progress.work(!0,t.index,o.exports),n.resolve();return}}o={id:i,src:i,status:q.Loading},this.moduleManager.set(i,o);const l=Ue().createElement("script");if("onload"in l)l.onload=()=>{l.onload=null,l.onerror=null,o.status===q.Loading&&(o.status=q.Loaded,t.progress.work(!0,t.index,i)),n.resolve()},l.onerror=()=>{try{s.removeChild(l)}catch(c){console.error(c.message,c)}l.onload=null,l.onerror=null,this.moduleManager.remove(i),t.progress.work(!1,t.index,null),n.resolve()};else{const c=l;c.onreadystatechange=()=>{/loaded|complete/.test(c.readyState)&&(c.onreadystatechange=null,o.status==q.Loading&&(o.status=q.Loaded,t.progress.work(!0,t.index,i)),n.resolve())}}l.defer=!0,l.src=i;const f=A();f.define=this.createDefine(o,t),s.appendChild(l)})}unmount(e,t={}){const s=Ue(),n=this.getFileNamePostfix(e);if(n==="js"||n.length===0){const i=s.querySelector(`script[src="${e}"]`);i&&i.parentNode&&i.parentNode.removeChild(i),this.moduleManager.remove(e);return}else if(n==="css"){const i=s.querySelector(`style[href="${e}"]`);i&&i.parentNode&&i.parentNode.removeChild(i);return}}trimEmptyElement(e){let t=[];for(let s=0;s<e.length;s++){if(e[s]===void 0||e[s]===null)continue;const n=e[s].trim();n.length!==0&&t.push(n)}return t}createDefine(e,t){const s=this,n=function(...i){e.status=q.Defining;let o,a,l,u=i.length;u===1?(l=i[0],o=void 0):u===2?(l=i[1],Array.isArray(i[0])?(a=s.trimEmptyElement(i[0]),o=void 0):a=void 0):(o=i[0],a=s.trimEmptyElement(i[1]),l=i[2]),o&&(e.id=o,s.options.alias[o]=e.src),a&&a.length>0?s.ensure(a,(...f)=>{try{const c=f.map(h=>h==="exports"?((!e.exports||typeof e.exports!="object")&&(e.exports={}),e.exports):h==="module"?e:h);if(typeof l=="function"){const h=Reflect.apply(l,e,c);h&&typeof h=="object"&&(e.exports=h)}else e.exports=l;e.status=q.Defined,t.progress.work(!0,t.index,e.exports)}catch(c){console.error(c),t.progress.work(!1,t.index,[])}}):(typeof l=="function"?e.exports=Reflect.apply(l,e,[]):e.exports=l,e.status=q.Defined,t.progress.work(!0,t.index,e.exports))};return n.amd=!0,n}resolvePath(e){try{if(e==="exports"||e==="module"||this.isNaturePath(e))return e;e=this.parserPath(e,!0);let t=this.getFileNamePostfix(e);t=t.toLowerCase();let s=this.createSearch(this.query);return e.indexOf("?")==-1?(t!=="js"&&t!=="css"&&(e+=".js"),s.length>0&&(e+=`?${s}`)):s.length>0&&(e+=`&${s}`),e}catch(t){throw console.error(`resolve path[${e}] fail`,t),t}}createSearch(e){let t="";if(e){for(let s in e){let n=`${e[s]}`;t+=`${encodeURIComponent(s)}=${encodeURIComponent(n)}&`}t.length>0&&(t=t.substring(0,t.length-1))}return t}getFileNamePostfix(e){let t=e.lastIndexOf("?");t==-1&&(t=e.length);let s=e.lastIndexOf(".",t);return s==-1?"":e.substring(s+1,t)}isNaturePath(e){if(!this.options.nature)return!1;if(typeof this.options.nature=="function")return this.options.nature(e);const t=this.options.nature;if(t&&Array.isArray(t))for(let s=0;s<t.length;s++){const n=t[s];if(e.indexOf(n)===0)return!0}return!1}parserPath(e,t){if(e.indexOf("http://")==0||e.indexOf("https://")==0||e.indexOf("file:///")==0)return e;if(e.indexOf("/")==0)return`${pt()}${e.slice(1)}`;if(e.indexOf("./")==0)return`${pt()}${e.slice(2)}`;if(e.indexOf("//")==0)return`${A().location.protocol}${e}`;if(t){let n=this.options.alias[e];if(!n){let i=e.indexOf("/");if(i==-1)n=e;else{let o=e.slice(0,i),a=this.options.paths[o];a?n=a+e.slice(i):n=e}}return this.parserPath(n,!1)}return`${pt()}${e}`}}function ir(r,e){let t=r.sheet,s=!1;if(e.isOldWebKit)t&&(s=!0);else if(t)try{t.cssRules&&(s=!0)}catch(n){n.name==="NS_ERROR_DOM_SECURITY_ERR"&&(s=!0)}setTimeout(()=>{e.time+=20,s?e.success():e.timeout>e.timeout?e.error():ir(r,e)},20)}class Pn{callback;values;status;size;lastIndex;constructor(e,t){this.size=e,this.callback=t,this.status=!0,this.values=[],this.lastIndex=-1}work(e,t,s){if(this.status=e,this.status===!0&&(this.lastIndex!==t&&this.size--,this.lastIndex=t,this.values[t]=s),this.size===0||this.status===!1)try{Reflect.apply(this.callback,this,[this.status,this.values])}catch(n){console.error(n.message,n)}}isOK(){return this.status}}class Fn{index;src;params;progress;constructor(e,t,s,n){this.index=e,this.src=t,this.params=s,this.progress=n}}const es=Symbol("fk"),ts=Symbol("fbk"),ss=Symbol("fepk");function Cn(r={}){const e=new bn(r),t=new Ct,s=new Nt,n=new nr,i={get router(){return e},get bus(){return t},get Bus(){return Ct},get EventProxy(){return Nt},get eventproxy(){return s},get EventChain(){return qe},get Require(){return nr},get require(){return n},get extend(){return E},get clone(){return Je},get isESModule(){return wt},install(o){o.provide(Xe,e),o.provide(es,i),o.provide(ts,t),o.provide(ss,s),o.component(Rn,st),o.component(Sn,Ds),Reflect.defineProperty(o.config.globalProperties,"$fox",{get(){return i}}),Reflect.defineProperty(o.config.globalProperties,"$router",{get(){return e}}),Reflect.defineProperty(o.config.globalProperties,"$bus",{get(){return t}}),Reflect.defineProperty(o.config.globalProperties,"$bus",{get(){return t}}),Reflect.defineProperty(o.config.globalProperties,"$eventProxy",{get(){return s}}),o.config.globalProperties.$fox_on=function(a,l,u=!1){s.on(a,l,u)},o.config.globalProperties.$fox_off=function(a,l){s.off(a,l)},o.config.globalProperties.$fox_once=function(a,l){s.once(a,l)},o.config.globalProperties.$fox_all=function(...a){let l=s;Reflect.apply(l.all,l,a)},o.config.globalProperties.$fox_trigger=function(a,...l){let u=s;Reflect.apply(u.trigger,u,[a,...l])},o.config.globalProperties.$fox_emit=function(a,...l){let u=s;Reflect.apply(u.trigger,u,[a,...l])},o.mixin({computed:{$route(){return Tt(this)}}}),e.init()}};return i}function rs(r){return r?r.$router:g.inject(Xe)}function An(r){return r||(r=g.getCurrentInstance()?.proxy??void 0),r?Tt(r):null}function En(r){return r?r.$fox:g.inject(es)}function $n(r){return r?r.$bus:g.inject(ts)}function _n(r){return r?r.$eventProxy:g.inject(ss)}function Kn(r){const e=rs(),t=(s,n,i)=>{try{Reflect.apply(r,{},[s,n])}catch(o){console.error(o)}i()};e.beforeEach(t),g.onUnmounted(()=>{e.removeBeforeEach(t)})}function jn(r){const e=rs(),t=(s,n,i)=>{try{Reflect.apply(r,{},[s,n])}catch(o){console.error(o)}i()};e.afterEach(t),g.onUnmounted(()=>{e.removeAfterEach(t)})}d.Bus=Ct,d.EventChain=qe,d.EventProxy=Nt,d.FoxBeforeEnter=ws,d.FoxBeforeLeave=Rs,d.FoxEnter=bs,d.FoxLeave=Ss,d.FoxLeaveEnd=Ge,d.OperationType=C,d.Route=x,d.RouterLink=Ds,d.RouterView=st,d.clone=Je,d.createFox=Cn,d.createMemoryHistory=Qs,d.createWebHashHistory=Xs,d.createWebHistory=pn,d.deleteContextValue=qr,d.extend=E,d.foxBusKey=ts,d.foxEventProxyKey=ss,d.foxKey=es,d.injectContextValue=jt,d.isArray=vt,d.isDate=ur,d.isESModule=wt,d.isEqual=xt,d.isFunction=S,d.isMap=lr,d.isNil=Ae,d.isObject=is,d.isPlainObject=os,d.isPromise=hr,d.isSet=ar,d.isString=fr,d.isSymbol=cr,d.onAfterRouteUpdate=jn,d.onBeforeRouteUpdate=Kn,d.onFoxActivated=Mr,d.onFoxInactivated=Ir,d.provideContextValue=jr,d.rawState=Ar,d.reactiveState=Pr,d.sessionKey=ie,d.shallowReactiveState=Fr,d.toBoolean=Rt,d.toNumber=pr,d.toTypeString=We,d.typeOf=St,d.useBus=$n,d.useEventProxy=_n,d.useFox=En,d.useRoute=An,d.useRouter=rs,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fox-js/fox",
3
3
  "type": "module",
4
- "version": "3.1.1-19",
4
+ "version": "3.1.1-20",
5
5
  "description": "Fox Router and commons Utils",
6
6
  "author": "jiangcheng",
7
7
  "keywords": [