@tanstack/react-router 0.0.1-beta.204 → 0.0.1-beta.206

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.
Files changed (73) hide show
  1. package/build/cjs/RouterProvider.js +963 -0
  2. package/build/cjs/RouterProvider.js.map +1 -0
  3. package/build/cjs/fileRoute.js +29 -0
  4. package/build/cjs/fileRoute.js.map +1 -0
  5. package/build/cjs/index.js +69 -21
  6. package/build/cjs/index.js.map +1 -1
  7. package/build/cjs/path.js +211 -0
  8. package/build/cjs/path.js.map +1 -0
  9. package/build/cjs/qss.js +65 -0
  10. package/build/cjs/qss.js.map +1 -0
  11. package/build/cjs/react.js +148 -190
  12. package/build/cjs/react.js.map +1 -1
  13. package/build/cjs/redirects.js +27 -0
  14. package/build/cjs/redirects.js.map +1 -0
  15. package/build/cjs/route.js +136 -0
  16. package/build/cjs/route.js.map +1 -0
  17. package/build/cjs/router.js +203 -0
  18. package/build/cjs/router.js.map +1 -0
  19. package/build/cjs/searchParams.js +83 -0
  20. package/build/cjs/searchParams.js.map +1 -0
  21. package/build/cjs/utils.js +196 -0
  22. package/build/cjs/utils.js.map +1 -0
  23. package/build/esm/index.js +1801 -211
  24. package/build/esm/index.js.map +1 -1
  25. package/build/stats-html.html +1 -1
  26. package/build/stats-react.json +385 -164
  27. package/build/types/RouteMatch.d.ts +23 -0
  28. package/build/types/RouterProvider.d.ts +54 -0
  29. package/build/types/awaited.d.ts +0 -8
  30. package/build/types/defer.d.ts +0 -0
  31. package/build/types/fileRoute.d.ts +17 -0
  32. package/build/types/history.d.ts +7 -0
  33. package/build/types/index.d.ts +17 -4
  34. package/build/types/link.d.ts +98 -0
  35. package/build/types/location.d.ts +14 -0
  36. package/build/types/path.d.ts +16 -0
  37. package/build/types/qss.d.ts +2 -0
  38. package/build/types/react.d.ts +23 -83
  39. package/build/types/redirects.d.ts +10 -0
  40. package/build/types/route.d.ts +222 -0
  41. package/build/types/routeInfo.d.ts +22 -0
  42. package/build/types/router.d.ts +115 -0
  43. package/build/types/scroll-restoration.d.ts +0 -3
  44. package/build/types/searchParams.d.ts +7 -0
  45. package/build/types/utils.d.ts +48 -0
  46. package/build/umd/index.development.js +1118 -1540
  47. package/build/umd/index.development.js.map +1 -1
  48. package/build/umd/index.production.js +2 -33
  49. package/build/umd/index.production.js.map +1 -1
  50. package/package.json +2 -4
  51. package/src/RouteMatch.ts +28 -0
  52. package/src/RouterProvider.tsx +1390 -0
  53. package/src/awaited.tsx +40 -40
  54. package/src/defer.ts +55 -0
  55. package/src/fileRoute.ts +143 -0
  56. package/src/history.ts +8 -0
  57. package/src/index.tsx +18 -5
  58. package/src/link.ts +347 -0
  59. package/src/location.ts +14 -0
  60. package/src/path.ts +256 -0
  61. package/src/qss.ts +53 -0
  62. package/src/react.tsx +174 -422
  63. package/src/redirects.ts +31 -0
  64. package/src/route.ts +710 -0
  65. package/src/routeInfo.ts +68 -0
  66. package/src/router.ts +373 -0
  67. package/src/scroll-restoration.tsx +205 -27
  68. package/src/searchParams.ts +78 -0
  69. package/src/utils.ts +257 -0
  70. package/build/cjs/awaited.js +0 -45
  71. package/build/cjs/awaited.js.map +0 -1
  72. package/build/cjs/scroll-restoration.js +0 -56
  73. package/build/cjs/scroll-restoration.js.map +0 -1
@@ -8,27 +8,7 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("use-sync-external-store/shim/with-selector"),require("react")):"function"==typeof define&&define.amd?define(["exports","use-sync-external-store/shim/with-selector","react"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ReactRouter={},t.withSelector,t.React)}(this,(function(t,e,r){"use strict";function o(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:function(){return t[r]}})}})),e.default=t,Object.freeze(e)}var s=o(r);
12
- /**
13
- * @tanstack/store/src/index.ts
14
- *
15
- * Copyright (c) TanStack
16
- *
17
- * This source code is licensed under the MIT license found in the
18
- * LICENSE.md file in the root directory of this source tree.
19
- *
20
- * @license MIT
21
- */class n{listeners=new Set;_batching=!1;_flushing=0;_nextPriority=null;constructor(t,e){this.state=t,this.options=e}subscribe=t=>{this.listeners.add(t);const e=this.options?.onSubscribe?.(t,this);return()=>{this.listeners.delete(t),e?.()}};setState=(t,e)=>{const r=this.state;this.state=this.options?.updateFn?this.options.updateFn(r)(t):t(r);const o=e?.priority??this.options?.defaultPriority??"high";null===this._nextPriority||"high"===this._nextPriority?this._nextPriority=o:this._nextPriority=this.options?.defaultPriority??"high",this.options?.onUpdate?.({priority:this._nextPriority}),this._flush()};_flush=()=>{if(this._batching)return;const t=++this._flushing;this.listeners.forEach((e=>{this._flushing===t&&e({priority:this._nextPriority??"high"})}))};batch=t=>{if(this._batching)return t();this._batching=!0,t(),this._batching=!1,this._flush()}}
22
- /**
23
- * @tanstack/react-store/src/index.tsx
24
- *
25
- * Copyright (c) TanStack
26
- *
27
- * This source code is licensed under the MIT license found in the
28
- * LICENSE.md file in the root directory of this source tree.
29
- *
30
- * @license MIT
31
- */function a(t,r=(t=>t)){return e.useSyncExternalStoreWithSelector(t.subscribe,(()=>t.state),(()=>t.state),r,i)}function i(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!1;for(let o=0;o<r.length;o++)if(!Object.prototype.hasOwnProperty.call(e,r[o])||!Object.is(t[r[o]],e[r[o]]))return!1;return!0}
11
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouter={},e.React)}(this,(function(e,t){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(t);
32
12
  /**
33
13
  * @tanstack/history/src/index.ts
34
14
  *
@@ -38,16 +18,5 @@
38
18
  * LICENSE.md file in the root directory of this source tree.
39
19
  *
40
20
  * @license MIT
41
- */const c="pushstate",h="popstate",u="beforeunload",l=t=>(t.preventDefault(),t.returnValue=""),d=()=>{removeEventListener(u,l,{capture:!0})};function p(t){let e=t.getLocation(),r=new Set,o=[],s=[];const n=()=>{e=t.getLocation(),r.forEach((t=>t()))},a=()=>{if(o.length)o[0]?.(a,(()=>{o=[],d()}));else{for(;s.length;)s.shift()?.();n()}},i=t=>{s.push(t),a()};return{get location(){return e},subscribe:t=>(r.add(t),()=>{r.delete(t)}),push:(e,r)=>{r=f(r),i((()=>{t.pushState(e,r,n)}))},replace:(e,r)=>{r=f(r),i((()=>{t.replaceState(e,r,n)}))},go:e=>{i((()=>{t.go(e)}))},back:()=>{i((()=>{t.back()}))},forward:()=>{i((()=>{t.forward()}))},createHref:e=>t.createHref(e),block:t=>(o.push(t),1===o.length&&addEventListener(u,l,{capture:!0}),()=>{o=o.filter((e=>e!==t)),o.length||d()}),flush:()=>t.flush?.(),destroy:()=>t.destroy?.(),update:n}}function f(t){return t||(t={}),t.key=v(),t}function m(t){const e=t?.getHref??(()=>`${window.location.pathname}${window.location.search}${window.location.hash}`),r=t?.createHref??(t=>t);let o=g(e(),window.history.state);let s,n,a=!0;const i=()=>{a=!1,(()=>{s&&(window.history[s.isPush?"pushState":"replaceState"](s.state,"",s.href),s=void 0,n=void 0)})(),a=!0},u=(t,e,a,c)=>{const h=r(e);o=g(h,a),s={href:h,state:a,isPush:s?.isPush||"push"===t},c(),n||(n=Promise.resolve().then((()=>i())))},l=()=>{o=g(e(),window.history.state),m.update()};var d=window.history.pushState,f=window.history.replaceState;const m=p({getLocation:()=>o,pushState:(t,e,r)=>u("push",t,e,r),replaceState:(t,e,r)=>u("replace",t,e,r),back:()=>window.history.back(),forward:()=>window.history.forward(),go:t=>window.history.go(t),createHref:t=>r(t),flush:i,destroy:()=>{window.history.pushState=d,window.history.replaceState=f,window.removeEventListener(c,l),window.removeEventListener(h,l)}});return window.addEventListener(c,l),window.addEventListener(h,l),window.history.pushState=function(){let t=d.apply(window.history,arguments);return a&&m.update(),t},window.history.replaceState=function(){let t=f.apply(window.history,arguments);return a&&m.update(),t},m}function y(t={initialEntries:["/"]}){const e=t.initialEntries;let r=t.initialIndex??e.length-1,o={key:v()};return p({getLocation:()=>g(e[r],o),pushState:(t,s)=>{o=s,e.push(t),r++},replaceState:(t,s)=>{o=s,e[r]=t},back:()=>{r--},forward:()=>{r=Math.min(r+1,e.length-1)},go:t=>window.history.go(t),createHref:t=>t})}function g(t,e){let r=t.indexOf("#"),o=t.indexOf("?");return{href:t,pathname:t.substring(0,r>0?o>0?Math.min(r,o):r:o>0?o:t.length),hash:r>-1?t.substring(r):"",search:o>-1?t.slice(o,-1===r?void 0:r):"",state:e||{}}}function v(){return(Math.random()+1).toString(36).substring(7)}function w(t,e){if(!t)throw new Error("Invariant failed")}
42
- /**
43
- * @tanstack/router-core/src/index.ts
44
- *
45
- * Copyright (c) TanStack
46
- *
47
- * This source code is licensed under the MIT license found in the
48
- * LICENSE.md file in the root directory of this source tree.
49
- *
50
- * @license MIT
51
- */
52
- function b(t){return t[t.length-1]}function S(t,e){return"function"==typeof t?t(e):t}function R(t,e){return e.reduce(((e,r)=>(e[r]=t[r],e)),{})}function _(t,e){if(t===e)return t;const r=e,o=Array.isArray(t)&&Array.isArray(r);if(o||E(t)&&E(r)){const e=o?t.length:Object.keys(t).length,s=o?r:Object.keys(r),n=s.length,a=o?[]:{};let i=0;for(let e=0;e<n;e++){const n=o?e:s[e];a[n]=_(t[n],r[n]),a[n]===t[n]&&i++}return e===n&&i===e?t:a}return r}function E(t){if(!x(t))return!1;const e=t.constructor;if(void 0===e)return!0;const r=e.prototype;return!!x(r)&&!!r.hasOwnProperty("isPrototypeOf")}function x(t){return"[object Object]"===Object.prototype.toString.call(t)}function I(t,e){return t===e||typeof t==typeof e&&(E(t)&&E(e)?!Object.keys(e).some((r=>!I(t[r],e[r]))):!(!Array.isArray(t)||!Array.isArray(e))&&(t.length===e.length&&t.every(((t,r)=>I(t,e[r])))))}function M(t){return P(t.filter(Boolean).join("/"))}function P(t){return t.replace(/\/{2,}/g,"/")}function L(t){return"/"===t?t:t.replace(/^\/{1,}/,"")}function C(t){return"/"===t?t:t.replace(/\/{1,}$/,"")}function O(t){return C(L(t))}function A(t,e,r){e=e.replace(new RegExp(`^${t}`),"/"),r=r.replace(new RegExp(`^${t}`),"/");let o=k(e);const s=k(r);s.forEach(((t,e)=>{if("/"===t.value)e?e===s.length-1&&o.push(t):o=[t];else if(".."===t.value)o.length>1&&"/"===b(o)?.value&&o.pop(),o.pop();else{if("."===t.value)return;o.push(t)}}));return P(M([t,...o.map((t=>t.value))]))}function k(t){if(!t)return[];const e=[];if("/"===(t=P(t)).slice(0,1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),!t)return e;const r=t.split("/").filter(Boolean);return e.push(...r.map((t=>"$"===t||"*"===t?{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 j(t,e,r=!1){return M(k(t).map((t=>{if("wildcard"===t.type){const o=e[t.value];return r?`${t.value}${o??""}`:o}return"param"===t.type?e[t.value.substring(1)]??"":t.value})))}function D(t,e,r){const o=B(t,e,r);if(!r.to||o)return o??{}}function B(t,e,r){e="/"!=t?e.substring(t.length):e;const o=`${r.to??"$"}`,s=k(e),n=k(o);e.startsWith("/")||s.unshift({type:"pathname",value:"/"}),o.startsWith("/")||n.unshift({type:"pathname",value:"/"});const a={};return(()=>{for(let t=0;t<Math.max(s.length,n.length);t++){const e=s[t],o=n[t],i=t>=s.length-1,c=t>=n.length-1;if(o){if("wildcard"===o.type)return!!e?.value&&(a["*"]=M(s.slice(t).map((t=>t.value))),!0);if("pathname"===o.type){if("/"===o.value&&!e?.value)return!0;if(e)if(r.caseSensitive){if(o.value!==e.value)return!1}else if(o.value.toLowerCase()!==e.value.toLowerCase())return!1}if(!e)return!1;if("param"===o.type){if("/"===e?.value)return!1;"$"!==e.value.charAt(0)&&(a[o.value.substring(1)]=e.value)}}if(!i&&c)return!!r.fuzzy}return!0})()?a:void 0}function T(t,e){var r,o,s,n="";for(r in t)if(void 0!==(s=t[r]))if(Array.isArray(s))for(o=0;o<s.length;o++)n&&(n+="&"),n+=encodeURIComponent(r)+"="+encodeURIComponent(s[o]);else n&&(n+="&"),n+=encodeURIComponent(r)+"="+encodeURIComponent(s);return(e||"")+n}function $(t){if(!t)return"";var e=decodeURIComponent(t);return"false"!==e&&("true"===e||(0*+e==0&&+e+""===e?+e:e))}function F(t){for(var e,r,o={},s=t.split("&");e=s.shift();)void 0!==o[r=(e=e.split("=")).shift()]?o[r]=[].concat(o[r],$(e.shift())):o[r]=$(e.shift());return o}const H="__root__";class N{constructor(t){this.options=t||{},this.isRoot=!t?.getParentRoute,N.__onInit(this)}init=t=>{this.originalIndex=t.originalIndex,this.router=t.router;const e=this.options,r=!e?.path&&!e?.id;this.parentRoute=this.options?.getParentRoute?.(),r?this.path=H:w(this.parentRoute);let o=r?H:e.path;o&&"/"!==o&&(o=O(o));const s=e?.id||o;let n=r?H:M([this.parentRoute.id===H?"":this.parentRoute.id,s]);o===H&&(o="/"),n!==H&&(n=M(["/",n]));const a=n===H?"/":M([this.parentRoute.fullPath,o]);this.path=o,this.id=n,this.fullPath=a,this.to=a};addChildren=t=>(this.children=t,this);update=t=>(Object.assign(this.options,t),this);static __onInit=t=>{}}class K extends N{constructor(t){super(t)}}const W=z(JSON.parse),U=Y(JSON.stringify,JSON.parse);function z(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let r=F(e);for(let e in r){const o=r[e];if("string"==typeof o)try{r[e]=t(o)}catch(t){}}return r}}function Y(t,e){return r=>{(r={...r})&&Object.keys(r).forEach((o=>{const s=r[o];void 0===s||void 0===s?delete r[o]:r[o]=function(r){if("object"==typeof r&&null!==r)try{return t(r)}catch(t){}else if("string"==typeof r&&"function"==typeof e)try{return e(r),t(r)}catch(t){}return r}(s)}));const o=T(r).toString();return o?`?${o}`:""}}const J=["component","errorComponent","pendingComponent"],q="visibilitychange",X="focus",V="Error preloading route! ☝️";const G="undefined"==typeof window||!window.document.createElement;function Q(){return{status:"idle",isFetching:!1,resolvedLocation:null,location:null,matchesById:{},matchIds:[],pendingMatchIds:[],matches:[],pendingMatches:[],renderedMatchIds:[],renderedMatches:[],lastUpdated:Date.now()}}function Z(t){return!!t?.isRedirect}class tt extends Error{}class et extends Error{}function rt(t,e){const r=Date.now();return!!t.invalid||(e?.preload?!(t.preloadMaxAge<0)&&t.updatedAt+t.preloadMaxAge<r:!(t.maxAge<0)&&t.updatedAt+t.maxAge<r)}const ot="window",st="___";let nt,at={},it=!1;const ct="undefined"!=typeof window&&window.sessionStorage,ht=t=>t.state.key;function ut(t,e){const r=e?.getKey||ht;ct&&(nt||(nt=(()=>{const t="tsr-scroll-restoration-v1",e=JSON.parse(window.sessionStorage.getItem(t)||"{}");return{current:e,set:(r,o)=>{e[r]=o,window.sessionStorage.setItem(t,JSON.stringify(nt))}}})()));const{history:o}=window;o.scrollRestoration&&(o.scrollRestoration="manual");const s=e=>{const o=r(t.state.resolvedLocation);at[o]||(at[o]=new WeakSet);const s=at[o];if(s.has(e.target))return;s.add(e.target);const a=[o,e.target===document||e.target===window?ot:n(e.target)].join(st);nt.current[a]||nt.set(a,{scrollX:NaN,scrollY:NaN})},n=t=>{let e,r=[];for(;e=t.parentNode;)r.unshift(`${t.tagName}:nth-child(${[].indexOf.call(e.children,t)+1})`),t=e;return`${r.join(" > ")}`.toLowerCase()};"undefined"!=typeof document&&document.addEventListener("scroll",s,!0);const a=t.subscribe("onBeforeLoad",(t=>{t.pathChanged&&(t=>{const e=r(t);for(const t in nt.current){const r=nt.current[t],[o,s]=t.split(st);if(e===o){if(s===ot)r.scrollX=window.scrollX||0,r.scrollY=window.scrollY||0;else if(s){const t=document.querySelector(s);r.scrollX=t?.scrollLeft||0,r.scrollY=t?.scrollTop||0}nt.set(t,r)}}})(t.from)})),i=t.subscribe("onLoad",(t=>{t.pathChanged&&(it=!0)}));return()=>{document.removeEventListener("scroll",s),a(),i()}}function lt(t,e){if(it){if(!t.resetNextScroll)return;it=!1;const r=(e?.getKey||ht)(t.state.location);let o=!1;for(const t in nt.current){const e=nt.current[t],[s,n]=t.split(st);if(s===r)if(n===ot)o=!0,window.scrollTo(e.scrollX,e.scrollY);else if(n){const t=document.querySelector(n);t&&(t.scrollLeft=e.scrollX,t.scrollTop=e.scrollY)}}o||window.scrollTo(0,0)}}function dt(t){return"object"==typeof t&&null!==t&&!(t instanceof Promise)&&!t.then&&"__deferredState"in t}function pt(){return pt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])}return t},pt.apply(this,arguments)}const ft="undefined"!=typeof window?s.useLayoutEffect:s.useEffect;function mt(t){const e=St(),r=Rt({strict:!1}),{type:o,children:n,target:a,activeProps:i=(()=>({className:"active"})),inactiveProps:c=(()=>({})),activeOptions:h,disabled:u,hash:l,search:d,params:p,to:f,state:m,mask:y,preload:g,preloadDelay:v,replace:w,style:b,className:R,onClick:_,onFocus:E,onMouseEnter:x,onMouseLeave:I,onTouchStart:M,...P}=t,L=e.buildLink({from:t.to?r.pathname:void 0,...t});if("external"===L.type){const{href:t}=L;return{href:t}}const{handleClick:C,handleFocus:O,handleEnter:A,handleLeave:k,handleTouchStart:j,isActive:D,next:B}=L,T=t=>e=>{e.persist&&e.persist(),t.filter(Boolean).forEach((t=>{e.defaultPrevented||t(e)}))},$=D?S(i,{})??{}:{},F=D?{}:S(c,{})??{};return{...$,...F,...P,href:u?void 0:B.maskedLocation?B.maskedLocation.href:B.href,onClick:T([_,e=>{(t.startTransition??1)&&(s.startTransition||(t=>t))((()=>{C(e)}))}]),onFocus:T([E,O]),onMouseEnter:T([x,A]),onMouseLeave:T([I,k]),onTouchStart:T([M,j]),target:a,style:{...b,...$.style,...F.style},className:[R,$.className,F.className].filter(Boolean).join(" ")||void 0,...u?{role:"link","aria-disabled":!0}:void 0,"data-status":D?"active":void 0}}N.__onInit=t=>{Object.assign(t,{useMatch:(e={})=>Rt({...e,from:t.id}),useLoader:(e={})=>_t({...e,from:t.id}),useRouteContext:(e={})=>Rt({...e,from:t.id,select:t=>e?.select?e.select(t.context):t.context}),useSearch:(e={})=>Et({...e,from:t.id}),useParams:(e={})=>xt({...e,from:t.id})})};const yt=s.forwardRef(((t,e)=>{const r=mt(t);return s.createElement("a",pt({ref:e},r,{children:"function"==typeof t.children?t.children({isActive:"active"===r["data-status"]}):t.children}))}));const gt=s.createContext(null),vt=s.createContext(null);function wt(t){return a(St().__store,t?.select)}function bt(){const t=St(),e=wt({select:t=>t.renderedMatchIds}),r=wt({select:t=>t.resolvedLocation.state?.key}),o=t.getRoute(H),n=s.useCallback((t=>s.createElement(jt,{...t,useMatch:o.useMatch,useRouteContext:o.useRouteContext,useSearch:o.useSearch,useParams:o.useParams})),[o]);return s.createElement(gt.Provider,{value:[void 0,...e]},s.createElement(At,{resetKey:r,errorComponent:n,onCatch:()=>{}},s.createElement(Mt,null)))}function St(){return s.useContext(vt)}function Rt(t){const e=St(),r=s.useContext(gt)[0],o=e.getRouteMatch(r)?.routeId,n=wt({select:e=>(t?.from?e.renderedMatches.find((e=>e.routeId===t?.from)):e.renderedMatches.find((t=>t.id===r))).routeId});(t?.strict??1)&&w(o==n);return wt({select:e=>{const o=t?.from?e.renderedMatches.find((e=>e.routeId===t?.from)):e.renderedMatches.find((t=>t.id===r));return w(o,t?.from&&t.from),t?.select?t.select(o):o}})}function _t(t){return Rt({...t,select:e=>t?.select?t?.select(e.loaderData):e.loaderData})}function Et(t){return Rt({...t,select:e=>t?.select?t.select(e.search):e.search})}function xt(t){return wt({select:e=>{const r=b(e.renderedMatches)?.params;return t?.select?t.select(r):r}})}function It(){const t=St();return s.useCallback((e=>{const{pending:r,caseSensitive:o,...s}=e;return t.matchRoute(s,{pending:r,caseSensitive:o})}),[])}function Mt(){const t=s.useContext(gt).slice(1);return t[0]?s.createElement(Lt,{matchIds:t}):null}const Pt=()=>null;function Lt({matchIds:t}){const e=St(),r=t[0],o=e.getRouteMatch(r).routeId,n=e.getRoute(o),a=wt({select:t=>t.resolvedLocation.state?.key}),i=n.options.pendingComponent??e.options.defaultPendingComponent??Pt,c=n.options.errorComponent??e.options.defaultErrorComponent??jt,h=n.options.wrapInSuspense??!n.isRoot?s.Suspense:Ot,u=c?At:Ot,l=s.useCallback((t=>s.createElement(c,{...t,useMatch:n.useMatch,useRouteContext:n.useRouteContext,useSearch:n.useSearch,useParams:n.useParams})),[n]);return s.createElement(gt.Provider,{value:t},s.createElement(h,{fallback:s.createElement(i,{useMatch:n.useMatch,useRouteContext:n.useRouteContext,useSearch:n.useSearch,useParams:n.useParams})},s.createElement(u,{resetKey:a,errorComponent:l,onCatch:()=>{}},s.createElement(Ct,{matchId:r,PendingComponent:i}))))}function Ct({matchId:t,PendingComponent:e}){const r=St(),o=wt({select:e=>R(e.matchesById[t],["status","loadPromise","routeId","error"])}),n=r.getRoute(o.routeId);if("error"===o.status)throw o.error;if("pending"===o.status)return s.createElement(e,{useLoader:n.useLoader,useMatch:n.useMatch,useRouteContext:n.useRouteContext,useSearch:n.useSearch,useParams:n.useParams});if("success"===o.status){let t=n.options.component??r.options.defaultComponent;return t?s.createElement(t,{useLoader:n.useLoader,useMatch:n.useMatch,useRouteContext:n.useRouteContext,useSearch:n.useSearch,useParams:n.useParams}):s.createElement(Mt,null)}w(!1)}function Ot(t){return s.createElement(s.Fragment,null,t.children)}function At(t){const e=t.errorComponent??jt;return s.createElement(kt,{resetKey:t.resetKey,onCatch:t.onCatch,children:({error:r})=>r?s.createElement(e,{error:r}):t.children})}class kt extends s.Component{state={error:null};static getDerivedStateFromError(t){return{error:t}}componentDidUpdate(t,e){e.error&&t.resetKey!==this.props.resetKey&&this.setState({error:null})}componentDidCatch(t){this.props.onCatch?.(t)}render(){return this.props.children(this.state)}}function jt({error:t}){const[e,r]=s.useState(!1);return s.createElement("div",{style:{padding:".5rem",maxWidth:"100%"}},s.createElement("div",{style:{display:"flex",alignItems:"center",gap:".5rem"}},s.createElement("strong",{style:{fontSize:"1rem"}},"Something went wrong!"),s.createElement("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>r((t=>!t))},e?"Hide Error":"Show Error")),s.createElement("div",{style:{height:".25rem"}}),e?s.createElement("div",null,s.createElement("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"}},t.message?s.createElement("code",null,t.message):null)):null)}function Dt(t,e=!0){const r=St();s.useEffect((()=>{if(!e)return;let o=r.history.block(((e,r)=>{window.confirm(t)&&(o(),e())}));return o}))}const Bt="undefined"!=typeof window?s.useLayoutEffect:s.useEffect;function Tt(t){const e=St();Bt((()=>ut(e,t)),[]),Bt((()=>{lt(e,t)}))}function $t({promise:t}){const e=St();let r=t.__deferredState;const o=`__TSR__DEFERRED__${r.uid}`;if(dt(t)&&(r=e.hydrateData(o),(t=Promise.resolve(r.data)).__deferredState=r),"pending"===r.status)throw t;if("error"===r.status)throw r.error;return e.dehydrateData(o,r),[r.data]}t.Await=function(t){const e=$t(t);return t.children(...e)},t.Block=function({message:t,condition:e,children:r}){return Dt(t,e),r??null},t.CatchBoundary=At,t.CatchBoundaryImpl=kt,t.ErrorComponent=jt,t.FileRoute=class{constructor(t){this.path=t}createRoute=t=>{const e=new N(t);return e.isRoot=!1,e}},t.Link=yt,t.MatchRoute=function(t){const e=It()(t);return"function"==typeof t.children?t.children(e):e?t.children:null},t.Navigate=function(t){const e=St(),r=Rt({strict:!1});return ft((()=>{e.navigate({from:t.to?r.pathname:void 0,...t})}),[]),null},t.Outlet=Mt,t.PathParamError=et,t.RootRoute=K,t.Route=N,t.Router=class{#t;resetNextScroll=!1;tempLocationKey=`${Math.round(1e7*Math.random())}`;constructor(t){this.options={defaultPreloadDelay:50,context:void 0,...t,stringifySearch:t?.stringifySearch??U,parseSearch:t?.parseSearch??W},this.__store=new n(Q(),{onUpdate:()=>{const t=this.state,e=this.__store.state,r=t.matchesById!==e.matchesById;let o,s;if(r||(o=t.matchIds.length!==e.matchIds.length||t.matchIds.some(((t,r)=>t!==e.matchIds[r])),s=t.pendingMatchIds.length!==e.pendingMatchIds.length||t.pendingMatchIds.some(((t,r)=>t!==e.pendingMatchIds[r]))),(r||o)&&(e.matches=e.matchIds.map((t=>e.matchesById[t]))),(r||s)&&(e.pendingMatches=e.pendingMatchIds.map((t=>e.matchesById[t]))),r||o||s){const t=e.pendingMatches.some((t=>!!this.getRoute(t.routeId)?.options.pendingComponent));e.renderedMatchIds=t?e.pendingMatchIds:e.matchIds,e.renderedMatches=e.renderedMatchIds.map((t=>e.matchesById[t]))}e.isFetching=[...e.matches,...e.pendingMatches].some((t=>t.isFetching)),this.state=e},defaultPriority:"low"}),this.state=this.__store.state,this.update(t);const e=this.buildLocation({search:!0,params:!0,hash:!0,state:!0});this.state.location.href!==e.href&&this.#e({...e,replace:!0})}subscribers=new Set;subscribe=(t,e)=>{const r={eventType:t,fn:e};return this.subscribers.add(r),()=>{this.subscribers.delete(r)}};#r=t=>{this.subscribers.forEach((e=>{e.eventType===t.type&&e.fn(t)}))};reset=()=>{this.__store.setState((t=>Object.assign(t,Q())))};mount=()=>("undefined"!=typeof window&&window.addEventListener&&(window.addEventListener(q,this.#o,!1),window.addEventListener(X,this.#o,!1)),this.safeLoad(),()=>{"undefined"!=typeof window&&window.removeEventListener&&(window.removeEventListener(q,this.#o),window.removeEventListener(X,this.#o))});#o=()=>{(this.options.reloadOnWindowFocus??1)&&this.invalidate({__fromFocus:!0})};update=t=>{if(this.options={...this.options,...t,context:{...this.options.context,...t?.context}},!this.history||this.options.history&&this.options.history!==this.history){this.#t&&this.#t(),this.history=this.options.history??(G?y():m());const t=this.#s();this.__store.setState((e=>({...e,resolvedLocation:t,location:t}))),this.#t=this.history.subscribe((()=>{this.safeLoad({next:this.#s(this.state.location)})}))}const{basepath:e,routeTree:r}=this.options;return this.basepath=`/${O(e??"")??""}`,r&&r!==this.routeTree&&this.#n(r),this};cancelMatches=()=>{this.state.matches.forEach((t=>{this.cancelMatch(t.id)}))};cancelMatch=t=>{this.getRouteMatch(t)?.abortController?.abort()};safeLoad=async t=>{try{return this.load(t)}catch(t){}};latestLoadPromise=Promise.resolve();load=async t=>{const e=new Promise((async(r,o)=>{const s=this.state.resolvedLocation,n=!(!t?.next||s.href===t.next.href);let a;const i=()=>this.latestLoadPromise!==e?this.latestLoadPromise:void 0;let c;this.#r({type:"onBeforeLoad",from:s,to:t?.next??this.state.location,pathChanged:n}),this.__store.batch((()=>{t?.next&&this.__store.setState((e=>({...e,location:t.next}))),c=this.matchRoutes(this.state.location.pathname,this.state.location.search,{throwOnError:t?.throwOnError,debug:!0}),this.__store.setState((t=>({...t,status:"pending",pendingMatchIds:c.map((t=>t.id)),matchesById:this.#a(t.matchesById,c)})))}));try{try{await this.loadMatches(c.map((t=>t.id)))}catch(t){}if(a=i())return a;const t=this.state.matchIds.filter((t=>!this.state.pendingMatchIds.includes(t))),e=this.state.pendingMatchIds.filter((t=>!this.state.matchIds.includes(t))),o=this.state.matchIds.filter((t=>this.state.pendingMatchIds.includes(t)));this.__store.setState((t=>({...t,status:"idle",resolvedLocation:t.location,matchIds:t.pendingMatchIds,pendingMatchIds:[]}))),[[t,"onLeave"],[e,"onEnter"],[o,"onTransition"]].forEach((([t,e])=>{t.forEach((t=>{const r=this.getRouteMatch(t);this.getRoute(r.routeId).options[e]?.(r)}))})),this.#r({type:"onLoad",from:s,to:this.state.location,pathChanged:n}),r()}catch(t){if(a=i())return a;o(t)}}));return this.latestLoadPromise=e,this.latestLoadPromise.then((()=>{this.cleanMatches()})),this.latestLoadPromise};#a=(t,e)=>{let r={...t};return e.forEach((t=>{r[t.id]||(r[t.id]=t),r[t.id]={...r[t.id],...t}})),r};getRoute=t=>{const e=this.routesById[t];return w(e),e};preloadRoute=async(t=this.state.location)=>{let e=this.buildLocation(t);const r=this.matchRoutes(e.pathname,e.search,{throwOnError:!0});return this.__store.setState((t=>({...t,matchesById:this.#a(t.matchesById,r)}))),await this.loadMatches(r.map((t=>t.id)),{preload:!0,maxAge:t.maxAge}),[b(r),r]};cleanMatches=()=>{const t=Date.now(),e=Object.values(this.state.matchesById).filter((e=>{const r=this.getRoute(e.routeId);return!(this.state.matchIds.includes(e.id)||this.state.pendingMatchIds.includes(e.id)||e.preloadMaxAge>-1&&!(e.updatedAt+e.preloadMaxAge<t)||r.options.gcMaxAge&&!(e.updatedAt+r.options.gcMaxAge<t))})).map((t=>t.id));e.length&&this.__store.setState((t=>{const r={...t.matchesById};return e.forEach((t=>{delete r[t]})),{...t,matchesById:r}}))};matchRoutes=(t,e,r)=>{let o={},s=this.flatRoutes.find((e=>{const r=D(this.basepath,C(t),{to:e.fullPath,caseSensitive:e.options.caseSensitive??this.options.caseSensitive});return!!r&&(o=r,!0)}))||this.routesById.__root__,n=[s];for(;s?.parentRoute;)s=s.parentRoute,s&&n.unshift(s);const a=n.map((t=>{let e;if(t.options.parseParams)try{const e=t.options.parseParams(o);Object.assign(o,e)}catch(t){if(e=new et(t.message,{cause:t}),r?.throwOnError)throw e;return e}})),i=n.map(((t,r)=>{const s=j(t.path,o),n=t.options.loaderContext?t.options.loaderContext({search:e}):void 0,i=JSON.stringify([j(t.id,o,!0),n].filter((t=>void 0!==t)),((e,r)=>("function"==typeof r&&(console.info(t),w(!1)),"object"==typeof r&&null!==r?Object.fromEntries(Object.keys(r).sort().map((t=>[t,r[t]]))):r))),c=this.getRouteMatch(i);if(c)return{...c};const h=!(!t.options.loader&&!J.some((e=>t.options[e]?.preload)));return{id:i,loaderContext:n,routeId:t.id,params:o,pathname:M([this.basepath,s]),updatedAt:Date.now(),maxAge:-1,preloadMaxAge:-1,routeSearch:{},search:{},status:h?"pending":"success",isFetching:!1,invalid:!1,error:void 0,paramsError:a[r],searchError:void 0,loaderData:void 0,loadPromise:Promise.resolve(),context:void 0,abortController:new AbortController,fetchedAt:0}}));return i.forEach(((t,o)=>{const s=i[o-1],n=this.getRoute(t.routeId),a=(()=>{const o={search:s?.search??e,routeSearch:s?.routeSearch??e};try{let e=("object"==typeof n.options.validateSearch?n.options.validateSearch.parse:n.options.validateSearch)?.(o.search)??{},r={...o.search,...e};return e=_(t.routeSearch,e),r=_(t.search,r),{routeSearch:e,search:r,searchDidChange:t.routeSearch!==e}}catch(e){if(t.searchError=new tt(e.message,{cause:e}),r?.throwOnError)throw t.searchError;return o}})();Object.assign(t,a)})),i};loadMatches=async(t,e)=>{const r=()=>t.map((t=>this.getRouteMatch(t)));let o;e?.preload||r().forEach((t=>{this.setRouteMatch(t.id,(e=>({...e,routeSearch:t.routeSearch,search:t.search,context:t.context,error:t.error,paramsError:t.paramsError,searchError:t.searchError,params:t.params,preloadMaxAge:0})))}));try{for(const[t,s]of r().entries()){const n=r()[t-1],a=this.getRoute(s.routeId),i=(e,r)=>{if(e.routerCode=r,o=o??t,Z(e))throw e;try{a.options.onError?.(e)}catch(t){if(e=t,Z(t))throw t}this.setRouteMatch(s.id,(t=>({...t,error:e,status:"error",updatedAt:Date.now()})))};s.paramsError&&i(s.paramsError,"PARSE_PARAMS"),s.searchError&&i(s.searchError,"VALIDATE_SEARCH");let c=!1;const h=n?.context??this?.options.context??{};try{const t=await(a.options.beforeLoad?.({abortController:s.abortController,params:s.params,preload:!!e?.preload,context:{...h,...s.loaderContext}}))??{},r={...h,...s.loaderContext,...t};this.setRouteMatch(s.id,(t=>({...t,context:_(t.context,r)})))}catch(t){i(t,"BEFORE_LOAD"),c=!0}if(c)break}}catch(t){if(Z(t))return void(e?.preload||this.navigate(t));throw t}const s=r().slice(0,o),n=[];s.forEach(((t,r)=>{n.push((async()=>{const o=n[r-1],s=this.getRoute(t.routeId);if(t.isFetching||"success"===t.status&&!rt(t,{preload:e?.preload}))return this.getRouteMatch(t.id)?.loadPromise;const a=Date.now(),i=()=>{const e=this.getRouteMatch(t.id);return e&&e.fetchedAt!==a?e.loadPromise:void 0},c=t=>!!Z(t)&&(e?.preload||this.navigate(t),!0),h=async()=>{let r;try{const n=Promise.all(J.map((async t=>{const e=s.options[t];e?.preload&&await e.preload()}))),a=s.options.loader?.({params:t.params,preload:!!e?.preload,parentMatchPromise:o,abortController:t.abortController,context:t.context}),[c,h]=await Promise.all([n,a]);if(r=i())return await r;this.setRouteMatchData(t.id,(()=>h),e)}catch(e){if(r=i())return await r;if(c(e))return;try{s.options.onError?.(e)}catch(t){if(e=t,c(t))return}this.setRouteMatch(t.id,(t=>({...t,error:e,status:"error",isFetching:!1,updatedAt:Date.now()})))}};let u;this.__store.batch((()=>{this.setRouteMatch(t.id,(t=>({...t,isFetching:!0,fetchedAt:a,invalid:!1}))),u=h(),this.setRouteMatch(t.id,(t=>({...t,loadPromise:u})))})),await u})())})),await Promise.all(n)};resolvePath=(t,e)=>A(this.basepath,t,P(e));navigate=async({from:t,to:e="",...r})=>{const o=String(e),s=void 0===t?t:String(t);let n;try{new URL(`${o}`),n=!0}catch(t){}return w(!n),this.#i({...r,from:s,to:o})};matchRoute=(t,e)=>{t={...t,to:t.to?this.resolvePath(t.from??"",t.to):void 0};const r=this.buildLocation(t);if(e?.pending&&"pending"!==this.state.status)return!1;const o=e?.pending?this.state.location:this.state.resolvedLocation;if(!o)return!1;const s=D(this.basepath,o.pathname,{...e,to:r.pathname});return!!s&&(e?.includeSearch??1?!!I(o.search,r.search)&&s:s)};buildLink=t=>{const{to:e,preload:r,preloadDelay:o,activeOptions:s,disabled:n,target:a,replace:i,resetScroll:c}=t;try{return new URL(`${e}`),{type:"external",href:e}}catch(t){}const h=t,u=this.buildLocation(h),l=r??this.options.defaultPreload,d=o??this.options.defaultPreloadDelay??0,p=this.state.location.pathname.split("/"),f=u.pathname.split("/").every(((t,e)=>t===p[e])),m=s?.exact?this.state.location.pathname===u.pathname:f,y=!s?.includeHash||this.state.location.hash===u.hash,g=!(s?.includeSearch??1)||I(this.state.location.search,u.search);return{type:"internal",next:u,handleFocus:t=>{l&&this.preloadRoute(h).catch((t=>{console.warn(t),console.warn(V)}))},handleClick:t=>{n||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||a&&"_self"!==a||0!==t.button||(t.preventDefault(),this.#e({...u,replace:i,resetScroll:c}))},handleEnter:t=>{const e=t.target||{};if(l){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,this.preloadRoute(h).catch((t=>{console.warn(t),console.warn(V)}))}),d)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},handleTouchStart:t=>{this.preloadRoute(h).catch((t=>{console.warn(t),console.warn(V)}))},isActive:m&&y&&g,disabled:n}};dehydrate=()=>({state:{matchIds:this.state.matchIds,dehydratedMatches:this.state.matches.map((t=>R(t,["fetchedAt","invalid","preloadMaxAge","maxAge","id","loaderData","status","updatedAt"])))}});hydrate=async t=>{let e=t;"undefined"!=typeof document&&(e=window.__TSR_DEHYDRATED__),w(e);const r=e;this.dehydratedData=r.payload,this.options.hydrate?.(r.payload);const o=r.router.state;let s=this.matchRoutes(this.state.location.pathname,this.state.location.search).map((t=>{const e=o.dehydratedMatches.find((e=>e.id===t.id));return w(e,t.id),e?{...t,...e}:t}));this.__store.setState((t=>({...t,matchIds:o.matchIds,matches:s,matchesById:this.#a(t.matchesById,s)})))};injectedHtml=[];injectHtml=async t=>{this.injectedHtml.push(t)};dehydrateData=(t,e)=>{if("undefined"==typeof document){const r="string"==typeof t?t:JSON.stringify(t);return this.injectHtml((async()=>{const t=`__TSR_DEHYDRATED__${r}`,o="function"==typeof e?await e():e;return`<script id='${t}' suppressHydrationWarning>window["__TSR_DEHYDRATED__${s=r,s.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/"/g,'\\"')}"] = ${JSON.stringify(o)}\n ;(() => {\n var el = document.getElementById('${t}')\n el.parentElement.removeChild(el)\n })()\n <\/script>`;var s})),()=>this.hydrateData(t)}return()=>{}};hydrateData=t=>{if("undefined"!=typeof document){const e="string"==typeof t?t:JSON.stringify(t);return window[`__TSR_DEHYDRATED__${e}`]}};#n=t=>{this.routeTree=t,this.routesById={},this.routesByPath={},this.flatRoutes=[];const e=t=>{t.forEach(((t,r)=>{t.init({originalIndex:r,router:this});if(w(!this.routesById[t.id],String(t.id)),this.routesById[t.id]=t,!t.isRoot&&t.path){const e=C(t.fullPath);this.routesByPath[e]&&!t.fullPath.endsWith("/")||(this.routesByPath[e]=t)}const o=t.children;o?.length&&e(o)}))};e([t]),this.flatRoutes=Object.values(this.routesByPath).map(((t,e)=>{const r=O(t.fullPath),o=k(r);for(;o.length>1&&"/"===o[0]?.value;)o.shift();const s=o.map((t=>"param"===t.type?.5:"wildcard"===t.type?.25:1));return{child:t,trimmed:r,parsed:o,index:e,score:s}})).sort(((t,e)=>{let r="/"===t.trimmed?1:"/"===e.trimmed?-1:0;if(0!==r)return r;const o=Math.min(t.score.length,e.score.length);if(t.score.length!==e.score.length)return e.score.length-t.score.length;for(let r=0;r<o;r++)if(t.score[r]!==e.score[r])return e.score[r]-t.score[r];for(let r=0;r<o;r++)if(t.parsed[r].value!==e.parsed[r].value)return t.parsed[r].value>e.parsed[r].value?1:-1;return t.trimmed!==e.trimmed?t.trimmed>e.trimmed?1:-1:t.index-e.index})).map(((t,e)=>(t.child.rank=e,t.child)))};#s=t=>{const e=({pathname:e,search:r,hash:o,state:s})=>{const n=this.options.parseSearch(r);return{pathname:e,searchStr:r,search:_(t?.search,n),hash:o.split("#").reverse()[0]??"",href:`${e}${r}${o}`,state:_(t?.state,s)}},r=e(this.history.location);let{__tempLocation:o,__tempKey:s}=r.state;if(o&&(!s||s===this.tempLocationKey)){const t=e(o);return t.state.key=r.state.key,delete t.state.__tempLocation,{...t,maskedLocation:r}}return r};buildLocation=(t={})=>{const e=(t={},e)=>{const r=this.state.location,o=t.from??r.pathname;let s=A(this.basepath??"/",o,`${t.to??""}`);const n=this.matchRoutes(o,r.search),a=e?.filter((t=>n?.find((e=>e.routeId===t.routeId)))),i={...b(n)?.params};let c=!0===(t.params??!0)?i:S(t.params,i);c&&e?.map((t=>this.getRoute(t.routeId).options.stringifyParams)).filter(Boolean).forEach((t=>{c={...c,...t(c)}})),s=j(s,c??{});const h=a?.map((t=>this.getRoute(t.routeId).options.preSearchFilters??[])).flat().filter(Boolean)??[],u=a?.map((t=>this.getRoute(t.routeId).options.postSearchFilters??[])).flat().filter(Boolean)??[],l=h?.length?h?.reduce(((t,e)=>e(t)),r.search):r.search,d=!0===t.search?l:t.search?S(t.search,l)??{}:h?.length?l:{},p=u?.length?u.reduce(((t,e)=>e(t)),d):d,f=_(r.search,p),m=this.options.stringifySearch(f),y=!0===t.hash?r.hash:t.hash?S(t.hash,r.hash):r.hash,g=y?`#${y}`:"";let v=!0===t.state?r.state:t.state?S(t.state,r.state):r.state;return v=_(r.state,v),{pathname:s,search:f,searchStr:m,state:v,hash:y,href:this.history.createHref(`${s}${m}${g}`),unmaskOnReload:t.unmaskOnReload}},r=(t={},r)=>{let o=e(t),s=r?e(r):void 0;if(!s){let t={},n=this.options.routeMasks?.find((e=>{const r=D(this.basepath,o.pathname,{to:e.from,fuzzy:!1});return!!r&&(t=r,!0)}));n&&(n={...n,from:j(n.from,t)},s=e(r=n))}const n=this.matchRoutes(o.pathname,o.search),a=s?this.matchRoutes(s.pathname,s.search):void 0,i=s?e(r,a):void 0,c=e(t,n);return i&&(c.maskedLocation=i),c};return t.mask?r(t,{...R(t,["from"]),...t.mask}):r(t)};#i=({replace:t,resetScroll:e,...r}={})=>{const o=this.buildLocation(r);return this.#e({...o,replace:t,resetScroll:e})};#e=async t=>{this.navigateTimeout&&clearTimeout(this.navigateTimeout);if(!(this.state.location.href===t.href)||!t.replace){let{maskedLocation:e,...r}=t;e&&(r={...e,state:{...e.state,__tempKey:void 0,__tempLocation:{...r,search:r.searchStr,state:{...r.state,__tempKey:void 0,__tempLocation:void 0,key:void 0}}}},(r.unmaskOnReload??this.options.unmaskOnReload)&&(r.state.__tempKey=this.tempLocationKey)),this.history[t.replace?"replace":"push"](r.href,r.state)}return this.resetNextScroll=t.resetScroll??!0,this.latestLoadPromise};getRouteMatch=t=>this.state.matchesById[t];setRouteMatch=(t,e)=>{this.__store.setState((r=>r.matchesById[t]?{...r,matchesById:{...r.matchesById,[t]:e(r.matchesById[t])}}:r))};setRouteMatchData=(t,e,r)=>{const o=this.getRouteMatch(t);if(!o)return;const s=this.getRoute(o.routeId),n=r?.updatedAt??Date.now(),a=r?.maxAge??s.options.preloadMaxAge??this.options.defaultPreloadMaxAge??5e3,i=r?.maxAge??s.options.maxAge??this.options.defaultMaxAge??-1;this.setRouteMatch(t,(t=>({...t,error:void 0,status:"success",isFetching:!1,updatedAt:n,loaderData:S(e,t.loaderData),preloadMaxAge:a,maxAge:i})))};invalidate=async t=>{if(t?.matchId){this.setRouteMatch(t.matchId,(t=>({...t,invalid:!0})));const e=this.state.matches.findIndex((e=>e.id===t.matchId)),r=this.state.matches[e+1];if(r)return this.invalidate({matchId:r.id,reload:!1,__fromFocus:t.__fromFocus})}else this.__store.batch((()=>{Object.values(this.state.matchesById).forEach((e=>{const r=this.getRoute(e.routeId);(!t?.__fromFocus||(r.options.reloadOnWindowFocus??!0))&&this.setRouteMatch(e.id,(t=>({...t,invalid:!0})))}))}));if(t?.reload??1)return this.load()}},t.RouterContext=class{constructor(){}createRootRoute=t=>new K(t)},t.RouterProvider=function({router:t,...e}){t.update(e),s.useEffect((()=>{let e;return s.startTransition((()=>{e=t.mount()})),e}),[t]);const r=t.options.Wrap||s.Fragment;return s.createElement(r,null,s.createElement(vt.Provider,{value:t},s.createElement(bt,null)))},t.ScrollRestoration=function(t){return Tt(t),null},t.SearchParamError=tt,t.cleanPath=P,t.componentTypes=J,t.createBrowserHistory=m,t.createHashHistory=function(){return m({getHref:()=>window.location.hash.substring(1),createHref:t=>`#${t}`})},t.createMemoryHistory=y,t.createRouteMask=function(t){return t},t.decode=F,t.defaultParseSearch=W,t.defaultStringifySearch=U,t.defer=function(t){const e=t;if(!e.__deferredState){e.__deferredState={uid:Math.random().toString(36).slice(2),status:"pending"};const t=e.__deferredState;e.then((e=>{t.status="success",t.data=e})).catch((e=>{t.status="error",t.error=e}))}return e},t.encode=T,t.functionalUpdate=S,t.interpolatePath=j,t.invariant=w,t.isDehydratedDeferred=dt,t.isMatchInvalid=rt,t.isPlainObject=E,t.isRedirect=Z,t.joinPaths=M,t.last=b,t.lazyFn=function(t,e){return async(...r)=>(await t())[e||"default"](...r)},t.lazyRouteComponent=function(t,e){let r;const o=()=>(r||(r=t()),r),n=s.lazy((async()=>({default:(await o())[e??"default"]})));return n.preload=o,n},t.matchByPath=B,t.matchIdsContext=gt,t.matchPathname=D,t.parsePathname=k,t.parseSearchWith=z,t.partialDeepEqual=I,t.pick=R,t.redirect=function(t){return t.isRedirect=!0,t},t.replaceEqualDeep=_,t.resolvePath=A,t.restoreScrollPositions=lt,t.rootRouteId=H,t.routerContext=vt,t.shallow=function(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!1;for(let o=0;o<r.length;o++)if(!Object.prototype.hasOwnProperty.call(e,r[o])||!Object.is(t[r[o]],e[r[o]]))return!1;return!0},t.stringifySearchWith=Y,t.trimPath=O,t.trimPathLeft=L,t.trimPathRight=C,t.useAwaited=$t,t.useBlocker=Dt,t.useDehydrate=function(){const t=St();return s.useCallback((function(e,r){return t.dehydrateData(e,r)}),[])},t.useHydrate=function(){const t=St();return function(e){return t.hydrateData(e)}},t.useInjectHtml=function(){const t=St();return s.useCallback((e=>{t.injectHtml(e)}),[])},t.useLinkProps=mt,t.useLoader=_t,t.useMatch=Rt,t.useMatchRoute=It,t.useMatches=function(t){const e=s.useContext(gt);return wt({select:r=>{const o=r.renderedMatches.slice(r.renderedMatches.findIndex((t=>t.id===e[0])));return t?.select?t.select(o):o}})},t.useNavigate=function(t){const e=St(),r=Rt({strict:!1});return s.useCallback((o=>e.navigate({from:o?.to?r.pathname:void 0,...t,...o})),[])},t.useParams=xt,t.useRouteContext=function(t){return Rt({...t,select:e=>t?.select?t.select(e.context):e.context})},t.useRouter=St,t.useRouterContext=function(t){return Rt({...t,select:e=>t?.select?t.select(e.context):e.context})},t.useRouterState=wt,t.useScrollRestoration=Tt,t.useSearch=Et,t.useStore=a,t.warning=function(t,e){},t.watchScrollPositions=ut,Object.defineProperty(t,"__esModule",{value:!0})}));
21
+ */const o="pushstate",a="popstate",s="beforeunload",c=e=>(e.preventDefault(),e.returnValue=""),i=()=>{removeEventListener(s,c,{capture:!0})};function u(e){let t=e.getLocation(),r=new Set,n=[],o=[];const a=()=>{t=e.getLocation(),r.forEach((e=>e()))},u=()=>{if(n.length)n[0]?.(u,(()=>{n=[],i()}));else for(;o.length;)o.shift()?.()},h=e=>{o.push(e),u()};return{get location(){return t},subscribe:e=>(r.add(e),()=>{r.delete(e)}),push:(t,r)=>{r=l(r),h((()=>{e.pushState(t,r,a)}))},replace:(t,r)=>{r=l(r),h((()=>{e.replaceState(t,r,a)}))},go:t=>{h((()=>{e.go(t)}))},back:()=>{h((()=>{e.back()}))},forward:()=>{h((()=>{e.forward()}))},createHref:t=>e.createHref(t),block:e=>(n.push(e),1===n.length&&addEventListener(s,c,{capture:!0}),()=>{n=n.filter((t=>t!==e)),n.length||i()}),flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:a}}function l(e){return e||(e={}),e.key=f(),e}function h(e){const t=e?.getHref??(()=>`${window.location.pathname}${window.location.search}${window.location.hash}`),r=e?.createHref??(e=>e);let n=d(t(),window.history.state);let s,c,i=!0;const l=()=>{i=!1,(()=>{s&&(window.history[s.isPush?"pushState":"replaceState"](s.state,"",s.href),s=void 0,c=void 0)})(),i=!0},h=(e,t,o,a)=>{const i=r(t);n=d(i,o),s={href:i,state:o,isPush:s?.isPush||"push"===e},a(),c||(c=Promise.resolve().then((()=>l())))},f=()=>{n=d(t(),window.history.state),y.notify()};var p=window.history.pushState,m=window.history.replaceState;const y=u({getLocation:()=>n,pushState:(e,t,r)=>h("push",e,t,r),replaceState:(e,t,r)=>h("replace",e,t,r),back:()=>window.history.back(),forward:()=>window.history.forward(),go:e=>window.history.go(e),createHref:e=>r(e),flush:l,destroy:()=>{window.history.pushState=p,window.history.replaceState=m,window.removeEventListener(o,f),window.removeEventListener(a,f)}});return window.addEventListener(o,f),window.addEventListener(a,f),window.history.pushState=function(){let e=p.apply(window.history,arguments);return i&&y.notify(),e},window.history.replaceState=function(){let e=m.apply(window.history,arguments);return i&&y.notify(),e},y}function d(e,t){let r=e.indexOf("#"),n=e.indexOf("?");return{href:e,pathname:e.substring(0,r>0?n>0?Math.min(r,n):r:n>0?n:e.length),hash:r>-1?e.substring(r):"",search:n>-1?e.slice(n,-1===r?void 0:r):"",state:t||{}}}function f(){return(Math.random()+1).toString(36).substring(7)}function p(e,t){if(!e)throw new Error("Invariant failed")}function m(e,t){}const y="undefined"==typeof document;function v(e){return e[e.length-1]}function g(e,t){return"function"==typeof e?e(t):e}function w(e,t){return t.reduce(((t,r)=>(t[r]=e[r],t)),{})}function b(e,t){if(e===t)return e;const r=t,n=Array.isArray(e)&&Array.isArray(r);if(n||S(e)&&S(r)){const t=n?e.length:Object.keys(e).length,o=n?r:Object.keys(r),a=o.length,s=n?[]:{};let c=0;for(let t=0;t<a;t++){const a=n?t:o[t];s[a]=b(e[a],r[a]),s[a]===e[a]&&c++}return t===a&&c===t?e:s}return r}function S(e){if(!E(e))return!1;const t=e.constructor;if(void 0===t)return!0;const r=t.prototype;return!!E(r)&&!!r.hasOwnProperty("isPrototypeOf")}function E(e){return"[object Object]"===Object.prototype.toString.call(e)}function R(e,t){return e===t||typeof e==typeof t&&(S(e)&&S(t)?!Object.keys(t).some((r=>!R(e[r],t[r]))):!(!Array.isArray(e)||!Array.isArray(t))&&(e.length===t.length&&e.every(((e,r)=>R(e,t[r])))))}function P(e){const t=n.useRef(e);t.current=e;return n.useRef(((...e)=>t.current(...e))).current}function C(e){return k(e.filter(Boolean).join("/"))}function k(e){return e.replace(/\/{2,}/g,"/")}function M(e){return"/"===e?e:e.replace(/^\/{1,}/,"")}function O(e){return"/"===e?e:e.replace(/\/{1,}$/,"")}function L(e){return O(M(e))}function x(e,t,r){t=t.replace(new RegExp(`^${e}`),"/"),r=r.replace(new RegExp(`^${e}`),"/");let n=I(t);const o=I(r);o.forEach(((e,t)=>{if("/"===e.value)t?t===o.length-1&&n.push(e):n=[e];else if(".."===e.value)n.length>1&&"/"===v(n)?.value&&n.pop(),n.pop();else{if("."===e.value)return;n.push(e)}}));return k(C([e,...n.map((e=>e.value))]))}function I(e){if(!e)return[];const t=[];if("/"===(e=k(e)).slice(0,1)&&(e=e.substring(1),t.push({type:"pathname",value:"/"})),!e)return t;const r=e.split("/").filter(Boolean);return t.push(...r.map((e=>"$"===e||"*"===e?{type:"wildcard",value:e}:"$"===e.charAt(0)?{type:"param",value:e}:{type:"pathname",value:e}))),"/"===e.slice(-1)&&(e=e.substring(1),t.push({type:"pathname",value:"/"})),t}function _(e,t,r=!1){return C(I(e).map((e=>{if("wildcard"===e.type){const n=t[e.value];return r?`${e.value}${n??""}`:n}return"param"===e.type?t[e.value.substring(1)]??"":e.value})))}function j(e,t,r){const n=A(e,t,r);if(!r.to||n)return n??{}}function A(e,t,r){t="/"!=e?t.substring(e.length):t;const n=`${r.to??"$"}`,o=I(t),a=I(n);t.startsWith("/")||o.unshift({type:"pathname",value:"/"}),n.startsWith("/")||a.unshift({type:"pathname",value:"/"});const s={};return(()=>{for(let e=0;e<Math.max(o.length,a.length);e++){const t=o[e],n=a[e],c=e>=o.length-1,i=e>=a.length-1;if(n){if("wildcard"===n.type)return!!t?.value&&(s["*"]=C(o.slice(e).map((e=>e.value))),!0);if("pathname"===n.type){if("/"===n.value&&!t?.value)return!0;if(t)if(r.caseSensitive){if(n.value!==t.value)return!1}else if(n.value.toLowerCase()!==t.value.toLowerCase())return!1}if(!t)return!1;if("param"===n.type){if("/"===t?.value)return!1;"$"!==t.value.charAt(0)&&(s[n.value.substring(1)]=t.value)}}if(!c&&i)return!!r.fuzzy}return!0})()?s:void 0}function T(e,t){var r,n,o,a="";for(r in e)if(void 0!==(o=e[r]))if(Array.isArray(o))for(n=0;n<o.length;n++)a&&(a+="&"),a+=encodeURIComponent(r)+"="+encodeURIComponent(o[n]);else a&&(a+="&"),a+=encodeURIComponent(r)+"="+encodeURIComponent(o);return(t||"")+a}function $(e){if(!e)return"";var t=decodeURIComponent(e);return"false"!==t&&("true"===t||(0*+t==0&&+t+""===t?+t:t))}function D(e){for(var t,r,n={},o=e.split("&");t=o.shift();)void 0!==n[r=(t=t.split("=")).shift()]?n[r]=[].concat(n[r],$(t.shift())):n[r]=$(t.shift());return n}function B(){return B=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},B.apply(this,arguments)}const F=K(JSON.parse),H=z(JSON.stringify,JSON.parse);function K(e){return t=>{"?"===t.substring(0,1)&&(t=t.substring(1));let r=D(t);for(let t in r){const n=r[t];if("string"==typeof n)try{r[t]=e(n)}catch(e){}}return r}}function z(e,t){return r=>{(r={...r})&&Object.keys(r).forEach((n=>{const o=r[n];void 0===o||void 0===o?delete r[n]:r[n]=function(r){if("object"==typeof r&&null!==r)try{return e(r)}catch(e){}else if("string"==typeof r&&"function"==typeof t)try{return t(r),e(r)}catch(e){}return r}(o)}));const n=T(r).toString();return n?`?${n}`:""}}const N=["component","errorComponent","pendingComponent"];function U(e){return!!e?.isRedirect}const W="Error preloading route! ☝️",q=n.createContext(null);function J(e){return{status:"idle",isFetching:!1,resolvedLocation:e,location:e,matches:[],pendingMatches:[],lastUpdated:Date.now()}}class V extends Error{}class G extends Error{}function Q(e,t){return[...e.pendingMatches,...e.matches].find((e=>e.id===t))}const X="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function Y(e){const{buildLink:t,state:r}=te(),o=ne({strict:!1}),{type:a,children:s,target:c,activeProps:i=(()=>({className:"active"})),inactiveProps:u=(()=>({})),activeOptions:l,disabled:h,hash:d,search:f,params:p,to:m,state:y,mask:v,preload:w,preloadDelay:b,replace:S,style:E,className:R,onClick:P,onFocus:C,onMouseEnter:k,onMouseLeave:M,onTouchStart:O,...L}=e,x=t(r,{from:e.to?o.pathname:void 0,...e});if("external"===x.type){const{href:e}=x;return{href:e}}const{handleClick:I,handleFocus:_,handleEnter:j,handleLeave:A,handleTouchStart:T,isActive:$,next:D}=x,B=e=>t=>{t.persist&&t.persist(),e.filter(Boolean).forEach((e=>{t.defaultPrevented||e(t)}))},F=$?g(i,{})??{}:{},H=$?{}:g(u,{})??{};return{...F,...H,...L,href:h?void 0:D.maskedLocation?D.maskedLocation.href:D.href,onClick:B([P,t=>{(e.startTransition??1)&&(n.startTransition||(e=>e))((()=>{I(t)}))}]),onFocus:B([C,_]),onMouseEnter:B([k,j]),onMouseLeave:B([M,A]),onTouchStart:B([O,T]),target:c,style:{...E,...F.style,...H.style},className:[R,F.className,H.className].filter(Boolean).join(" ")||void 0,...h?{role:"link","aria-disabled":!0}:void 0,"data-status":$?"active":void 0}}const Z=n.forwardRef(((e,t)=>{const r=Y(e);return n.createElement("a",B({ref:t},r,{children:"function"==typeof e.children?e.children({isActive:"active"===r["data-status"]}):e.children}))}));const ee=n.createContext(null);function te(){return n.useContext(q)}function re(e){const{state:t}=te();return e?.select?e.select(t):t}function ne(e){const t=n.useContext(ee)[0],r=t?.routeId,o=re({select:r=>(e?.from?r.matches.find((t=>t.routeId===e?.from)):r.matches.find((e=>e.id===t.id))).routeId});(e?.strict??1)&&p(r==o);return re({select:r=>{const n=e?.from?r.matches.find((t=>t.routeId===e?.from)):r.matches.find((e=>e.id===t.id));return p(n,e?.from&&e.from),e?.select?e.select(n):n}})}function oe(e){return ne({...e,select:t=>e?.select?e.select(t.search):t.search})}function ae(e){return re({select:t=>{const r=v(t.matches)?.params;return e?.select?e.select(r):r}})}function se(){const{state:e,matchRoute:t}=te();return n.useCallback((r=>{const{pending:n,caseSensitive:o,...a}=r;return t(e,a,{pending:n,caseSensitive:o})}),[])}function ce(){const{routesById:e,state:t}=te(),{matches:r}=t,o=re({select:e=>e.resolvedLocation.state?.key}),a=e[ve],s=n.useCallback((e=>n.createElement(me,{...e,useMatch:a.useMatch,useRouteMeta:a.useRouteMeta,useSearch:a.useSearch,useParams:a.useParams})),[a]);return n.createElement(ee.Provider,{value:r},n.createElement(fe,{resetKey:o,errorComponent:s,onCatch:()=>{}},r.length?n.createElement(le,{matches:r}):null))}function ie(){const e=n.useContext(ee).slice(1);return e[0]?n.createElement(le,{matches:e}):null}const ue=()=>null;function le({matches:e}){const{options:t,routesById:r}=te(),o=e[0],a=o?.routeId,s=r[a],c=re({select:e=>e.resolvedLocation.state?.key}),i=s.options.pendingComponent??t.defaultPendingComponent??ue,u=s.options.errorComponent??t.defaultErrorComponent??me,l=s.options.wrapInSuspense??!s.isRoot?n.Suspense:de,h=u?fe:de,d=n.useCallback((e=>n.createElement(u,{...e,useMatch:s.useMatch,useRouteMeta:s.useRouteMeta,useSearch:s.useSearch,useParams:s.useParams})),[s]);return n.createElement(ee.Provider,{value:e},n.createElement(l,{fallback:n.createElement(i,{useMatch:s.useMatch,useRouteMeta:s.useRouteMeta,useSearch:s.useSearch,useParams:s.useParams})},n.createElement(h,{resetKey:c,errorComponent:d,onCatch:()=>{o.id}},n.createElement(he,{match:o}))))}function he({match:e}){const{options:t,routesById:r}=te(),o=r[e.routeId];if("error"===e.status)throw e.error;if("pending"===e.status)throw e.loadPromise;if("success"===e.status){let e=o.options.component??t.defaultComponent;return e?n.createElement(e,{useMatch:o.useMatch,useRouteMeta:o.useRouteMeta,useSearch:o.useSearch,useParams:o.useParams}):n.createElement(ie,null)}p(!1)}function de(e){return n.createElement(n.Fragment,null,e.children)}function fe(e){const t=e.errorComponent??me;return n.createElement(pe,{resetKey:e.resetKey,onCatch:e.onCatch,children:({error:r})=>r?n.createElement(t,{error:r}):e.children})}class pe extends n.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidUpdate(e,t){t.error&&e.resetKey!==this.props.resetKey&&this.setState({error:null})}componentDidCatch(e){this.props.onCatch?.(e)}render(){return this.props.children(this.state)}}function me({error:e}){const[t,r]=n.useState(!1);return n.createElement("div",{style:{padding:".5rem",maxWidth:"100%"}},n.createElement("div",{style:{display:"flex",alignItems:"center",gap:".5rem"}},n.createElement("strong",{style:{fontSize:"1rem"}},"Something went wrong!"),n.createElement("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>r((e=>!e))},t?"Hide Error":"Show Error")),n.createElement("div",{style:{height:".25rem"}}),t?n.createElement("div",null,n.createElement("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"}},e.message?n.createElement("code",null,e.message):null)):null)}function ye(e,t=!0){const{history:r}=te();n.useEffect((()=>{if(!t)return;let n=r.block(((t,r)=>{window.confirm(e)&&(n(),t())}));return n}))}const ve="__root__";class ge{constructor(e){this.options=e||{},this.isRoot=!e?.getParentRoute,ge.__onInit(this)}init=e=>{this.originalIndex=e.originalIndex;const t=this.options,r=!t?.path&&!t?.id;this.parentRoute=this.options?.getParentRoute?.(),r?this.path=ve:p(this.parentRoute);let n=r?ve:t.path;n&&"/"!==n&&(n=L(n));const o=t?.id||n;let a=r?ve:C([this.parentRoute.id===ve?"":this.parentRoute.id,o]);n===ve&&(n="/"),a!==ve&&(a=C(["/",a]));const s=a===ve?"/":C([this.parentRoute.fullPath,n]);this.path=n,this.id=a,this.fullPath=s,this.to=s};addChildren=e=>(this.children=e,this);update=e=>(Object.assign(this.options,e),this);static __onInit=e=>{};useMatch=e=>ne({...e,from:this.id});useRouteMeta=e=>ne({...e,from:this.id,select:t=>e?.select?e.select(t.meta):t.meta});useSearch=e=>oe({...e,from:this.id});useParams=e=>ae({...e,from:this.id})}class we extends ge{constructor(e){super(e)}}e.Block=function({message:e,condition:t,children:r}){return ye(e,t),r??null},e.CatchBoundary=fe,e.CatchBoundaryImpl=pe,e.ErrorComponent=me,e.FileRoute=class{constructor(e){this.path=e}createRoute=e=>{const t=new ge(e);return t.isRoot=!1,t}},e.Link=Z,e.MatchRoute=function(e){const t=se()(e);return"function"==typeof e.children?e.children(t):t?e.children:null},e.Matches=ce,e.Navigate=function(e){const{navigate:t}=te(),r=ne({strict:!1});return X((()=>{t({from:e.to?r.pathname:void 0,...e})}),[]),null},e.Outlet=ie,e.PathParamError=G,e.RootRoute=we,e.Route=ge,e.Router=class{constructor(e){this.options={defaultPreloadDelay:50,meta:void 0,...e,stringifySearch:e?.stringifySearch??H,parseSearch:e?.parseSearch??F},this.routeTree=this.options.routeTree}subscribers=new Set;subscribe=(e,t)=>{const r={eventType:e,fn:t};return this.subscribers.add(r),()=>{this.subscribers.delete(r)}};emit=e=>{this.subscribers.forEach((t=>{t.eventType===e.type&&t.fn(e)}))}},e.RouterMeta=class{constructor(){}createRootRoute=e=>new we(e)},e.RouterProvider=function({router:e,...t}){const r={...e.options,...t,meta:{...e.options.meta,...t?.meta}},o=n.useState((()=>r.history??h()))[0],a=n.useRef(`${Math.round(1e7*Math.random())}`),s=n.useRef(!1),c=n.useRef(null),i=P((e=>{const t=({pathname:t,search:n,hash:o,state:a})=>{const s=r.parseSearch(n);return{pathname:t,searchStr:n,search:b(e?.search,s),hash:o.split("#").reverse()[0]??"",href:`${t}${n}${o}`,state:b(e?.state,a)}},n=t(o.location);let{__tempLocation:s,__tempKey:c}=n.state;if(s&&(!c||c===a.current)){const e=t(s);return e.state.key=n.state.key,delete e.state.__tempLocation,{...e,maskedLocation:n}}return n})),[u,l]=n.useState((()=>J(i()))),d=`/${L(r.basepath??"")??""}`,f=P(((e,t)=>x(d,e,k(t)))),[m,y]=n.useMemo((()=>{const t={},r={},n=e=>{e.forEach(((e,o)=>{e.init({originalIndex:o});if(p(!t[e.id],String(e.id)),t[e.id]=e,!e.isRoot&&e.path){const t=O(e.fullPath);r[t]&&!e.fullPath.endsWith("/")||(r[t]=e)}const a=e.children;a?.length&&n(a)}))};return n([e.routeTree]),[t,r]}),[]),S=m,E=n.useMemo((()=>Object.values(y).map(((e,t)=>{const r=L(e.fullPath),n=I(r);for(;n.length>1&&"/"===n[0]?.value;)n.shift();const o=n.map((e=>"param"===e.type?.5:"wildcard"===e.type?.25:1));return{child:e,trimmed:r,parsed:n,index:t,score:o}})).sort(((e,t)=>{let r="/"===e.trimmed?1:"/"===t.trimmed?-1:0;if(0!==r)return r;const n=Math.min(e.score.length,t.score.length);if(e.score.length!==t.score.length)return t.score.length-e.score.length;for(let r=0;r<n;r++)if(e.score[r]!==t.score[r])return t.score[r]-e.score[r];for(let r=0;r<n;r++)if(e.parsed[r].value!==t.parsed[r].value)return e.parsed[r].value>t.parsed[r].value?1:-1;return e.trimmed!==t.trimmed?e.trimmed>t.trimmed?1:-1:e.index-t.index})).map(((e,t)=>(e.child.rank=t,e.child)))),[y]),M=n.useRef(Promise.resolve()),A=P(((e,t,n)=>{let o={},a=E.find((t=>{const n=j(d,O(e),{to:t.fullPath,caseSensitive:t.options.caseSensitive??r.caseSensitive,fuzzy:!1});return!!n&&(o=n,!0)}))||m.__root__,s=[a];for(;a?.parentRoute;)a=a.parentRoute,a&&s.unshift(a);const c=s.map((e=>{let t;if(e.options.parseParams)try{const t=e.options.parseParams(o);Object.assign(o,t)}catch(e){if(t=new G(e.message,{cause:e}),n?.throwOnError)throw t;return t}})),i=s.map(((e,t)=>{const r=_(e.path,o),n=_(e.id,o,!0),a=Q(u,n);if(a)return{...a};const s=!(!e.options.load&&!N.some((t=>e.options[t]?.preload)));return{id:n,routeId:e.id,params:o,pathname:C([d,r]),updatedAt:Date.now(),routeSearch:{},search:{},status:s?"pending":"success",isFetching:!1,invalid:!1,error:void 0,paramsError:c[t],searchError:void 0,loadPromise:Promise.resolve(),meta:void 0,abortController:new AbortController,fetchedAt:0}}));return i.forEach(((e,r)=>{const o=i[r-1],a=S[e.routeId],s=(()=>{const r={search:o?.search??t,routeSearch:o?.routeSearch??t};try{let t=("object"==typeof a.options.validateSearch?a.options.validateSearch.parse:a.options.validateSearch)?.(r.search)??{},n={...r.search,...t};return t=b(e.routeSearch,t),n=b(e.search,n),{routeSearch:t,search:n,searchDidChange:e.routeSearch!==t}}catch(t){if(e.searchError=new V(t.message,{cause:t}),n?.throwOnError)throw e.searchError;return r}})();Object.assign(e,s)})),i})),T=P((e=>{Q(u,e)?.abortController?.abort()})),$=P((e=>{e.matches.forEach((e=>{T(e.id)}))})),D=P(((e={})=>{const t=(e={},t)=>{const n=ee.current,a=e.from??n.pathname;let s=f(a,`${e.to??""}`);const c=A(a,n.search),i=t?.filter((e=>c?.find((t=>t.routeId===e.routeId)))),u={...v(c)?.params};let l=!0===(e.params??!0)?u:g(e.params,u);l&&t?.map((e=>S[e.routeId].options.stringifyParams)).filter(Boolean).forEach((e=>{l={...l,...e(l)}})),s=_(s,l??{});const h=i?.map((e=>S[e.routeId].options.preSearchFilters??[])).flat().filter(Boolean)??[],d=i?.map((e=>S[e.routeId].options.postSearchFilters??[])).flat().filter(Boolean)??[],p=h?.length?h?.reduce(((e,t)=>t(e)),n.search):n.search,m=!0===e.search?p:e.search?g(e.search,p)??{}:h?.length?p:{},y=d?.length?d.reduce(((e,t)=>t(e)),m):m,w=b(n.search,y),E=r.stringifySearch(w),R=!0===e.hash?n.hash:e.hash?g(e.hash,n.hash):n.hash,P=R?`#${R}`:"";let C=!0===e.state?n.state:e.state?g(e.state,n.state):n.state;return C=b(n.state,C),{pathname:s,search:w,searchStr:E,state:C,hash:R,href:o.createHref(`${s}${E}${P}`),unmaskOnReload:e.unmaskOnReload}},n=(e={},n)=>{let o=t(e),a=n?t(n):void 0;if(!a){let e={},s=r.routeMasks?.find((t=>{const r=j(d,o.pathname,{to:t.from,caseSensitive:!1,fuzzy:!1});return!!r&&(e=r,!0)}));s&&(s={...s,from:_(s.from,e)},a=t(n=s))}const s=A(o.pathname,o.search),c=a?A(a.pathname,a.search):void 0,i=a?t(n,c):void 0,u=t(e,s);return i&&(u.maskedLocation=i),u};return e.mask?n(e,{...w(e,["from"]),...e.mask}):n(e)})),B=P((async e=>{c.current&&clearTimeout(c.current);if(!(ee.current.href===e.href)||!e.replace){let{maskedLocation:t,...n}=e;t&&(n={...t,state:{...t.state,__tempKey:void 0,__tempLocation:{...n,search:n.searchStr,state:{...n.state,__tempKey:void 0,__tempLocation:void 0,key:void 0}}}},(n.unmaskOnReload??r.unmaskOnReload)&&(n.state.__tempKey=a.current)),o[e.replace?"replace":"push"](n.href,n.state)}return s.current=e.resetScroll??!0,M.current})),F=P((({replace:e,resetScroll:t,...r}={})=>{const n=D(r);return B({...n,replace:e,resetScroll:t})})),H=P((({from:e,to:t="",...r})=>{const n=String(t),o=void 0===e?e:String(e);let a;try{new URL(`${n}`),a=!0}catch(e){}return p(!a),F({...r,from:o,to:n})})),K=P((async({matches:e,preload:t})=>{let n;try{for(let[o,a]of e.entries()){const s=e[o-1],c=S[a.routeId],i=(t,r)=>{if(t.routerCode=r,n=n??o,U(t))throw t;try{c.options.onError?.(t)}catch(e){if(t=e,U(e))throw e}e[o]=a={...a,error:t,status:"error",updatedAt:Date.now()}};try{a.paramsError&&i(a.paramsError,"PARSE_PARAMS"),a.searchError&&i(a.searchError,"VALIDATE_SEARCH");const n=s?.meta??r.meta??{},l=await(c.options.beforeLoad?.({search:a.search,abortController:a.abortController,params:a.params,preload:!!t,meta:n,location:u.location}))??{},h={...n,...l};e[o]=a={...a,meta:b(a.meta,h)}}catch(e){i(e,"BEFORE_LOAD");break}}}catch(e){if(U(e))return void(t||H(e));throw e}const o=e.slice(0,n),a=[];o.forEach(((r,n)=>{a.push((async()=>{const o=a[n-1],s=S[r.routeId];if(r.isFetching)return Q(u,r.id)?.loadPromise;const c=Date.now(),i=()=>{const e=Q(u,r.id);return e&&e.fetchedAt!==c?e.loadPromise:void 0},l=e=>!!U(e)&&(t||H(e),!0);let h;e[n]=r={...r,isFetching:!0,fetchedAt:c,invalid:!1},h=(async()=>{let a;try{const c=Promise.all(N.map((async e=>{const t=s.options[e];t?.preload&&await t.preload()}))),u=s.options.load?.({params:r.params,search:r.search,preload:!!t,parentMatchPromise:o,abortController:r.abortController,meta:r.meta});if(await Promise.all([c,u]),a=i())return await a;e[n]=r={...r,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now()}}catch(t){if(a=i())return await a;if(l(t))return;try{s.options.onError?.(t)}catch(e){if(t=e,l(e))return}e[n]=r={...r,error:t,status:"error",isFetching:!1,updatedAt:Date.now()}}})(),e[n]=r={...r,loadPromise:h},await h})())})),await Promise.all(a)})),z=P((async t=>{const r=new Promise((async(n,o)=>{const a=u.resolvedLocation,s=!(!t?.next||a.href===t.next.href);let c;const i=()=>M.current!==r?M.current:void 0;$(u),e.emit({type:"onBeforeLoad",from:a,to:t?.next??u.location,pathChanged:s}),t?.next&&l((e=>({...e,location:t.next})));const h=A(u.location.pathname,u.location.search,{throwOnError:t?.throwOnError,debug:!0});l((e=>({...e,status:"pending",matches:h})));try{try{await K({matches:h})}catch(e){}if(c=i())return c;l((e=>({...e,status:"idle",resolvedLocation:e.location}))),e.emit({type:"onLoad",from:a,to:u.location,pathChanged:s}),n()}catch(e){if(c=i())return c;o(e)}}));return M.current=r,M.current})),X=n.useCallback((async()=>{try{return z()}catch(e){}}),[]),Y=P((async(e=u.location)=>{let t=D(e),r=A(t.pathname,t.search,{throwOnError:!0});return await K({matches:r,preload:!0}),[v(r),r]})),Z=P(((e,t)=>{const{to:n,preload:o,preloadDelay:a,activeOptions:s,disabled:c,target:i,replace:u,resetScroll:l}=t;try{return new URL(`${n}`),{type:"external",href:n}}catch(e){}const h=t,d=D(h),f=o??r.defaultPreload,p=a??r.defaultPreloadDelay??0,m=ee.current.pathname.split("/"),y=d.pathname.split("/").every(((e,t)=>e===m[t])),v=s?.exact?ee.current.pathname===d.pathname:y,g=!s?.includeHash||ee.current.hash===d.hash,w=!(s?.includeSearch??1)||R(ee.current.search,d.search);return{type:"internal",next:d,handleFocus:e=>{f&&Y(h).catch((e=>{console.warn(e),console.warn(W)}))},handleClick:e=>{c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||e.defaultPrevented||i&&"_self"!==i||0!==e.button||(e.preventDefault(),B({...d,replace:u,resetScroll:l}))},handleEnter:e=>{const t=e.target||{};if(f){if(t.preloadTimeout)return;t.preloadTimeout=setTimeout((()=>{t.preloadTimeout=null,Y(h).catch((e=>{console.warn(e),console.warn(W)}))}),p)}},handleLeave:e=>{const t=e.target||{};t.preloadTimeout&&(clearTimeout(t.preloadTimeout),t.preloadTimeout=null)},handleTouchStart:e=>{Y(h).catch((e=>{console.warn(e),console.warn(W)}))},isActive:v&&g&&w,disabled:c}})),ee=n.useRef(u.location);n.useLayoutEffect((()=>{const e=o.subscribe((()=>{ee.current=i(ee.current),n.startTransition((()=>{l((e=>({...e,location:ee.current})))}))})),t=D({search:!0,params:!0,hash:!0,state:!0});return u.location.href!==t.href&&B({...t,replace:!0}),()=>{e()}}),[o]);const te=n.useRef(!0);te.current&&(te.current=!1,X()),n.useLayoutEffect((()=>{u.resolvedLocation!==u.location&&X()}),[u.location]),n.useMemo((()=>[...u.matches,...u.pendingMatches].some((e=>e.isFetching))),[u.matches,u.pendingMatches]);const re=P(((e,t,r)=>{t={...t,to:t.to?f(t.from||"",t.to):void 0};const n=D(t);if(r?.pending&&"pending"!==e.status)return!1;const o=r?.pending?ee.current:e.resolvedLocation;if(!o)return!1;const a=j(d,o.pathname,{...r,to:n.pathname});return!!a&&(r?.includeSearch??1?!!R(o.search,n.search)&&a:a)})),ne={routeTree:e.routeTree,navigate:H,buildLink:Z,state:u,matchRoute:re,routesById:m,options:r,history:o,load:z};return n.createElement(q.Provider,{value:ne},n.createElement(ce,null))},e.SearchParamError=V,e.cleanPath=k,e.componentTypes=N,e.createBrowserHistory=h,e.createHashHistory=function(){return h({getHref:()=>window.location.hash.substring(1),createHref:e=>`#${e}`})},e.createMemoryHistory=function(e={initialEntries:["/"]}){const t=e.initialEntries;let r=e.initialIndex??t.length-1,n={key:f()};return u({getLocation:()=>d(t[r],n),pushState:(e,o)=>{n=o,t.push(e),r++},replaceState:(e,o)=>{n=o,t[r]=e},back:()=>{r--},forward:()=>{r=Math.min(r+1,t.length-1)},go:e=>window.history.go(e),createHref:e=>e})},e.createRouteMask=function(e){return e},e.decode=D,e.defaultParseSearch=F,e.defaultStringifySearch=H,e.encode=T,e.functionalUpdate=g,e.getInitialRouterState=J,e.getRouteMatch=Q,e.interpolatePath=_,e.invariant=p,e.isPlainObject=S,e.isRedirect=U,e.isServer=y,e.joinPaths=C,e.last=v,e.lazyFn=function(e,t){return async(...r)=>(await e())[t||"default"](...r)},e.lazyRouteComponent=function(e,t){let r;const o=()=>(r||(r=e()),r),a=n.lazy((async()=>({default:(await o())[t??"default"]})));return a.preload=o,a},e.matchByPath=A,e.matchPathname=j,e.matchesContext=ee,e.parsePathname=I,e.parseSearchWith=K,e.partialDeepEqual=R,e.pick=w,e.redirect=function(e){return e.isRedirect=!0,e},e.replaceEqualDeep=b,e.resolvePath=x,e.rootRouteId=ve,e.routerContext=q,e.shallow=function(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(let n=0;n<r.length;n++)if(!Object.prototype.hasOwnProperty.call(t,r[n])||!Object.is(e[r[n]],t[r[n]]))return!1;return!0},e.stringifySearchWith=z,e.trimPath=L,e.trimPathLeft=M,e.trimPathRight=O,e.useBlocker=ye,e.useLinkProps=Y,e.useMatch=ne,e.useMatchRoute=se,e.useMatches=function(e){const t=n.useContext(ee);return re({select:r=>{const n=r.matches.slice(r.matches.findIndex((e=>e.id===t[0]?.id)));return e?.select?e.select(n):n}})},e.useNavigate=function(e){const{navigate:t}=te(),r=ne({strict:!1});return n.useCallback((n=>t({from:n?.to?r.pathname:void 0,...e,...n})),[])},e.useParams=ae,e.useRouteMeta=function(e){return ne({...e,select:t=>e?.select?e.select(t.meta):t.meta})},e.useRouter=te,e.useRouterState=re,e.useSearch=oe,e.useStableCallback=P,e.warning=m,Object.defineProperty(e,"__esModule",{value:!0})}));
53
22
  //# sourceMappingURL=index.production.js.map