@tanstack/react-router 0.0.1-beta.233 → 0.0.1-beta.234

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.
@@ -18,5 +18,5 @@
18
18
  * LICENSE.md file in the root directory of this source tree.
19
19
  *
20
20
  * @license MIT
21
- */const r="pushstate",s="popstate",a="beforeunload",i=t=>(t.preventDefault(),t.returnValue=""),c=()=>{removeEventListener(a,i,{capture:!0})};function l(t){let e=t.getLocation(),o=new Set,n=[],r=[];const s=()=>{e=t.getLocation(),o.forEach((t=>t()))},l=()=>{if(n.length)n[0]?.(l,(()=>{n=[],c()}));else for(;r.length;)r.shift()?.()},h=t=>{r.push(t),l()};return{get location(){return e},subscribe:t=>(o.add(t),()=>{o.delete(t)}),push:(e,o)=>{o=u(o),h((()=>{t.pushState(e,o,s)}))},replace:(e,o)=>{o=u(o),h((()=>{t.replaceState(e,o,s)}))},go:e=>{h((()=>{t.go(e)}))},back:()=>{h((()=>{t.back()}))},forward:()=>{h((()=>{t.forward()}))},createHref:e=>t.createHref(e),block:t=>(n.push(t),1===n.length&&addEventListener(a,i,{capture:!0}),()=>{n=n.filter((e=>e!==t)),n.length||c()}),flush:()=>t.flush?.(),destroy:()=>t.destroy?.(),notify:s}}function u(t){return t||(t={}),{...t,key:p()}}function h(t){const e=t?.getHref??(()=>`${window.location.pathname}${window.location.search}${window.location.hash}`),o=t?.createHref??(t=>t);let n=f(e(),window.history.state);let a,i,c=!0;const u=()=>{c=!1,(()=>{a&&(window.history[a.isPush?"pushState":"replaceState"](a.state,"",a.href),a=void 0,i=void 0)})(),c=!0},h=(t,e,r,s)=>{const c=o(e);n=f(c,r),a={href:c,state:r,isPush:a?.isPush||"push"===t},s(),i||(i=Promise.resolve().then((()=>u())))},d=()=>{n=f(e(),window.history.state),y.notify()};var p=window.history.pushState,m=window.history.replaceState;const y=l({getLocation:()=>n,pushState:(t,e,o)=>h("push",t,e,o),replaceState:(t,e,o)=>h("replace",t,e,o),back:()=>window.history.back(),forward:()=>window.history.forward(),go:t=>window.history.go(t),createHref:t=>o(t),flush:u,destroy:()=>{window.history.pushState=p,window.history.replaceState=m,window.removeEventListener(r,d),window.removeEventListener(s,d)}});return window.addEventListener(r,d),window.addEventListener(s,d),window.history.pushState=function(){let t=p.apply(window.history,arguments);return c&&y.notify(),t},window.history.replaceState=function(){let t=m.apply(window.history,arguments);return c&&y.notify(),t},y}function d(t={initialEntries:["/"]}){const e=t.initialEntries;let o=t.initialIndex??e.length-1,n={key:p()};return l({getLocation:()=>f(e[o],n),pushState:(t,r)=>{n=r,e.push(t),o++},replaceState:(t,r)=>{n=r,e[o]=t},back:()=>{o--},forward:()=>{o=Math.min(o+1,e.length-1)},go:t=>window.history.go(t),createHref:t=>t})}function f(t,e){let o=t.indexOf("#"),n=t.indexOf("?");return{href:t,pathname:t.substring(0,o>0?n>0?Math.min(o,n):o:n>0?n:t.length),hash:o>-1?t.substring(o):"",search:n>-1?t.slice(n,-1===o?void 0:o):"",state:e||{}}}function p(){return(Math.random()+1).toString(36).substring(7)}var m="Invariant failed";function y(t,e){if(!t)throw new Error(m)}function g(t,e){}function v(t){const e=t.errorComponent??S;return n.createElement(w,{resetKey:t.resetKey,onCatch:t.onCatch,children:({error:o})=>o?n.createElement(e,{error:o}):t.children})}class w extends n.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){console.error(t),this.props.onCatch?.(t)}render(){return this.props.children(this.state)}}function S({error:t}){const[e,o]=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:()=>o((t=>!t))},e?"Hide Error":"Show Error")),n.createElement("div",{style:{height:".25rem"}}),e?n.createElement("div",null,n.createElement("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"}},t.message?n.createElement("code",null,t.message):null)):null)}const R="undefined"==typeof document;function b(t){return t[t.length-1]}function E(t,e){return"function"==typeof t?t(e):t}function L(t,e){return e.reduce(((e,o)=>(e[o]=t[o],e)),{})}function P(t,e){if(t===e)return t;const o=e,n=Array.isArray(t)&&Array.isArray(o);if(n||_(t)&&_(o)){const e=n?t.length:Object.keys(t).length,r=n?o:Object.keys(o),s=r.length,a=n?[]:{};let i=0;for(let e=0;e<s;e++){const s=n?e:r[e];a[s]=P(t[s],o[s]),a[s]===t[s]&&i++}return e===s&&i===e?t:a}return o}function _(t){if(!C(t))return!1;const e=t.constructor;if(void 0===e)return!0;const o=e.prototype;return!!C(o)&&!!o.hasOwnProperty("isPrototypeOf")}function C(t){return"[object Object]"===Object.prototype.toString.call(t)}function x(t,e,o=!1){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(_(t)&&_(e)){const n=Object.keys(t),r=Object.keys(e);return!(!o&&n.length!==r.length)&&!r.some((n=>!(n in t)||!x(t[n],e[n],o)))}return!(!Array.isArray(t)||!Array.isArray(e))&&!t.some(((t,n)=>!x(t,e[n],o)))}const k="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function T(t){return t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/"/g,'\\"')}function M(t){return D(t.filter(Boolean).join("/"))}function D(t){return t.replace(/\/{2,}/g,"/")}function O(t){return"/"===t?t:t.replace(/^\/{1,}/,"")}function I(t){return"/"===t?t:t.replace(/\/{1,}$/,"")}function j(t){return I(O(t))}function A(t,e,o){e=e.replace(new RegExp(`^${t}`),"/"),o=o.replace(new RegExp(`^${t}`),"/");let n=$(e);const r=$(o);r.forEach(((t,e)=>{if("/"===t.value)e?e===r.length-1&&n.push(t):n=[t];else if(".."===t.value)n.length>1&&"/"===b(n)?.value&&n.pop(),n.pop();else{if("."===t.value)return;n.push(t)}}));return D(M([t,...n.map((t=>t.value))]))}function $(t){if(!t)return[];const e=[];if("/"===(t=D(t)).slice(0,1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),!t)return e;const o=t.split("/").filter(Boolean);return e.push(...o.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 B(t,e,o=!1){return M($(t).map((t=>{if("wildcard"===t.type){const n=e[t.value];return o?`${t.value}${n??""}`:n}return"param"===t.type?e[t.value.substring(1)]??"":t.value})))}function N(t,e,o){const n=H(t,e,o);if(!o.to||n)return n??{}}function H(t,e,o){e="/"!=t?e.substring(t.length):e;const n=`${o.to??"$"}`,r=$(e),s=$(n);e.startsWith("/")||r.unshift({type:"pathname",value:"/"}),n.startsWith("/")||s.unshift({type:"pathname",value:"/"});const a={};return(()=>{for(let t=0;t<Math.max(r.length,s.length);t++){const e=r[t],n=s[t],i=t>=r.length-1,c=t>=s.length-1;if(n){if("wildcard"===n.type)return!!e?.value&&(a["*"]=M(r.slice(t).map((t=>t.value))),!0);if("pathname"===n.type){if("/"===n.value&&!e?.value)return!0;if(e)if(o.caseSensitive){if(n.value!==e.value)return!1}else if(n.value.toLowerCase()!==e.value.toLowerCase())return!1}if(!e)return!1;if("param"===n.type){if("/"===e?.value)return!1;"$"!==e.value.charAt(0)&&(a[n.value.substring(1)]=e.value)}}if(!i&&c)return!!o.fuzzy}return!0})()?a:void 0}function K(t){return rt({select:e=>{const o=b(e.matches)?.params;return t?.select?t.select(o):o}})}function F(t){return Q({...t,select:e=>t?.select?t.select(e.search):e.search})}const W="__root__";class z{constructor(t){this.options=t||{},this.isRoot=!t?.getParentRoute,z.__onInit(this),this.$$typeof=Symbol.for("react.memo")}init=t=>{this.originalIndex=t.originalIndex;const e=this.options,o=!e?.path&&!e?.id;this.parentRoute=this.options?.getParentRoute?.(),o?this.path=W:y(this.parentRoute);let n=o?W:e.path;n&&"/"!==n&&(n=j(n));const r=e?.id||n;let s=o?W:M([this.parentRoute.id===W?"":this.parentRoute.id,r]);n===W&&(n="/"),s!==W&&(s=M(["/",s]));const a=s===W?"/":M([this.parentRoute.fullPath,n]);this.path=n,this.id=s,this.fullPath=a,this.to=a};addChildren=t=>(this.children=t,this);update=t=>(Object.assign(this.options,t),this);static __onInit=t=>{};useMatch=t=>Q({...t,from:this.id});useRouteContext=t=>Q({...t,from:this.id,select:e=>t?.select?t.select(e.context):e.context});useSearch=t=>F({...t,from:this.id});useParams=t=>K({...t,from:this.id});useLoaderData=t=>tt({...t,from:this.id})}class U extends z{constructor(t){super(t)}}function Y(){const{routesById:t,state:e}=st(),{matches:o}=e,r=rt().location.state.key,s=t[W],a=n.useCallback((t=>n.createElement(S,{...t,useMatch:s.useMatch,useRouteContext:s.useRouteContext,useSearch:s.useSearch,useParams:s.useParams})),[s]);return n.createElement(Z.Provider,{value:o},n.createElement(v,{resetKey:r,errorComponent:a,onCatch:()=>{}},o.length?n.createElement(X,{matches:o}):null))}function J(t){return n.createElement(n.Fragment,null,t.children)}function X({matches:t}){const{options:e,routesById:o}=st(),r=t[0],s=r?.routeId,a=o[s],i=st(),c=i.latestLocation.state?.key,l=a.options.pendingComponent??e.defaultPendingComponent,u=l?n.createElement(l,{useMatch:a.useMatch,useRouteContext:a.useRouteContext,useSearch:a.useSearch,useParams:a.useParams}):void 0,h=a.options.errorComponent??e.defaultErrorComponent??S,d=a.options.wrapInSuspense??u?n.Suspense:J,f=h?n.useCallback((t=>n.createElement(h,{...t,useMatch:a.useMatch,useRouteContext:a.useRouteContext,useSearch:a.useSearch,useParams:a.useParams})),[a]):void 0,p=f?v:J;return n.createElement(Z.Provider,{value:t},n.createElement(d,{fallback:u},n.createElement(p,{resetKey:c,errorComponent:f,onCatch:()=>{r.id}},n.createElement(q,{match:r,pendingElement:u}))))}function q({match:t,pendingElement:e}){const{options:o,routesById:r}=st(),s=r[t.routeId];if("error"===t.status)throw t.error;if("pending"===t.status){if(t.showPending)return e||null;throw t.loadPromise}if("success"===t.status){let t=s.options.component??o.defaultComponent;return t?n.createElement(t,{useMatch:s.useMatch,useRouteContext:s.useRouteContext,useSearch:s.useSearch,useParams:s.useParams,useLoaderData:s.useLoaderData}):n.createElement(V,null)}y(!1)}function V(){const t=n.useContext(Z).slice(1);return t[0]?n.createElement(X,{matches:t}):null}function G(){const{matchRoute:t}=st();return n.useCallback((e=>{const{pending:o,caseSensitive:n,...r}=e;return t(r,{pending:o,caseSensitive:n})}),[])}function Q(t){const e=n.useContext(Z)[0],o=e?.routeId,r=rt({select:o=>(t?.from?o.matches.find((e=>e.routeId===t?.from)):o.matches.find((t=>t.id===e.id))).routeId});(t?.strict??1)&&y(o==r);return rt({select:o=>{const n=t?.from?o.matches.find((e=>e.routeId===t?.from)):o.matches.find((t=>t.id===e.id));return y(n,t?.from&&t.from),t?.select?t.select(n):n}})}const Z=n.createContext(null);function tt(t){const e=Q({...t,select:void 0});return"function"==typeof t.select?t.select(e?.loaderData):e?.loaderData}const et=n.createContext(null);function ot({router:t}){const[e,o]=n.useState((()=>t.state)),[r,s]=n.useTransition(),a=r||e.matches.some((t=>"pending"===t.status)),i=n.useMemo((()=>({...e,status:a?"pending":"idle",location:r?t.latestLocation:e.location,pendingMatches:t.pendingMatches})),[e,r]);t.setState=o,t.state=i,t.startReactTransition=s;const c=()=>{i.location!==t.latestLocation&&s((()=>{try{t.load()}catch(t){console.error(t)}}))};return k((()=>{const e=t.history.subscribe((()=>{t.latestLocation=t.parseLocation(t.latestLocation),c()})),o=t.buildLocation({search:!0,params:!0,hash:!0,state:!0});return i.location.href!==o.href&&t.commitLocation({...o,replace:!0}),()=>{e()}}),[t.history]),k((()=>{r||i.resolvedLocation===i.location||(t.emit({type:"onResolved",fromLocation:i.resolvedLocation,toLocation:i.location,pathChanged:i.location.href!==i.resolvedLocation?.href}),t.pendingMatches=[],o((t=>({...t,resolvedLocation:t.location}))))})),k((()=>{window.__TSR_DEHYDRATED__||c()}),[]),n.createElement(et.Provider,{value:t},n.createElement(Y,null))}function nt(t,e){return[...t.pendingMatches,...t.matches].find((t=>t.id===e))}function rt(t){const{state:e}=st();return t?.select?t.select(e):e}function st(){const t="undefined"!=typeof document&&window.__TSR_ROUTER_CONTEXT__||et;return n.useContext(t)}function at(t){return"object"==typeof t&&null!==t&&!(t instanceof Promise)&&!t.then&&"__deferredState"in t}function it({promise:t}){const e=st();let o=t.__deferredState;const n=`__TSR__DEFERRED__${o.uid}`;if(at(t)&&(o=e.hydrateData(n),(t=Promise.resolve(o.data)).__deferredState=o),"pending"===o.status)throw new Promise((t=>setTimeout(t,1))).then((()=>t));if("error"===o.status)throw o.error;return e.dehydrateData(n,o),[o.data]}"undefined"!=typeof document&&(window.__TSR_ROUTER_CONTEXT__=et);function ct(){return ct=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t},ct.apply(this,arguments)}function lt(t){const{buildLink:e}=st(),o=Q({strict:!1}),{type:n,children:r,target:s,activeProps:a=(()=>({className:"active"})),inactiveProps:i=(()=>({})),activeOptions:c,disabled:l,hash:u,search:h,params:d,to:f,state:p,mask:m,preload:y,preloadDelay:g,replace:v,startTransition:w,resetScroll:S,style:R,className:b,onClick:L,onFocus:P,onMouseEnter:_,onMouseLeave:C,onTouchStart:x,...k}=t,T=e({from:t.to?o.pathname:void 0,...t});if("external"===T.type){const{href:t}=T;return{href:t}}const{handleClick:M,handleFocus:D,handleEnter:O,handleLeave:I,handleTouchStart:j,isActive:A,next:$}=T,B=t=>e=>{e.persist&&e.persist(),t.filter(Boolean).forEach((t=>{e.defaultPrevented||t(e)}))},N=A?E(a,{})??{}:{},H=A?{}:E(i,{})??{};return{...N,...H,...k,href:l?void 0:$.maskedLocation?$.maskedLocation.href:$.href,onClick:B([L,M]),onFocus:B([P,D]),onMouseEnter:B([_,O]),onMouseLeave:B([C,I]),onTouchStart:B([x,j]),target:s,style:{...R,...N.style,...H.style},className:[b,N.className,H.className].filter(Boolean).join(" ")||void 0,...l?{role:"link","aria-disabled":!0}:void 0,"data-status":A?"active":void 0}}const ut=n.forwardRef(((t,e)=>{const o=lt(t);return n.createElement("a",ct({ref:e},o,{children:"function"==typeof t.children?t.children({isActive:"active"===o["data-status"]}):t.children}))}));function ht(t,e){var o,n,r,s="";for(o in t)if(void 0!==(r=t[o]))if(Array.isArray(r))for(n=0;n<r.length;n++)s&&(s+="&"),s+=encodeURIComponent(o)+"="+encodeURIComponent(r[n]);else s&&(s+="&"),s+=encodeURIComponent(o)+"="+encodeURIComponent(r);return(e||"")+s}function dt(t){if(!t)return"";var e=decodeURIComponent(t);return"false"!==e&&("true"===e||(0*+e==0&&+e+""===e?+e:e))}function ft(t){for(var e,o,n={},r=t.split("&");e=r.shift();)void 0!==n[o=(e=e.split("=")).shift()]?n[o]=[].concat(n[o],dt(e.shift())):n[o]=dt(e.shift());return n}function pt(t){return!!t?.isRedirect}const mt=gt(JSON.parse),yt=vt(JSON.stringify,JSON.parse);function gt(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let o=ft(e);for(let e in o){const n=o[e];if("string"==typeof n)try{o[e]=t(n)}catch(t){}}return o}}function vt(t,e){return o=>{(o={...o})&&Object.keys(o).forEach((n=>{const r=o[n];void 0===r||void 0===r?delete o[n]:o[n]=function(o){if("object"==typeof o&&null!==o)try{return t(o)}catch(t){}else if("string"==typeof o&&"function"==typeof e)try{return e(o),t(o)}catch(t){}return o}(r)}));const n=ht(o).toString();return n?`?${n}`:""}}const wt=["component","errorComponent","pendingComponent"],St="Error preloading route! ☝️";class Rt extends Error{}class bt extends Error{}function Et(t){return{status:"idle",resolvedLocation:t,location:t,matches:[],pendingMatches:[],lastUpdated:Date.now()}}const Lt="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,Pt="window",_t="___";let Ct=new WeakSet;let xt="undefined"!=typeof window&&window.sessionStorage?(()=>{const t="tsr-scroll-restoration-v2";return{state:JSON.parse(window.sessionStorage.getItem(t)||"null")||{cached:{},next:{}},set:e=>{xt.state=E(e,xt.state),window.sessionStorage.setItem(t,JSON.stringify(xt.state))}}})():void 0;const kt=t=>t.state.key;function Tt(t){const e=st();Lt((()=>{const o=t?.getKey||kt,{history:n}=window;n.scrollRestoration&&(n.scrollRestoration="manual");const r=t=>{if(Ct.has(t.target))return;Ct.add(t.target);let e="";if(t.target===document||t.target===window)e=Pt;else{const o=t.target.getAttribute("data-scroll-restoration-id");e=o?`[data-scroll-restoration-id="${o}"]`:Mt(t.target)}xt.state.next[e]||xt.set((t=>({...t,next:{...t.next,[e]:{scrollX:NaN,scrollY:NaN}}})))};"undefined"!=typeof document&&document.addEventListener("scroll",r,!0);const s=e.subscribe("onBeforeLoad",(t=>{if(t.pathChanged){const e=o(t.fromLocation);for(const t in xt.state.next){const o=xt.state.next[t];if(t===Pt)o.scrollX=window.scrollX||0,o.scrollY=window.scrollY||0;else if(t){const e=document.querySelector(t);o.scrollX=e?.scrollLeft||0,o.scrollY=e?.scrollTop||0}xt.set((n=>{const r={...n.next};return delete r[t],{...n,next:r,cached:{...n.cached,[[e,t].join(_t)]:o}}}))}}})),a=e.subscribe("onResolved",(o=>{if(o.pathChanged){if(!e.resetNextScroll)return;e.resetNextScroll=!0;const n=(t?.getKey||kt)(o.toLocation);let r=!1;for(const t in xt.state.cached){const e=xt.state.cached[t],[o,s]=t.split(_t);if(o===n)if(s===Pt)r=!0,window.scrollTo(e.scrollX,e.scrollY);else if(s){const t=document.querySelector(s);t&&(t.scrollLeft=e.scrollX,t.scrollTop=e.scrollY)}}r||window.scrollTo(0,0),xt.set((t=>({...t,next:{}}))),Ct=new WeakSet}}));return()=>{document.removeEventListener("scroll",r),s(),a()}}),[])}function Mt(t){let e,o=[];for(;e=t.parentNode;)o.unshift(`${t.tagName}:nth-child(${[].indexOf.call(e.children,t)+1})`),t=e;return`${o.join(" > ")}`.toLowerCase()}function Dt(t,e=!0){const{history:o}=st();n.useEffect((()=>{if(!e)return;let n=o.block(((e,o)=>{window.confirm(t)&&(n(),e())}));return n}))}t.Await=function(t){const e=it(t);return t.children(...e)},t.Block=function({message:t,condition:e,children:o}){return Dt(t,e),o??null},t.CatchBoundary=v,t.CatchBoundaryImpl=w,t.ErrorComponent=S,t.FileRoute=class{constructor(t){this.path=t}createRoute=t=>{const e=new z(t);return e.isRoot=!1,e}},t.Link=ut,t.Match=X,t.MatchRoute=function(t){const e=G()(t);return"function"==typeof t.children?t.children(e):e?t.children:null},t.Matches=Y,t.Navigate=function(t){const{navigate:e}=st(),o=Q({strict:!1});return k((()=>{e({from:t.to?o.pathname:void 0,...t})}),[]),null},t.Outlet=V,t.PathParamError=bt,t.RootRoute=U,t.Route=z,t.Router=class{tempLocationKey=`${Math.round(1e7*Math.random())}`;resetNextScroll=!0;navigateTimeout=null;latestLoadPromise=Promise.resolve();subscribers=new Set;pendingMatches=[];injectedHtml=[];constructor(t){this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,stringifySearch:t?.stringifySearch??yt,parseSearch:t?.parseSearch??mt})}startReactTransition=t=>t();setState=t=>{this.state=E(t,this.state)};update=t=>{this.options={...this.options,...t},this.basepath=`/${j(t.basepath??"")??""}`,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history??("undefined"!=typeof document?h():d()),this.latestLocation=this.parseLocation()),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),this.state||(this.state=Et(this.latestLocation))};buildRouteTree=()=>{this.routesById={},this.routesByPath={};const t=e=>{e.forEach(((e,o)=>{e.init({originalIndex:o});if(y(!this.routesById[e.id],String(e.id)),this.routesById[e.id]=e,!e.isRoot&&e.path){const t=I(e.fullPath);this.routesByPath[t]&&!e.fullPath.endsWith("/")||(this.routesByPath[t]=e)}const n=e.children;n?.length&&t(n)}))};t([this.routeTree]),this.flatRoutes=Object.values(this.routesByPath).map(((t,e)=>{const o=j(t.fullPath),n=$(o);for(;n.length>1&&"/"===n[0]?.value;)n.shift();const r=n.map((t=>"param"===t.type?.5:"wildcard"===t.type?.25:1));return{child:t,trimmed:o,parsed:n,index:e,score:r}})).sort(((t,e)=>{let o="/"===t.trimmed?1:"/"===e.trimmed?-1:0;if(0!==o)return o;const n=Math.min(t.score.length,e.score.length);if(t.score.length!==e.score.length)return e.score.length-t.score.length;for(let o=0;o<n;o++)if(t.score[o]!==e.score[o])return e.score[o]-t.score[o];for(let o=0;o<n;o++)if(t.parsed[o].value!==e.parsed[o].value)return t.parsed[o].value>e.parsed[o].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)))};subscribe=(t,e)=>{const o={eventType:t,fn:e};return this.subscribers.add(o),()=>{this.subscribers.delete(o)}};emit=t=>{this.subscribers.forEach((e=>{e.eventType===t.type&&e.fn(t)}))};checkLatest=t=>this.latestLoadPromise!==t?this.latestLoadPromise:void 0;parseLocation=t=>{const e=({pathname:e,search:o,hash:n,state:r})=>{const s=this.options.parseSearch(o);return{pathname:e,searchStr:o,search:P(t?.search,s),hash:n.split("#").reverse()[0]??"",href:`${e}${o}${n}`,state:P(t?.state,r)}},o=e(this.history.location);let{__tempLocation:n,__tempKey:r}=o.state;if(n&&(!r||r===this.tempLocationKey)){const t=e(n);return t.state.key=o.state.key,delete t.state.__tempLocation,{...t,maskedLocation:o}}return o};resolvePathWithBase=(t,e)=>A(this.basepath,t,D(e));get looseRoutesById(){return this.routesById}matchRoutes=(t,e,o)=>{let n={},r=this.flatRoutes.find((e=>{const o=N(this.basepath,I(t),{to:e.fullPath,caseSensitive:e.options.caseSensitive??this.options.caseSensitive,fuzzy:!1});return!!o&&(n=o,!0)}))||this.routesById.__root__,s=[r];for(;r?.parentRoute;)r=r.parentRoute,r&&s.unshift(r);const a=s.map((t=>{let e;if(t.options.parseParams)try{const e=t.options.parseParams(n);Object.assign(n,e)}catch(t){if(e=new bt(t.message,{cause:t}),o?.throwOnError)throw e;return e}})),i=[];return s.forEach(((t,r)=>{const s=i[r-1],[c,l]=(()=>{const n=s?.search??e;try{const e="object"==typeof t.options.validateSearch?t.options.validateSearch.parse:t.options.validateSearch;let o=e?.(n)??{};return[{...n,...o},void 0]}catch(t){const e=new Rt(t.message,{cause:t});if(o?.throwOnError)throw e;return[n,e]}})(),u=B(t.path,n),h=B(t.id,n,!0)+(t.options.key?.({search:c,location:this.state.location})??""),d=nt(this.state,h),f=this.state.matches.find((t=>t.id===h))?"stay":"enter",p=!(!t.options.loader&&!wt.some((e=>t.options[e]?.preload))),m=d?{...d,cause:f}:{id:h,routeId:t.id,params:n,pathname:M([this.basepath,u]),updatedAt:Date.now(),search:{},searchError:void 0,status:p?"pending":"success",showPending:!1,isFetching:!1,invalid:!1,error:void 0,paramsError:a[r],loadPromise:Promise.resolve(),context:void 0,abortController:new AbortController,shouldReloadDeps:void 0,fetchedAt:0,cause:f};m.search=P(m.search,c),m.searchError=l,i.push(m)})),i};cancelMatch=t=>{nt(this.state,t)?.abortController?.abort()};cancelMatches=()=>{this.state.matches.forEach((t=>{this.cancelMatch(t.id)}))};buildLocation=t=>{const e=(t={},e)=>{const o=this.latestLocation,n=t.from??o.pathname;let r=this.resolvePathWithBase(n,`${t.to??""}`);const s=this.matchRoutes(n,o.search),a=e?.filter((t=>s?.find((e=>e.routeId===t.routeId)))),i={...b(s)?.params};let c=!0===(t.params??!0)?i:E(t.params,i);c&&e?.map((t=>this.looseRoutesById[t.routeId].options.stringifyParams)).filter(Boolean).forEach((t=>{c={...c,...t(c)}})),r=B(r,c??{});const l=a?.map((t=>this.looseRoutesById[t.routeId].options.preSearchFilters??[])).flat().filter(Boolean)??[],u=a?.map((t=>this.looseRoutesById[t.routeId].options.postSearchFilters??[])).flat().filter(Boolean)??[],h=l?.length?l?.reduce(((t,e)=>e(t)),o.search):o.search,d=!0===t.search?h:t.search?E(t.search,h)??{}:l?.length?h:{},f=u?.length?u.reduce(((t,e)=>e(t)),d):d,p=P(o.search,f),m=this.options.stringifySearch(p),y=!0===t.hash?o.hash:t.hash?E(t.hash,o.hash):o.hash,g=y?`#${y}`:"";let v=!0===t.state?o.state:t.state?E(t.state,o.state):o.state;return v=P(o.state,v),{pathname:r,search:p,searchStr:m,state:v,hash:y,href:this.history.createHref(`${r}${m}${g}`),unmaskOnReload:t.unmaskOnReload}},o=(t={},o)=>{let n=e(t),r=o?e(o):void 0;if(!r){let t={},s=this.options.routeMasks?.find((e=>{const o=N(this.basepath,n.pathname,{to:e.from,caseSensitive:!1,fuzzy:!1});return!!o&&(t=o,!0)}));s&&(s={...s,from:B(s.from,t)},r=e(o=s))}const s=this.matchRoutes(n.pathname,n.search),a=r?this.matchRoutes(r.pathname,r.search):void 0,i=r?e(o,a):void 0,c=e(t,s);return i&&(c.maskedLocation=i),c};return t.mask?o(t,{...L(t,["from"]),...t.mask}):o(t)};commitLocation=async({startTransition:t,...e})=>{this.navigateTimeout&&clearTimeout(this.navigateTimeout);if(!(this.latestLocation.href===e.href)||!e.replace){let{maskedLocation:o,...n}=e;o&&(n={...o,state:{...o.state,__tempKey:void 0,__tempLocation:{...n,search:n.searchStr,state:{...n.state,__tempKey:void 0,__tempLocation:void 0,key:void 0}}}},(n.unmaskOnReload??this.options.unmaskOnReload)&&(n.state.__tempKey=this.tempLocationKey));const r=()=>{this.history[e.replace?"replace":"push"](n.href,n.state)};t??1?this.startReactTransition(r):r()}return this.resetNextScroll=e.resetScroll??!0,this.latestLoadPromise};buildAndCommitLocation=({replace:t,resetScroll:e,startTransition:o,...n}={})=>{const r=this.buildLocation(n);return this.commitLocation({...r,startTransition:o,replace:t,resetScroll:e})};navigate=({from:t,to:e="",...o})=>{const n=String(e),r=void 0===t?t:String(t);let s;try{new URL(`${n}`),s=!0}catch(t){}return y(!s),this.buildAndCommitLocation({...o,from:r,to:n})};loadMatches=async({checkLatest:t,matches:e,preload:o,invalidate:n})=>{let r,s;try{for(let[t,n]of e.entries()){const r=e[t-1],a=this.looseRoutesById[n.routeId],i=(o,r)=>{if(o.routerCode=r,s=s??t,pt(o))throw o;try{a.options.onError?.(o)}catch(t){if(o=t,pt(t))throw t}e[t]=n={...n,error:o,status:"error",updatedAt:Date.now()}};try{n.paramsError&&i(n.paramsError,"PARSE_PARAMS"),n.searchError&&i(n.searchError,"VALIDATE_SEARCH");const s=r?.context??this.options.context??{},c=await(a.options.beforeLoad?.({search:n.search,abortController:n.abortController,params:n.params,preload:!!o,context:s,location:this.state.location,navigate:t=>this.navigate({...t,from:n.pathname}),buildLocation:this.buildLocation,cause:n.cause}))??{},l={...s,...c};e[t]=n={...n,context:P(n.context,l)}}catch(t){i(t,"BEFORE_LOAD");break}}}catch(t){if(pt(t))return o||this.navigate(t),e;throw t}const a=e.slice(0,s),i=[];return a.forEach(((s,a)=>{i.push((async()=>{const c=i[a-1],l=this.looseRoutesById[s.routeId],u=t=>!!pt(t)&&(o||this.navigate(t),!0);let h;e[a]=s={...s,fetchedAt:Date.now(),invalid:!1,showPending:!1};const d=l.options.pendingMs??this.options.defaultPendingMs;let f;if(!o&&d&&(l.options.pendingComponent??this.options.defaultPendingComponent)&&(f=new Promise((t=>setTimeout(t,d)))),s.isFetching)h=nt(this.state,s.id)?.loadPromise;else{const t={params:s.params,search:s.search,preload:!!o,parentMatchPromise:c,abortController:s.abortController,context:s.context,location:this.state.location,navigate:t=>this.navigate({...t,from:s.pathname}),cause:s.cause};let r=!0,i="function"==typeof l.options.shouldReload?l.options.shouldReload?.(t):!!(l.options.shouldReload??1);if("enter"===s.cause||n?s.shouldReloadDeps=i:"stay"===s.cause&&("object"==typeof i?(r=!x(i,s.shouldReloadDeps),s.shouldReloadDeps=i):r=!!i),r){e[a]=s={...s,isFetching:!0};const o=Promise.all(wt.map((async t=>{const e=l.options[t];e?.preload&&await e.preload()}))),n=l.options.loader?.(t);h=Promise.all([o,n]).then((t=>t[1]))}else h=Promise.resolve(s.loaderData)}e[a]=s={...s,loadPromise:h},o||this.setState((t=>({...t,matches:t.matches.map((t=>t.id===s.id?s:t))})));let p=!1;await new Promise((async n=>{f&&f.then((()=>{(r=t())||(p=!0,e[a]=s={...s,showPending:!0},this.setState((t=>({...t,matches:t.matches.map((t=>t.id===s.id?s:t))}))),n())}));try{const o=await h;if(r=t())return await r;const n=l.options.pendingMinMs??this.options.defaultPendingMinMs;if(p&&n&&await new Promise((t=>setTimeout(t,n))),r=t())return await r;e[a]=s={...s,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),loaderData:o,loadPromise:void 0}}catch(o){if(r=t())return await r;if(u(o))return;try{l.options.onError?.(o)}catch(t){if(o=t,u(t))return}e[a]=s={...s,error:o,status:"error",isFetching:!1,updatedAt:Date.now()}}o||this.setState((t=>({...t,matches:t.matches.map((t=>t.id===s.id?s:t))}))),n()}))})())})),await Promise.all(i),e};invalidate=()=>this.load({invalidate:!0});load=async t=>{const e=new Promise((async(o,n)=>{const r=this.latestLocation,s=this.state.resolvedLocation,a=s.href!==r.href;let i;this.cancelMatches(),this.emit({type:"onBeforeLoad",fromLocation:s,toLocation:r,pathChanged:a});let c=this.matchRoutes(r.pathname,r.search,{debug:!0});this.pendingMatches=c;const l=this.state.matches;this.setState((t=>({...t,location:r,matches:c})));try{try{await this.loadMatches({matches:c,checkLatest:()=>this.checkLatest(e),invalidate:t?.invalidate})}catch(t){}if(i=this.checkLatest(e))return i;const n=l.filter((t=>!this.pendingMatches.includes(t))),u=this.pendingMatches.filter((t=>!l.includes(t)));[[n,"onLeave"],[u,"onEnter"],[l.filter((t=>this.pendingMatches.includes(t))),"onTransition"]].forEach((([t,e])=>{t.forEach((t=>{this.looseRoutesById[t.routeId].options[e]?.(t)}))})),this.emit({type:"onLoad",fromLocation:s,toLocation:r,pathChanged:a}),o()}catch(t){if(i=this.checkLatest(e))return i;n(t)}}));return this.latestLoadPromise=e,this.latestLoadPromise};preloadRoute=async(t=this.state.location)=>{let e=this.buildLocation(t),o=this.matchRoutes(e.pathname,e.search,{throwOnError:!0});return await this.loadMatches({matches:o,preload:!0,checkLatest:()=>{}}),[b(o),o]};buildLink=t=>{const{to:e,preload:o,preloadDelay:n,activeOptions:r,disabled:s,target:a,replace:i,resetScroll:c,startTransition:l}=t;try{return new URL(`${e}`),{type:"external",href:e}}catch(t){}const u=t,h=this.buildLocation(u),d=o??this.options.defaultPreload,f=n??this.options.defaultPreloadDelay??0,p=this.latestLocation.pathname.split("/"),m=h.pathname.split("/").every(((t,e)=>t===p[e])),y=r?.exact?this.latestLocation.pathname===h.pathname:m,g=!r?.includeHash||this.latestLocation.hash===h.hash,v=!(r?.includeSearch??1)||x(this.latestLocation.search,h.search,!0);return{type:"internal",next:h,handleFocus:t=>{d&&this.preloadRoute(u).catch((t=>{console.warn(t),console.warn(St)}))},handleClick:t=>{s||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||a&&"_self"!==a||0!==t.button||(t.preventDefault(),this.commitLocation({...h,replace:i,resetScroll:c,startTransition:l}))},handleEnter:t=>{const e=t.target||{};if(d){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,this.preloadRoute(u).catch((t=>{console.warn(t),console.warn(St)}))}),f)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},handleTouchStart:t=>{this.preloadRoute(u).catch((t=>{console.warn(t),console.warn(St)}))},isActive:y&&g&&v,disabled:s}};matchRoute=(t,e)=>{t={...t,to:t.to?this.resolvePathWithBase(t.from||"",t.to):void 0};const o=this.buildLocation(t);if(e?.pending&&"pending"!==this.state.status)return!1;const n=e?.pending?this.latestLocation:this.state.resolvedLocation;if(!n)return!1;const r=N(this.basepath,n.pathname,{...e,to:o.pathname});return!!r&&(r&&(e?.includeSearch??1)?!!x(n.search,o.search,!0)&&r:r)};injectHtml=async t=>{this.injectedHtml.push(t)};dehydrateData=(t,e)=>{if("undefined"==typeof document){const o="string"==typeof t?t:JSON.stringify(t);return this.injectHtml((async()=>{const t=`__TSR_DEHYDRATED__${o}`,n="function"==typeof e?await e():e;return`<script id='${t}' suppressHydrationWarning>window["__TSR_DEHYDRATED__${T(o)}"] = ${JSON.stringify(n)}\n ;(() => {\n var el = document.getElementById('${t}')\n el.parentElement.removeChild(el)\n })()\n <\/script>`})),()=>this.hydrateData(t)}return()=>{}};hydrateData=t=>{if("undefined"!=typeof document){const e="string"==typeof t?t:JSON.stringify(t);return window[`__TSR_DEHYDRATED__${e}`]}};dehydrate=()=>({state:{dehydratedMatches:this.state.matches.map((t=>L(t,["fetchedAt","invalid","id","status","updatedAt","loaderData"])))}});hydrate=async t=>{let e=t;"undefined"!=typeof document&&(e=window.__TSR_DEHYDRATED__),y(e);const o=e;this.dehydratedData=o.payload,this.options.hydrate?.(o.payload);const n=o.router.state;let r=this.matchRoutes(this.state.location.pathname,this.state.location.search).map((t=>{const e=n.dehydratedMatches.find((e=>e.id===t.id));return y(e,t.id),e?{...t,...e}:t}));this.setState((t=>({...t,matches:r})))}},t.RouterProvider=function({router:t,...e}){t.update({...t.options,...e,context:{...t.options.context,...e?.context}});const o=n.createElement(ot,{router:t});return t.options.Wrap?n.createElement(t.options.Wrap,null,o):o},t.ScrollRestoration=function(t){return Tt(t),null},t.SearchParamError=Rt,t.cleanPath=D,t.componentTypes=wt,t.createBrowserHistory=h,t.createHashHistory=function(){return h({getHref:()=>window.location.hash.substring(1),createHref:t=>`#${t}`})},t.createMemoryHistory=d,t.createRouteMask=function(t){return t},t.decode=ft,t.deepEqual=x,t.defaultParseSearch=mt,t.defaultStringifySearch=yt,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=ht,t.escapeJSON=T,t.functionalUpdate=E,t.getInitialRouterState=Et,t.getRouteMatch=nt,t.interpolatePath=B,t.invariant=y,t.isDehydratedDeferred=at,t.isPlainObject=_,t.isRedirect=pt,t.isServer=R,t.joinPaths=M,t.last=b,t.lazyFn=function(t,e){return async(...o)=>(await t())[e||"default"](...o)},t.lazyRouteComponent=function(t,e){let o;const r=()=>(o||(o=t()),o),s=n.lazy((async()=>({default:(await r())[e??"default"]})));return s.preload=r,s},t.matchByPath=H,t.matchPathname=N,t.matchesContext=Z,t.parsePathname=$,t.parseSearchWith=gt,t.pick=L,t.redirect=function(t){return t.isRedirect=!0,t},t.replaceEqualDeep=P,t.resolvePath=A,t.rootRouteId=W,t.rootRouteWithContext=function(){return t=>new U(t)},t.routerContext=et,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 o=Object.keys(t);if(o.length!==Object.keys(e).length)return!1;for(let n=0;n<o.length;n++)if(!Object.prototype.hasOwnProperty.call(e,o[n])||!Object.is(t[o[n]],e[o[n]]))return!1;return!0},t.stringifySearchWith=vt,t.trimPath=j,t.trimPathLeft=O,t.trimPathRight=I,t.typedNavigate=function(t){return t},t.useAwaited=it,t.useBlocker=Dt,t.useElementScrollRestoration=function(t){const e=st(),o=t?.getKey||kt;let n="";if(t.id)n=`[data-scroll-restoration-id="${t.id}"]`;else{const e=t.getElement?.();if(!e)return;n=Mt(e)}const r=[o(e.latestLocation),n].join(_t);return xt.state.cached[r]},t.useLayoutEffect=k,t.useLinkProps=lt,t.useLoaderData=tt,t.useMatch=Q,t.useMatchRoute=G,t.useMatches=function(t){const e=n.useContext(Z);return rt({select:o=>{const n=o.matches.slice(o.matches.findIndex((t=>t.id===e[0]?.id)));return t?.select?t.select(n):n}})},t.useNavigate=function(t){const{navigate:e}=st(),o=Q({strict:!1});return n.useCallback((n=>e({from:n?.to?o.pathname:void 0,...t,...n})),[])},t.useParams=K,t.useRouteContext=function(t){return Q({...t,select:e=>t?.select?t.select(e.context):e.context})},t.useRouter=st,t.useRouterState=rt,t.useScrollRestoration=Tt,t.useSearch=F,t.useStableCallback=function(t){const e=n.useRef(t);return e.current=t,n.useRef(((...t)=>e.current(...t))).current},t.warning=g}));
21
+ */const r="pushstate",s="popstate",a="beforeunload",i=t=>(t.preventDefault(),t.returnValue=""),c=()=>{removeEventListener(a,i,{capture:!0})};function l(t){let e=t.getLocation(),o=new Set,n=[],r=[];const s=()=>{e=t.getLocation(),o.forEach((t=>t()))},l=()=>{if(n.length)n[0]?.(l,(()=>{n=[],c()}));else for(;r.length;)r.shift()?.()},h=t=>{r.push(t),l()};return{get location(){return e},subscribe:t=>(o.add(t),()=>{o.delete(t)}),push:(e,o)=>{o=u(o),h((()=>{t.pushState(e,o,s)}))},replace:(e,o)=>{o=u(o),h((()=>{t.replaceState(e,o,s)}))},go:e=>{h((()=>{t.go(e)}))},back:()=>{h((()=>{t.back()}))},forward:()=>{h((()=>{t.forward()}))},createHref:e=>t.createHref(e),block:t=>(n.push(t),1===n.length&&addEventListener(a,i,{capture:!0}),()=>{n=n.filter((e=>e!==t)),n.length||c()}),flush:()=>t.flush?.(),destroy:()=>t.destroy?.(),notify:s}}function u(t){return t||(t={}),{...t,key:p()}}function h(t){const e=t?.getHref??(()=>`${window.location.pathname}${window.location.search}${window.location.hash}`),o=t?.createHref??(t=>t);let n=f(e(),window.history.state);let a,i,c=!0;const u=()=>{c=!1,(()=>{a&&(window.history[a.isPush?"pushState":"replaceState"](a.state,"",a.href),a=void 0,i=void 0)})(),c=!0},h=(t,e,r,s)=>{const c=o(e);n=f(c,r),a={href:c,state:r,isPush:a?.isPush||"push"===t},s(),i||(i=Promise.resolve().then((()=>u())))},d=()=>{n=f(e(),window.history.state),y.notify()};var p=window.history.pushState,m=window.history.replaceState;const y=l({getLocation:()=>n,pushState:(t,e,o)=>h("push",t,e,o),replaceState:(t,e,o)=>h("replace",t,e,o),back:()=>window.history.back(),forward:()=>window.history.forward(),go:t=>window.history.go(t),createHref:t=>o(t),flush:u,destroy:()=>{window.history.pushState=p,window.history.replaceState=m,window.removeEventListener(r,d),window.removeEventListener(s,d)}});return window.addEventListener(r,d),window.addEventListener(s,d),window.history.pushState=function(){let t=p.apply(window.history,arguments);return c&&y.notify(),t},window.history.replaceState=function(){let t=m.apply(window.history,arguments);return c&&y.notify(),t},y}function d(t={initialEntries:["/"]}){const e=t.initialEntries;let o=t.initialIndex??e.length-1,n={key:p()};return l({getLocation:()=>f(e[o],n),pushState:(t,r)=>{n=r,e.push(t),o++},replaceState:(t,r)=>{n=r,e[o]=t},back:()=>{o--},forward:()=>{o=Math.min(o+1,e.length-1)},go:t=>window.history.go(t),createHref:t=>t})}function f(t,e){let o=t.indexOf("#"),n=t.indexOf("?");return{href:t,pathname:t.substring(0,o>0?n>0?Math.min(o,n):o:n>0?n:t.length),hash:o>-1?t.substring(o):"",search:n>-1?t.slice(n,-1===o?void 0:o):"",state:e||{}}}function p(){return(Math.random()+1).toString(36).substring(7)}var m="Invariant failed";function y(t,e){if(!t)throw new Error(m)}function g(t,e){}function v(t){const e=t.errorComponent??S;return n.createElement(w,{resetKey:t.resetKey,onCatch:t.onCatch,children:({error:o})=>o?n.createElement(e,{error:o}):t.children})}class w extends n.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){console.error(t),this.props.onCatch?.(t)}render(){return this.props.children(this.state)}}function S({error:t}){const[e,o]=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:()=>o((t=>!t))},e?"Hide Error":"Show Error")),n.createElement("div",{style:{height:".25rem"}}),e?n.createElement("div",null,n.createElement("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"}},t.message?n.createElement("code",null,t.message):null)):null)}const R="undefined"==typeof document;function b(t){return t[t.length-1]}function E(t,e){return"function"==typeof t?t(e):t}function L(t,e){return e.reduce(((e,o)=>(e[o]=t[o],e)),{})}function P(t,e){if(t===e)return t;const o=e,n=Array.isArray(t)&&Array.isArray(o);if(n||_(t)&&_(o)){const e=n?t.length:Object.keys(t).length,r=n?o:Object.keys(o),s=r.length,a=n?[]:{};let i=0;for(let e=0;e<s;e++){const s=n?e:r[e];a[s]=P(t[s],o[s]),a[s]===t[s]&&i++}return e===s&&i===e?t:a}return o}function _(t){if(!C(t))return!1;const e=t.constructor;if(void 0===e)return!0;const o=e.prototype;return!!C(o)&&!!o.hasOwnProperty("isPrototypeOf")}function C(t){return"[object Object]"===Object.prototype.toString.call(t)}function x(t,e,o=!1){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(_(t)&&_(e)){const n=Object.keys(t),r=Object.keys(e);return!(!o&&n.length!==r.length)&&!r.some((n=>!(n in t)||!x(t[n],e[n],o)))}return!(!Array.isArray(t)||!Array.isArray(e))&&!t.some(((t,n)=>!x(t,e[n],o)))}const k="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function T(t){return t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/"/g,'\\"')}function M(t){return D(t.filter(Boolean).join("/"))}function D(t){return t.replace(/\/{2,}/g,"/")}function O(t){return"/"===t?t:t.replace(/^\/{1,}/,"")}function I(t){return"/"===t?t:t.replace(/\/{1,}$/,"")}function j(t){return I(O(t))}function A(t,e,o){e=e.replace(new RegExp(`^${t}`),"/"),o=o.replace(new RegExp(`^${t}`),"/");let n=$(e);const r=$(o);r.forEach(((t,e)=>{if("/"===t.value)e?e===r.length-1&&n.push(t):n=[t];else if(".."===t.value)n.length>1&&"/"===b(n)?.value&&n.pop(),n.pop();else{if("."===t.value)return;n.push(t)}}));return D(M([t,...n.map((t=>t.value))]))}function $(t){if(!t)return[];const e=[];if("/"===(t=D(t)).slice(0,1)&&(t=t.substring(1),e.push({type:"pathname",value:"/"})),!t)return e;const o=t.split("/").filter(Boolean);return e.push(...o.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 B(t,e,o=!1){return M($(t).map((t=>{if("wildcard"===t.type){const n=e[t.value];return o?`${t.value}${n??""}`:n}return"param"===t.type?e[t.value.substring(1)]??"":t.value})))}function N(t,e,o){const n=H(t,e,o);if(!o.to||n)return n??{}}function H(t,e,o){e="/"!=t?e.substring(t.length):e;const n=`${o.to??"$"}`,r=$(e),s=$(n);e.startsWith("/")||r.unshift({type:"pathname",value:"/"}),n.startsWith("/")||s.unshift({type:"pathname",value:"/"});const a={};return(()=>{for(let t=0;t<Math.max(r.length,s.length);t++){const e=r[t],n=s[t],i=t>=r.length-1,c=t>=s.length-1;if(n){if("wildcard"===n.type)return!!e?.value&&(a["*"]=M(r.slice(t).map((t=>t.value))),!0);if("pathname"===n.type){if("/"===n.value&&!e?.value)return!0;if(e)if(o.caseSensitive){if(n.value!==e.value)return!1}else if(n.value.toLowerCase()!==e.value.toLowerCase())return!1}if(!e)return!1;if("param"===n.type){if("/"===e?.value)return!1;"$"!==e.value.charAt(0)&&(a[n.value.substring(1)]=e.value)}}if(!i&&c)return!!o.fuzzy}return!0})()?a:void 0}function K(t){return rt({select:e=>{const o=b(e.matches)?.params;return t?.select?t.select(o):o}})}function F(t){return Q({...t,select:e=>t?.select?t.select(e.search):e.search})}const W="__root__";class z{constructor(t){this.options=t||{},this.isRoot=!t?.getParentRoute,z.__onInit(this),this.$$typeof=Symbol.for("react.memo")}init=t=>{this.originalIndex=t.originalIndex;const e=this.options,o=!e?.path&&!e?.id;this.parentRoute=this.options?.getParentRoute?.(),o?this.path=W:y(this.parentRoute);let n=o?W:e.path;n&&"/"!==n&&(n=j(n));const r=e?.id||n;let s=o?W:M([this.parentRoute.id===W?"":this.parentRoute.id,r]);n===W&&(n="/"),s!==W&&(s=M(["/",s]));const a=s===W?"/":M([this.parentRoute.fullPath,n]);this.path=n,this.id=s,this.fullPath=a,this.to=a};addChildren=t=>(this.children=t,this);update=t=>(Object.assign(this.options,t),this);static __onInit=t=>{};useMatch=t=>Q({...t,from:this.id});useRouteContext=t=>Q({...t,from:this.id,select:e=>t?.select?t.select(e.context):e.context});useSearch=t=>F({...t,from:this.id});useParams=t=>K({...t,from:this.id});useLoaderData=t=>tt({...t,from:this.id})}class U extends z{constructor(t){super(t)}}function Y(){const{routesById:t,state:e}=st(),{matches:o}=e,r=rt().location.state.key,s=t[W],a=n.useCallback((t=>n.createElement(S,{...t,useMatch:s.useMatch,useRouteContext:s.useRouteContext,useSearch:s.useSearch,useParams:s.useParams})),[s]);return n.createElement(Z.Provider,{value:o},n.createElement(v,{resetKey:r,errorComponent:a,onCatch:()=>{}},o.length?n.createElement(X,{matches:o}):null))}function J(t){return n.createElement(n.Fragment,null,t.children)}function X({matches:t}){const{options:e,routesById:o}=st(),r=t[0],s=r?.routeId,a=o[s],i=st(),c=i.latestLocation.state?.key,l=a.options.pendingComponent??e.defaultPendingComponent,u=l?n.createElement(l,{useMatch:a.useMatch,useRouteContext:a.useRouteContext,useSearch:a.useSearch,useParams:a.useParams}):void 0,h=a.options.errorComponent??e.defaultErrorComponent??S,d=a.options.wrapInSuspense??u?n.Suspense:J,f=h?n.useCallback((t=>n.createElement(h,{...t,useMatch:a.useMatch,useRouteContext:a.useRouteContext,useSearch:a.useSearch,useParams:a.useParams})),[a]):void 0,p=f?v:J;return n.createElement(Z.Provider,{value:t},n.createElement(d,{fallback:u},n.createElement(p,{resetKey:c,errorComponent:f,onCatch:()=>{r.id}},n.createElement(q,{match:r,pendingElement:u}))))}function q({match:t,pendingElement:e}){const{options:o,routesById:r}=st(),s=r[t.routeId];if("error"===t.status)throw t.error;if("pending"===t.status){if(t.showPending)return e||null;throw t.loadPromise}if("success"===t.status){let t=s.options.component??o.defaultComponent;return t?n.createElement(t,{useMatch:s.useMatch,useRouteContext:s.useRouteContext,useSearch:s.useSearch,useParams:s.useParams,useLoaderData:s.useLoaderData}):n.createElement(V,null)}y(!1)}function V(){const t=n.useContext(Z).slice(1);return t[0]?n.createElement(X,{matches:t}):null}function G(){const{matchRoute:t}=st();return n.useCallback((e=>{const{pending:o,caseSensitive:n,...r}=e;return t(r,{pending:o,caseSensitive:n})}),[])}function Q(t){const e=n.useContext(Z)[0],o=e?.routeId,r=rt({select:o=>(t?.from?o.matches.find((e=>e.routeId===t?.from)):o.matches.find((t=>t.id===e.id))).routeId});(t?.strict??1)&&y(o==r);return rt({select:o=>{const n=t?.from?o.matches.find((e=>e.routeId===t?.from)):o.matches.find((t=>t.id===e.id));return y(n,t?.from&&t.from),t?.select?t.select(n):n}})}const Z=n.createContext(null);function tt(t){const e=Q({...t,select:void 0});return"function"==typeof t.select?t.select(e?.loaderData):e?.loaderData}const et=n.createContext(null);function ot({router:t}){const[e,o]=n.useState((()=>t.state)),[r,s]=n.useTransition(),a=r||e.matches.some((t=>"pending"===t.status)),i=n.useMemo((()=>({...e,status:a?"pending":"idle",location:r?t.latestLocation:e.location,pendingMatches:t.pendingMatches})),[e,r]);t.setState=o,t.state=i,t.startReactTransition=s;const c=()=>{s((()=>{try{t.load()}catch(t){console.error(t)}}))};return k((()=>{const e=t.history.subscribe((()=>{t.latestLocation=t.parseLocation(t.latestLocation),i.location!==t.latestLocation&&c()})),o=t.buildLocation({search:!0,params:!0,hash:!0,state:!0});return i.location.href!==o.href&&t.commitLocation({...o,replace:!0}),()=>{e()}}),[t.history]),k((()=>{r||i.resolvedLocation===i.location||(t.emit({type:"onResolved",fromLocation:i.resolvedLocation,toLocation:i.location,pathChanged:i.location.href!==i.resolvedLocation?.href}),t.pendingMatches=[],o((t=>({...t,resolvedLocation:t.location}))))})),k((()=>{window.__TSR_DEHYDRATED__||c()}),[]),n.createElement(et.Provider,{value:t},n.createElement(Y,null))}function nt(t,e){return[...t.pendingMatches,...t.matches].find((t=>t.id===e))}function rt(t){const{state:e}=st();return t?.select?t.select(e):e}function st(){const t="undefined"!=typeof document&&window.__TSR_ROUTER_CONTEXT__||et;return n.useContext(t)}function at(t){return"object"==typeof t&&null!==t&&!(t instanceof Promise)&&!t.then&&"__deferredState"in t}function it({promise:t}){const e=st();let o=t.__deferredState;const n=`__TSR__DEFERRED__${o.uid}`;if(at(t)&&(o=e.hydrateData(n),(t=Promise.resolve(o.data)).__deferredState=o),"pending"===o.status)throw new Promise((t=>setTimeout(t,1))).then((()=>t));if("error"===o.status)throw o.error;return e.dehydrateData(n,o),[o.data]}"undefined"!=typeof document&&(window.__TSR_ROUTER_CONTEXT__=et);function ct(){return ct=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t},ct.apply(this,arguments)}function lt(t){const{buildLink:e}=st(),o=Q({strict:!1}),{type:n,children:r,target:s,activeProps:a=(()=>({className:"active"})),inactiveProps:i=(()=>({})),activeOptions:c,disabled:l,hash:u,search:h,params:d,to:f,state:p,mask:m,preload:y,preloadDelay:g,replace:v,startTransition:w,resetScroll:S,style:R,className:b,onClick:L,onFocus:P,onMouseEnter:_,onMouseLeave:C,onTouchStart:x,...k}=t,T=e({from:t.to?o.pathname:void 0,...t});if("external"===T.type){const{href:t}=T;return{href:t}}const{handleClick:M,handleFocus:D,handleEnter:O,handleLeave:I,handleTouchStart:j,isActive:A,next:$}=T,B=t=>e=>{e.persist&&e.persist(),t.filter(Boolean).forEach((t=>{e.defaultPrevented||t(e)}))},N=A?E(a,{})??{}:{},H=A?{}:E(i,{})??{};return{...N,...H,...k,href:l?void 0:$.maskedLocation?$.maskedLocation.href:$.href,onClick:B([L,M]),onFocus:B([P,D]),onMouseEnter:B([_,O]),onMouseLeave:B([C,I]),onTouchStart:B([x,j]),target:s,style:{...R,...N.style,...H.style},className:[b,N.className,H.className].filter(Boolean).join(" ")||void 0,...l?{role:"link","aria-disabled":!0}:void 0,"data-status":A?"active":void 0}}const ut=n.forwardRef(((t,e)=>{const o=lt(t);return n.createElement("a",ct({ref:e},o,{children:"function"==typeof t.children?t.children({isActive:"active"===o["data-status"]}):t.children}))}));function ht(t,e){var o,n,r,s="";for(o in t)if(void 0!==(r=t[o]))if(Array.isArray(r))for(n=0;n<r.length;n++)s&&(s+="&"),s+=encodeURIComponent(o)+"="+encodeURIComponent(r[n]);else s&&(s+="&"),s+=encodeURIComponent(o)+"="+encodeURIComponent(r);return(e||"")+s}function dt(t){if(!t)return"";var e=decodeURIComponent(t);return"false"!==e&&("true"===e||(0*+e==0&&+e+""===e?+e:e))}function ft(t){for(var e,o,n={},r=t.split("&");e=r.shift();)void 0!==n[o=(e=e.split("=")).shift()]?n[o]=[].concat(n[o],dt(e.shift())):n[o]=dt(e.shift());return n}function pt(t){return!!t?.isRedirect}const mt=gt(JSON.parse),yt=vt(JSON.stringify,JSON.parse);function gt(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let o=ft(e);for(let e in o){const n=o[e];if("string"==typeof n)try{o[e]=t(n)}catch(t){}}return o}}function vt(t,e){return o=>{(o={...o})&&Object.keys(o).forEach((n=>{const r=o[n];void 0===r||void 0===r?delete o[n]:o[n]=function(o){if("object"==typeof o&&null!==o)try{return t(o)}catch(t){}else if("string"==typeof o&&"function"==typeof e)try{return e(o),t(o)}catch(t){}return o}(r)}));const n=ht(o).toString();return n?`?${n}`:""}}const wt=["component","errorComponent","pendingComponent"],St="Error preloading route! ☝️";class Rt extends Error{}class bt extends Error{}function Et(t){return{status:"idle",resolvedLocation:t,location:t,matches:[],pendingMatches:[],lastUpdated:Date.now()}}const Lt="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,Pt="window",_t="___";let Ct=new WeakSet;let xt="undefined"!=typeof window&&window.sessionStorage?(()=>{const t="tsr-scroll-restoration-v2";return{state:JSON.parse(window.sessionStorage.getItem(t)||"null")||{cached:{},next:{}},set:e=>{xt.state=E(e,xt.state),window.sessionStorage.setItem(t,JSON.stringify(xt.state))}}})():void 0;const kt=t=>t.state.key;function Tt(t){const e=st();Lt((()=>{const o=t?.getKey||kt,{history:n}=window;n.scrollRestoration&&(n.scrollRestoration="manual");const r=t=>{if(Ct.has(t.target))return;Ct.add(t.target);let e="";if(t.target===document||t.target===window)e=Pt;else{const o=t.target.getAttribute("data-scroll-restoration-id");e=o?`[data-scroll-restoration-id="${o}"]`:Mt(t.target)}xt.state.next[e]||xt.set((t=>({...t,next:{...t.next,[e]:{scrollX:NaN,scrollY:NaN}}})))};"undefined"!=typeof document&&document.addEventListener("scroll",r,!0);const s=e.subscribe("onBeforeLoad",(t=>{if(t.pathChanged){const e=o(t.fromLocation);for(const t in xt.state.next){const o=xt.state.next[t];if(t===Pt)o.scrollX=window.scrollX||0,o.scrollY=window.scrollY||0;else if(t){const e=document.querySelector(t);o.scrollX=e?.scrollLeft||0,o.scrollY=e?.scrollTop||0}xt.set((n=>{const r={...n.next};return delete r[t],{...n,next:r,cached:{...n.cached,[[e,t].join(_t)]:o}}}))}}})),a=e.subscribe("onResolved",(o=>{if(o.pathChanged){if(!e.resetNextScroll)return;e.resetNextScroll=!0;const n=(t?.getKey||kt)(o.toLocation);let r=!1;for(const t in xt.state.cached){const e=xt.state.cached[t],[o,s]=t.split(_t);if(o===n)if(s===Pt)r=!0,window.scrollTo(e.scrollX,e.scrollY);else if(s){const t=document.querySelector(s);t&&(t.scrollLeft=e.scrollX,t.scrollTop=e.scrollY)}}r||window.scrollTo(0,0),xt.set((t=>({...t,next:{}}))),Ct=new WeakSet}}));return()=>{document.removeEventListener("scroll",r),s(),a()}}),[])}function Mt(t){let e,o=[];for(;e=t.parentNode;)o.unshift(`${t.tagName}:nth-child(${[].indexOf.call(e.children,t)+1})`),t=e;return`${o.join(" > ")}`.toLowerCase()}function Dt(t,e=!0){const{history:o}=st();n.useEffect((()=>{if(!e)return;let n=o.block(((e,o)=>{window.confirm(t)&&(n(),e())}));return n}))}t.Await=function(t){const e=it(t);return t.children(...e)},t.Block=function({message:t,condition:e,children:o}){return Dt(t,e),o??null},t.CatchBoundary=v,t.CatchBoundaryImpl=w,t.ErrorComponent=S,t.FileRoute=class{constructor(t){this.path=t}createRoute=t=>{const e=new z(t);return e.isRoot=!1,e}},t.Link=ut,t.Match=X,t.MatchRoute=function(t){const e=G()(t);return"function"==typeof t.children?t.children(e):e?t.children:null},t.Matches=Y,t.Navigate=function(t){const{navigate:e}=st(),o=Q({strict:!1});return k((()=>{e({from:t.to?o.pathname:void 0,...t})}),[]),null},t.Outlet=V,t.PathParamError=bt,t.RootRoute=U,t.Route=z,t.Router=class{tempLocationKey=`${Math.round(1e7*Math.random())}`;resetNextScroll=!0;navigateTimeout=null;latestLoadPromise=Promise.resolve();subscribers=new Set;pendingMatches=[];injectedHtml=[];constructor(t){this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,stringifySearch:t?.stringifySearch??yt,parseSearch:t?.parseSearch??mt})}startReactTransition=t=>t();setState=t=>{this.state=E(t,this.state)};update=t=>{this.options={...this.options,...t},this.basepath=`/${j(t.basepath??"")??""}`,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history??("undefined"!=typeof document?h():d()),this.latestLocation=this.parseLocation()),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),this.state||(this.state=Et(this.latestLocation))};buildRouteTree=()=>{this.routesById={},this.routesByPath={};const t=e=>{e.forEach(((e,o)=>{e.init({originalIndex:o});if(y(!this.routesById[e.id],String(e.id)),this.routesById[e.id]=e,!e.isRoot&&e.path){const t=I(e.fullPath);this.routesByPath[t]&&!e.fullPath.endsWith("/")||(this.routesByPath[t]=e)}const n=e.children;n?.length&&t(n)}))};t([this.routeTree]),this.flatRoutes=Object.values(this.routesByPath).map(((t,e)=>{const o=j(t.fullPath),n=$(o);for(;n.length>1&&"/"===n[0]?.value;)n.shift();const r=n.map((t=>"param"===t.type?.5:"wildcard"===t.type?.25:1));return{child:t,trimmed:o,parsed:n,index:e,score:r}})).sort(((t,e)=>{let o="/"===t.trimmed?1:"/"===e.trimmed?-1:0;if(0!==o)return o;const n=Math.min(t.score.length,e.score.length);if(t.score.length!==e.score.length)return e.score.length-t.score.length;for(let o=0;o<n;o++)if(t.score[o]!==e.score[o])return e.score[o]-t.score[o];for(let o=0;o<n;o++)if(t.parsed[o].value!==e.parsed[o].value)return t.parsed[o].value>e.parsed[o].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)))};subscribe=(t,e)=>{const o={eventType:t,fn:e};return this.subscribers.add(o),()=>{this.subscribers.delete(o)}};emit=t=>{this.subscribers.forEach((e=>{e.eventType===t.type&&e.fn(t)}))};checkLatest=t=>this.latestLoadPromise!==t?this.latestLoadPromise:void 0;parseLocation=t=>{const e=({pathname:e,search:o,hash:n,state:r})=>{const s=this.options.parseSearch(o);return{pathname:e,searchStr:o,search:P(t?.search,s),hash:n.split("#").reverse()[0]??"",href:`${e}${o}${n}`,state:P(t?.state,r)}},o=e(this.history.location);let{__tempLocation:n,__tempKey:r}=o.state;if(n&&(!r||r===this.tempLocationKey)){const t=e(n);return t.state.key=o.state.key,delete t.state.__tempLocation,{...t,maskedLocation:o}}return o};resolvePathWithBase=(t,e)=>A(this.basepath,t,D(e));get looseRoutesById(){return this.routesById}matchRoutes=(t,e,o)=>{let n={},r=this.flatRoutes.find((e=>{const o=N(this.basepath,I(t),{to:e.fullPath,caseSensitive:e.options.caseSensitive??this.options.caseSensitive,fuzzy:!1});return!!o&&(n=o,!0)}))||this.routesById.__root__,s=[r];for(;r?.parentRoute;)r=r.parentRoute,r&&s.unshift(r);const a=s.map((t=>{let e;if(t.options.parseParams)try{const e=t.options.parseParams(n);Object.assign(n,e)}catch(t){if(e=new bt(t.message,{cause:t}),o?.throwOnError)throw e;return e}})),i=[];return s.forEach(((t,r)=>{const s=i[r-1],[c,l]=(()=>{const n=s?.search??e;try{const e="object"==typeof t.options.validateSearch?t.options.validateSearch.parse:t.options.validateSearch;let o=e?.(n)??{};return[{...n,...o},void 0]}catch(t){const e=new Rt(t.message,{cause:t});if(o?.throwOnError)throw e;return[n,e]}})(),u=B(t.path,n),h=B(t.id,n,!0)+(t.options.key?.({search:c,location:this.state.location})??""),d=nt(this.state,h),f=this.state.matches.find((t=>t.id===h))?"stay":"enter",p=!(!t.options.loader&&!wt.some((e=>t.options[e]?.preload))),m=d?{...d,cause:f}:{id:h,routeId:t.id,params:n,pathname:M([this.basepath,u]),updatedAt:Date.now(),search:{},searchError:void 0,status:p?"pending":"success",showPending:!1,isFetching:!1,invalid:!1,error:void 0,paramsError:a[r],loadPromise:Promise.resolve(),context:void 0,abortController:new AbortController,shouldReloadDeps:void 0,fetchedAt:0,cause:f};m.search=P(m.search,c),m.searchError=l,i.push(m)})),i};cancelMatch=t=>{nt(this.state,t)?.abortController?.abort()};cancelMatches=()=>{this.state.matches.forEach((t=>{this.cancelMatch(t.id)}))};buildLocation=t=>{const e=(t={},e)=>{const o=this.latestLocation,n=t.from??o.pathname;let r=this.resolvePathWithBase(n,`${t.to??""}`);const s=this.matchRoutes(n,o.search),a=e?.filter((t=>s?.find((e=>e.routeId===t.routeId)))),i={...b(s)?.params};let c=!0===(t.params??!0)?i:E(t.params,i);c&&e?.map((t=>this.looseRoutesById[t.routeId].options.stringifyParams)).filter(Boolean).forEach((t=>{c={...c,...t(c)}})),r=B(r,c??{});const l=a?.map((t=>this.looseRoutesById[t.routeId].options.preSearchFilters??[])).flat().filter(Boolean)??[],u=a?.map((t=>this.looseRoutesById[t.routeId].options.postSearchFilters??[])).flat().filter(Boolean)??[],h=l?.length?l?.reduce(((t,e)=>e(t)),o.search):o.search,d=!0===t.search?h:t.search?E(t.search,h)??{}:l?.length?h:{},f=u?.length?u.reduce(((t,e)=>e(t)),d):d,p=P(o.search,f),m=this.options.stringifySearch(p),y=!0===t.hash?o.hash:t.hash?E(t.hash,o.hash):o.hash,g=y?`#${y}`:"";let v=!0===t.state?o.state:t.state?E(t.state,o.state):o.state;return v=P(o.state,v),{pathname:r,search:p,searchStr:m,state:v,hash:y,href:this.history.createHref(`${r}${m}${g}`),unmaskOnReload:t.unmaskOnReload}},o=(t={},o)=>{let n=e(t),r=o?e(o):void 0;if(!r){let t={},s=this.options.routeMasks?.find((e=>{const o=N(this.basepath,n.pathname,{to:e.from,caseSensitive:!1,fuzzy:!1});return!!o&&(t=o,!0)}));s&&(s={...s,from:B(s.from,t)},r=e(o=s))}const s=this.matchRoutes(n.pathname,n.search),a=r?this.matchRoutes(r.pathname,r.search):void 0,i=r?e(o,a):void 0,c=e(t,s);return i&&(c.maskedLocation=i),c};return t.mask?o(t,{...L(t,["from"]),...t.mask}):o(t)};commitLocation=async({startTransition:t,...e})=>{this.navigateTimeout&&clearTimeout(this.navigateTimeout);if(!(this.latestLocation.href===e.href)||!e.replace){let{maskedLocation:o,...n}=e;o&&(n={...o,state:{...o.state,__tempKey:void 0,__tempLocation:{...n,search:n.searchStr,state:{...n.state,__tempKey:void 0,__tempLocation:void 0,key:void 0}}}},(n.unmaskOnReload??this.options.unmaskOnReload)&&(n.state.__tempKey=this.tempLocationKey));const r=()=>{this.history[e.replace?"replace":"push"](n.href,n.state)};t??1?this.startReactTransition(r):r()}return this.resetNextScroll=e.resetScroll??!0,this.latestLoadPromise};buildAndCommitLocation=({replace:t,resetScroll:e,startTransition:o,...n}={})=>{const r=this.buildLocation(n);return this.commitLocation({...r,startTransition:o,replace:t,resetScroll:e})};navigate=({from:t,to:e="",...o})=>{const n=String(e),r=void 0===t?t:String(t);let s;try{new URL(`${n}`),s=!0}catch(t){}return y(!s),this.buildAndCommitLocation({...o,from:r,to:n})};loadMatches=async({checkLatest:t,matches:e,preload:o,invalidate:n})=>{let r,s;try{for(let[t,n]of e.entries()){const r=e[t-1],a=this.looseRoutesById[n.routeId],i=(o,r)=>{if(o.routerCode=r,s=s??t,pt(o))throw o;try{a.options.onError?.(o)}catch(t){if(o=t,pt(t))throw t}e[t]=n={...n,error:o,status:"error",updatedAt:Date.now()}};try{n.paramsError&&i(n.paramsError,"PARSE_PARAMS"),n.searchError&&i(n.searchError,"VALIDATE_SEARCH");const s=r?.context??this.options.context??{},c=await(a.options.beforeLoad?.({search:n.search,abortController:n.abortController,params:n.params,preload:!!o,context:s,location:this.state.location,navigate:t=>this.navigate({...t,from:n.pathname}),buildLocation:this.buildLocation,cause:n.cause}))??{},l={...s,...c};e[t]=n={...n,context:P(n.context,l)}}catch(t){i(t,"BEFORE_LOAD");break}}}catch(t){if(pt(t))return o||this.navigate(t),e;throw t}const a=e.slice(0,s),i=[];return a.forEach(((s,a)=>{i.push((async()=>{const c=i[a-1],l=this.looseRoutesById[s.routeId],u=t=>!!pt(t)&&(o||this.navigate(t),!0);let h;e[a]=s={...s,fetchedAt:Date.now(),invalid:!1,showPending:!1};const d=l.options.pendingMs??this.options.defaultPendingMs;let f;if(!o&&d&&(l.options.pendingComponent??this.options.defaultPendingComponent)&&(f=new Promise((t=>setTimeout(t,d)))),s.isFetching)h=nt(this.state,s.id)?.loadPromise;else{const t={params:s.params,search:s.search,preload:!!o,parentMatchPromise:c,abortController:s.abortController,context:s.context,location:this.state.location,navigate:t=>this.navigate({...t,from:s.pathname}),cause:s.cause};let r=!0,i="function"==typeof l.options.shouldReload?l.options.shouldReload?.(t):!!(l.options.shouldReload??1);if("enter"===s.cause||n?s.shouldReloadDeps=i:"stay"===s.cause&&("object"==typeof i?(r=!x(i,s.shouldReloadDeps),s.shouldReloadDeps=i):r=!!i),r){e[a]=s={...s,isFetching:!0};const o=Promise.all(wt.map((async t=>{const e=l.options[t];e?.preload&&await e.preload()}))),n=l.options.loader?.(t);h=Promise.all([o,n]).then((t=>t[1]))}else h=Promise.resolve(s.loaderData)}e[a]=s={...s,loadPromise:h},o||this.setState((t=>({...t,matches:t.matches.map((t=>t.id===s.id?s:t))})));let p=!1;await new Promise((async n=>{f&&f.then((()=>{(r=t())||(p=!0,e[a]=s={...s,showPending:!0},this.setState((t=>({...t,matches:t.matches.map((t=>t.id===s.id?s:t))}))),n())}));try{const o=await h;if(r=t())return await r;const n=l.options.pendingMinMs??this.options.defaultPendingMinMs;if(p&&n&&await new Promise((t=>setTimeout(t,n))),r=t())return await r;e[a]=s={...s,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),loaderData:o,loadPromise:void 0}}catch(o){if(r=t())return await r;if(u(o))return;try{l.options.onError?.(o)}catch(t){if(o=t,u(t))return}e[a]=s={...s,error:o,status:"error",isFetching:!1,updatedAt:Date.now()}}o||this.setState((t=>({...t,matches:t.matches.map((t=>t.id===s.id?s:t))}))),n()}))})())})),await Promise.all(i),e};invalidate=()=>this.load({invalidate:!0});load=async t=>{const e=new Promise((async(o,n)=>{const r=this.latestLocation,s=this.state.resolvedLocation,a=s.href!==r.href;let i;this.cancelMatches(),this.emit({type:"onBeforeLoad",fromLocation:s,toLocation:r,pathChanged:a});let c=this.matchRoutes(r.pathname,r.search,{debug:!0});this.pendingMatches=c;const l=this.state.matches;this.setState((t=>({...t,location:r,matches:c})));try{try{await this.loadMatches({matches:c,checkLatest:()=>this.checkLatest(e),invalidate:t?.invalidate})}catch(t){}if(i=this.checkLatest(e))return i;const n=l.filter((t=>!this.pendingMatches.includes(t))),u=this.pendingMatches.filter((t=>!l.includes(t)));[[n,"onLeave"],[u,"onEnter"],[l.filter((t=>this.pendingMatches.includes(t))),"onTransition"]].forEach((([t,e])=>{t.forEach((t=>{this.looseRoutesById[t.routeId].options[e]?.(t)}))})),this.emit({type:"onLoad",fromLocation:s,toLocation:r,pathChanged:a}),o()}catch(t){if(i=this.checkLatest(e))return i;n(t)}}));return this.latestLoadPromise=e,this.latestLoadPromise};preloadRoute=async(t=this.state.location)=>{let e=this.buildLocation(t),o=this.matchRoutes(e.pathname,e.search,{throwOnError:!0});return await this.loadMatches({matches:o,preload:!0,checkLatest:()=>{}}),[b(o),o]};buildLink=t=>{const{to:e,preload:o,preloadDelay:n,activeOptions:r,disabled:s,target:a,replace:i,resetScroll:c,startTransition:l}=t;try{return new URL(`${e}`),{type:"external",href:e}}catch(t){}const u=t,h=this.buildLocation(u),d=o??this.options.defaultPreload,f=n??this.options.defaultPreloadDelay??0,p=this.latestLocation.pathname.split("/"),m=h.pathname.split("/").every(((t,e)=>t===p[e])),y=r?.exact?this.latestLocation.pathname===h.pathname:m,g=!r?.includeHash||this.latestLocation.hash===h.hash,v=!(r?.includeSearch??1)||x(this.latestLocation.search,h.search,!0);return{type:"internal",next:h,handleFocus:t=>{d&&this.preloadRoute(u).catch((t=>{console.warn(t),console.warn(St)}))},handleClick:t=>{s||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||a&&"_self"!==a||0!==t.button||(t.preventDefault(),this.commitLocation({...h,replace:i,resetScroll:c,startTransition:l}))},handleEnter:t=>{const e=t.target||{};if(d){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,this.preloadRoute(u).catch((t=>{console.warn(t),console.warn(St)}))}),f)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},handleTouchStart:t=>{this.preloadRoute(u).catch((t=>{console.warn(t),console.warn(St)}))},isActive:y&&g&&v,disabled:s}};matchRoute=(t,e)=>{t={...t,to:t.to?this.resolvePathWithBase(t.from||"",t.to):void 0};const o=this.buildLocation(t);if(e?.pending&&"pending"!==this.state.status)return!1;const n=e?.pending?this.latestLocation:this.state.resolvedLocation;if(!n)return!1;const r=N(this.basepath,n.pathname,{...e,to:o.pathname});return!!r&&(r&&(e?.includeSearch??1)?!!x(n.search,o.search,!0)&&r:r)};injectHtml=async t=>{this.injectedHtml.push(t)};dehydrateData=(t,e)=>{if("undefined"==typeof document){const o="string"==typeof t?t:JSON.stringify(t);return this.injectHtml((async()=>{const t=`__TSR_DEHYDRATED__${o}`,n="function"==typeof e?await e():e;return`<script id='${t}' suppressHydrationWarning>window["__TSR_DEHYDRATED__${T(o)}"] = ${JSON.stringify(n)}\n ;(() => {\n var el = document.getElementById('${t}')\n el.parentElement.removeChild(el)\n })()\n <\/script>`})),()=>this.hydrateData(t)}return()=>{}};hydrateData=t=>{if("undefined"!=typeof document){const e="string"==typeof t?t:JSON.stringify(t);return window[`__TSR_DEHYDRATED__${e}`]}};dehydrate=()=>({state:{dehydratedMatches:this.state.matches.map((t=>L(t,["fetchedAt","invalid","id","status","updatedAt","loaderData"])))}});hydrate=async t=>{let e=t;"undefined"!=typeof document&&(e=window.__TSR_DEHYDRATED__),y(e);const o=e;this.dehydratedData=o.payload,this.options.hydrate?.(o.payload);const n=o.router.state;let r=this.matchRoutes(this.state.location.pathname,this.state.location.search).map((t=>{const e=n.dehydratedMatches.find((e=>e.id===t.id));return y(e,t.id),e?{...t,...e}:t}));this.setState((t=>({...t,matches:r})))}},t.RouterProvider=function({router:t,...e}){t.update({...t.options,...e,context:{...t.options.context,...e?.context}});const o=n.createElement(ot,{router:t});return t.options.Wrap?n.createElement(t.options.Wrap,null,o):o},t.ScrollRestoration=function(t){return Tt(t),null},t.SearchParamError=Rt,t.cleanPath=D,t.componentTypes=wt,t.createBrowserHistory=h,t.createHashHistory=function(){return h({getHref:()=>window.location.hash.substring(1),createHref:t=>`#${t}`})},t.createMemoryHistory=d,t.createRouteMask=function(t){return t},t.decode=ft,t.deepEqual=x,t.defaultParseSearch=mt,t.defaultStringifySearch=yt,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=ht,t.escapeJSON=T,t.functionalUpdate=E,t.getInitialRouterState=Et,t.getRouteMatch=nt,t.interpolatePath=B,t.invariant=y,t.isDehydratedDeferred=at,t.isPlainObject=_,t.isRedirect=pt,t.isServer=R,t.joinPaths=M,t.last=b,t.lazyFn=function(t,e){return async(...o)=>(await t())[e||"default"](...o)},t.lazyRouteComponent=function(t,e){let o;const r=()=>(o||(o=t()),o),s=n.lazy((async()=>({default:(await r())[e??"default"]})));return s.preload=r,s},t.matchByPath=H,t.matchPathname=N,t.matchesContext=Z,t.parsePathname=$,t.parseSearchWith=gt,t.pick=L,t.redirect=function(t){return t.isRedirect=!0,t},t.replaceEqualDeep=P,t.resolvePath=A,t.rootRouteId=W,t.rootRouteWithContext=function(){return t=>new U(t)},t.routerContext=et,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 o=Object.keys(t);if(o.length!==Object.keys(e).length)return!1;for(let n=0;n<o.length;n++)if(!Object.prototype.hasOwnProperty.call(e,o[n])||!Object.is(t[o[n]],e[o[n]]))return!1;return!0},t.stringifySearchWith=vt,t.trimPath=j,t.trimPathLeft=O,t.trimPathRight=I,t.typedNavigate=function(t){return t},t.useAwaited=it,t.useBlocker=Dt,t.useElementScrollRestoration=function(t){const e=st(),o=t?.getKey||kt;let n="";if(t.id)n=`[data-scroll-restoration-id="${t.id}"]`;else{const e=t.getElement?.();if(!e)return;n=Mt(e)}const r=[o(e.latestLocation),n].join(_t);return xt.state.cached[r]},t.useLayoutEffect=k,t.useLinkProps=lt,t.useLoaderData=tt,t.useMatch=Q,t.useMatchRoute=G,t.useMatches=function(t){const e=n.useContext(Z);return rt({select:o=>{const n=o.matches.slice(o.matches.findIndex((t=>t.id===e[0]?.id)));return t?.select?t.select(n):n}})},t.useNavigate=function(t){const{navigate:e}=st(),o=Q({strict:!1});return n.useCallback((n=>e({from:n?.to?o.pathname:void 0,...t,...n})),[])},t.useParams=K,t.useRouteContext=function(t){return Q({...t,select:e=>t?.select?t.select(e.context):e.context})},t.useRouter=st,t.useRouterState=rt,t.useScrollRestoration=Tt,t.useSearch=F,t.useStableCallback=function(t){const e=n.useRef(t);return e.current=t,n.useRef(((...t)=>e.current(...t))).current},t.warning=g}));
22
22
  //# sourceMappingURL=index.production.js.map