@tanstack/router-core 0.0.1-alpha.4 → 0.0.1-alpha.6
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/build/cjs/packages/router-core/src/index.js +66 -47
- package/build/cjs/packages/router-core/src/index.js.map +1 -1
- package/build/esm/index.js +66 -47
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +42 -42
- package/build/types/index.d.ts +12 -5
- package/build/umd/index.development.js +66 -47
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +60 -46
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).RouterCore={})}(this,(function(t){"use strict";function e(){return e=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},e.apply(this,arguments)}function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n.apply(this,arguments)}var a;!function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"}(a||(a={}));var o="beforeunload",r="popstate";function i(t){void 0===t&&(t={});var e=t.window,i=void 0===e?document.defaultView:e,s=i.history;function l(){var t=i.location,e=t.pathname,n=t.search,a=t.hash,o=s.state||{};return[o.idx,{pathname:e,search:n,hash:a,state:o.usr||null,key:o.key||"default"}]}var f=null;i.addEventListener(r,(function(){if(f)P.call(f),f=null;else{var t=a.Pop,e=l(),n=e[0],o=e[1];if(P.length){if(null!=n){var r=g-n;r&&(f={action:t,location:o,retry:function(){M(-1*r)}},M(r))}}else I(t)}}));var m=a.Pop,v=l(),g=v[0],y=v[1],_=u(),P=u();function b(t){return"string"==typeof t?t:d(t)}function w(t,e){return void 0===e&&(e=null),n({pathname:y.pathname,hash:"",search:""},"string"==typeof t?p(t):t,{state:e,key:h()})}function R(t,e){return[{usr:t.state,key:t.key,idx:e},b(t)]}function S(t,e,n){return!P.length||(P.call({action:t,location:e,retry:n}),!1)}function I(t){m=t;var e=l();g=e[0],y=e[1],_.call({action:m,location:y})}function M(t){s.go(t)}null==g&&(g=0,s.replaceState(n({},s.state,{idx:g}),""));var L={get action(){return m},get location(){return y},createHref:b,push:function t(e,n){var o=a.Push,r=w(e,n);if(S(o,r,(function(){t(e,n)}))){var l=R(r,g+1),c=l[0],u=l[1];try{s.pushState(c,"",u)}catch(t){i.location.assign(u)}I(o)}},replace:function t(e,n){var o=a.Replace,r=w(e,n);if(S(o,r,(function(){t(e,n)}))){var i=R(r,g),l=i[0],c=i[1];s.replaceState(l,"",c),I(o)}},go:M,back:function(){M(-1)},forward:function(){M(1)},listen:function(t){return _.push(t)},block:function(t){var e=P.push(t);return 1===P.length&&i.addEventListener(o,c),function(){e(),P.length||i.removeEventListener(o,c)}}};return L}function s(t){void 0===t&&(t={});var e=t,o=e.initialEntries,r=void 0===o?["/"]:o,i=e.initialIndex,s=r.map((function(t){return n({pathname:"/",search:"",hash:"",state:null,key:h()},"string"==typeof t?p(t):t)})),c=l(null==i?s.length-1:i,0,s.length-1),f=a.Pop,m=s[c],v=u(),g=u();function y(t,e){return void 0===e&&(e=null),n({pathname:m.pathname,search:"",hash:""},"string"==typeof t?p(t):t,{state:e,key:h()})}function _(t,e,n){return!g.length||(g.call({action:t,location:e,retry:n}),!1)}function P(t,e){f=t,m=e,v.call({action:f,location:m})}function b(t){var e=l(c+t,0,s.length-1),n=a.Pop,o=s[e];_(n,o,(function(){b(t)}))&&(c=e,P(n,o))}var w={get index(){return c},get action(){return f},get location(){return m},createHref:function(t){return"string"==typeof t?t:d(t)},push:function t(e,n){var o=a.Push,r=y(e,n);_(o,r,(function(){t(e,n)}))&&(c+=1,s.splice(c,s.length,r),P(o,r))},replace:function t(e,n){var o=a.Replace,r=y(e,n);_(o,r,(function(){t(e,n)}))&&(s[c]=r,P(o,r))},go:b,back:function(){b(-1)},forward:function(){b(1)},listen:function(t){return v.push(t)},block:function(t){return g.push(t)}};return w}function l(t,e,n){return Math.min(Math.max(t,e),n)}function c(t){t.preventDefault(),t.returnValue=""}function u(){var t=[];return{get length(){return t.length},push:function(e){return t.push(e),function(){t=t.filter((function(t){return t!==e}))}},call:function(e){t.forEach((function(t){return t&&t(e)}))}}}function h(){return Math.random().toString(36).substr(2,8)}function d(t){var e=t.pathname,n=void 0===e?"/":e,a=t.search,o=void 0===a?"":a,r=t.hash,i=void 0===r?"":r;return o&&"?"!==o&&(n+="?"===o.charAt(0)?o:"?"+o),i&&"#"!==i&&(n+="#"===i.charAt(0)?i:"#"+i),n}function p(t){var e={};if(t){var n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));var a=t.indexOf("?");a>=0&&(e.search=t.substr(a),t=t.substr(0,a)),t&&(e.pathname=t)}return e}function f(t,e){if(!t)throw new Error("Invariant failed")}function m(t){if(!t)return"";var e=decodeURIComponent(t);return"false"!==e&&("true"===e||(0*+e==0?+e:e))}const v="__root__",g=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement);function y(t,n,a,o){const{id:r,routeId:i,path:s,fullPath:l}=t,c=o.state.actions[r]||(o.state.actions[r]={pending:[],submit:async(t,n)=>{var a;if(!u)return;const r=null==(a=null==n?void 0:n.invalidate)||a,i={submittedAt:Date.now(),status:"pending",submission:t};c.latest=i,c.pending.push(i),o.state=e({},o.state,{action:i}),o.notify();try{const e=await(null==u.options.action?void 0:u.options.action(t));return i.data=e,r&&(o.invalidateRoute({to:".",fromCurrent:!0}),await o.reload()),i.status="success",e}catch(t){console.error(t),i.error=t,i.status="error"}finally{c.pending=c.pending.filter((t=>t!==i)),i===o.state.action&&(o.state.action=void 0),o.notify()}}},o.state.actions[r]);let u={routeId:r,routeRouteId:i,routePath:s,fullPath:l,options:n,router:o,childRoutes:void 0,parentRoute:a,action:c,buildLink:t=>o.buildLink(e({},t,{from:l})),navigate:t=>o.navigate(e({},t,{from:l})),matchRoute:(t,n)=>o.matchRoute(e({},t,{from:l}),n)};return null==o.options.createRoute||o.options.createRoute({router:o,route:u}),u}function _(t,n,a){const o=e({},n,a,{router:t,routeSearch:{},search:{},childMatches:[],status:"idle",routeLoaderData:{},loaderData:{},isPending:!1,isFetching:!1,isInvalid:!1,__:{abortController:new AbortController,latestId:"",resolve:()=>{},notify:()=>{o.__.resolve(),o.router.notify()},startPending:()=>{var e,n;const a=null!=(e=o.options.pendingMs)?e:t.options.defaultPendingMs,r=null!=(n=o.options.pendingMinMs)?n:t.options.defaultPendingMinMs;o.__.pendingTimeout||"loading"!==o.status||void 0===a||(o.__.pendingTimeout=setTimeout((()=>{o.isPending=!0,o.__.resolve(),void 0!==r&&(o.__.pendingMinPromise=new Promise((t=>o.__.pendingMinTimeout=setTimeout(t,r))))}),a))},cancelPending:()=>{o.isPending=!1,clearTimeout(o.__.pendingTimeout),clearTimeout(o.__.pendingMinTimeout),delete o.__.pendingMinPromise},setParentMatch:t=>{o.parentMatch=t},addChildMatch:t=>{o.childMatches.find((e=>e.matchId===t.matchId))||o.childMatches.push(t)},validate:()=>{var n,a;const r=null!=(n=null==(a=o.parentMatch)?void 0:a.search)?n:t.location.search;try{const t=o.routeSearch;let n=A(t,null==o.options.validateSearch?void 0:o.options.validateSearch(r));t!==n&&(o.isInvalid=!0),o.routeSearch=n,o.search=A(r,e({},r,n))}catch(t){console.error(t);const e=new Error("Invalid search params found",{cause:t});return e.code="INVALID_SEARCH_PARAMS",o.status="error",void(o.error=e)}}},cancel:()=>{var t;null==(t=o.__.abortController)||t.abort(),o.__.cancelPending()},load:async()=>{const t=""+Date.now()+Math.random();return o.__.latestId=t,"error"!==o.status&&"idle"!==o.status||(o.status="loading"),o.isInvalid=!1,o.__.loadPromise=new Promise((async n=>{o.isFetching=!0,o.__.resolve=n;const a=(async()=>{const n=o.options.import;n&&(o.__.importPromise=n({params:o.params}).then((t=>{o.__=e({},o.__,t)}))),await o.__.importPromise,o.__.elementsPromise=(async()=>{await Promise.all(["element","errorElement","catchElement","pendingElement"].map((async t=>{const e=o.options[t];if(!o.__[t])if("function"==typeof e){const n=await e(o);o.__[t]=n}else o.__[t]=o.options[t]})))})(),o.__.dataPromise=Promise.resolve().then((async()=>{try{const e=await(null==o.options.loader?void 0:o.options.loader({params:o.params,search:o.routeSearch,signal:o.__.abortController.signal}));if(t!==o.__.latestId)return o.__.loaderPromise;o.routeLoaderData=A(o.routeLoaderData,e),P(o),o.error=void 0,o.status="success",o.updatedAt=Date.now()}catch(e){if(t!==o.__.latestId)return o.__.loaderPromise;o.error=e,o.status="error",o.updatedAt=Date.now()}}));try{if(await Promise.all([o.__.elementsPromise,o.__.dataPromise]),t!==o.__.latestId)return o.__.loaderPromise;o.__.pendingMinPromise&&(await o.__.pendingMinPromise,delete o.__.pendingMinPromise)}finally{if(t!==o.__.latestId)return o.__.loaderPromise;o.__.cancelPending(),o.isPending=!1,o.isFetching=!1,o.__.notify()}})();if(o.__.loaderPromise=a,await a,t!==o.__.latestId)return o.__.loaderPromise;delete o.__.loaderPromise})),await o.__.loadPromise}});return o}function P(t){t.parentMatch&&(t.loaderData=A(t.loaderData,e({},t.parentMatch.loaderData,t.routeLoaderData))),t.childMatches.length&&t.childMatches.forEach((t=>{P(t)}))}function b(t,e){const n=L(t,e);if(!e.to||n)return null!=n?n:{}}function w(t,e,n){return S(x(t).map((t=>{return"*"!==t.value||n?"param"===t.type?null!=(a=e[t.value.substring(1)])?a:"":t.value:"";var a})))}function R(t,e){return"function"==typeof t?t(e):t}function S(t){return I(t.filter(Boolean).join("/"))}function I(t){return t.replace(/\/{2,}/g,"/")}function M(t){return"/"===t?t:t.replace(/\/{1,}$/,"")}function L(t,e){var n;const a=x(t),o=x(""+(null!=(n=e.to)?n:"*")),r={};return(()=>{for(let t=0;t<Math.max(a.length,o.length);t++){const n=a[t],i=o[t],s=t===o.length-1,l=t===a.length-1;if(i){if("wildcard"===i.type)return!(null==n||!n.value)&&(r["*"]=S(a.slice(t).map((t=>t.value))),!0);if("pathname"===i.type){if("/"===i.value&&(null==n||!n.value))return!0;if(n)if(e.caseSensitive){if(i.value!==n.value)return!1}else if(i.value.toLowerCase()!==n.value.toLowerCase())return!1}if(!n)return!1;if("param"===i.type){if("/"===(null==n?void 0:n.value))return!1;n.value.startsWith(":")||(r[i.value.substring(1)]=n.value)}}if(s&&!l)return!!e.fuzzy}return!0})()?r:void 0}function x(t){if(!t)return[];const e=[];if("/"===(t=I(t)).slice(0,1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),!t)return e;const n=t.split("/").filter(Boolean);return e.push(...n.map((t=>t.startsWith("*")?{type:"wildcard",value:t}:":"===t.charAt(0)?{type:"param",value:t}:{type:"pathname",value:t}))),"/"===t.slice(-1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),e}function E(t,e,n){e=e.replace(new RegExp("^"+t),"/"),n=n.replace(new RegExp("^"+t),"/");let a=x(e);const o=x(n);o.forEach(((t,e)=>{if("/"===t.value)e?e===o.length-1&&a.push(t):a=[t];else if(".."===t.value){var n;a.length>1&&"/"===(null==(n=B(a))?void 0:n.value)&&a.pop(),a.pop()}else{if("."===t.value)return;a.push(t)}}));return I(S([t,...a.map((t=>t.value))]))}function A(t,e){if(t===e)return t;const n=Array.isArray(t)&&Array.isArray(e);if(n||k(t)&&k(e)){const a=n?t.length:Object.keys(t).length,o=n?e:Object.keys(e),r=o.length,i=n?[]:{};let s=0;for(let a=0;a<r;a++){const r=n?a:o[a];i[r]=A(t[r],e[r]),i[r]===t[r]&&s++}return a===r&&s===a?t:i}return e}function k(t){if(!C(t))return!1;const e=t.constructor;if(void 0===e)return!0;const n=e.prototype;return!!C(n)&&!!n.hasOwnProperty("isPrototypeOf")}function C(t){return"[object Object]"===Object.prototype.toString.call(t)}const T=D(JSON.parse),O=j(JSON.stringify);function D(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let n=function(t){for(var e,n,a={},o=t.split("&");e=o.shift();)void 0!==a[n=(e=e.split("=")).shift()]?a[n]=[].concat(a[n],m(e.shift())):a[n]=m(e.shift());return a}(e);for(let e in n){const a=n[e];if("string"==typeof a)try{n[e]=t(a)}catch(t){}}return n}}function j(t){return n=>{(n=e({},n))&&Object.keys(n).forEach((e=>{const a=n[e];if(void 0===a||void 0===a)delete n[e];else if(a&&"object"==typeof a&&null!==a)try{n[e]=t(a)}catch(t){}}));const a=function(t,e){var n,a,o,r="";for(n in t)if(void 0!==(o=t[n]))if(Array.isArray(o))for(a=0;a<o.length;a++)r&&(r+="&"),r+=encodeURIComponent(n)+"="+encodeURIComponent(o[a]);else r&&(r+="&"),r+=encodeURIComponent(n)+"="+encodeURIComponent(o);return(e||"")+r}(n).toString();return a?"?"+a:""}}function B(t){return t[t.length-1]}t.createBrowserHistory=i,t.createHashHistory=function(t){void 0===t&&(t={});var e=t.window,i=void 0===e?document.defaultView:e,s=i.history;function l(){var t=p(i.location.hash.substr(1)),e=t.pathname,n=void 0===e?"/":e,a=t.search,o=void 0===a?"":a,r=t.hash,l=void 0===r?"":r,c=s.state||{};return[c.idx,{pathname:n,search:o,hash:l,state:c.usr||null,key:c.key||"default"}]}var f=null;function m(){if(f)b.call(f),f=null;else{var t=a.Pop,e=l(),n=e[0],o=e[1];if(b.length){if(null!=n){var r=y-n;r&&(f={action:t,location:o,retry:function(){L(-1*r)}},L(r))}}else M(t)}}i.addEventListener(r,m),i.addEventListener("hashchange",(function(){d(l()[1])!==d(_)&&m()}));var v=a.Pop,g=l(),y=g[0],_=g[1],P=u(),b=u();function w(t){return function(){var t=document.querySelector("base"),e="";if(t&&t.getAttribute("href")){var n=i.location.href,a=n.indexOf("#");e=-1===a?n:n.slice(0,a)}return e}()+"#"+("string"==typeof t?t:d(t))}function R(t,e){return void 0===e&&(e=null),n({pathname:_.pathname,hash:"",search:""},"string"==typeof t?p(t):t,{state:e,key:h()})}function S(t,e){return[{usr:t.state,key:t.key,idx:e},w(t)]}function I(t,e,n){return!b.length||(b.call({action:t,location:e,retry:n}),!1)}function M(t){v=t;var e=l();y=e[0],_=e[1],P.call({action:v,location:_})}function L(t){s.go(t)}null==y&&(y=0,s.replaceState(n({},s.state,{idx:y}),""));var x={get action(){return v},get location(){return _},createHref:w,push:function t(e,n){var o=a.Push,r=R(e,n);if(I(o,r,(function(){t(e,n)}))){var l=S(r,y+1),c=l[0],u=l[1];try{s.pushState(c,"",u)}catch(t){i.location.assign(u)}M(o)}},replace:function t(e,n){var o=a.Replace,r=R(e,n);if(I(o,r,(function(){t(e,n)}))){var i=S(r,y),l=i[0],c=i[1];s.replaceState(l,"",c),M(o)}},go:L,back:function(){L(-1)},forward:function(){L(1)},listen:function(t){return P.push(t)},block:function(t){var e=b.push(t);return 1===b.length&&i.addEventListener(o,c),function(){e(),b.length||i.removeEventListener(o,c)}}};return x},t.createMemoryHistory=s,t.createRoute=y,t.createRouteConfig=function t(e,n,a,o,r){void 0===e&&(e={}),void 0===a&&(a=!0),a&&(e.path=v),o===v&&(o="");let i=a?v:e.path;i&&"/"!==i&&(i=function(t){return M(function(t){return"/"===t?t:t.replace(/^\/{1,}/,"")}(t))}(i));const s=i||e.id;let l=S([o,s]);i===v&&(i="/"),l!==v&&(l=S(["/",l]));const c=l===v?"/":M(S([r,i]));return{id:l,routeId:s,path:i,fullPath:c,options:e,children:n,addChildren:n=>t(e,n((e=>t(e,void 0,!1,l,c))),!1,o,r)}},t.createRouteMatch=_,t.createRouter=function(t){var n,a;const o=(null==t?void 0:t.history)||(g?i():s());let r={options:e({},t,{stringifySearch:null!=(n=null==t?void 0:t.stringifySearch)?n:O,parseSearch:null!=(a=null==t?void 0:t.parseSearch)?a:T}),listeners:[],basepath:"",routeTree:void 0,routesById:{},location:void 0,allRouteInfo:void 0,navigationPromise:Promise.resolve(),resolveNavigation:()=>{},preloadCache:{},state:{status:"idle",location:null,matches:[],actions:{},loaderData:{},lastUpdated:Date.now()},startedLoadingAt:Date.now(),subscribe:t=>(r.listeners.push(t),()=>{r.listeners=r.listeners.filter((e=>e!==t))}),getRoute:t=>r.routesById[t],notify:()=>{r.state=e({},r.state),r.listeners.forEach((t=>t()))},mount:()=>{const t=r.buildLocation({to:".",search:!0,hash:!0});return t.href!==r.location.href?r.commitLocation(t,!0):r.loadLocation()},update:t=>{Object.assign(r.options,t);const{basepath:e,routeConfig:n}=r.options;return r.basepath=I("/"+(null!=e?e:"")),n&&(r.routesById={},r.routeTree=r.buildRouteTree(n)),r},destroy:o.listen((t=>{r.loadLocation(r.parseLocation(t.location,r.location))})),buildRouteTree:t=>{const e=(t,n)=>t.map((t=>{const a=y(t,t.options,n,r);if(r.routesById[a.routeId])throw new Error;r.routesById[a.routeId]=a;const o=t.children;return a.childRoutes=null!=o&&o.length?e(o,a):void 0,a}));return e([t])[0]},parseLocation:(t,e)=>{var n;const a=r.options.parseSearch(t.search);return{pathname:t.pathname,searchStr:t.search,search:A(null==e?void 0:e.search,a),hash:null!=(n=t.hash.split("#").reverse()[0])?n:"",href:""+t.pathname+t.search+t.hash,state:t.state,key:t.key}},buildLocation:function(t){var e,n,a,o,i,s,l,c,u;void 0===t&&(t={});const h=t.fromCurrent?r.location.pathname:null!=(e=t.from)?e:r.location.pathname;let d=E(null!=(n=r.basepath)?n:"/",h,""+(null!=(a=t.to)?a:"."));const p=r.matchRoutes(r.location.pathname,{strictParseParams:!0}),f=r.matchRoutes(d),m=null==(o=B(p))?void 0:o.params;let v=!0===(null==(i=t.params)||i)?m:R(t.params,m);v&&f.map((t=>t.options.stringifyParams)).filter(Boolean).forEach((t=>{Object.assign(v,t(v))})),d=w(d,null!=v?v:{});const g=null!=(s=t.__preSearchFilters)&&s.length?t.__preSearchFilters.reduce(((t,e)=>e(t)),r.location.search):r.location.search,y=!0===t.search?g:t.search?null!=(l=R(t.search,g))?l:{}:null!=(c=t.__preSearchFilters)&&c.length?g:{},_=null!=(u=t.__postSearchFilters)&&u.length?t.__postSearchFilters.reduce(((t,e)=>e(t)),y):y,P=A(r.location.search,_),b=r.options.stringifySearch(P);let S=!0===t.hash?r.location.hash:R(t.hash,r.location.hash);return S=S?"#"+S:"",{pathname:d,search:P,searchStr:b,state:r.location.state,hash:S,href:""+d+b+S,key:t.key}},commitLocation:(t,e)=>{const n=""+Date.now()+Math.random();r.navigateTimeout&&clearTimeout(r.navigateTimeout);let a="replace";e||(a="push");return r.parseLocation(o.location).href===t.href&&!t.key&&(a="replace"),"replace"===a?o.replace({pathname:t.pathname,hash:t.hash,search:t.searchStr},{id:n}):o.push({pathname:t.pathname,hash:t.hash,search:t.searchStr},{id:n}),r.navigationPromise=new Promise((t=>{const e=r.resolveNavigation;r.resolveNavigation=()=>{e(),t()}})),r.navigationPromise},buildNext:t=>{const n=r.buildLocation(t),a=r.matchRoutes(n.pathname),o=a.map((t=>{var e;return null!=(e=t.options.preSearchFilters)?e:[]})).flat().filter(Boolean),i=a.map((t=>{var e;return null!=(e=t.options.postSearchFilters)?e:[]})).flat().filter(Boolean);return r.buildLocation(e({},t,{__preSearchFilters:o,__postSearchFilters:i}))},cancelMatches:()=>{var t,e;[...r.state.matches,...null!=(t=null==(e=r.state.pending)?void 0:e.matches)?t:[]].forEach((t=>{t.cancel()}))},loadLocation:async t=>{const n=Math.random();r.startedLoadingAt=n,t&&(r.location=t),r.cancelMatches();const a=r.matchRoutes(location.pathname,{strictParseParams:!0});a.forEach(((t,e)=>{const n=a[e-1],o=a[e+1];n&&t.__.setParentMatch(n),o&&t.__.addChildMatch(o)})),r.state=e({},r.state,{pending:{matches:a,location:r.location}}),r.notify();const o=await r.loadMatches(a,{withPending:!0});if(r.startedLoadingAt!==n)return r.navigationPromise;const i=r.state.matches;i.filter((t=>!o.find((e=>e.matchId===t.matchId)))).forEach((t=>{null==t.__.onExit||t.__.onExit({params:t.params,search:t.routeSearch})})),i.filter((t=>o.find((e=>e.matchId===t.matchId)))).forEach((t=>{null==t.options.onTransition||t.options.onTransition({params:t.params,search:t.routeSearch})})),o.filter((t=>!i.find((e=>e.matchId===t.matchId)))).forEach((t=>{t.__.onExit=null==t.options.onMatch?void 0:t.options.onMatch({params:t.params,search:t.search})})),r.state=e({},r.state,{location:r.location,matches:o,pending:void 0}),o.some((t=>"loading"===t.status))&&(r.notify(),await Promise.all(o.map((t=>t.__.loaderPromise||Promise.resolve())))),r.startedLoadingAt===n&&(r.notify(),r.resolveNavigation())},cleanPreloadCache:()=>{const t=Date.now();Object.keys(r.preloadCache).forEach((e=>{const n=r.preloadCache[e];"loading"!==n.match.status&&(n.match.updatedAt&&n.match.updatedAt+n.maxAge>t||delete r.preloadCache[e])}))},loadRoute:async function(t,e){void 0===t&&(t=r.location);const n=r.buildNext(t),a=r.matchRoutes(n.pathname,{strictParseParams:!0});return await r.loadMatches(a,{preload:!0,maxAge:e.maxAge}),a},matchRoutes:(t,n)=>{var a,o;r.cleanPreloadCache();const i=[];if(!r.routeTree)return i;const s=[...r.state.matches,...null!=(a=null==(o=r.state.pending)?void 0:o.matches)?a:[]],l=async a=>{var o,c,u;const h=B(i);let d=null!=(o=null==h?void 0:h.params)?o:{};const p=null!=(c=null==r.options.filterRoutes?void 0:r.options.filterRoutes(a))?c:a;let f=[];const m=(a,o)=>(o.some((o=>{var i,s,l;if(!o.routePath&&null!=(i=o.childRoutes)&&i.length)return m([...f,o],o.childRoutes);const c=!!("/"!==o.routePath||null!=(s=o.childRoutes)&&s.length),u=b(t,{to:o.fullPath,fuzzy:c,caseSensitive:null!=(l=o.options.caseSensitive)?l:r.options.caseSensitive});if(u){let t;try{var h;t=null!=(h=null==o.options.parseParams?void 0:o.options.parseParams(u))?h:u}catch(t){if(null!=n&&n.strictParseParams)throw t}d=e({},d,t)}return u&&(f=[...a,o]),!!f.length})),!!f.length);if(m([],p),!f.length)return;f.forEach((e=>{var n;const a=w(e.routePath,d),o=w(e.routeId,d,!0),l=s.find((t=>t.matchId===o))||(null==(n=r.preloadCache[o])?void 0:n.match)||_(r,e,{matchId:o,params:d,pathname:S([t,a])});i.push(l)}));const v=B(f);null!=(u=v.childRoutes)&&u.length&&l(v.childRoutes)};return l([r.routeTree]),i},loadMatches:async(t,e)=>{const n=t.map((async t=>{t.__.validate(),null!=e&&e.preload&&(r.preloadCache[t.matchId]={maxAge:null==e?void 0:e.maxAge,match:t}),("success"===t.status&&t.isInvalid||"error"===t.status||"idle"===t.status)&&t.load(),null!=e&&e.withPending&&t.__.startPending(),await t.__.loadPromise}));return r.notify(),await Promise.all(n),t},invalidateRoute:t=>{var e,n;const a=r.buildNext(t),o=r.matchRoutes(a.pathname).map((t=>t.matchId));[...r.state.matches,...null!=(e=null==(n=r.state.pending)?void 0:n.matches)?e:[]].forEach((t=>{o.includes(t.matchId)&&(t.isInvalid=!0)}))},reload:()=>r._navigate({fromCurrent:!0,replace:!0,search:!0}),resolvePath:(t,e)=>E(r.basepath,t,I(e)),matchRoute:(t,n)=>{var a;t=e({},t,{to:t.to?r.resolvePath(null!=(a=t.from)?a:"",t.to):void 0});const o=r.buildNext(t);var i;return null!=n&&n.pending?!(null==(i=r.state.pending)||!i.location)&&!!b(r.state.pending.location.pathname,e({},n,{to:o.pathname})):!!b(r.state.location.pathname,e({},n,{to:o.pathname}))},_navigate:t=>{const e=r.buildNext(t);return r.commitLocation(e,t.replace)},navigate:async t=>{let{from:e,to:n=".",search:a,hash:o,replace:i}=t;const s=String(n),l=String(e);let c;try{new URL(""+s),c=!0}catch(t){}return f(!c),r._navigate({from:l,to:s,search:a,hash:o})},buildLink:t=>{var e,n,a;let{from:o,to:i=".",search:s,params:l,hash:c,target:u,replace:h,activeOptions:d,preload:p,preloadMaxAge:f,preloadDelay:m,disabled:v}=t;try{return new URL(""+i),{type:"external",href:i}}catch(t){}const g={from:o,to:i,search:s,params:l,hash:c,replace:h},y=r.buildNext(g);p=null!=(e=p)?e:r.options.defaultLinkPreload;const _=null!=(n=null!=f?f:r.options.defaultLinkPreloadMaxAge)?n:2e3,P=null!=(a=null!=m?m:r.options.defaultLinkPreloadDelay)?a:50,b=r.state.location.pathname===y.pathname,w=r.state.location.pathname.split("/"),R=y.pathname.split("/").every(((t,e)=>t===w[e])),S=r.state.location.hash===y.hash,I=null!=d&&d.exact?b:R,M=null==d||!d.includeHash||S;return{type:"internal",next:y,handleFocus:t=>{p&&_>0&&r.loadRoute(g,{maxAge:_})},handleClick:t=>{v||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||u&&"_self"!==u||0!==t.button||(t.preventDefault(),!b||s||c||r.invalidateRoute(g),r._navigate(g))},handleEnter:t=>{const e=t.target||{};if(p&&_>0){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,r.loadRoute(g,{maxAge:_})}),P)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},isActive:I&&M,disabled:v}},__experimental__createSnapshot:()=>e({},r.state,{matches:r.state.matches.map((t=>{let{routeLoaderData:e,matchId:n}=t;return{matchId:n,loaderData:e}}))})};return r.location=r.parseLocation(o.location),r.state.location=r.location,r.update(t),null==r.options.createRouter||r.options.createRouter(r),r},t.defaultParseSearch=T,t.defaultStringifySearch=O,t.functionalUpdate=R,t.invariant=f,t.last=B,t.matchByPath=L,t.matchPathname=b,t.parsePathname=x,t.parseSearchWith=D,t.replaceEqualDeep=A,t.resolvePath=E,t.rootRouteId=v,t.stringifySearchWith=j,t.warning=function(t,e){if(t){"undefined"!=typeof console&&console.warn(e);try{throw new Error(e)}catch(t){}}return!0},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
11
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).RouterCore={})}(this,(function(t){"use strict";function e(){return e=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},e.apply(this,arguments)}function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n.apply(this,arguments)}var a;!function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"}(a||(a={}));var o="beforeunload",r="popstate";function i(t){void 0===t&&(t={});var e=t.window,i=void 0===e?document.defaultView:e,s=i.history;function l(){var t=i.location,e=t.pathname,n=t.search,a=t.hash,o=s.state||{};return[o.idx,{pathname:e,search:n,hash:a,state:o.usr||null,key:o.key||"default"}]}var f=null;i.addEventListener(r,(function(){if(f)P.call(f),f=null;else{var t=a.Pop,e=l(),n=e[0],o=e[1];if(P.length){if(null!=n){var r=g-n;r&&(f={action:t,location:o,retry:function(){A(-1*r)}},A(r))}}else I(t)}}));var m=a.Pop,v=l(),g=v[0],y=v[1],_=u(),P=u();function b(t){return"string"==typeof t?t:d(t)}function w(t,e){return void 0===e&&(e=null),n({pathname:y.pathname,hash:"",search:""},"string"==typeof t?p(t):t,{state:e,key:h()})}function R(t,e){return[{usr:t.state,key:t.key,idx:e},b(t)]}function S(t,e,n){return!P.length||(P.call({action:t,location:e,retry:n}),!1)}function I(t){m=t;var e=l();g=e[0],y=e[1],_.call({action:m,location:y})}function A(t){s.go(t)}null==g&&(g=0,s.replaceState(n({},s.state,{idx:g}),""));var L={get action(){return m},get location(){return y},createHref:b,push:function t(e,n){var o=a.Push,r=w(e,n);if(S(o,r,(function(){t(e,n)}))){var l=R(r,g+1),c=l[0],u=l[1];try{s.pushState(c,"",u)}catch(t){i.location.assign(u)}I(o)}},replace:function t(e,n){var o=a.Replace,r=w(e,n);if(S(o,r,(function(){t(e,n)}))){var i=R(r,g),l=i[0],c=i[1];s.replaceState(l,"",c),I(o)}},go:A,back:function(){A(-1)},forward:function(){A(1)},listen:function(t){return _.push(t)},block:function(t){var e=P.push(t);return 1===P.length&&i.addEventListener(o,c),function(){e(),P.length||i.removeEventListener(o,c)}}};return L}function s(t){void 0===t&&(t={});var e=t,o=e.initialEntries,r=void 0===o?["/"]:o,i=e.initialIndex,s=r.map((function(t){return n({pathname:"/",search:"",hash:"",state:null,key:h()},"string"==typeof t?p(t):t)})),c=l(null==i?s.length-1:i,0,s.length-1),f=a.Pop,m=s[c],v=u(),g=u();function y(t,e){return void 0===e&&(e=null),n({pathname:m.pathname,search:"",hash:""},"string"==typeof t?p(t):t,{state:e,key:h()})}function _(t,e,n){return!g.length||(g.call({action:t,location:e,retry:n}),!1)}function P(t,e){f=t,m=e,v.call({action:f,location:m})}function b(t){var e=l(c+t,0,s.length-1),n=a.Pop,o=s[e];_(n,o,(function(){b(t)}))&&(c=e,P(n,o))}var w={get index(){return c},get action(){return f},get location(){return m},createHref:function(t){return"string"==typeof t?t:d(t)},push:function t(e,n){var o=a.Push,r=y(e,n);_(o,r,(function(){t(e,n)}))&&(c+=1,s.splice(c,s.length,r),P(o,r))},replace:function t(e,n){var o=a.Replace,r=y(e,n);_(o,r,(function(){t(e,n)}))&&(s[c]=r,P(o,r))},go:b,back:function(){b(-1)},forward:function(){b(1)},listen:function(t){return v.push(t)},block:function(t){return g.push(t)}};return w}function l(t,e,n){return Math.min(Math.max(t,e),n)}function c(t){t.preventDefault(),t.returnValue=""}function u(){var t=[];return{get length(){return t.length},push:function(e){return t.push(e),function(){t=t.filter((function(t){return t!==e}))}},call:function(e){t.forEach((function(t){return t&&t(e)}))}}}function h(){return Math.random().toString(36).substr(2,8)}function d(t){var e=t.pathname,n=void 0===e?"/":e,a=t.search,o=void 0===a?"":a,r=t.hash,i=void 0===r?"":r;return o&&"?"!==o&&(n+="?"===o.charAt(0)?o:"?"+o),i&&"#"!==i&&(n+="#"===i.charAt(0)?i:"#"+i),n}function p(t){var e={};if(t){var n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));var a=t.indexOf("?");a>=0&&(e.search=t.substr(a),t=t.substr(0,a)),t&&(e.pathname=t)}return e}function f(t,e){if(!t)throw new Error("Invariant failed")}function m(t){if(!t)return"";var e=decodeURIComponent(t);return"false"!==e&&("true"===e||(0*+e==0?+e:e))}const v="__root__",g=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement);function y(t,n,a,o){const{id:r,routeId:i,path:s,fullPath:l}=t,c=o.state.actions[r]||(o.state.actions[r]={pending:[],submit:async(t,n)=>{var a;if(!u)return;const r=null==(a=null==n?void 0:n.invalidate)||a,i={submittedAt:Date.now(),status:"pending",submission:t};c.current=i,c.latest=i,c.pending.push(i),o.state=e({},o.state,{currentAction:i,latestAction:i}),o.notify();try{const e=await(null==u.options.action?void 0:u.options.action(t));return i.data=e,r&&(o.invalidateRoute({to:".",fromCurrent:!0}),await o.reload()),i.status="success",e}catch(t){console.error(t),i.error=t,i.status="error"}finally{c.pending=c.pending.filter((t=>t!==i)),o.removeActionQueue.push({action:c,actionState:i}),o.notify()}}},o.state.actions[r]);let u={routeId:r,routeRouteId:i,routePath:s,fullPath:l,options:n,router:o,childRoutes:void 0,parentRoute:a,action:c,buildLink:t=>o.buildLink(e({},t,{from:l})),navigate:t=>o.navigate(e({},t,{from:l})),matchRoute:(t,n)=>o.matchRoute(e({},t,{from:l}),n)};return null==o.options.createRoute||o.options.createRoute({router:o,route:u}),u}function _(t,n,a){const o=e({},n,a,{router:t,routeSearch:{},search:{},childMatches:[],status:"idle",routeLoaderData:{},loaderData:{},isPending:!1,isFetching:!1,isInvalid:!1,__:{abortController:new AbortController,latestId:"",resolve:()=>{},notify:()=>{o.__.resolve(),o.router.notify()},startPending:()=>{var e,n;const a=null!=(e=o.options.pendingMs)?e:t.options.defaultPendingMs,r=null!=(n=o.options.pendingMinMs)?n:t.options.defaultPendingMinMs;o.__.pendingTimeout||"loading"!==o.status||void 0===a||(o.__.pendingTimeout=setTimeout((()=>{o.isPending=!0,o.__.resolve(),void 0!==r&&(o.__.pendingMinPromise=new Promise((t=>o.__.pendingMinTimeout=setTimeout(t,r))))}),a))},cancelPending:()=>{o.isPending=!1,clearTimeout(o.__.pendingTimeout),clearTimeout(o.__.pendingMinTimeout),delete o.__.pendingMinPromise},validate:()=>{var n,a;const r=null!=(n=null==(a=o.parentMatch)?void 0:a.search)?n:t.location.search;try{const t=o.routeSearch;let n=E(t,null==o.options.validateSearch?void 0:o.options.validateSearch(r));t!==n&&(o.isInvalid=!0),o.routeSearch=n,o.search=E(r,e({},r,n))}catch(t){console.error(t);const e=new Error("Invalid search params found",{cause:t});return e.code="INVALID_SEARCH_PARAMS",o.status="error",void(o.error=e)}}},cancel:()=>{var t;null==(t=o.__.abortController)||t.abort(),o.__.cancelPending()},invalidate:()=>{o.isInvalid=!0},load:async()=>{const t=""+Date.now()+Math.random();return o.__.latestId=t,"error"!==o.status&&"idle"!==o.status||(o.status="loading"),o.isInvalid=!1,o.__.loadPromise=new Promise((async n=>{o.isFetching=!0,o.__.resolve=n;const a=(async()=>{const n=o.options.import;n&&(o.__.importPromise=n({params:o.params}).then((t=>{o.__=e({},o.__,t)}))),await o.__.importPromise,o.__.elementsPromise=(async()=>{await Promise.all(["element","errorElement","catchElement","pendingElement"].map((async t=>{const e=o.options[t];if(!o.__[t])if("function"==typeof e){const n=await e(o);o.__[t]=n}else o.__[t]=o.options[t]})))})(),o.__.dataPromise=Promise.resolve().then((async()=>{try{const e=await(null==o.options.loader?void 0:o.options.loader({params:o.params,search:o.routeSearch,signal:o.__.abortController.signal}));if(t!==o.__.latestId)return o.__.loaderPromise;o.routeLoaderData=E(o.routeLoaderData,e),o.error=void 0,o.status="success",o.updatedAt=Date.now()}catch(e){if(t!==o.__.latestId)return o.__.loaderPromise;o.error=e,o.status="error",o.updatedAt=Date.now()}}));try{if(await Promise.all([o.__.elementsPromise,o.__.dataPromise]),t!==o.__.latestId)return o.__.loaderPromise;o.__.pendingMinPromise&&(await o.__.pendingMinPromise,delete o.__.pendingMinPromise)}finally{if(t!==o.__.latestId)return o.__.loaderPromise;o.__.cancelPending(),o.isPending=!1,o.isFetching=!1,o.__.notify()}})();if(o.__.loaderPromise=a,await a,t!==o.__.latestId)return o.__.loaderPromise;delete o.__.loaderPromise})),await o.__.loadPromise}});return o}function P(t,e){const n=A(t,e);if(!e.to||n)return null!=n?n:{}}function b(t,e,n){return R(L(t).map((t=>{return"*"!==t.value||n?"param"===t.type?null!=(a=e[t.value.substring(1)])?a:"":t.value:"";var a})))}function w(t,e){return"function"==typeof t?t(e):t}function R(t){return S(t.filter(Boolean).join("/"))}function S(t){return t.replace(/\/{2,}/g,"/")}function I(t){return"/"===t?t:t.replace(/\/{1,}$/,"")}function A(t,e){var n;const a=L(t),o=L(""+(null!=(n=e.to)?n:"*")),r={};return(()=>{for(let t=0;t<Math.max(a.length,o.length);t++){const n=a[t],i=o[t],s=t===o.length-1,l=t===a.length-1;if(i){if("wildcard"===i.type)return!(null==n||!n.value)&&(r["*"]=R(a.slice(t).map((t=>t.value))),!0);if("pathname"===i.type){if("/"===i.value&&(null==n||!n.value))return!0;if(n)if(e.caseSensitive){if(i.value!==n.value)return!1}else if(i.value.toLowerCase()!==n.value.toLowerCase())return!1}if(!n)return!1;if("param"===i.type){if("/"===(null==n?void 0:n.value))return!1;n.value.startsWith(":")||(r[i.value.substring(1)]=n.value)}}if(s&&!l)return!!e.fuzzy}return!0})()?r:void 0}function L(t){if(!t)return[];const e=[];if("/"===(t=S(t)).slice(0,1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),!t)return e;const n=t.split("/").filter(Boolean);return e.push(...n.map((t=>t.startsWith("*")?{type:"wildcard",value:t}:":"===t.charAt(0)?{type:"param",value:t}:{type:"pathname",value:t}))),"/"===t.slice(-1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),e}function x(t,e,n){e=e.replace(new RegExp("^"+t),"/"),n=n.replace(new RegExp("^"+t),"/");let a=L(e);const o=L(n);o.forEach(((t,e)=>{if("/"===t.value)e?e===o.length-1&&a.push(t):a=[t];else if(".."===t.value){var n;a.length>1&&"/"===(null==(n=j(a))?void 0:n.value)&&a.pop(),a.pop()}else{if("."===t.value)return;a.push(t)}}));return S(R([t,...a.map((t=>t.value))]))}function E(t,e){if(t===e)return t;const n=Array.isArray(t)&&Array.isArray(e);if(n||M(t)&&M(e)){const a=n?t.length:Object.keys(t).length,o=n?e:Object.keys(e),r=o.length,i=n?[]:{};let s=0;for(let a=0;a<r;a++){const r=n?a:o[a];i[r]=E(t[r],e[r]),i[r]===t[r]&&s++}return a===r&&s===a?t:i}return e}function M(t){if(!k(t))return!1;const e=t.constructor;if(void 0===e)return!0;const n=e.prototype;return!!k(n)&&!!n.hasOwnProperty("isPrototypeOf")}function k(t){return"[object Object]"===Object.prototype.toString.call(t)}const T=O(JSON.parse),C=D(JSON.stringify);function O(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let n=function(t){for(var e,n,a={},o=t.split("&");e=o.shift();)void 0!==a[n=(e=e.split("=")).shift()]?a[n]=[].concat(a[n],m(e.shift())):a[n]=m(e.shift());return a}(e);for(let e in n){const a=n[e];if("string"==typeof a)try{n[e]=t(a)}catch(t){}}return n}}function D(t){return n=>{(n=e({},n))&&Object.keys(n).forEach((e=>{const a=n[e];if(void 0===a||void 0===a)delete n[e];else if(a&&"object"==typeof a&&null!==a)try{n[e]=t(a)}catch(t){}}));const a=function(t,e){var n,a,o,r="";for(n in t)if(void 0!==(o=t[n]))if(Array.isArray(o))for(a=0;a<o.length;a++)r&&(r+="&"),r+=encodeURIComponent(n)+"="+encodeURIComponent(o[a]);else r&&(r+="&"),r+=encodeURIComponent(n)+"="+encodeURIComponent(o);return(e||"")+r}(n).toString();return a?"?"+a:""}}function j(t){return t[t.length-1]}t.createBrowserHistory=i,t.createHashHistory=function(t){void 0===t&&(t={});var e=t.window,i=void 0===e?document.defaultView:e,s=i.history;function l(){var t=p(i.location.hash.substr(1)),e=t.pathname,n=void 0===e?"/":e,a=t.search,o=void 0===a?"":a,r=t.hash,l=void 0===r?"":r,c=s.state||{};return[c.idx,{pathname:n,search:o,hash:l,state:c.usr||null,key:c.key||"default"}]}var f=null;function m(){if(f)b.call(f),f=null;else{var t=a.Pop,e=l(),n=e[0],o=e[1];if(b.length){if(null!=n){var r=y-n;r&&(f={action:t,location:o,retry:function(){L(-1*r)}},L(r))}}else A(t)}}i.addEventListener(r,m),i.addEventListener("hashchange",(function(){d(l()[1])!==d(_)&&m()}));var v=a.Pop,g=l(),y=g[0],_=g[1],P=u(),b=u();function w(t){return function(){var t=document.querySelector("base"),e="";if(t&&t.getAttribute("href")){var n=i.location.href,a=n.indexOf("#");e=-1===a?n:n.slice(0,a)}return e}()+"#"+("string"==typeof t?t:d(t))}function R(t,e){return void 0===e&&(e=null),n({pathname:_.pathname,hash:"",search:""},"string"==typeof t?p(t):t,{state:e,key:h()})}function S(t,e){return[{usr:t.state,key:t.key,idx:e},w(t)]}function I(t,e,n){return!b.length||(b.call({action:t,location:e,retry:n}),!1)}function A(t){v=t;var e=l();y=e[0],_=e[1],P.call({action:v,location:_})}function L(t){s.go(t)}null==y&&(y=0,s.replaceState(n({},s.state,{idx:y}),""));var x={get action(){return v},get location(){return _},createHref:w,push:function t(e,n){var o=a.Push,r=R(e,n);if(I(o,r,(function(){t(e,n)}))){var l=S(r,y+1),c=l[0],u=l[1];try{s.pushState(c,"",u)}catch(t){i.location.assign(u)}A(o)}},replace:function t(e,n){var o=a.Replace,r=R(e,n);if(I(o,r,(function(){t(e,n)}))){var i=S(r,y),l=i[0],c=i[1];s.replaceState(l,"",c),A(o)}},go:L,back:function(){L(-1)},forward:function(){L(1)},listen:function(t){return P.push(t)},block:function(t){var e=b.push(t);return 1===b.length&&i.addEventListener(o,c),function(){e(),b.length||i.removeEventListener(o,c)}}};return x},t.createMemoryHistory=s,t.createRoute=y,t.createRouteConfig=function t(e,n,a,o,r){void 0===e&&(e={}),void 0===a&&(a=!0),a&&(e.path=v),o===v&&(o="");let i=a?v:e.path;i&&"/"!==i&&(i=function(t){return I(function(t){return"/"===t?t:t.replace(/^\/{1,}/,"")}(t))}(i));const s=i||e.id;let l=R([o,s]);i===v&&(i="/"),l!==v&&(l=R(["/",l]));const c=l===v?"/":I(R([r,i]));return{id:l,routeId:s,path:i,fullPath:c,options:e,children:n,addChildren:n=>t(e,n((e=>t(e,void 0,!1,l,c))),!1,o,r)}},t.createRouteMatch=_,t.createRouter=function(t){var n,a;const o=(null==t?void 0:t.history)||(g?i():s());let r={options:e({},t,{stringifySearch:null!=(n=null==t?void 0:t.stringifySearch)?n:C,parseSearch:null!=(a=null==t?void 0:t.parseSearch)?a:T}),listeners:[],removeActionQueue:[],basepath:"",routeTree:void 0,routesById:{},location:void 0,allRouteInfo:void 0,navigationPromise:Promise.resolve(),resolveNavigation:()=>{},preloadCache:{},state:{status:"idle",location:null,matches:[],actions:{},loaderData:{},lastUpdated:Date.now()},startedLoadingAt:Date.now(),subscribe:t=>(r.listeners.push(t),()=>{r.listeners=r.listeners.filter((e=>e!==t))}),getRoute:t=>r.routesById[t],notify:()=>{r.state=e({},r.state),r.listeners.forEach((t=>t()))},mount:()=>{const t=r.buildLocation({to:".",search:!0,hash:!0});return t.href!==r.location.href?r.commitLocation(t,!0):r.loadLocation()},update:t=>{Object.assign(r.options,t);const{basepath:e,routeConfig:n}=r.options;return r.basepath=S("/"+(null!=e?e:"")),n&&(r.routesById={},r.routeTree=r.buildRouteTree(n)),r},destroy:o.listen((t=>{r.loadLocation(r.parseLocation(t.location,r.location))})),buildRouteTree:t=>{const e=(t,n)=>t.map((t=>{const a=y(t,t.options,n,r);if(r.routesById[a.routeId])throw new Error;r.routesById[a.routeId]=a;const o=t.children;return a.childRoutes=null!=o&&o.length?e(o,a):void 0,a}));return e([t])[0]},parseLocation:(t,e)=>{var n;const a=r.options.parseSearch(t.search);return{pathname:t.pathname,searchStr:t.search,search:E(null==e?void 0:e.search,a),hash:null!=(n=t.hash.split("#").reverse()[0])?n:"",href:""+t.pathname+t.search+t.hash,state:t.state,key:t.key}},buildLocation:function(t){var n,a,o,i,s,l,c,u,h;void 0===t&&(t={});const d=t.fromCurrent?r.location.pathname:null!=(n=t.from)?n:r.location.pathname;let p=x(null!=(a=r.basepath)?a:"/",d,""+(null!=(o=t.to)?o:"."));const f=r.matchRoutes(r.location.pathname,{strictParseParams:!0}),m=r.matchRoutes(p),v=e({},null==(i=j(f))?void 0:i.params);let g=!0===(null==(s=t.params)||s)?v:w(t.params,v);g&&m.map((t=>t.options.stringifyParams)).filter(Boolean).forEach((t=>{Object.assign({},g,t(g))})),p=b(p,null!=g?g:{});const y=null!=(l=t.__preSearchFilters)&&l.length?t.__preSearchFilters.reduce(((t,e)=>e(t)),r.location.search):r.location.search,_=!0===t.search?y:t.search?null!=(c=w(t.search,y))?c:{}:null!=(u=t.__preSearchFilters)&&u.length?y:{},P=null!=(h=t.__postSearchFilters)&&h.length?t.__postSearchFilters.reduce(((t,e)=>e(t)),_):_,R=E(r.location.search,P),S=r.options.stringifySearch(R);let I=!0===t.hash?r.location.hash:w(t.hash,r.location.hash);return I=I?"#"+I:"",{pathname:p,search:R,searchStr:S,state:r.location.state,hash:I,href:""+p+S+I,key:t.key}},commitLocation:(t,e)=>{const n=""+Date.now()+Math.random();r.navigateTimeout&&clearTimeout(r.navigateTimeout);let a="replace";e||(a="push");return r.parseLocation(o.location).href===t.href&&!t.key&&(a="replace"),"replace"===a?o.replace({pathname:t.pathname,hash:t.hash,search:t.searchStr},{id:n}):o.push({pathname:t.pathname,hash:t.hash,search:t.searchStr},{id:n}),r.navigationPromise=new Promise((t=>{const e=r.resolveNavigation;r.resolveNavigation=()=>{e(),t()}})),r.navigationPromise},buildNext:t=>{const n=r.buildLocation(t),a=r.matchRoutes(n.pathname),o=a.map((t=>{var e;return null!=(e=t.options.preSearchFilters)?e:[]})).flat().filter(Boolean),i=a.map((t=>{var e;return null!=(e=t.options.postSearchFilters)?e:[]})).flat().filter(Boolean);return r.buildLocation(e({},t,{__preSearchFilters:o,__postSearchFilters:i}))},cancelMatches:()=>{var t,e;[...r.state.matches,...null!=(t=null==(e=r.state.pending)?void 0:e.matches)?t:[]].forEach((t=>{t.cancel()}))},loadLocation:async t=>{const n=Math.random();r.startedLoadingAt=n,t&&(r.location=t),r.removeActionQueue.forEach((t=>{let{action:e,actionState:n}=t;r.state.currentAction===n&&(r.state.currentAction=void 0),e.current===n&&(e.current=void 0)})),r.removeActionQueue=[],r.cancelMatches();const a=r.matchRoutes(location.pathname,{strictParseParams:!0});r.state=e({},r.state,{pending:{matches:a,location:r.location}}),r.notify();const o=await r.loadMatches(a,{withPending:!0});if(r.startedLoadingAt!==n)return r.navigationPromise;const i=r.state.matches;i.filter((t=>!o.find((e=>e.matchId===t.matchId)))).forEach((t=>{null==t.__.onExit||t.__.onExit({params:t.params,search:t.routeSearch})})),i.filter((t=>o.find((e=>e.matchId===t.matchId)))).forEach((t=>{null==t.options.onTransition||t.options.onTransition({params:t.params,search:t.routeSearch})})),o.filter((t=>!i.find((e=>e.matchId===t.matchId)))).forEach((t=>{t.__.onExit=null==t.options.onMatch?void 0:t.options.onMatch({params:t.params,search:t.search})})),r.state=e({},r.state,{location:r.location,matches:o,pending:void 0}),o.some((t=>"loading"===t.status))&&(r.notify(),await Promise.all(o.map((t=>t.__.loaderPromise||Promise.resolve())))),r.startedLoadingAt===n&&(r.notify(),r.resolveNavigation())},cleanPreloadCache:()=>{const t=Date.now();Object.keys(r.preloadCache).forEach((e=>{const n=r.preloadCache[e];"loading"!==n.match.status&&(n.match.updatedAt&&n.match.updatedAt+n.maxAge>t||delete r.preloadCache[e])}))},loadRoute:async function(t,e){void 0===t&&(t=r.location);const n=r.buildNext(t),a=r.matchRoutes(n.pathname,{strictParseParams:!0});return await r.loadMatches(a,{preload:!0,maxAge:e.maxAge}),a},matchRoutes:(t,n)=>{var a,o;r.cleanPreloadCache();const i=[];if(!r.routeTree)return i;const s=[...r.state.matches,...null!=(a=null==(o=r.state.pending)?void 0:o.matches)?a:[]],l=async a=>{var o,c,u;const h=j(i);let d=null!=(o=null==h?void 0:h.params)?o:{};const p=null!=(c=null==r.options.filterRoutes?void 0:r.options.filterRoutes(a))?c:a;let f=[];const m=(a,o)=>(o.some((o=>{var i,s,l;if(!o.routePath&&null!=(i=o.childRoutes)&&i.length)return m([...f,o],o.childRoutes);const c=!!("/"!==o.routePath||null!=(s=o.childRoutes)&&s.length),u=P(t,{to:o.fullPath,fuzzy:c,caseSensitive:null!=(l=o.options.caseSensitive)?l:r.options.caseSensitive});if(u){let t;try{var h;t=null!=(h=null==o.options.parseParams?void 0:o.options.parseParams(u))?h:u}catch(t){if(null!=n&&n.strictParseParams)throw t}d=e({},d,t)}return u&&(f=[...a,o]),!!f.length})),!!f.length);if(m([],p),!f.length)return;f.forEach((e=>{var n;const a=b(e.routePath,d),o=b(e.routeId,d,!0),l=s.find((t=>t.matchId===o))||(null==(n=r.preloadCache[o])?void 0:n.match)||_(r,e,{matchId:o,params:d,pathname:R([t,a])});i.push(l)}));const v=j(f);null!=(u=v.childRoutes)&&u.length&&l(v.childRoutes)};return l([r.routeTree]),function(t){t.forEach(((n,a)=>{const o=t[a-1];o&&(n.loaderData=E(n.loaderData,e({},o.loaderData,n.routeLoaderData)))}))}(i),i},loadMatches:async(t,e)=>{const n=t.map((async t=>{t.__.validate(),null!=e&&e.preload&&(r.preloadCache[t.matchId]={maxAge:null==e?void 0:e.maxAge,match:t}),("success"===t.status&&t.isInvalid||"error"===t.status||"idle"===t.status)&&t.load(),null!=e&&e.withPending&&t.__.startPending(),await t.__.loadPromise}));return r.notify(),await Promise.all(n),t},invalidateRoute:t=>{var e,n;const a=r.buildNext(t),o=r.matchRoutes(a.pathname).map((t=>t.matchId));[...r.state.matches,...null!=(e=null==(n=r.state.pending)?void 0:n.matches)?e:[]].forEach((t=>{o.includes(t.matchId)&&t.invalidate()}))},reload:()=>r._navigate({fromCurrent:!0,replace:!0,search:!0}),resolvePath:(t,e)=>x(r.basepath,t,S(e)),matchRoute:(t,n)=>{var a;t=e({},t,{to:t.to?r.resolvePath(null!=(a=t.from)?a:"",t.to):void 0});const o=r.buildNext(t);var i;return null!=n&&n.pending?!(null==(i=r.state.pending)||!i.location)&&!!P(r.state.pending.location.pathname,e({},n,{to:o.pathname})):!!P(r.state.location.pathname,e({},n,{to:o.pathname}))},_navigate:t=>{const e=r.buildNext(t);return r.commitLocation(e,t.replace)},navigate:async t=>{let{from:e,to:n=".",search:a,hash:o,replace:i,params:s}=t;const l=String(n),c=String(e);let u;try{new URL(""+l),u=!0}catch(t){}return f(!u),r._navigate({from:c,to:l,search:a,hash:o,replace:i,params:s})},buildLink:t=>{var e,n,a;let{from:o,to:i=".",search:s,params:l,hash:c,target:u,replace:h,activeOptions:d,preload:p,preloadMaxAge:f,preloadDelay:m,disabled:v}=t;try{return new URL(""+i),{type:"external",href:i}}catch(t){}const g={from:o,to:i,search:s,params:l,hash:c,replace:h},y=r.buildNext(g);p=null!=(e=p)?e:r.options.defaultLinkPreload;const _=null!=(n=null!=f?f:r.options.defaultLinkPreloadMaxAge)?n:2e3,P=null!=(a=null!=m?m:r.options.defaultLinkPreloadDelay)?a:50,b=r.state.location.pathname===y.pathname,w=r.state.location.pathname.split("/"),R=y.pathname.split("/").every(((t,e)=>t===w[e])),S=r.state.location.hash===y.hash,I=null!=d&&d.exact?b:R,A=null==d||!d.includeHash||S;return{type:"internal",next:y,handleFocus:t=>{p&&_>0&&r.loadRoute(g,{maxAge:_})},handleClick:t=>{v||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||u&&"_self"!==u||0!==t.button||(t.preventDefault(),!b||s||c||r.invalidateRoute(g),r._navigate(g))},handleEnter:t=>{const e=t.target||{};if(p&&_>0){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,r.loadRoute(g,{maxAge:_})}),P)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},isActive:I&&A,disabled:v}},__experimental__createSnapshot:()=>e({},r.state,{matches:r.state.matches.map((t=>{let{routeLoaderData:e,matchId:n}=t;return{matchId:n,loaderData:e}}))})};return r.location=r.parseLocation(o.location),r.state.location=r.location,r.update(t),null==r.options.createRouter||r.options.createRouter(r),r},t.defaultParseSearch=T,t.defaultStringifySearch=C,t.functionalUpdate=w,t.invariant=f,t.last=j,t.matchByPath=A,t.matchPathname=P,t.parsePathname=L,t.parseSearchWith=O,t.replaceEqualDeep=E,t.resolvePath=x,t.rootRouteId=v,t.stringifySearchWith=D,t.warning=function(t,e){if(t){"undefined"!=typeof console&&console.warn(e);try{throw new Error(e)}catch(t){}}return!0},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
12
12
|
//# sourceMappingURL=index.production.js.map
|