@kb-labs/release-manager-cli 2.118.2 → 2.119.0-canary.85d060ea6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/changelog.js +13 -3
- package/dist/cli/commands/changelog.js.map +1 -1
- package/dist/cli/commands/run.js +6 -2
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/rest/handlers/changelog-generate-handler.d.ts +1 -0
- package/dist/rest/handlers/changelog-generate-handler.js +15 -8
- package/dist/rest/handlers/changelog-generate-handler.js.map +1 -1
- package/dist/rest/handlers/generate-handler.d.ts +1 -0
- package/dist/rest/handlers/history-changelog-handler.js +4 -3
- package/dist/rest/handlers/history-changelog-handler.js.map +1 -1
- package/dist/rest/handlers/history-handler.d.ts +2 -0
- package/dist/rest/handlers/history-handler.js +3 -1
- package/dist/rest/handlers/history-handler.js.map +1 -1
- package/dist/rest/handlers/history-plan-handler.d.ts +1 -0
- package/dist/rest/handlers/history-plan-handler.js +12 -3
- package/dist/rest/handlers/history-plan-handler.js.map +1 -1
- package/dist/rest/handlers/history-report-handler.d.ts +1 -0
- package/dist/rest/handlers/plan-handler.d.ts +1 -0
- package/dist/rest/handlers/report-handler.d.ts +1 -0
- package/dist/rest/handlers/run-handler.d.ts +2 -1
- package/dist/rest/handlers/run-handler.js +6 -2
- package/dist/rest/handlers/run-handler.js.map +1 -1
- package/dist/widgets/117.js +10 -3
- package/dist/widgets/165.js +1 -1
- package/dist/widgets/370.js +1 -1
- package/dist/widgets/46.js +20 -20
- package/dist/widgets/50.js +1 -1
- package/dist/widgets/546.js +1 -1
- package/dist/widgets/648.js +1 -1
- package/dist/widgets/669.js +1 -1
- package/dist/widgets/775.js +1 -1
- package/dist/widgets/78.js +1 -1
- package/dist/widgets/832.js +96 -0
- package/dist/widgets/875.js +4 -4
- package/dist/widgets/__federation_expose_ReleasePage.js +1 -1
- package/dist/widgets/mf-manifest.json +2 -2
- package/dist/widgets/mf-stats.json +2 -2
- package/dist/widgets/remoteEntry.js +7 -7
- package/package.json +5 -5
- package/dist/widgets/62.js +0 -96
package/dist/widgets/875.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";(self.rspackChunk_kb_labs_release_manager_cli=self.rspackChunk_kb_labs_release_manager_cli||[]).push([[875],{7174(e,t,r){let n,a;r.r(t),r.d(t,{Await:()=>rZ,BrowserRouter:()=>a_,Form:()=>aH,HashRouter:()=>a$,HydratedRouter:()=>aS,IDLE_BLOCKER:()=>eU,IDLE_FETCHER:()=>eH,IDLE_NAVIGATION:()=>eF,Link:()=>aj,Links:()=>n7,MemoryRouter:()=>rJ,Meta:()=>an,NavLink:()=>aF,Navigate:()=>rY,NavigationType:()=>f,Outlet:()=>rX,PrefetchPageLinks:()=>ae,Route:()=>rV,Router:()=>rG,RouterContextProvider:()=>L,RouterProvider:()=>nn,Routes:()=>rK,Scripts:()=>ao,ScrollRestoration:()=>aU,ServerRouter:()=>oe,StaticRouter:()=>a5,StaticRouterProvider:()=>a3,UNSAFE_AwaitContextProvider:()=>t0,UNSAFE_DataRouterContext:()=>tY,UNSAFE_DataRouterStateContext:()=>tX,UNSAFE_ErrorResponseImpl:()=>ef,UNSAFE_FetchersContext:()=>tZ,UNSAFE_FrameworkContext:()=>n5,UNSAFE_LocationContext:()=>t2,UNSAFE_NavigationContext:()=>t1,UNSAFE_RSCDefaultRootErrorBoundary:()=>o9,UNSAFE_RemixErrorBoundary:()=>ai,UNSAFE_RouteContext:()=>t4,UNSAFE_ServerMode:()=>ob,UNSAFE_SingleFetchRedirectSymbol:()=>nE,UNSAFE_ViewTransitionContext:()=>tK,UNSAFE_WithComponentProps:()=>r3,UNSAFE_WithErrorBoundaryProps:()=>nt,UNSAFE_WithHydrateFallbackProps:()=>r8,UNSAFE_createBrowserHistory:()=>g,UNSAFE_createClientRoutes:()=>ap,UNSAFE_createClientRoutesWithHMRRevalidationOptOut:()=>ah,UNSAFE_createHashHistory:()=>w,UNSAFE_createMemoryHistory:()=>y,UNSAFE_createRouter:()=>eq,UNSAFE_decodeViaTurboStream:()=>nO,UNSAFE_defaultMapRouteProperties:()=>M,UNSAFE_getHydrationData:()=>ab,UNSAFE_getPatchRoutesOnNavigationFunction:()=>nG,UNSAFE_getTurboStreamSingleFetchDataStrategy:()=>nC,UNSAFE_hydrationRouteProperties:()=>rH,UNSAFE_invariant:()=>v,UNSAFE_shouldHydrateRouteLoader:()=>av,UNSAFE_useFogOFWarDiscovery:()=>nK,UNSAFE_useScrollRestoration:()=>a0,UNSAFE_withComponentProps:()=>r6,UNSAFE_withErrorBoundaryProps:()=>nr,UNSAFE_withHydrateFallbackProps:()=>r7,createBrowserRouter:()=>aM,createContext:()=>P,createCookie:()=>om,createCookieSessionStorage:()=>o0,createHashRouter:()=>aT,createMemoryRouter:()=>rU,createMemorySessionStorage:()=>o1,createPath:()=>S,createRequestHandler:()=>oB,createRoutesFromChildren:()=>r1,createRoutesFromElements:()=>r2,createRoutesStub:()=>ot,createSearchParams:()=>ak,createSession:()=>oG,createSessionStorage:()=>oZ,createStaticHandler:()=>eW,createStaticRouter:()=>a9,data:()=>el,generatePath:()=>B,href:()=>o4,isCookie:()=>op,isRouteErrorResponse:()=>em,isSession:()=>oK,matchPath:()=>q,matchRoutes:()=>_,parsePath:()=>x,redirect:()=>eu,redirectDocument:()=>ec,renderMatches:()=>r4,replace:()=>ed,resolvePath:()=>V,unstable_HistoryRouter:()=>aN,unstable_RSCStaticRouter:()=>ii,unstable_routeRSCServerRequest:()=>io,unstable_setDevServerHooks:()=>oR,unstable_usePrompt:()=>a2,unstable_useRoute:()=>r_,unstable_useRouterState:()=>rN,useActionData:()=>rP,useAsyncError:()=>rA,useAsyncValue:()=>rD,useBeforeUnload:()=>a1,useBlocker:()=>rT,useFetcher:()=>aV,useFetchers:()=>aG,useFormAction:()=>aX,useHref:()=>t8,useInRouterContext:()=>t7,useLinkClickHandler:()=>aq,useLoaderData:()=>rC,useLocation:()=>re,useMatch:()=>rr,useMatches:()=>rx,useNavigate:()=>ra,useNavigation:()=>rR,useNavigationType:()=>rt,useOutlet:()=>rs,useOutletContext:()=>ri,useParams:()=>rl,useResolvedPath:()=>ru,useRevalidator:()=>rS,useRouteError:()=>rL,useRouteLoaderData:()=>rk,useRoutes:()=>rc,useSearchParams:()=>aW,useSubmit:()=>aY,useViewTransitionState:()=>a4});var o,i,s=r(92),l=r.n(s),u=r(4778);let c=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,d=/^[\\/]{2}/;function h(e,t){return t+e.replace(/\\/g,"/")}let f=((o={}).Pop="POP",o.Push="PUSH",o.Replace="REPLACE",o),m="popstate";function p(e){return"object"==typeof e&&null!=e&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function y(e={}){let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0,"string"==typeof e?void 0:e.mask));let o=l(null==n?t.length-1:n),i="POP",s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r=null,n,a){let i=R(t?t[o].pathname:"/",e,r,n,a);return b("/"===i.pathname.charAt(0),`relative pathnames are not supported in memory history: ${JSON.stringify(e)}`),i}function c(e){return"string"==typeof e?e:S(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:c,createURL:e=>new URL(c(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?x(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i="PUSH";let n=p(e)?e:u(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i="REPLACE";let n=p(e)?e:u(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i="POP";let r=l(o+e),n=t[r];o=r,s&&s({action:i,location:n,delta:e})},listen:e=>(s=e,()=>{s=null})}}function g(e={}){return C(function(e,t){let r=t.state?.masked,{pathname:n,search:a,hash:o}=r||e.location;return R("",{pathname:n,search:a,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default",r?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)},function(e,t){return"string"==typeof t?t:S(t)},null,e)}function w(e={}){return C(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=x(e.location.hash.substring(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),R("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:S(t))},function(e,t){b("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)},e)}function v(e,t){if(!1===e||null==e)throw Error(t)}function b(e,t){if(!e){"u">typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function E(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function R(e,t,r=null,n,a){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?x(t):t,state:r,key:t&&t.key||n||Math.random().toString(36).substring(2,10),mask:a}}function S({pathname:e="/",search:t="",hash:r=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),r&&"#"!==r&&(e+="#"===r.charAt(0)?r:"#"+r),e}function x(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function C(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,s="POP",l=null,u=c();function c(){return(i.state||{idx:null}).idx}function d(){s="POP";let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:f.location,delta:t})}function h(e){return k(a,e)}null==u&&(u=0,i.replaceState({...i.state,idx:u},""));let f={get action(){return s},get location(){return e(a,i)},listen(e){if(l)throw Error("A history only accepts one active listener");return a.addEventListener(m,d),l=e,()=>{a.removeEventListener(m,d),l=null}},createHref:e=>t(a,e),createURL:h,encodeLocation(e){let t=h(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s="PUSH";let n=p(e)?e:R(f.location,e,t);r&&r(n,e);let d=E(n,u=c()+1),h=f.createHref(n.mask||n);try{i.pushState(d,"",h)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(h)}o&&l&&l({action:s,location:f.location,delta:1})},replace:function(e,t){s="REPLACE";let n=p(e)?e:R(f.location,e,t);r&&r(n,e);let a=E(n,u=c()),d=f.createHref(n.mask||n);i.replaceState(a,"",d),o&&l&&l({action:s,location:f.location,delta:0})},go:e=>i.go(e)};return f}function k(e,t,r=!1){let n="http://localhost";e&&(n="null"!==e.location.origin?e.location.origin:e.location.href),v(n,"No window.location.(origin|href) available to create URL");let a="string"==typeof t?t:S(t);return a=a.replace(/ $/,"%20"),!r&&d.test(a)&&(a=n+a),new URL(a,n)}function P(e){return{defaultValue:e}}var L=class{#e=new Map;constructor(e){if(e)for(let[t,r]of e)this.set(t,r)}get(e){if(this.#e.has(e))return this.#e.get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw Error("No value found for context")}set(e,t){this.#e.set(e,t)}};let D=new Set(["lazy","caseSensitive","path","id","index","children"]),A=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function M(e){let t={};return e.Component&&Object.assign(t,{element:s.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:s.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:s.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function T(e,t=M,r=[],n={},a=!1){return e.map((e,o)=>{let i=[...r,String(o)],s="string"==typeof e.id?e.id:i.join("-");if(v(!0!==e.index||!e.children,"Cannot specify children on an index route"),v(a||!n[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),!0===e.index){let r={...e,id:s};return n[s]=O(r,t(r)),r}{let r={...e,id:s,children:void 0};return n[s]=O(r,t(r)),e.children&&(r.children=T(e.children,t,i,n,a)),r}})}function O(e,t){return Object.assign(e,{...t,..."object"==typeof t.lazy&&null!=t.lazy?{lazy:{...e.lazy,...t.lazy}}:{}})}function _(e,t,r="/"){return $(e,t,r,!1)}function $(e,t,r,n,a){let o=X(("string"==typeof t?x(t):t).pathname||"/",r);if(null==o)return null;let i=a??j(e),s=null,l=Y(o);for(let e=0;null==s&&e<i.length;++e)s=function(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c={path:s.relativePath,caseSensitive:s.caseSensitive,end:l},d=s.matcher&&s.compiledParams?W(c,u,s.matcher,s.compiledParams):q(c,u),h=s.route;if(!d&&l&&r&&!n[n.length-1].route.index&&(d=q({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!d)return null;Object.assign(a,d.params),i.push({params:a,pathname:er([o,d.pathname]),pathnameBase:ea(er([o,d.pathnameBase])),route:h}),"/"!==d.pathnameBase&&(o=er([o,d.pathnameBase]))}return i}(i[e],l,n);return s}function N(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,loaderData:t[r.id],handle:r.handle}}function j(e){let t=function e(t,r=[],n=[],a="",o=!1){let i=(t,i,s=o,l)=>{var u,c;let d,h,f={relativePath:void 0===l?t.path||"":l,caseSensitive:!0===t.caseSensitive,childrenIndex:i,route:t};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(a)&&s)return;v(f.relativePath.startsWith(a),`Absolute route path "${f.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(a.length)}let m=er([a,f.relativePath]),p=n.concat(f);t.children&&t.children.length>0&&(v(!0!==t.index,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),e(t.children,r,p,m,s)),(null!=t.path||t.index)&&r.push({path:m,score:(u=m,c=t.index,h=(d=u.split("/")).length,d.some(U)&&(h+=-2),c&&(h+=2),d.filter(e=>!U(e)).reduce((e,t)=>e+(F.test(t)?3:H.test(t)?3.5:""===t?1:10),h)),routesMeta:p.map((e,t)=>{let[r,n]=J(e.relativePath,e.caseSensitive,t===p.length-1);return{...e,matcher:r,compiledParams:n}})})};return t.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let s=e(a.join("/")),l=[];return l.push(...s.map(e=>""===e?i:[i,e].join("/"))),o&&l.push(...s),l.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))i(e,t,!0,r);else i(e,t)}),r}(e);return t.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)}),t}let F=/^:[\w-]+$/,H=/^:[\w-]+/,U=e=>"*"===e,z={"%24":"$","%26":"&","%2B":"+","%2C":",","%3A":":","%3B":";","%3D":"=","%40":"@"};function I(e){return encodeURIComponent(e).replace(/%(?:24|26|2B|2C|3A|3B|3D|40)/g,e=>z[e])}function B(e,t={}){let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(b(!1,`Route path "${r}" will be treated as if it were "${r.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${r.replace(/\*$/,"/*")}".`),r=r.replace(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)(.*)/);if(o){let[,e,r,n]=o,i=t[e];return v("?"===r||null!=i,`Missing ":${e}" param`),I(a(i))+n}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function q(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=J(e.path,e.caseSensitive,e.end);return W(e,t,r,n)}function W(e,t,r,n){let a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((e,{paramName:t,isOptional:r},n)=>{if("*"===t){let e=s[n]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}let a=s[n];return r&&!a?e[t]=void 0:e[t]=(a||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:i,pattern:e}}function J(e,t=!1,r=!0){b("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r,a,o)=>{if(n.push({paramName:t,isOptional:null!=r}),r){let t=o.charAt(a+e.length);return t&&"/"!==t?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(?=\/|$|\()/g,"(?:/$1)?");return e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Y(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return b(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function X(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}function V(e,t="/"){let{pathname:r,search:n="",hash:a=""}="string"==typeof e?x(e):e;return{pathname:r?(r=et(r)).startsWith("/")?G(r.substring(1),"/"):G(r,t):t,search:eo(n),hash:ei(a)}}function G(e,t){let r=en(t).split("/");return e.split("/").forEach(e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)}),r.length>1?r.join("/"):"/"}function K(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Z(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function Q(e){let t=Z(e);return t.map((e,r)=>r===t.length-1?e.pathname:e.pathnameBase)}function ee(e,t,r,n=!1){let a,o;"string"==typeof e?a=x(e):(v(!(a={...e}).pathname||!a.pathname.includes("?"),K("?","pathname","search",a)),v(!a.pathname||!a.pathname.includes("#"),K("#","pathname","hash",a)),v(!a.search||!a.search.includes("#"),K("#","search","hash",a)));let i=""===e||""===a.pathname,s=i?"/":a.pathname;if(null==s)o=r;else{let e=t.length-1;if(!n&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=V(a,o),u=s&&"/"!==s&&s.endsWith("/"),c=(i||"."===s)&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}let et=e=>e.replace(/[\\/]{2,}/g,"/"),er=e=>et(e.join("/")),en=e=>e.replace(/\/+$/,""),ea=e=>en(e).replace(/^\/*/,"/"),eo=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",ei=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";var es=class{type="DataWithResponseInit";data;init;constructor(e,t){this.data=e,this.init=t||null}};function el(e,t){return new es(e,"number"==typeof t?{status:t}:t)}let eu=(e,t=302)=>{let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},ec=(e,t)=>{let r=eu(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},ed=(e,t)=>{let r=eu(e,t);return r.headers.set("X-Remix-Replace","true"),r},eh=["EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"];var ef=class{status;statusText;data;error;internal;constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function em(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}function ep(e){return er(e.map(e=>e.route.path).filter(Boolean))||"/"}function ey(e,t){let r=new URL("string"==typeof e||e instanceof URL?e:e.url),n="string"==typeof t?x(t):t;if(r.pathname=n.pathname||"/",n.search){let e=new URLSearchParams(n.search),t=e.getAll("index");for(let r of(e.delete("index"),t.filter(Boolean)))e.append("index",r);let a=e.toString();r.search=a?`?${a}`:""}else r.search="";return r.hash=n.hash||"",r}let eg="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function ew(e,t){let r=e;if("string"!=typeof r||!c.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if(eg)try{let e=new URL(window.location.href),n=new URL(d.test(r)?h(r,e.protocol):r),o=X(n.pathname,t);n.origin===e.origin&&null!=o?r=o+n.search+n.hash:a=!0}catch(e){b(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:a,to:r}}let ev=Symbol("Uninstrumented"),eb=P(),eE=new WeakMap;function eR(e,t){var r,n,a,o;let i=[],s=[],l=[],u=[],c=[],d=[],h=[];e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){null!=e.lazy&&i.push(e.lazy),null!=e["lazy.loader"]&&s.push(e["lazy.loader"]),null!=e["lazy.action"]&&l.push(e["lazy.action"]),null!=e["lazy.middleware"]&&u.push(e["lazy.middleware"]),null!=e.middleware&&c.push(e.middleware),null!=e.loader&&d.push(e.loader),null!=e.action&&h.push(e.action)}}));let f={};if("function"==typeof t.lazy&&i.length>0){let e=t.lazy;f.lazy=async(...t)=>ek(await eP(i,void 0,()=>e(...t),eL))}if("object"==typeof t.lazy){let e=t.lazy;if("function"==typeof e.middleware&&u.length>0){let t=e.middleware;f.lazy=Object.assign(f.lazy||{},{middleware:async(...e)=>ek(await eP(u,void 0,()=>t(...e),eL))})}if("function"==typeof e.loader&&s.length>0){let t=e.loader;f.lazy=Object.assign(f.lazy||{},{loader:async(...e)=>ek(await eP(s,void 0,()=>t(...e),eL))})}if("function"==typeof e.action&&l.length>0){let t=e.action;f.lazy=Object.assign(f.lazy||{},{action:async(...e)=>ek(await eP(l,void 0,()=>t(...e),eL))})}}if("function"==typeof t.loader&&d.length>0){let e=eS(t.loader),a=async(...t)=>ek(await eP(d,eD(t[0]),()=>e(...t),eL));!0===e.hydrate&&(a.hydrate=!0),r=a,n=e,r[ev]=n,f.loader=a}if("function"==typeof t.action&&h.length>0){let e=eS(t.action),r=async(...t)=>ek(await eP(h,eD(t[0]),()=>e(...t),eL));a=r,o=e,a[ev]=o,f.action=r}return t.middleware&&t.middleware.length>0&&c.length>0&&(f.middleware=t.middleware.map(e=>{var t,r;let n=eS(e),a=async(...e)=>ek(await eP(c,eD(e[0]),()=>n(...e),eL));return t=a,r=n,t[ev]=r,a})),f}function eS(e){return e[ev]??e}function ex(e,t){return eE.set(e,t),()=>{eE.get(e)===t&&eE.delete(e)}}function eC(e){let t=eE.get(e);return eE.delete(e),t}function ek(e){if("error"===e.type)throw e.value;return e.value}async function eP(e,t,r,n,a={result:null,innerResult:null},o=e.length-1){let i=e[o];if(i){let s,l=async()=>(s?console.error("You cannot call instrumented handlers more than once"):s=eP(e,t,r,n,a,o-1),await s,v(a.innerResult,"Expected an inner result"),a.innerResult);try{await i(l,t)}catch(e){console.error("An instrumentation function threw an error:",e)}s||await l(),await s}else{try{a.result={type:"success",value:await r()}}catch(e){a.result={type:"error",value:e}}a.innerResult=n(a.result,t)}return a.result||(a.result={type:"error",value:Error("No result assigned in instrumentation chain.")},a.innerResult=n(a.result,t)),a.result}function eL(e){return"error"===e.type&&e.value instanceof Error?{status:"error",error:e.value}:{status:"success",error:void 0}}function eD(e){let{request:t,context:r,params:n}=e;return{...e,request:eM(t),params:{...n},context:eT(r)}}function eA(e,t){return{currentUrl:S(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function eM(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function eT(e){return{get:t=>e.get(t)}}let eO=["POST","PUT","PATCH","DELETE"],e_=new Set(eO),e$=new Set(["GET",...eO]),eN=new Set([301,302,303,307,308]),ej=new Set([307,308]),eF={state:"idle",location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eH={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eU={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ez="remix-router-transitions",eI=Symbol("ResetLoaderData");var eB=class{#t;#r;#n;#a;constructor(e){this.#t=e,this.#r=j(e)}get stableRoutes(){return this.#t}get activeRoutes(){return this.#n??this.#t}get branches(){return this.#a??this.#r}get hasHMRRoutes(){return null!=this.#n}setRoutes(e){this.#t=e,this.#r=j(e)}setHmrRoutes(e){this.#n=e,this.#a=j(e)}commitHmrRoutes(){this.#n&&(this.#t=this.#n,this.#r=this.#a,this.#n=void 0,this.#a=void 0)}};function eq(e){let t,r,n,a,o,i=e.window?e.window:"u">typeof window?window:void 0,s=void 0!==i&&void 0!==i.document&&void 0!==i.document.createElement;v(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let l=e.hydrationRouteProperties||[],u=e.mapRouteProperties,d=u||(()=>({}));if(e.instrumentations){let t=e.instrumentations;d=e=>({...u?.(e),...eR(t.map(e=>e.route).filter(Boolean),e)})}let h={},f=new eB(T(e.routes,d,void 0,h)),m=e.basename||"/";m.startsWith("/")||(m=`/${m}`);let p=e.dataStrategy||e8,y={...e.future},g=null,w=new Set,E=null,C=null,P=null,D=null,A=null!=e.hydrationData,M=$(f.activeRoutes,e.history.location,m,!1,f.branches),O=!1,_=null;if(null!=M||e.patchRoutesOnNavigation)if(M&&!e.hydrationData&&eJ(M,f.activeRoutes,e.history.location.pathname).active&&(M=null),M)if(M.some(e=>e.route.lazy))t=!1,r=!0;else if(M.some(e=>eZ(e.route))){let n=e.hydrationData?e.hydrationData.loaderData:null,a=e.hydrationData?e.hydrationData.errors:null,o=M;if(a){let e=M.findIndex(e=>void 0!==a[e.route.id]);o=o.slice(0,e+1)}r=!1,t=!0,o.forEach(e=>{let o=eQ(e.route,n,a);r=r||o.renderFallback,t=t&&!o.shouldLoad})}else t=!0,r=!1;else{t=!1,r=!0,M=[];let n=eJ(null,f.activeRoutes,e.history.location.pathname);n.active&&n.matches&&(O=!0,M=n.matches)}else{let n=tS(404,{pathname:e.history.location.pathname}),{matches:a,route:o}=tR(f.activeRoutes);t=!0,r=!1,M=a,_={[o.id]:n}}let j={historyAction:e.history.action,location:e.history.location,matches:M,initialized:t,renderFallback:r,navigation:eF,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||_,fetchers:new Map,blockers:new Map},F="POP",H=null,U=!1,z=!1,I=new Map,B=null,q=!1,W=!1,J=new Set,Y=new Map,V=0,G=-1,K=new Map,Z=new Set,Q=new Map,ee=new Map,et=new Set,er=new Map,en=null;function ea(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=h[e.route.id],r=e.route;return r.element!==t.element||r.errorElement!==t.errorElement||r.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}));let r=[],n=[];(j={...j,...e}).fetchers.forEach((e,t)=>{"idle"===e.state&&(et.has(t)?r.push(t):n.push(t))}),et.forEach(e=>{j.fetchers.has(e)||Y.has(e)||r.push(e)}),0===w.size&&(E={newErrors:e.errors??null}),[...w].forEach(n=>n(j,{deletedFetchers:r,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),r.forEach(e=>eE(j.fetchers,e)),n.forEach(e=>j.fetchers.delete(e))}function eo(t,r,{flushSync:n}={}){let a,o,i=null!=j.actionData&&null!=j.navigation.formMethod&&tF(j.navigation.formMethod)&&"loading"===j.navigation.state&&t.state?._isRedirect!==!0;a=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:i?j.actionData:null;let s=r.loaderData?tv(j.loaderData,r.loaderData,r.matches||[],r.errors):j.loaderData,l=j.blockers;l.size>0&&!q&&(l=new Map(l)).forEach((e,t)=>l.set(t,eU));let u=!q&&eW(t,r.matches||j.matches),c=!0===U||null!=j.navigation.formMethod&&tF(j.navigation.formMethod)&&t.state?._isRedirect!==!0;if(f.commitHmrRoutes(),q||"POP"===F||("PUSH"===F?e.history.push(t,t.state):"REPLACE"===F&&e.history.replace(t,t.state)),"POP"===F){let e=I.get(j.location.pathname);e&&e.has(t.pathname)?o={currentLocation:j.location,nextLocation:t}:I.has(t.pathname)&&(o={currentLocation:t,nextLocation:j.location})}else if(z){let e=I.get(j.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),I.set(j.location.pathname,e)),o={currentLocation:j.location,nextLocation:t}}ea({...r,actionData:a,loaderData:s,historyAction:F,location:t,initialized:!0,renderFallback:!1,navigation:eF,revalidation:"idle",restoreScrollPosition:u,preventScrollReset:c,blockers:l},{viewTransitionOpts:o,flushSync:!0===n}),F="POP",U=!1,z=!1,q=!1,W=!1,H?.resolve(),H=null,en?.resolve(),en=null}async function ei(t,r){let a;if(H?.resolve(),H=null,"number"==typeof t){H||(H=tJ());let r=H.promise;return e.history.go(t),r}let o=eC(n),{path:i,submission:s,error:l}=eG(!1,eV(j.location,j.matches,m,t,r?.fromRouteId,r?.relative),r);r?.mask&&(a={pathname:"",search:"",hash:"",..."string"==typeof r.mask?x(r.mask):{...j.location.mask,...r.mask}});let u=j.location,c=R(u,i,r&&r.state,void 0,a);c={...c,...e.history.encodeLocation(c)};let d=r&&null!=r.replace?r.replace:void 0,h="PUSH";!0===d?h="REPLACE":!1===d||null!=s&&tF(s.formMethod)&&s.formAction===j.location.pathname+j.location.search&&(h="REPLACE");let f=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,p=!0===(r&&r.flushSync),y=eN({currentLocation:u,nextLocation:c,historyAction:h});y?e$(y,{state:"blocked",location:c,proceed(){e$(y,{state:"proceeding",proceed:void 0,reset:void 0,location:c}),ei(t,r)},reset(){let e=new Map(j.blockers);e.set(y,eU),ea({blockers:e})}}):await es(h,c,{submission:s,pendingError:l,preventScrollReset:f,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:r&&r.defaultShouldRevalidate,instrumentationNavigateMetaReceiver:o})}async function es(t,r,n){var o,i,s,l;let u;a&&a.abort(),a=null,F=t,q=!0===(n&&n.startUninterruptedRevalidation),o=j.location,i=j.matches,C&&D&&(C[eq(o,i)]=D()),U=!0===(n&&n.preventScrollReset),z=!0===(n&&n.enableViewTransition);let c=f.activeRoutes,d=n?.initialHydration&&j.matches&&j.matches.length>0&&!O?j.matches:$(c,r,m,!1,f.branches),h=!0===(n&&n.flushSync);if(d&&j.initialized&&!W&&(s=j.location,l=r,s.pathname===l.pathname&&s.search===l.search&&(""===s.hash?""!==l.hash:s.hash===l.hash||""!==l.hash||!1))&&!(n&&n.submission&&tF(n.submission.formMethod)))return void eo(r,{matches:d},{flushSync:h});let p=eJ(d,c,r.pathname);if(p.active&&p.matches&&(d=p.matches),n?.instrumentationNavigateMetaReceiver){let t=tz(e.history,r,d);n.instrumentationNavigateMetaReceiver(t)}if(!d){let{error:e,notFoundMatches:t,route:n}=eI(r.pathname);eo(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:h});return}let y=n&&n.overrideNavigation?{...n.overrideNavigation,matches:d,historyAction:t}:void 0;a=new AbortController;let g=tm(e.history,r,a.signal,n&&n.submission),w=e.getContext?await e.getContext():new L;if(n&&n.pendingError)u=[tE(d).route.id,{type:"error",error:n.pendingError}];else if(n&&n.submission&&tF(n.submission.formMethod)){let o=await el(g,r,n.submission,d,t,w,p.active,n&&!0===n.initialHydration,{replace:n.replace,flushSync:h});if(o.shortCircuited)return;if(o.pendingActionResult){let[e,t]=o.pendingActionResult;if(tM(t)&&em(t.error)&&404===t.error.status){a=null,eo(r,{matches:o.matches,loaderData:{},errors:{[e]:t.error}});return}}d=o.matches||d,u=o.pendingActionResult,y=tB(r,d,t,n.submission),h=!1,p.active=!1,g=tm(e.history,g.url,g.signal)}let{shortCircuited:v,matches:b,loaderData:E,errors:R,workingFetchers:S}=await eu(g,r,d,t,w,p.active,y,n&&n.submission,n&&n.fetcherSubmission,n&&n.replace,n&&!0===n.initialHydration,h,u,n&&n.callSiteDefaultShouldRevalidate);v||(a=null,eo(r,{matches:b||d,...tb(u),loaderData:E,errors:R,...S?{fetchers:S}:{}}))}async function el(t,r,n,a,o,i,s,u,c={}){var p,y,g;let w;if(eg(),ea({navigation:(p=r,y=a,{state:"submitting",location:p,matches:y,historyAction:o,formMethod:(g=n).formMethod,formAction:g.formAction,formEncType:g.formEncType,formData:g.formData,json:g.json,text:g.text})},{flushSync:!0===c.flushSync}),s){let e=await eY(a,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=tR(f.activeRoutes);return{matches:t,pendingActionResult:[r.id,{type:"error",error:e.error}]}}let t=tE(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:"error",error:e.error}]}}if(e.matches)a=e.matches;else{let{notFoundMatches:e,error:t,route:n}=eI(r.pathname);return{matches:e,pendingActionResult:[n.id,{type:"error",error:t}]}}}let v=tU(a,r);if(v.route.action||v.route.lazy){let e=await ep(t,r,to(d,h,t,r,a,v,u?[]:l,i),i,null);if(!(w=e[v.route.id])){for(let t of a)if(e[t.route.id]){w=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}else w={type:"error",error:tS(405,{method:t.method,pathname:r.pathname,routeId:v.route.id})};if(tT(w)){let r;return r=c&&null!=c.replace?c.replace:tf(w.response.headers.get("Location"),new URL(t.url),m,e.history)===j.location.pathname+j.location.search,await ef(t,w,!0,{submission:n,replace:r}),{shortCircuited:!0}}if(tM(w)){let e=tE(a,v.route.id);return!0!==(c&&c.replace)&&(F="PUSH"),{matches:a,pendingActionResult:[e.route.id,w,v.route.id]}}return{matches:a,pendingActionResult:[v.route.id,w]}}async function eu(t,r,n,o,i,s,u,c,p,y,g,w,v,b){let E=u||tB(r,n,o,c),R=c||p||tI(E),S=!q&&!g;if(s){if(S){let e=ec(v);ea({navigation:E,...void 0!==e?{actionData:e}:{}},{flushSync:w})}let e=await eY(n,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=tR(f.activeRoutes);return{matches:t,loaderData:{},errors:{[r.id]:e.error}}}let t=tE(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)n=e.matches;else{let{error:e,notFoundMatches:t,route:n}=eI(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}}let x=f.activeRoutes,{dsMatches:C,revalidatingFetchers:k}=eK(t,i,d,h,e.history,j,n,R,r,g?[]:l,!0===g,W,J,et,Q,Z,x,m,null!=e.patchRoutesOnNavigation,f.branches,v,b);if(G=++V,!e.dataStrategy&&!C.some(e=>e.shouldLoad)&&!C.some(e=>e.route.middleware&&e.route.middleware.length>0)&&0===k.length){let e=new Map(j.fetchers),t=eT(e);return eo(r,{matches:n,loaderData:{},errors:v&&tM(v[1])?{[v[0]]:v[1].error}:null,...tb(v),...t?{fetchers:e}:{}},{flushSync:w}),{shortCircuited:!0}}if(S){var P;let e,t={};if(!s){t.navigation=E;let e=ec(v);void 0!==e&&(t.actionData=e)}k.length>0&&(P=k,e=new Map(j.fetchers),P.forEach(t=>{let r=e.get(t.key),n=tq(void 0,r?r.data:void 0);e.set(t.key,n)}),t.fetchers=e),ea(t,{flushSync:w})}k.forEach(e=>{eD(e.key),e.controller&&Y.set(e.key,e.controller)});let L=()=>k.forEach(e=>eD(e.key));a&&a.signal.addEventListener("abort",L);let{loaderResults:D,fetcherResults:A}=await ey(C,k,t,r,i);if(t.signal.aborted)return{shortCircuited:!0};a&&a.signal.removeEventListener("abort",L),k.forEach(e=>Y.delete(e.key));let M=tx(D);if(M)return await ef(t,M.result,!0,{replace:y}),{shortCircuited:!0};if(M=tx(A))return Z.add(M.key),await ef(t,M.result,!0,{replace:y}),{shortCircuited:!0};let T=new Map(j.fetchers),{loaderData:O,errors:_}=tw(j,n,D,v,k,A,T);g&&j.errors&&(_={...j.errors,..._});let $=eT(T),N=eO(G,T);return{matches:n,loaderData:O,errors:_,...$||N||k.length>0?{workingFetchers:T}:{}}}function ec(e){if(e&&!tM(e[1]))return{[e[0]]:e[1].data};if(j.actionData)if(0===Object.keys(j.actionData).length)return null;else return j.actionData}async function ed(t,r,n,o,i,s,u,c,p,y){var g,w;eg(),Q.delete(t),ew(t,(g=p,w=j.fetchers.get(t),{state:"submitting",formMethod:g.formMethod,formAction:g.formAction,formEncType:g.formEncType,formData:g.formData,json:g.json,text:g.text,data:w?w.data:void 0}),{flushSync:u});let b=new AbortController,E=tm(e.history,n,b.signal,p);if(s){let e=await eY(o,new URL(E.url).pathname,E.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eb(t,r,e.error,{flushSync:u});if(!e.matches)return void eb(t,r,tS(404,{pathname:n}),{flushSync:u});o=e.matches}let R=tU(o,n);if(!R.route.action&&!R.route.lazy)return void eb(t,r,tS(405,{method:p.formMethod,pathname:n,routeId:r}),{flushSync:u});Y.set(t,b);let S=V,x=to(d,h,E,n,o,R,l,i),C=await ep(E,n,x,i,t),k=C[R.route.id];if(!k){for(let e of x)if(C[e.route.id]){k=C[e.route.id];break}}if(E.signal.aborted){Y.get(t)===b&&Y.delete(t);return}if(et.has(t)){if(tT(k)||tM(k))return void ew(t,tW(void 0))}else{if(tT(k))return(Y.delete(t),G>S)?void ew(t,tW(void 0)):(Z.add(t),ew(t,tq(p)),ef(E,k,!1,{fetcherSubmission:p,preventScrollReset:c}));if(tM(k))return void eb(t,r,k.error)}let P=j.navigation.location||j.location,L=tm(e.history,P,b.signal),D=f.activeRoutes,A="idle"!==j.navigation.state?$(D,j.navigation.location,m,!1,f.branches):j.matches;v(A,"Didn't find any matches after fetcher action");let M=++V;K.set(t,M);let{dsMatches:T,revalidatingFetchers:O}=eK(L,i,d,h,e.history,j,A,p,P,l,!1,W,J,et,Q,Z,D,m,null!=e.patchRoutesOnNavigation,f.branches,[R.route.id,k],y),_=tq(p,k.data),N=new Map(j.fetchers);N.set(t,_),O.filter(e=>e.key!==t).forEach(e=>{let t=e.key,r=N.get(t),n=tq(void 0,r?r.data:void 0);N.set(t,n),eD(t),e.controller&&Y.set(t,e.controller)}),ea({fetchers:N});let H=()=>O.forEach(e=>eD(e.key));b.signal.addEventListener("abort",H);let{loaderResults:U,fetcherResults:z}=await ey(T,O,L,P,i);if(b.signal.aborted)return;b.signal.removeEventListener("abort",H),K.delete(t),Y.delete(t),O.forEach(e=>Y.delete(e.key));let I=j.fetchers.has(t),B=e=>{if(!I)return e;let r=new Map(e.fetchers);return r.set(t,tW(k.data)),{...e,fetchers:r}},q=tx(U);if(q)return j=B(j),ef(L,q.result,!1,{preventScrollReset:c});if(q=tx(z))return Z.add(q.key),j=B(j),ef(L,q.result,!1,{preventScrollReset:c});let X=new Map(j.fetchers);I&&X.set(t,tW(k.data));let{loaderData:ee,errors:er}=tw(j,A,U,void 0,O,z,X);eO(M,X),"loading"===j.navigation.state&&M>G?(v(F,"Expected pending action"),a&&a.abort(),eo(j.navigation.location,{matches:A,loaderData:ee,errors:er,fetchers:X})):(ea({errors:er,loaderData:tv(j.loaderData,ee,A,er),fetchers:X}),W=!1)}async function eh(t,r,n,a,o,i,s,u,c){let f=j.fetchers.get(t);ew(t,tq(c,f?f.data:void 0),{flushSync:s});let m=new AbortController,p=tm(e.history,n,m.signal);if(i){let e=await eY(a,new URL(p.url).pathname,p.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eb(t,r,e.error,{flushSync:s});if(!e.matches)return void eb(t,r,tS(404,{pathname:n}),{flushSync:s});a=e.matches}let y=tU(a,n);Y.set(t,m);let g=V,w=await ep(p,n,to(d,h,p,n,a,y,l,o),o,t),v=w[y.route.id];if(!v){for(let e of a)if(w[e.route.id]){v=w[e.route.id];break}}if(Y.get(t)===m&&Y.delete(t),!p.signal.aborted){if(et.has(t))return void ew(t,tW(void 0));if(tT(v))if(G>g)return void ew(t,tW(void 0));else{Z.add(t),await ef(p,v,!1,{preventScrollReset:u});return}if(tM(v))return void eb(t,r,v.error);ew(t,tW(v.data))}}async function ef(t,r,n,{submission:o,fetcherSubmission:l,preventScrollReset:u,replace:d}={}){n||(H?.resolve(),H=null),r.response.headers.has("X-Remix-Revalidate")&&(W=!0);let h=r.response.headers.get("Location");v(h,"Expected a Location header on the redirect Response"),h=tf(h,new URL(t.url),m,e.history);let f=R(j.location,h,{_isRedirect:!0});if(s){let e=!1;if(r.response.headers.has("X-Remix-Reload-Document"))e=!0;else{let t;if(t=h,c.test(t)){let t=k(i,h,!0);e=t.origin!==i.location.origin||null==X(t.pathname,m)}}if(e)return void(d?i.location.replace(h):i.location.assign(h))}a=null;let p=!0===d||r.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:y,formAction:g,formEncType:w}=j.navigation;!o&&!l&&y&&g&&w&&(o=tI(j.navigation));let b=o||l;ej.has(r.response.status)&&b&&tF(b.formMethod)?await es(p,f,{submission:{...b,formAction:h},preventScrollReset:u||U,enableViewTransition:n?z:void 0}):await es(p,f,{overrideNavigation:tB(f,[],p,o),fetcherSubmission:l,preventScrollReset:u||U,enableViewTransition:n?z:void 0})}async function ep(e,t,r,n,a){let o,i={};try{o=await ti(p,e,t,r,a,n,!1)}catch(e){return r.filter(e=>e.shouldLoad).forEach(t=>{i[t.route.id]={type:"error",error:e}}),i}if(e.signal.aborted)return i;if(!tF(e.method))for(let e of r){if(o[e.route.id]?.type==="error")break;!o.hasOwnProperty(e.route.id)&&!j.loaderData.hasOwnProperty(e.route.id)&&(!j.errors||!j.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(o[e.route.id]={type:"error",result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,n]of Object.entries(o))if(tA(n)){let a=n.result;i[t]={type:"redirect",response:tc(a,e,t,r,m)}}else i[t]=await tu(n);return i}async function ey(e,t,r,n,a){let o=ep(r,n,e,a,null),i=Promise.all(t.map(async e=>{if(!e.matches||!e.match||!e.request||!e.controller)return Promise.resolve({[e.key]:{type:"error",error:tS(404,{pathname:e.path})}});{let t=(await ep(e.request,e.path,e.matches,a,e.key))[e.match.route.id];return{[e.key]:t}}}));return{loaderResults:await o,fetcherResults:(await i).reduce((e,t)=>Object.assign(e,t),{})}}function eg(){W=!0,Q.forEach((e,t)=>{Y.has(t)&&J.add(t),eD(t)})}function ew(e,t,r={}){let n=new Map(j.fetchers);n.set(e,t),ea({fetchers:n},{flushSync:!0===(r&&r.flushSync)})}function eb(e,t,r,n={}){let a=tE(j.matches,t),o=new Map(j.fetchers);eE(o,e),ea({errors:{[a.route.id]:r},fetchers:o},{flushSync:!0===(n&&n.flushSync)})}function eE(e,t){let r=j.fetchers.get(t);Y.has(t)&&!(r&&"loading"===r.state&&K.has(t))&&eD(t),Q.delete(t),K.delete(t),Z.delete(t),et.delete(t),J.delete(t),e.delete(t)}function eD(e,t){let r=Y.get(e);r&&(r.abort(t),Y.delete(e))}function eM(e,t){for(let r of e){let e=t.get(r);v(e,`Expected fetcher: ${r}`);let n=tW(e.data);t.set(r,n)}}function eT(e){let t=[],r=!1;for(let n of Z){let a=e.get(n);v(a,`Expected fetcher: ${n}`),"loading"===a.state&&(Z.delete(n),t.push(n),r=!0)}return eM(t,e),r}function eO(e,t){let r=[];for(let[n,a]of K)if(a<e){let e=t.get(n);v(e,`Expected fetcher: ${n}`),"loading"===e.state&&(eD(n),K.delete(n),r.push(n))}return eM(r,t),r.length>0}function e_(e){j.blockers.delete(e),er.delete(e)}function e$(e,t){let r=j.blockers.get(e)||eU;v("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,`Invalid blocker state transition: ${r.state} -> ${t.state}`);let n=new Map(j.blockers);n.set(e,t),ea({blockers:n})}function eN({currentLocation:e,nextLocation:t,historyAction:r}){if(0===er.size)return;er.size>1&&b(!1,"A router only supports one blocker at a time");let n=Array.from(er.entries()),[a,o]=n[n.length-1],i=j.blockers.get(a);if((!i||"proceeding"!==i.state)&&o({currentLocation:e,nextLocation:t,historyAction:r}))return a}function eI(e){let t=tS(404,{pathname:e}),{matches:r,route:n}=tR(f.activeRoutes);return{notFoundMatches:r,route:n,error:t}}function eq(e,t){return P&&P(e,t.map(e=>N(e,j.loaderData)))||e.key}function eW(e,t){if(C){let r=C[eq(e,t)];if("number"==typeof r)return r}return null}function eJ(t,r,n){if(e.patchRoutesOnNavigation){let e=f.branches;if(!t)return{active:!0,matches:$(r,n,m,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:$(r,n,m,!0,e)}}return{active:!1,matches:null}}async function eY(t,r,n,a){if(!e.patchRoutesOnNavigation)return{type:"success",matches:t};let o=t;for(;;){let t=h;try{await e.patchRoutesOnNavigation({signal:n,path:r,matches:o,fetcherKey:a,patch:(e,r)=>{n.aborted||e1(e,r,f,t,d,!1)}})}catch(e){return{type:"error",error:e,partialMatches:o}}if(n.aborted)return{type:"aborted"};let i=f.branches,s=$(f.activeRoutes,r,m,!1,i),l=null;if(s){if(0===Object.keys(s[0].params).length)return{type:"success",matches:s};else if(!((l=$(f.activeRoutes,r,m,!0,i))&&o.length<l.length&&eX(o,l.slice(0,o.length))))return{type:"success",matches:s}}if(l||(l=$(f.activeRoutes,r,m,!0,i)),!l||eX(o,l))return{type:"success",matches:null};o=l}}function eX(e,t){return e.length===t.length&&e.every((e,r)=>e.route.id===t[r].route.id)}return n={get basename(){return m},get future(){return y},get state(){return j},get routes(){return f.stableRoutes},get branches(){return f.branches},get manifest(){return h},get window(){return i},initialize:function(){if(g=e.history.listen(({action:t,location:r,delta:n})=>{if(o){o(),o=void 0;return}b(0===er.size||null!=n,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let a=eN({currentLocation:j.location,nextLocation:r,historyAction:t});if(a&&null!=n){let t=new Promise(e=>{o=e});e.history.go(-1*n),e$(a,{state:"blocked",location:r,proceed(){e$(a,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(n))},reset(){let e=new Map(j.blockers);e.set(a,eU),ea({blockers:e})}}),H?.resolve(),H=null;return}return es(t,r)}),s){var t=i,r=I;try{let e=t.sessionStorage.getItem(ez);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ez,JSON.stringify(r))}catch(e){b(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}})(i,I);i.addEventListener("pagehide",e),B=()=>i.removeEventListener("pagehide",e)}return j.initialized||es("POP",j.location,{initialHydration:!0}),n},subscribe:function(e){if(w.add(e),E){let{newErrors:t}=E;E=null,e(j,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>w.delete(e)},enableScrollRestoration:function(e,t,r){if(C=e,D=t,P=r||null,!A&&j.navigation===eF){A=!0;let e=eW(j.location,j.matches);null!=e&&ea({restoreScrollPosition:e})}return()=>{C=null,D=null,P=null}},navigate:ei,fetch:async function t(t,r,a,o){eD(t);let i=!0===(o&&o.flushSync),s=eC(n),l=f.activeRoutes,u=eV(j.location,j.matches,m,a,r,o?.relative),c=$(l,u,m,!1,f.branches),d=eJ(c,l,u);if(d.active&&d.matches&&(c=d.matches),s&&s(tz(e.history,u,c)),!c)return void eb(t,r,tS(404,{pathname:u}),{flushSync:i});let{path:h,submission:p,error:y}=eG(!0,u,o);if(y)return void eb(t,r,y,{flushSync:i});let g=e.getContext?await e.getContext():new L,w=!0===(o&&o.preventScrollReset);p&&tF(p.formMethod)?await ed(t,r,h,c,g,d.active,i,w,p,o&&o.defaultShouldRevalidate):(Q.set(t,{routeId:r,path:h}),await eh(t,r,h,c,g,d.active,i,w,p))},revalidate:function(){en||(en=tJ()),eg(),ea({revalidation:"loading"});let e=en.promise;return"submitting"===j.navigation.state||("idle"===j.navigation.state?es(j.historyAction,j.location,{startUninterruptedRevalidation:!0}):es(F||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation,enableViewTransition:!0===z})),e},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:function(e){return ee.set(e,(ee.get(e)||0)+1),et.has(e)&&et.delete(e),j.fetchers.get(e)||eH},resetFetcher:function(e,t){eD(e,t?.reason),ew(e,tW(null))},deleteFetcher:function(e){let t=(ee.get(e)||0)-1;t<=0?(ee.delete(e),et.add(e)):ee.set(e,t),ea({fetchers:new Map(j.fetchers)})},dispose:function(){g&&g(),B&&B(),w.clear(),a&&a.abort(),j.fetchers.forEach((e,t)=>eE(j.fetchers,t)),j.blockers.forEach((e,t)=>e_(t))},getBlocker:function(e,t){let r=j.blockers.get(e)||eU;return er.get(e)!==t&&er.set(e,t),r},deleteBlocker:e_,patchRoutes:function(e,t,r=!1){e1(e,t,f,h,d,r),f.hasHMRRoutes||ea({})},_internalFetchControllers:Y,_internalSetRoutes:function(e){h={},f.setHmrRoutes(T(e,d,void 0,h))},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){ea(e)}},e.instrumentations&&(n=function(e,t){var r,n,a,o;let i=[],s=[];if(t.forEach(e=>e({instrument(e){null!=e.navigate&&i.push(e.navigate),null!=e.fetch&&s.push(e.fetch)}})),i.length>0){let t=eS(e.navigate),a=async(...r)=>{let n,[a,o]=r,s={to:"number"==typeof a||"string"==typeof a?a:a?S(a):".",...eA(e,o??{})};return ek(await eP(i,s,async()=>{if("number"==typeof a)return await t(...r);let o=ex(e,e=>{n=e});try{return await t(...r)}finally{o()}},e=>({...eL(e),meta:n})))};r=a,n=t,r[ev]=n,e.navigate=a}if(s.length>0){let t=eS(e.fetch),r=async(...r)=>{let n,[a,o,i,l]=r;return ek(await eP(s,{href:i??".",fetcherKey:a,...eA(e,l??{})},async()=>{let a=ex(e,e=>{n=e});try{return await t(...r)}finally{a()}},e=>({...eL(e),meta:n})))};a=r,o=t,a[ev]=o,e.fetch=r}return e}(n,e.instrumentations.map(e=>e.router).filter(Boolean))),n}function eW(e,t){v(e.length>0,"You must provide a non-empty routes array to createStaticHandler");let r={},n=(t?t.basename:null)||"/",a=t?.mapRouteProperties,o=a||(()=>({}));if({...t?.future},t?.instrumentations){let e=t.instrumentations;o=t=>({...a?.(t),...eR(e.map(e=>e.route).filter(Boolean),t)})}let i=T(e,o,void 0,r),s=j(i);async function l(e,{requestContext:t,filterMatchesToLoad:a,skipLoaderErrorBubbling:u,skipRevalidation:d,dataStrategy:h,generateMiddlewareResponse:f,normalizePath:m}={}){let p=e.method,y=R("",(m||eX)(e),null,"default"),g=$(i,y,n,!1,s);if(t=null!=t?t:new L,tj(p)||"HEAD"===p){if(!g){let e=tS(404,{pathname:y.pathname}),{matches:t,route:r}=tR(i),a={basename:n,location:y,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return f?f(()=>Promise.resolve(a)):a}}else{let e=tS(405,{method:p}),{matches:t,route:r}=tR(i),a={basename:n,location:y,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return f?f(()=>Promise.resolve(a)):a}if(f){v(t instanceof L,"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`");try{let s;await e6(g,r,o);let l=await e7({request:e,url:ey(e,y),pattern:ep(g),matches:g,params:g[0].params,context:t},async()=>await f(async(e,r={})=>{let o=await c(e,y,g,t,h||null,!0===u,null,"filterMatchesToLoad"in r?r.filterMatchesToLoad??null:a??null,!0===d);return t_(o)?o:s={location:y,basename:n,...o}}),async(e,t)=>{if(tN(e))return e;if(t_(e))try{e=new ef(e.status,e.statusText,await tl(e))}catch(t){e=t}if(tO(e)&&(e=tP(e)),s){t in s.loaderData&&(s.loaderData[t]=void 0);let r=eJ(i,s,e,u?t:tE(g,t).route.id);return f(()=>Promise.resolve(r))}{let r={matches:g,location:y,basename:n,loaderData:{},actionData:null,errors:{[u?t:tE(g,g.find(e=>e.route.id===t||e.route.loader)?.route.id||t).route.id]:e},statusCode:em(e)?e.status:500,actionHeaders:{},loaderHeaders:{}};return f(()=>Promise.resolve(r))}});return v(t_(l),"Expected a response in query()"),l}catch(e){if(t_(e))return e;throw e}}let w=await c(e,y,g,t,h||null,!0===u,null,a||null,!0===d);return t_(w)?w:{location:y,basename:n,...w}}async function u(e,{routeId:t,requestContext:a,dataStrategy:l,generateMiddlewareResponse:d,normalizePath:h}={}){let f=e.method,m=R("",(h||eX)(e),null,"default"),p=$(i,m,n,!1,s);if(a=null!=a?a:new L,tj(f)||"HEAD"===f||"OPTIONS"===f){if(!p)throw tS(404,{pathname:m.pathname})}else throw tS(405,{method:f});let y=t?p.find(e=>e.route.id===t):tU(p,m);if(t&&!y)throw tS(403,{pathname:m.pathname,routeId:t});if(!y)throw tS(404,{pathname:m.pathname});if(d)return v(a instanceof L,"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`"),await e6(p,r,o),await e7({request:e,url:ey(e,m),pattern:ep(p),matches:p,params:p[0].params,context:a},async()=>await d(async e=>{let t=g(await c(e,m,p,a,l||null,!1,y,null,!1));return t_(t)?t:"string"==typeof t?new Response(t):Response.json(t)}),e=>{if(tO(e))return Promise.resolve(tk(e));if(t_(e))return Promise.resolve(e);throw e});return g(await c(e,m,p,a,l||null,!1,y,null,!1));function g(e){if(t_(e))return e;let t=e.errors?Object.values(e.errors)[0]:void 0;if(void 0!==t)throw t;return e.actionData?Object.values(e.actionData)[0]:e.loaderData?Object.values(e.loaderData)[0]:void 0}}async function c(e,t,r,n,a,o,i,s,l){v(e.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(tF(e.method))return await d(e,t,r,i||tU(r,t),n,a,o,null!=i,s,l);let u=await h(e,t,r,n,a,o,i,s);return t_(u)?u:{...u,actionData:null,actionHeaders:{}}}catch(e){if(tD(e)&&t_(e.result)){if("error"===e.type)throw e.result;return e.result}if(tN(e))return e;throw e}}async function d(e,t,n,a,i,s,l,u,c,d){let m;if(a.route.action||a.route.lazy)m=(await f(e,t,to(o,r,e,t,n,a,[],i),u,i,s))[a.route.id],e.signal.aborted&&eY(e,u);else{let t=tS(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:a.route.id});if(u)throw t;m={type:"error",error:t}}if(tT(m))throw new Response(null,{status:m.response.status,headers:{Location:m.response.headers.get("Location")}});if(u){if(tM(m))throw m.error;return{matches:[a],loaderData:{},actionData:{[a.route.id]:m.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}if(d)if(!tM(m))return{actionData:{[a.route.id]:m.data},actionHeaders:m.headers?{[a.route.id]:m.headers}:{},matches:n,loaderData:{},errors:null,statusCode:m.statusCode||200,loaderHeaders:{}};else{let e=l?a:tE(n,a.route.id);return{statusCode:em(m.error)?m.error.status:null!=m.statusCode?m.statusCode:500,actionData:null,actionHeaders:{...m.headers?{[a.route.id]:m.headers}:{}},matches:n,loaderData:{},errors:{[e.route.id]:m.error},loaderHeaders:{}}}let p=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});return tM(m)?{...await h(p,t,n,i,s,l,null,c,[(l?a:tE(n,a.route.id)).route.id,m]),statusCode:em(m.error)?m.error.status:null!=m.statusCode?m.statusCode:500,actionData:null,actionHeaders:{...m.headers?{[a.route.id]:m.headers}:{}}}:{...await h(p,t,n,i,s,l,null,c),actionData:{[a.route.id]:m.data},...m.statusCode?{statusCode:m.statusCode}:{},actionHeaders:m.headers?{[a.route.id]:m.headers}:{}}}async function h(e,t,n,a,i,s,l,u,c){let d,h=null!=l;if(h&&!l?.route.loader&&!l?.route.lazy)throw tS(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:l?.route.id});if(l)d=to(o,r,e,t,n,l,[],a);else{let i=c&&tM(c[1])?n.findIndex(e=>e.route.id===c[0])-1:void 0,s=ep(n);d=n.map((n,l)=>null!=i&&l>i?ta(o,r,e,t,s,n,[],a,!1):ta(o,r,e,t,s,n,[],a,null!=(n.route.loader||n.route.lazy)&&(!u||u(n))))}if(!i&&!d.some(e=>e.shouldLoad))return{matches:n,loaderData:{},errors:c&&tM(c[1])?{[c[0]]:c[1].error}:null,statusCode:200,loaderHeaders:{}};let m=await f(e,t,d,h,a,i);return e.signal.aborted&&eY(e,h),{...tg(n,m,c,!0,s),matches:n}}async function f(e,t,r,a,o,i){let s=await ti(i||e9,e,t,r,null,o,!0),l={};return await Promise.all(r.map(async t=>{if(!(t.route.id in s))return;let o=s[t.route.id];if(tA(o))throw tc(o.result,e,t.route.id,r,n);if(a){if(t_(o.result))throw o;else if(tO(o.result))throw tk(o.result)}l[t.route.id]=await tu(o)})),l}return{dataRoutes:i,_internalRouteBranches:s,query:l,queryRoute:u}}function eJ(e,t,r,n){let a=n||t._deepestRenderedBoundaryId||e[0].id;return{...t,statusCode:em(r)?r.status:500,errors:{[a]:r}}}function eY(e,t){if(void 0!==e.signal.reason)throw e.signal.reason;throw Error(`${t?"queryRoute":"query"}() call aborted without an \`AbortSignal.reason\`: ${e.method} ${e.url}`)}function eX(e){let t=new URL(e.url);return{pathname:t.pathname,search:t.search,hash:t.hash}}function eV(e,t,r,n,a,o){let i,s;if(a){for(let e of(i=[],t))if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=ee(n||".",Q(i),X(e.pathname,r)||e.pathname,"path"===o);if(null==n&&(l.search=e.search,l.hash=e.hash),(null==n||""===n||"."===n)&&s){let e=tH(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();l.search=r?`?${r}`:""}}return"/"!==r&&(l.pathname=function({basename:e,pathname:t}){return"/"===t?e:er([e,t])}({basename:r,pathname:l.pathname})),S(l)}function eG(e,t,r){let n,a;if(!r||!(null!=r&&("formData"in r&&null!=r.formData||"body"in r&&void 0!==r.body)))return{path:t};if(r.formMethod&&!tj(r.formMethod))return{path:t,error:tS(405,{method:r.formMethod})};let o=()=>({path:t,error:tS(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=tC(t);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!tF(i))return o();let e="string"==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((e,[t,r])=>`${e}${t}=${r}
|
|
2
|
-
`,""):String(r.body);return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}else if("application/json"===r.formEncType){if(!tF(i))return o();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if(v("function"==typeof FormData,"FormData is not available in this environment"),r.formData)n=tp(r.formData),a=r.formData;else if(r.body instanceof FormData)n=tp(r.body),a=r.body;else if(r.body instanceof URLSearchParams)a=ty(n=r.body);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=ty(n)}catch(e){return o()}let l={formMethod:i,formAction:s,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(tF(l.formMethod))return{path:t,submission:l};let u=x(t);return e&&u.search&&tH(u.search)&&n.append("index",""),u.search=`?${n}`,{path:S(u),submission:l}}function eK(e,t,r,n,a,o,i,s,l,u,c,d,h,f,m,p,y,g,w,v,b,E){let R,S=b?tM(b[1])?b[1].error:b[1].data:void 0,x=a.createURL(o.location),C=a.createURL(l);if(c&&o.errors){let e=Object.keys(o.errors)[0];R=i.findIndex(t=>t.route.id===e)}else if(b&&tM(b[1])){let e=b[0];R=i.findIndex(t=>t.route.id===e)-1}let k=b?b[1].statusCode:void 0,P=k&&k>=400,L={currentUrl:x,currentParams:o.matches[0]?.params||{},nextUrl:C,nextParams:i[0].params,...s,actionResult:S,actionStatus:k},D=ep(i),A=i.map((a,i)=>{var s,h,f,m,p;let y,{route:g}=a,w=null;if(null!=R&&i>R)w=!1;else if(g.lazy)w=!0;else if(eZ(g))if(c){let{shouldLoad:e}=eQ(g,o.loaderData,o.errors);w=e}else{let e,t;s=o.loaderData,h=o.matches[i],f=a,e=!h||f.route.id!==h.route.id,t=!s.hasOwnProperty(f.route.id),(e||t)&&(w=!0)}else w=!1;if(null!==w)return ta(r,n,e,l,D,a,u,t,w);let v=!1;"boolean"==typeof E?v=E:P?v=!1:d||x.pathname+x.search===C.pathname+C.search||x.search!==C.search?v=!0:(m=o.matches[i],p=a,y=m.route.path,(m.pathname!==p.pathname||null!=y&&y.endsWith("*")&&m.params["*"]!==p.params["*"])&&(v=!0));let b={...L,defaultShouldRevalidate:v};return ta(r,n,e,l,D,a,u,t,e0(a,b),b,E)}),M=[];return m.forEach((e,s)=>{if(c||!i.some(t=>t.route.id===e.routeId)||f.has(s))return;let l=o.fetchers.get(s),m=l&&"idle"!==l.state&&void 0===l.data,b=$(y,e.path,g??"/",!1,v);if(!b){if(w&&m)return;M.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(p.has(s))return;let R=tU(b,e.path),S=new AbortController,x=tm(a,e.path,S.signal),C=null;if(h.has(s))h.delete(s),C=to(r,n,x,e.path,b,R,u,t);else if(m)d&&(C=to(r,n,x,e.path,b,R,u,t));else{let a={...L,defaultShouldRevalidate:"boolean"==typeof E?E:!P&&d};e0(R,a)&&(C=to(r,n,x,e.path,b,R,u,t,a))}C&&M.push({key:s,routeId:e.routeId,path:e.path,matches:C,match:R,request:x,controller:S})}),{dsMatches:A,revalidatingFetchers:M}}function eZ(e){return null!=e.loader||null!=e.middleware&&e.middleware.length>0}function eQ(e,t,r){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!eZ(e))return{shouldLoad:!1,renderFallback:!1};let n=null!=t&&e.id in t,a=null!=r&&void 0!==r[e.id];if(!n&&a)return{shouldLoad:!1,renderFallback:!1};if("function"==typeof e.loader&&!0===e.loader.hydrate)return{shouldLoad:!0,renderFallback:!n};let o=!n&&!a;return{shouldLoad:o,renderFallback:o}}function e0(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function e1(e,t,r,n,a,o){let i;if(e){let t=n[e];v(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),i=t.children}else i=r.activeRoutes;let s=[],l=[];if(t.forEach(e=>{let t=i.find(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||(t.children?.every((t,n)=>r.children?.some(r=>e(t,r)))??!1))})(e,t));t?l.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=T(s,a,[e||"_","patch",String(i?.length||"0")],n);i.push(...t)}if(o&&l.length>0)for(let e=0;e<l.length;e++){let{existingRoute:t,newRoute:r}=l[e],[n]=T([r],a,[],{},!0);Object.assign(t,{element:n.element?n.element:t.element,errorElement:n.errorElement?n.errorElement:t.errorElement,hydrateFallbackElement:n.hydrateFallbackElement?n.hydrateFallbackElement:t.hydrateFallbackElement})}r.hasHMRRoutes||r.setRoutes([...r.activeRoutes])}let e2=new WeakMap,e4=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(v(a,"No route found in manifest"),!a.lazy||"object"!=typeof a.lazy)return;let o=a.lazy[e];if(!o)return;let i=e2.get(a);i||(i={},e2.set(a,i));let s=i[e];if(s)return s;let l=(async()=>{let t=D.has(e),r=void 0!==a[e];if(t)b(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(r)b(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await o();null!=t&&(Object.assign(a,{[e]:t}),Object.assign(a,n(a)))}"object"==typeof a.lazy&&(a.lazy[e]=void 0,Object.values(a.lazy).every(e=>void 0===e)&&(a.lazy=void 0))})();return i[e]=l,l},e5=new WeakMap;function e3(e){return void 0!==e}function e6(e,t,r){let n=e.map(({route:e})=>{if("object"==typeof e.lazy&&e.lazy.middleware)return e4({key:"middleware",route:e,manifest:t,mapRouteProperties:r})}).filter(e3);return n.length>0?Promise.all(n):void 0}async function e9(e){let t=e.matches.filter(e=>e.shouldLoad),r={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,n)=>{r[t[n].route.id]=e}),r}async function e8(e){return e.matches.some(e=>e.route.middleware)?te(e,()=>e9(e)):e9(e)}function e7(e,t,r){return tt(e,t,function(e){return tO(e)?tk(e):e},t_,r)}function te(e,t){return tt(e,t,e=>{if(tN(e))throw e;return e},tL,r);async function r(t,r,n){if(n)return Object.assign(n.value,{[r]:{type:"error",result:t}});{let{matches:n}=e,a=Math.min(Math.max(n.findIndex(e=>e.route.id===r),0),Math.max(n.findIndex(e=>e.shouldCallHandler()),0)),o=n[a].route.id;for(let e of n.slice(0,a+1))try{await e._lazyPromises?.route}catch{o=e.route.id;break}return{[tE(n,o).route.id]:{type:"error",result:t}}}}}async function tt(e,t,r,n,a){let{matches:o,...i}=e;return await tr(i,o.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,r,n,a)}async function tr(e,t,r,n,a,o,i=0){let s,{request:l}=e;if(l.signal.aborted)throw l.signal.reason??Error(`Request aborted: ${l.method} ${l.url}`);let u=t[i];if(!u)return await r();let[c,d]=u,h=async()=>{if(s)throw Error("You may only call `next()` once per middleware");try{return(s={value:await tr(e,t,r,n,a,o,i+1)}).value}catch(e){return(s={value:await o(e,c,s)}).value}};try{let t=await d(e,h),r=null!=t?n(t):void 0;if(a(r))return r;if(s)return r??s.value;return(s={value:await h()}).value}catch(e){return await o(e,c,s)}}function tn(e,t,r,n,a){let o=e4({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=function(e,t,r,n,a){let o,i=r[e.id];if(v(i,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=e5.get(i);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let r=(async()=>{v("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),r={};for(let e in t){let n=t[e];if(void 0===n)continue;let a=A.has(e),o=void 0!==i[e];a?b(!a,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):o?b(!o,`Route "${i.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):r[e]=n}Object.assign(i,r),Object.assign(i,{...n(i),lazy:void 0})})();return e5.set(i,r),r.catch(()=>{}),{lazyRoutePromise:r,lazyHandlerPromise:r}}let s=Object.keys(e.lazy),l=[];for(let i of s){if(a&&a.includes(i))continue;let s=e4({key:i,route:e,manifest:r,mapRouteProperties:n});s&&(l.push(s),i===t&&(o=s))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:o}}(n.route,tF(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function ta(e,t,r,n,a,o,i,s,l,u=null,c){let d=!1,h=tn(e,t,r,o,i);return{...o,_lazyPromises:h,shouldLoad:l,shouldRevalidateArgs:u,shouldCallHandler:e=>(d=!0,u)?"boolean"==typeof c?e0(o,{...u,defaultShouldRevalidate:c}):"boolean"==typeof e?e0(o,{...u,defaultShouldRevalidate:e}):e0(o,u):l,resolve(e){let{lazy:t,loader:i,middleware:u}=o.route,c=d||l||e&&!tF(r.method)&&(t||i),f=u&&u.length>0&&!i&&!t;return c&&(tF(r.method)||!f)?ts({request:r,path:n,pattern:a,match:o,lazyHandlerPromise:h?.handler,lazyRoutePromise:h?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:"data",result:void 0})}}}function to(e,t,r,n,a,o,i,s,l=null){return a.map(u=>u.route.id!==o.route.id?{...u,shouldLoad:!1,shouldRevalidateArgs:l,shouldCallHandler:()=>!1,_lazyPromises:tn(e,t,r,u,i),resolve:()=>Promise.resolve({type:"data",result:void 0})}:ta(e,t,r,n,ep(a),u,i,s,!0,l))}async function ti(e,t,r,n,a,o,i){n.some(e=>e._lazyPromises?.middleware)&&await Promise.all(n.map(e=>e._lazyPromises?.middleware));let s={request:t,url:ey(t,r),pattern:ep(n),params:n[0].params,context:o,matches:n},l=i?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>te(s,()=>e({...s,fetcherKey:a,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}})),u=await e({...s,fetcherKey:a,runClientMiddleware:l});try{await Promise.all(n.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return u}async function ts({request:e,path:t,pattern:r,match:n,lazyHandlerPromise:a,lazyRoutePromise:o,handlerOverride:i,scopedContext:s}){let l,u,c=tF(e.method),d=c?"action":"loader",h=a=>{let o,l=new Promise((e,t)=>o=t);u=()=>o(),e.signal.addEventListener("abort",u);let c=o=>"function"!=typeof a?Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${n.route.id}]`)):a({request:e,url:ey(e,t),pattern:r,params:n.params,context:s},...void 0!==o?[o]:[]);return Promise.race([(async()=>{try{return{type:"data",result:await (i?i(e=>c(e)):c())}}catch(e){return{type:"error",result:e}}})(),l])};try{let t=c?n.route.action:n.route.loader;if(a||o)if(t){let e,[r]=await Promise.all([h(t).catch(t=>{e=t}),a,o]);if(void 0!==e)throw e;l=r}else{await a;let t=c?n.route.action:n.route.loader;if(t)[l]=await Promise.all([h(t),o]);else{if("action"!==d)return{type:"data",result:void 0};let t=new URL(e.url),r=t.pathname+t.search;throw tS(405,{method:e.method,pathname:r,routeId:n.route.id})}}else if(t)l=await h(t);else{let t=new URL(e.url);throw tS(404,{pathname:t.pathname+t.search})}}catch(e){return{type:"error",result:e}}finally{u&&e.signal.removeEventListener("abort",u)}return l}async function tl(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}async function tu(e){let{result:t,type:r}=e;if(t_(t)){let e;try{e=await tl(t)}catch(e){return{type:"error",error:e}}return"error"===r?{type:"error",error:new ef(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}if("error"===r)return tO(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:tP(t),statusCode:em(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:em(t)?t.status:void 0};return tO(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function tc(e,t,r,n,a){let o,i=e.headers.get("Location");if(v(i,"Redirects returned/thrown from loaders/actions must have a Location header"),o=i,!c.test(o)){let o=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=eV(new URL(t.url),o,a,i),e.headers.set("Location",i)}return e}let td=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function th(e){try{return td.includes(new URL(e).protocol)}catch{return!1}}function tf(e,t,r,n){if(c.test(e)){let n=new URL(d.test(e)?h(e,t.protocol):e);if(th(n.toString()))throw Error("Invalid redirect location");let a=null!=X(n.pathname,r);if(n.origin===t.origin&&a)return et(n.pathname)+n.search+n.hash}try{if(th(n.createURL(e).toString()))throw Error("Invalid redirect location")}catch(e){}return e}function tm(e,t,r,n){let a=e.createURL(tC(t)).toString(),o={signal:r};if(n&&tF(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=tp(n.formData):o.body=n.formData}return new Request(a,o)}function tp(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function ty(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function tg(e,t,r,n=!1,a=!1){let o,i={},s=null,l=!1,u={},c=r&&tM(r[1])?r[1].error:void 0;return e.forEach(r=>{if(!(r.route.id in t))return;let d=r.route.id,h=t[d];if(v(!tT(h),"Cannot handle redirect results in processLoaderData"),tM(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=tE(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[d]=eI),l||(l=!0,o=em(h.error)?h.error.status:500),h.headers&&(u[d]=h.headers)}else i[d]=h.data,h.statusCode&&200!==h.statusCode&&!l&&(o=h.statusCode),h.headers&&(u[d]=h.headers)}),void 0!==c&&r&&(s={[r[0]]:c},r[2]&&(i[r[2]]=void 0)),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}function tw(e,t,r,n,a,o,i){let{loaderData:s,errors:l}=tg(t,r,n);return a.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:r,match:n,controller:a}=t;if(a&&a.signal.aborted)return;let s=o[r];if(v(s,"Did not find corresponding fetcher result"),tM(s)){let t=tE(e.matches,n?.route.id);l&&l[t.route.id]||(l={...l,[t.route.id]:s.error}),i.delete(r)}else if(tT(s))v(!1,"Unhandled fetcher revalidation redirect");else{let e=tW(s.data);i.set(r,e)}}),{loaderData:s,errors:l}}function tv(e,t,r,n){let a=Object.entries(t).filter(([,e])=>e!==eI).reduce((e,[t,r])=>(e[t]=r,e),{});for(let o of r){let r=o.route.id;if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function tb(e){return e?tM(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function tE(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>null!=e.route.ErrorBoundary||null!=e.route.errorElement)||e[0]}function tR(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function tS(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(i="Bad Request",n&&t&&r?s=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:"invalid-body"===a&&(s="Unable to encode submission body")):403===e?(i="Forbidden",s=`Route "${r}" does not match URL "${t}"`):404===e?(i="Not Found",s=`No route matches URL "${t}"`):405===e&&(i="Method Not Allowed",n&&t&&r?s=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(s=`Invalid request method "${n.toUpperCase()}"`)),new ef(e||500,i,Error(s),!0)}function tx(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(tT(n))return{key:r,result:n}}}function tC(e){return S({..."string"==typeof e?x(e):e,hash:""})}function tk(e){return Response.json(e.data,e.init??void 0)}function tP(e){return new ef(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function tL(e){return null!=e&&"object"==typeof e&&Object.entries(e).every(([e,t])=>"string"==typeof e&&tD(t))}function tD(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&("data"===e.type||"error"===e.type)}function tA(e){return t_(e.result)&&eN.has(e.result.status)}function tM(e){return"error"===e.type}function tT(e){return"redirect"===(e&&e.type)}function tO(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function t_(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function t$(e){return eN.has(e)}function tN(e){return t_(e)&&t$(e.status)&&e.headers.has("Location")}function tj(e){return e$.has(e.toUpperCase())}function tF(e){return e_.has(e.toUpperCase())}function tH(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function tU(e,t){let r="string"==typeof t?x(t).search:t.search;if(e[e.length-1].route.index&&tH(r||""))return e[e.length-1];let n=Z(e);return n[n.length-1]}function tz(e,t,r){return{url:ey(e.createURL(t),t),pattern:r?ep(r):"",params:r?.[0]?.params?{...r[0].params}:{}}}function tI(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function tB(e,t,r,n){return n?{state:"loading",location:e,matches:t,historyAction:r,formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}:{state:"loading",location:e,matches:t,historyAction:r,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function tq(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function tW(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function tJ(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}let tY=s.createContext(null);tY.displayName="DataRouter";let tX=s.createContext(null);tX.displayName="DataRouterState";let tV=s.createContext(!1);function tG(){return s.useContext(tV)}let tK=s.createContext({isTransitioning:!1});tK.displayName="ViewTransition";let tZ=s.createContext(new Map);tZ.displayName="Fetchers";let tQ=s.createContext(null);tQ.displayName="Await";let t0=e=>s.createElement(tQ.Provider,e),t1=s.createContext(null);t1.displayName="Navigation";let t2=s.createContext(null);t2.displayName="Location";let t4=s.createContext({outlet:null,matches:[],isDataRoute:!1});t4.displayName="Route";let t5=s.createContext(null);t5.displayName="RouteError";let t3="REACT_ROUTER_ERROR";function t6(e){if(e.startsWith(`${t3}:REDIRECT:{`))try{let t=JSON.parse(e.slice(28));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText&&"string"==typeof t.location&&"boolean"==typeof t.reloadDocument&&"boolean"==typeof t.replace)return t}catch{}}function t9(e){if(e.startsWith(`${t3}:ROUTE_ERROR_RESPONSE:{`))try{let t=JSON.parse(e.slice(40));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText)return new ef(t.status,t.statusText,t.data)}catch{}}function t8(e,{relative:t}={}){v(t7(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=s.useContext(t1),{hash:a,pathname:o,search:i}=ru(e,{relative:t}),l=o;return"/"!==r&&(l="/"===o?r:er([r,o])),n.createHref({pathname:l,search:i,hash:a})}function t7(){return null!=s.useContext(t2)}function re(){return v(t7(),"useLocation() may be used only in the context of a <Router> component."),s.useContext(t2).location}function rt(){return s.useContext(t2).navigationType}function rr(e){v(t7(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=re();return s.useMemo(()=>q(e,Y(t)),[t,e])}let rn="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ra(){let{isDataRoute:e}=s.useContext(t4);return e?function(){let{router:e}=rv("useNavigate"),t=rE("useNavigate"),r=s.useRef(!1);return s.useLayoutEffect(()=>{r.current=!0}),s.useCallback(async(n,a={})=>{b(r.current,rn),r.current&&("number"==typeof n?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...a}))},[e,t])}():function(){v(t7(),"useNavigate() may be used only in the context of a <Router> component.");let e=s.useContext(tY),{basename:t,navigator:r}=s.useContext(t1),{matches:n}=s.useContext(t4),{pathname:a}=re(),o=JSON.stringify(Q(n)),i=s.useRef(!1);return s.useLayoutEffect(()=>{i.current=!0}),s.useCallback((n,s={})=>{if(b(i.current,rn),!i.current)return;if("number"==typeof n)return void r.go(n);let l=ee(n,JSON.parse(o),a,"path"===s.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:er([t,l.pathname])),(s.replace?r.replace:r.push)(l,s.state,s)},[t,r,o,a,e])}()}let ro=s.createContext(null);function ri(){return s.useContext(ro)}function rs(e){let t=s.useContext(t4).outlet;return s.useMemo(()=>t&&s.createElement(ro.Provider,{value:e},t),[t,e])}function rl(){let{matches:e}=s.useContext(t4);return e[e.length-1]?.params??{}}function ru(e,{relative:t}={}){let{matches:r}=s.useContext(t4),{pathname:n}=re(),a=JSON.stringify(Q(r));return s.useMemo(()=>ee(e,JSON.parse(a),n,"path"===t),[e,a,n,t])}function rc(e,t){return rd(e,t)}function rd(e,t,r){let n;v(t7(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=s.useContext(t1),{matches:o}=s.useContext(t4),i=o[o.length-1],l=i?i.params:{};i&&i.pathname;let u=i?i.pathnameBase:"/";i&&i.route;let c=re();if(t){let e="string"==typeof t?x(t):t;v("/"===u||e.pathname?.startsWith(u),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${e.pathname}" was given in the \`location\` prop.`),n=e}else n=c;let d=n.pathname||"/",h=d;if("/"!==u){let e=u.replace(/^\//,"").split("/");h="/"+d.replace(/^\//,"").split("/").slice(e.length).join("/")}let f=r&&r.state.matches.length?r.state.matches.map(e=>Object.assign(e,{route:r.manifest[e.route.id]||e.route})):_(e,{pathname:h}),m=rg(f&&f.map(e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:er([u,a.encodeLocation?a.encodeLocation(e.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:er([u,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),o,r);return t&&m?s.createElement(t2.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...n},navigationType:"POP"}},m):m}let rh=s.createElement(function(){let e=rL(),t=em(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null;return s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),r?s.createElement("pre",{style:{padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"}},r):null,null)},null);var rf=class extends s.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static contextType=tV;static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&"object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){let t=t9(e.digest);t&&(e=t)}let t=void 0!==e?s.createElement(t4.Provider,{value:this.props.routeContext},s.createElement(t5.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?s.createElement(rp,{error:e},t):t}};let rm=new WeakMap;function rp({children:e,error:t}){let{basename:r}=s.useContext(t1);if("object"==typeof t&&t&&"digest"in t&&"string"==typeof t.digest){let e=t6(t.digest);if(e){let n=rm.get(t);if(n)throw n;let a=ew(e.location,r),o=a.absoluteURL||a.to;if(th(o))throw Error("Invalid redirect location");if(eg&&!rm.get(t))if(a.isExternal||e.reloadDocument)window.location.href=o;else{let r=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw rm.set(t,r),r}return s.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o}`})}}return e}function ry({routeContext:e,match:t,children:r}){let n=s.useContext(tY);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),s.createElement(t4.Provider,{value:e},r)}function rg(e,t=[],r){let n=r?.state;if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let a=e,o=n?.errors;if(null!=o){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);v(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,e+1))}let i=!1,l=-1;if(r&&n){i=n.renderFallback;for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(l=e),t.route.id){let{loaderData:e,errors:o}=n,s=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!o||void 0===o[t.route.id]);if(t.route.lazy||s){r.isStatic&&(i=!0),a=l>=0?a.slice(0,l+1):[a[0]];break}}}}let u=r?.onError,c=n&&u?(e,t)=>{u(e,{location:n.location,params:n.matches?.[0]?.params??{},pattern:ep(n.matches),errorInfo:t})}:void 0;return a.reduceRight((e,r,u)=>{var d,h;let f,m=!1,p=null,y=null;n&&(f=o&&r.route.id?o[r.route.id]:void 0,p=r.route.errorElement||rh,i&&(l<0&&0===u?(d="route-fallback",h="No `HydrateFallback` element provided to render during initial hydration",rO[d]||(rO[d]=!0,b(!1,h)),m=!0,y=null):l===u&&(m=!0,y=r.route.hydrateFallbackElement||null)));let g=t.concat(a.slice(0,u+1)),w=()=>{let t;return t=f?p:m?y:r.route.Component?s.createElement(r.route.Component,null):r.route.element?r.route.element:e,s.createElement(ry,{match:r,routeContext:{outlet:e,matches:g,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===u)?s.createElement(rf,{location:n.location,revalidation:n.revalidation,component:p,error:f,children:w(),routeContext:{outlet:null,matches:g,isDataRoute:!0},onError:c}):w()},null)}function rw(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function rv(e){let t=s.useContext(tY);return v(t,rw(e)),t}function rb(e){let t=s.useContext(tX);return v(t,rw(e)),t}function rE(e){let t,r=(v(t=s.useContext(t4),rw(e)),t),n=r.matches[r.matches.length-1];return v(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function rR(){let e=rb("useNavigation");return s.useMemo(()=>{let{matches:t,historyAction:r,...n}=e.navigation;return n},[e.navigation])}function rS(){let e=rv("useRevalidator"),t=rb("useRevalidator"),r=s.useCallback(async()=>{await e.router.revalidate()},[e.router]);return s.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function rx(){let{matches:e,loaderData:t}=rb("useMatches");return s.useMemo(()=>e.map(e=>N(e,t)),[e,t])}function rC(){let e=rb("useLoaderData"),t=rE("useLoaderData");return e.loaderData[t]}function rk(e){return rb("useRouteLoaderData").loaderData[e]}function rP(){let e=rb("useActionData"),t=rE("useLoaderData");return e.actionData?e.actionData[t]:void 0}function rL(){let e=s.useContext(t5),t=rb("useRouteError"),r=rE("useRouteError");return void 0!==e?e:t.errors?.[r]}function rD(){return s.useContext(tQ)?._data}function rA(){return s.useContext(tQ)?._error}let rM=0;function rT(e){let{router:t,basename:r}=rv("useBlocker"),n=rb("useBlocker"),[a,o]=s.useState(""),i=s.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:{...n,pathname:X(n.pathname,r)||n.pathname},nextLocation:{...a,pathname:X(a.pathname,r)||a.pathname},historyAction:o})},[r,e]);return s.useEffect(()=>{let e=String(++rM);return o(e),()=>t.deleteBlocker(e)},[t]),s.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):eU}let rO={};function r_(...e){let t=rE("useRoute"),r=e[0]??t,n=rb("useRoute"),a=n.matches.find(({route:e})=>e.id===r);if(void 0!==a)return{handle:a.route.handle,loaderData:n.loaderData[r],actionData:n.actionData?.[r]}}function r$(e){return{id:e.route.id,pathname:e.pathname,params:e.params,handle:e.route.handle}}function rN(){let{location:e,historyAction:t,matches:r,navigation:n}=rb("unstable_useRouterState"),a=s.useMemo(()=>({type:t,location:e,searchParams:new URLSearchParams(e.search),params:r[r.length-1]?.params??{},matches:r.map(e=>r$(e))}),[e,r,t]),o=s.useMemo(()=>{if("idle"===n.state)return null;let e={type:n.historyAction,location:n.location,searchParams:new URLSearchParams(n.location.search),params:n.matches[n.matches.length-1]?.params??{},matches:n.matches.map(e=>r$(e))};return"loading"===n.state?{...e,state:"loading",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}:{...e,state:"submitting",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}},[n]);return s.useMemo(()=>({active:a,pending:o}),[a,o])}let rj={};function rF(e,t){e||rj[t]||(rj[t]=!0,console.warn(t))}let rH=["HydrateFallback","hydrateFallbackElement"];function rU(e,t){return eq({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:y({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:e,mapRouteProperties:M,hydrationRouteProperties:rH,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,instrumentations:t?.instrumentations}).initialize()}var rz=class{status="pending";promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}};function rI({router:e,flushSync:t,onError:r,useTransitions:n}){n=tG()||n;let[a,o]=s.useState(e.state),[i,l]=(0,s.useOptimistic)(a),[u,c]=s.useState(),[d,h]=s.useState({isTransitioning:!1}),[f,m]=s.useState(),[p,y]=s.useState(),[g,w]=s.useState(),v=s.useRef(new Map),b=s.useCallback((a,{deletedFetchers:i,newErrors:u,flushSync:d,viewTransitionOpts:g})=>{u&&r&&Object.values(u).forEach(e=>r(e,{location:a.location,params:a.matches[0]?.params??{},pattern:ep(a.matches)})),a.fetchers.forEach((e,t)=>{void 0!==e.data&&v.current.set(t,e.data)}),i.forEach(e=>v.current.delete(e)),rF(!1===d||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(rF(null==g||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!g||!b)return void(t&&d?t(()=>o(a)):!1===n?o(a):s.startTransition(()=>{!0===n&&l(e=>rB(e,a)),o(a)}));if(t&&d){t(()=>{p&&(f?.resolve(),p.skipTransition()),h({isTransitioning:!0,flushSync:!0,currentLocation:g.currentLocation,nextLocation:g.nextLocation})});let r=e.window.document.startViewTransition(()=>{t(()=>o(a))});r.finished.finally(()=>{t(()=>{m(void 0),y(void 0),c(void 0),h({isTransitioning:!1})})}),t(()=>y(r));return}p?(f?.resolve(),p.skipTransition(),w({state:a,currentLocation:g.currentLocation,nextLocation:g.nextLocation})):(c(a),h({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}))},[e.window,t,p,f,n,l,r]);s.useLayoutEffect(()=>e.subscribe(b),[e,b]),s.useEffect(()=>{d.isTransitioning&&!d.flushSync&&m(new rz)},[d]),s.useEffect(()=>{if(f&&u&&e.window){let t=f.promise,r=e.window.document.startViewTransition(async()=>{!1===n?o(u):s.startTransition(()=>{!0===n&&l(e=>rB(e,u)),o(u)}),await t});r.finished.finally(()=>{m(void 0),y(void 0),c(void 0),h({isTransitioning:!1})}),y(r)}},[u,f,e.window,n,l]),s.useEffect(()=>{f&&u&&i.location.key===u.location.key&&f.resolve()},[f,p,i.location,u]),s.useEffect(()=>{!d.isTransitioning&&g&&(c(g.state),h({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),w(void 0))},[d.isTransitioning,g]);let E=s.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,r,n)=>e.navigate(t,{state:r,preventScrollReset:n?.preventScrollReset}),replace:(t,r,n)=>e.navigate(t,{replace:!0,state:r,preventScrollReset:n?.preventScrollReset})}),[e]),R=e.basename||"/",S=s.useMemo(()=>({router:e,navigator:E,static:!1,basename:R,onError:r}),[e,E,R,r]);return s.createElement(s.Fragment,null,s.createElement(tY.Provider,{value:S},s.createElement(tX.Provider,{value:i},s.createElement(tZ.Provider,{value:v.current},s.createElement(tK.Provider,{value:d},s.createElement(rG,{basename:R,location:i.location,navigationType:i.historyAction,navigator:E,useTransitions:n},s.createElement(rq,{routes:e.routes,manifest:e.manifest,future:e.future,state:i,isStatic:!1,onError:r})))))),null)}function rB(e,t){return{...e,navigation:"idle"!==t.navigation.state?t.navigation:e.navigation,revalidation:"idle"!==t.revalidation?t.revalidation:e.revalidation,actionData:"submitting"!==t.navigation.state?t.actionData:e.actionData,fetchers:t.fetchers}}let rq=s.memo(rW);function rW({routes:e,manifest:t,future:r,state:n,isStatic:a,onError:o}){return rd(e,void 0,{manifest:t,state:n,isStatic:a,onError:o,future:r})}function rJ({basename:e,children:t,initialEntries:r,initialIndex:n,useTransitions:a}){let o=s.useRef(null);null==o.current&&(o.current=y({initialEntries:r,initialIndex:n,v5Compat:!0}));let i=o.current,[l,u]=s.useState({action:i.action,location:i.location}),c=s.useCallback(e=>{!1===a?u(e):s.startTransition(()=>u(e))},[a]);return s.useLayoutEffect(()=>i.listen(c),[i,c]),s.createElement(rG,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:i,useTransitions:a})}function rY({to:e,replace:t,state:r,relative:n}){v(t7(),"<Navigate> may be used only in the context of a <Router> component.");let{static:a}=s.useContext(t1);b(!a,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:o}=s.useContext(t4),{pathname:i}=re(),l=ra(),u=JSON.stringify(ee(e,Q(o),i,"path"===n));return s.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:n})},[l,u,n,t,r]),null}function rX(e){return rs(e.context)}function rV(e){v(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function rG({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1,useTransitions:i}){v(!t7(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),u=s.useMemo(()=>({basename:l,navigator:a,static:o,useTransitions:i,future:{}}),[l,a,o,i]);"string"==typeof r&&(r=x(r));let{pathname:c="/",search:d="",hash:h="",state:f=null,key:m="default",mask:p}=r,y=s.useMemo(()=>{let e=X(c,l);return null==e?null:{location:{pathname:e,search:d,hash:h,state:f,key:m,mask:p},navigationType:n}},[l,c,d,h,f,m,n,p]);return(b(null!=y,`<Router basename="${l}"> is not able to match the URL "${c}${d}${h}" because it does not start with the basename, so the <Router> won't render anything.`),null==y)?null:s.createElement(t1.Provider,{value:u},s.createElement(t2.Provider,{children:t,value:y}))}function rK({children:e,location:t}){return rd(r1(e),t)}function rZ({children:e,errorElement:t,resolve:r}){let n=s.useContext(tY),a=s.useContext(tX),o=s.useCallback((e,t)=>{n&&n.onError&&a&&n.onError(e,{location:a.location,params:a.matches[0]?.params||{},pattern:ep(a.matches),errorInfo:t})},[n,a]);return s.createElement(rQ,{resolve:r,errorElement:t,onError:o},s.createElement(r0,null,e))}var rQ=class extends s.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=0;if(r instanceof Promise)if(this.state.error){a=2;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?2:+("_data"in n):(a=0,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>{this.props.onError?.(e),Object.defineProperty(r,"_error",{get:()=>e})}));else a=1,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(2===a&&!t)throw n._error;if(2===a)return s.createElement(tQ.Provider,{value:n,children:t});if(1===a)return s.createElement(tQ.Provider,{value:n,children:e});throw n}};function r0({children:e}){let t=rD(),r="function"==typeof e?e(t):e;return s.createElement(s.Fragment,null,r)}function r1(e,t=[]){let r=[];return s.Children.forEach(e,(e,n)=>{if(!s.isValidElement(e))return;let a=[...t,n];if(e.type===s.Fragment)return void r.push.apply(r,r1(e.props.children,a));v(e.type===rV,`[${"string"==typeof e.type?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`);let o=e.props;v(!o.index||!o.children,"An index route cannot have child routes.");let i={id:o.id||a.join("-"),caseSensitive:o.caseSensitive,element:o.element,Component:o.Component,index:o.index,path:o.path,middleware:o.middleware,loader:o.loader,action:o.action,hydrateFallbackElement:o.hydrateFallbackElement,HydrateFallback:o.HydrateFallback,errorElement:o.errorElement,ErrorBoundary:o.ErrorBoundary,shouldRevalidate:o.shouldRevalidate,handle:o.handle,lazy:o.lazy};o.children&&(i.children=r1(o.children,a)),r.push(i)}),r}let r2=r1;function r4(e){return rg(e)}function r5(){return{params:rl(),loaderData:rC(),actionData:rP(),matches:rx()}}function r3({children:e}){let t=r5();return s.cloneElement(e,t)}function r6(e){return function(){let t=r5();return s.createElement(e,t)}}function r9(){return{params:rl(),loaderData:rC(),actionData:rP()}}function r8({children:e}){let t=r9();return s.cloneElement(e,t)}function r7(e){return function(){let t=r9();return s.createElement(e,t)}}function ne(){return{params:rl(),loaderData:rC(),actionData:rP(),error:rL()}}function nt({children:e}){let t=ne();return s.cloneElement(e,t)}function nr(e){return function(){let t=ne();return s.createElement(e,t)}}function nn(e){return s.createElement(rI,{flushSync:u.flushSync,...e})}function na(e,t){if(!1===e||null==e)throw Error(t)}let no={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ni=/[&><\u2028\u2029]/g;function ns(e){return e.replace(ni,e=>no[e])}var nl=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};let nu=()=>Date.now(),nc=()=>new Promise(e=>setTimeout(e,0));async function nd(e){let{indices:t}=this,r=t.get(e);if(r)return[r];if(void 0===e)return -7;if(null===e)return -5;if(Number.isNaN(e))return -2;if(e===1/0)return -6;if(e===-1/0)return -3;if(0===e&&1/e<0)return -4;let n=this.index++;t.set(e,n);let a=[[e,n]];return await nh.call(this,a),n}async function nh(e){let{deferred:t,indices:r,plugins:n,postPlugins:a}=this,o=this.stringified,i=nu(),s=t=>{let n=r.get(t);if(n)return[n];if(void 0===t)return -7;if(null===t)return -5;if(Number.isNaN(t))return -2;if(t===1/0)return -6;if(t===-1/0)return -3;if(0===t&&1/t<0)return -4;let a=this.index++;return r.set(t,a),e.push([t,a]),a},l=0;for(;e.length>0;){let r=nu();++l%6e3==0&&r-i>=1&&(await nc(),i=nu());let[u,c]=e.pop(),d=e=>Object.keys(e).map(t=>`"_${s(t)}":${s(e[t])}`).join(","),h=null;switch(typeof u){case"boolean":case"number":case"string":o[c]=JSON.stringify(u);break;case"bigint":o[c]=`["B","${u}"]`;break;case"symbol":{let e=Symbol.keyFor(u);e?o[c]=`["Y",${JSON.stringify(e)}]`:h=Error("Cannot encode symbol unless created with Symbol.for()");break}case"object":{if(!u){o[c]="-5";break}let e=Array.isArray(u),r=!1;if(!e&&n)for(let e of n){let t=e(u);if(Array.isArray(t)){r=!0;let[e,...n]=t;o[c]=`[${JSON.stringify(e)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}if(!r){let r=e?"[":"{";if(e){for(let e=0;e<u.length;e++)r+=(e?",":"")+(e in u?s(u[e]):-1);o[c]=`${r}]`}else if(u instanceof Date){let e=u.getTime();o[c]=`["D",${Number.isNaN(e)?JSON.stringify("invalid"):e}]`}else u instanceof URL?o[c]=`["U",${JSON.stringify(u.href)}]`:u instanceof RegExp?o[c]=`["R",${JSON.stringify(u.source)},${JSON.stringify(u.flags)}]`:u instanceof Set?u.size>0?o[c]=`["S",${[...u].map(e=>s(e)).join(",")}]`:o[c]='["S"]':u instanceof Map?u.size>0?o[c]=`["M",${[...u].flatMap(([e,t])=>[s(e),s(t)]).join(",")}]`:o[c]='["M"]':u instanceof Promise?(o[c]=`["P",${c}]`,t[c]=u):u instanceof Error?(o[c]=`["E",${JSON.stringify(u.message)}`,"Error"!==u.name&&(o[c]+=`,${JSON.stringify(u.name)}`),o[c]+="]"):null===Object.getPrototypeOf(u)?o[c]=`["N",{${d(u)}}]`:function(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||null===t||Object.getOwnPropertyNames(t).sort().join("\0")===nf}(u)?o[c]=`{${d(u)}}`:h=Error("Cannot encode object with prototype")}break}default:{let e=Array.isArray(u),t=!1;if(!e&&n)for(let e of n){let r=e(u);if(Array.isArray(r)){t=!0;let[e,...n]=r;o[c]=`[${JSON.stringify(e)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}t||(h=Error("Cannot encode function or unexpected type"))}}if(h){let e=!1;if(a)for(let t of a){let r=t(u);if(Array.isArray(r)){e=!0;let[t,...n]=r;o[c]=`[${JSON.stringify(t)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}if(!e)throw h}}}let nf=Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),nm="u">typeof window?window:"u">typeof globalThis?globalThis:void 0;function np(e){let{hydrated:t,values:r}=this;if("number"==typeof e)return ny.call(this,e);if(!Array.isArray(e)||!e.length)throw SyntaxError();let n=r.length;for(let t of e)r.push(t);return t.length=r.length,ny.call(this,n)}function ny(e){let t,{hydrated:r,values:n,deferred:a,plugins:o}=this,i=[[e,e=>{t=e}]],s=[];for(;i.length>0;){let[e,t]=i.pop();switch(e){case -7:t(void 0);continue;case -5:t(null);continue;case -2:t(NaN);continue;case -6:t(1/0);continue;case -3:t(-1/0);continue;case -4:t(-0);continue}if(r[e]){t(r[e]);continue}let l=n[e];if(!l||"object"!=typeof l){r[e]=l,t(l);continue}if(Array.isArray(l))if("string"==typeof l[0]){let[n,u,c]=l;switch(n){case"D":t(r[e]=new Date(u));continue;case"U":t(r[e]=new URL(u));continue;case"B":t(r[e]=BigInt(u));continue;case"R":t(r[e]=new RegExp(u,c));continue;case"Y":t(r[e]=Symbol.for(u));continue;case"S":let d=new Set;r[e]=d;for(let e=l.length-1;e>0;e--)i.push([l[e],e=>{d.add(e)}]);t(d);continue;case"M":let h=new Map;r[e]=h;for(let e=l.length-2;e>0;e-=2){let t=[];i.push([l[e+1],e=>{t[1]=e}]),i.push([l[e],e=>{t[0]=e}]),s.push(()=>{h.set(t[0],t[1])})}t(h);continue;case"N":let f=Object.create(null);for(let t of(r[e]=f,Object.keys(u).reverse())){let e=[];i.push([u[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{f[e[0]]=e[1]})}t(f);continue;case"P":if(r[u])t(r[e]=r[u]);else{let n=new nl;a[u]=n,t(r[e]=n.promise)}continue;case"E":let[,m,p]=l,y=p&&nm&&eh.includes(p)&&p in nm&&"function"==typeof nm[p]?new nm[p](m):Error(m);r[e]=y,t(y);continue;case"Z":t(r[e]=r[u]);continue;default:if(Array.isArray(o)){let n=[],a=l.slice(1);for(let e=0;e<a.length;e++){let t=a[e];i.push([t,t=>{n[e]=t}])}s.push(()=>{for(let a of o){let o=a(l[0],...n);if(o)return void t(r[e]=o.value)}throw SyntaxError()});continue}throw SyntaxError()}}else{let n=[];r[e]=n;for(let e=0;e<l.length;e++){let t=l[e];-1!==t&&i.push([t,t=>{n[e]=t}])}t(n);continue}{let n={};for(let t of(r[e]=n,Object.keys(l).reverse())){let e=[];i.push([l[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{n[e[0]]=e[1]})}t(n);continue}}for(;s.length>0;)s.pop()();return t}async function ng(e,t){let r,n,{plugins:a}=t??{},o=new nl,i=e.pipeThrough((r=new TextDecoder,n="",new TransformStream({transform(e,t){let a=r.decode(e,{stream:!0}),o=(n+a).split("\n");for(let e of(n=o.pop()||"",o))t.enqueue(e)},flush(e){n&&e.enqueue(n)}}))).getReader(),s={values:[],hydrated:[],deferred:{},plugins:a},l=await nw.call(s,i),u=o.promise;return l.done?o.resolve():u=nv.call(s,i).then(o.resolve).catch(e=>{for(let t of Object.values(s.deferred))t.reject(e);o.reject(e)}),{done:u.then(()=>i.closed),value:l.value}}async function nw(e){let t,r=await e.read();if(!r.value)throw SyntaxError();try{t=JSON.parse(r.value)}catch(e){throw SyntaxError()}return{done:r.done,value:np.call(this,t)}}async function nv(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;let r=t.value;switch(r[0]){case"P":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=np.call(this,e);a.resolve(i);break}case"E":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=np.call(this,e);a.reject(i);break}default:throw SyntaxError()}t=await e.read()}}async function nb(e){let t={signal:e.signal};if("GET"!==e.method){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}let nE=Symbol("SingleFetchRedirect");var nR=class extends Error{};let nS=new Set([100,101,204,205]);function nx({context:e,identifier:t,reader:r,textDecoder:n,nonce:a}){if(!e.renderMeta||!e.renderMeta.didRenderScripts)return null;e.renderMeta.streamCache||(e.renderMeta.streamCache={});let{streamCache:o}=e.renderMeta,i=o[t];if(i||(i=o[t]=r.read().then(e=>{o[t].result={done:e.done,value:n.decode(e.value,{stream:!0})}}).catch(e=>{o[t].error=e})),i.error)throw i.error;if(void 0===i.result)throw i;let{done:l,value:u}=i.result,c=u?s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:`window.__reactRouterContext.streamController.enqueue(${ns(JSON.stringify(u))});`}}):null;return l?s.createElement(s.Fragment,null,c,s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):s.createElement(s.Fragment,null,c,s.createElement(s.Suspense,null,s.createElement(nx,{context:e,identifier:t+1,reader:r,textDecoder:n,nonce:a})))}function nC(e,t,r,n){let a=function(e,t,r,n,a=()=>!0){return async o=>{let{request:i,matches:s,fetcherKey:l}=o,u=e();if("GET"!==i.method)return nk(o,r);let c=s.some(e=>{let{hasLoader:r,hasClientLoader:n}=t(e);return e.shouldCallHandler()&&r&&!n});return n||c?l?nA(o,r):nL(o,u,t,r,n,a):nP(o,t,r)}}(e,e=>{let r=t.routes[e.route.id];return na(r,"Route not found in manifest"),{hasLoader:r.hasLoader,hasClientLoader:r.hasClientLoader}},nT,n);return async e=>e.runClientMiddleware(a)}async function nk(e,t){let r,n=e.matches.find(e=>e.shouldCallHandler());na(n,"No action match found");let a=await n.resolve(async a=>await a(async()=>{let{data:a,status:o}=await t(e,[n.route.id]);return r=o,n_(a,n.route.id)}));return t_(a.result)||em(a.result)||tO(a.result)?{[n.route.id]:a}:{[n.route.id]:{type:a.type,result:el(a.result,r)}}}async function nP(e,t,r){let n=e.matches.filter(e=>e.shouldCallHandler()),a={};return await Promise.all(n.map(n=>n.resolve(async o=>{try{let{hasClientLoader:i}=t(n),s=n.route.id,l=i?await o(async()=>{let{data:t}=await r(e,[s]);return n_(t,s)}):await o();a[n.route.id]={type:"data",result:l}}catch(e){a[n.route.id]={type:"error",result:e}}}))),a}async function nL(e,t,r,n,a,o=()=>!0){let i=new Set,s=!1,l=e.matches.map(()=>n$()),u=n$(),c={},d=Promise.all(e.matches.map(async(t,a)=>t.resolve(async d=>{l[a].resolve();let h=t.route.id,{hasLoader:f,hasClientLoader:m}=r(t),p=!t.shouldRevalidateArgs||null==t.shouldRevalidateArgs.actionStatus||t.shouldRevalidateArgs.actionStatus<400;if(!t.shouldCallHandler(p)){s||=null!=t.shouldRevalidateArgs&&f;return}if(o(t)&&m){f&&(s=!0);try{c[h]={type:"data",result:await d(async()=>{let{data:t}=await n(e,[h]);return n_(t,h)})}}catch(e){c[h]={type:"error",result:e}}return}f&&i.add(h);try{c[h]={type:"data",result:await d(async()=>n_(await u.promise,h))}}catch(e){c[h]={type:"error",result:e}}})));if(await Promise.all(l.map(e=>e.promise)),(t.state.initialized||"idle"!==t.state.navigation.state)&&0!==i.size||window.__reactRouterHdrActive){let t=a&&s&&i.size>0?[...i.keys()]:void 0;try{let r=await n(e,t);u.resolve(r.data)}catch(e){u.reject(e)}}else u.resolve({routes:{}});return await d,await nD(u.promise,e.matches,i,c),c}async function nD(e,t,r,n){try{let a,o=await e;if("routes"in o){for(let e of t)if(e.route.id in o.routes){let t=o.routes[e.route.id];if("error"in t){a=t.error,n[e.route.id]?.result==null&&(n[e.route.id]={type:"error",result:a});break}}}void 0!==a&&Array.from(r.values()).forEach(e=>{n[e].result instanceof nR&&(n[e].result=a)})}catch(e){}}async function nA(e,t){let r=e.matches.find(e=>e.shouldCallHandler());na(r,"No fetcher match found");let n=r.route.id,a=await r.resolve(async r=>r(async()=>{let{data:r}=await t(e,[n]);return n_(r,n)}));return{[r.route.id]:a}}function nM(e,t){let r="string"==typeof e?new URL(e,"u"<typeof window?"server://singlefetch/":window.location.origin):e;return r.pathname.endsWith("/")?r.pathname=`${r.pathname}_.${t}`:r.pathname=`${r.pathname}.${t}`,r}async function nT(e,t){let{request:r}=e,n=nM(r.url,"data");"GET"===r.method&&(n=function(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let e of t)e&&r.push(e);for(let t of r)e.searchParams.append("index",t);return e}(n),t&&n.searchParams.set("_routes",t.join(",")));let a=await fetch(n,await nb(r));if(a.status>=400&&!a.headers.has("X-Remix-Response"))throw new ef(a.status,a.statusText,await a.text());if(204===a.status&&a.headers.has("X-Remix-Redirect"))return{status:202,data:{redirect:{redirect:a.headers.get("X-Remix-Redirect"),status:Number(a.headers.get("X-Remix-Status")||"302"),revalidate:"true"===a.headers.get("X-Remix-Revalidate"),reload:"true"===a.headers.get("X-Remix-Reload-Document"),replace:"true"===a.headers.get("X-Remix-Replace")}}};if(nS.has(a.status)){let e={};return t&&"GET"!==r.method&&(e[t[0]]={data:void 0}),{status:a.status,data:{routes:e}}}na(a.body,"No response body to decode");try{let e,n=await nO(a.body,window);if("GET"===r.method){let t=n.value;e=nE in t?{redirect:t[nE]}:{routes:t}}else{let r=n.value,a=t?.[0];na(a,"No routeId found for single fetch call decoding"),e="redirect"in r?{redirect:r}:{routes:{[a]:r}}}return{status:a.status,data:e}}catch(e){throw Error("Unable to decode turbo-stream response")}}function nO(e,t){return ng(e,{plugins:[(e,...r)=>{if("SanitizedError"===e){let[e,n,a]=r,o=Error;e&&eh.includes(e)&&e in t&&"function"==typeof t[e]&&(o=t[e]);let i=new o(n);return i.stack=a,{value:i}}if("ErrorResponse"===e){let[e,t,n]=r;return{value:new ef(t,n,e)}}return"SingleFetchRedirect"===e?{value:{[nE]:r[0]}}:"SingleFetchClassInstance"===e?{value:r[0]}:"SingleFetchFallback"===e?{value:void 0}:void 0}]})}function n_(e,t){if("redirect"in e){let{redirect:t,revalidate:r,reload:n,replace:a,status:o}=e.redirect;throw eu(t,{status:o,headers:{...r?{"X-Remix-Revalidate":"yes"}:null,...n?{"X-Remix-Reload-Document":"yes"}:null,...a?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(null==r)throw new nR(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw Error(`Invalid response found for routeId "${t}"`)}function n$(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}async function nN(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nj(e){return e.css?e.css.map(e=>({rel:"stylesheet",href:e})):[]}async function nF(e){if(!e.css)return;let t=nj(e);await Promise.all(t.map(nU))}async function nH(e,t){if(!e.css&&!t.links||!function(){if(void 0!==n)return n;let e=document.createElement("link");return n=e.relList.supports("preload"),e=null,n}())return;let r=[];if(e.css&&r.push(...nj(e)),t.links&&r.push(...t.links()),0===r.length)return;let a=[];for(let e of r)nz(e)||"stylesheet"!==e.rel||a.push({...e,rel:"preload",as:"style"});await Promise.all(a.map(nU))}async function nU(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");function n(){document.head.contains(r)&&document.head.removeChild(r)}Object.assign(r,e),r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function nz(e){return null!=e&&"string"==typeof e.page}function nI(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}async function nB(e,t,r){return nJ((await Promise.all(e.map(async e=>{let n=t.routes[e.route.id];if(n){let e=await nN(n,r);return e.links?e.links():[]}return[]}))).flat(1).filter(nI).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}function nq(e,t,r,n,a,o){let i=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>r[t].pathname!==e.pathname||r[t].route.path?.endsWith("*")&&r[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>i(e,t)||s(e,t)):"data"===o?t.filter((t,o)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(i(t,o)||s(t,o))return!0;if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0}):[]}function nW(e,t,{includeHydrateFallback:r}={}){return[...new Set(e.map(e=>{let n=t.routes[e.route.id];if(!n)return[];let a=[n.module];return n.clientActionModule&&(a=a.concat(n.clientActionModule)),n.clientLoaderModule&&(a=a.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(a=a.concat(n.hydrateFallbackModule)),n.imports&&(a=a.concat(n.imports)),a}).flat(1))]}function nJ(e,t){let r=new Set,n=new Set(t);return e.reduce((e,a)=>{if(t&&!nz(a)&&"script"===a.as&&a.href&&n.has(a.href))return e;let o=JSON.stringify(function(e){let t={};for(let r of Object.keys(e).sort())t[r]=e[r];return t}(a));return r.has(o)||(r.add(o),e.push({key:o,link:a})),e},[])}let nY=new Set,nX=new Set;function nV(e,t){return"lazy"===e.mode&&!0===t}function nG(e,t,r,n,a,o,i){if(nV(a,n))return async({path:s,patch:l,signal:u,fetcherKey:c})=>{if(nX.has(s))return;let{state:d}=e();await n1([s],c?window.location.href:S(d.navigation.location||d.location),t,r,n,o,i,a.manifestPath,l,u)}}function nK(e,t,r,n,a,o){s.useEffect(()=>{var i;let s;if(!nV(a,n)||window.navigator?.connection?.saveData===!0)return;function l(e){let t="FORM"===e.tagName?e.getAttribute("action"):e.getAttribute("href");if(!t)return;let r="A"===e.tagName?e.pathname:new URL(t,window.location.origin).pathname;nX.has(r)||nY.add(r)}async function u(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(l);let i=Array.from(nY.keys()).filter(e=>!nX.has(e)||(nY.delete(e),!1));if(0!==i.length)try{await n1(i,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(e){console.error("Failed to fetch manifest patches",e)}}let c=(i=u,(...e)=>{window.clearTimeout(s),s=window.setTimeout(()=>i(...e),100)});u();let d=new MutationObserver(()=>c());return d.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>d.disconnect()},[n,o,t,r,e,a])}function nZ(e,t){let r=e||"/__manifest";return null==t?r:er([t,r])}let nQ="react-router-manifest-version";async function n0(e,t,r){if(!e){try{sessionStorage.removeItem(nQ)}catch{}return!1}if(!r)return console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest."),!0;try{if(sessionStorage.getItem(nQ)===t)return console.error("Unable to discover routes due to manifest version mismatch."),!0;sessionStorage.setItem(nQ,t)}catch{}return window.location.href=r,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{}),!0}async function n1(e,t,r,n,a,o,i,s,l,u){var c;let d,h;c=e,h=new Set,c.forEach(e=>{e.startsWith("/")||(e=`/${e}`);for(let t=1;t<e.length;t++)"/"===e[t]&&h.add(e.slice(0,t));h.add(e)}),e=Array.from(h);let f=new URLSearchParams;f.set("paths",e.sort().join(",")),f.set("version",r.version);let m=new URL(nZ(s,i),window.location.origin);if(m.search=f.toString(),m.toString().length>7680)return void nY.clear();try{let e=await fetch(m,{signal:u});if(!e.ok)throw Error(`${e.status} ${e.statusText}`);if(await n0(204===e.status&&e.headers.has("X-Remix-Reload-Document"),r.version,t))return;d=await e.json()}catch(e){if(u?.aborted)return;throw e}let p=new Set(Object.keys(r.routes)),y=Object.values(d).reduce((e,t)=>(t&&!p.has(t.id)&&(e[t.id]=t),e),{});Object.assign(r.routes,y),e.forEach(e=>(function(e,t){if(t.size>=1e3){let e=t.values().next().value;void 0!==e&&t.delete(e)}t.add(e)})(e,nX));let g=new Set;Object.values(y).forEach(e=>{!e||e.parentId&&y[e.parentId]||g.add(e.parentId)}),g.forEach(e=>l(e||null,ap(y,n,null,a,o,e)))}function n2(){let e=s.useContext(tY);return na(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function n4(){let e=s.useContext(tX);return na(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}let n5=s.createContext(void 0);function n3(){let e=s.useContext(n5);return na(e,"You must render this element inside a <HydratedRouter> element"),e}function n6(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function n9(e,t,r){if(r&&!aa)return[e[0]];if(t){let r=e.findIndex(e=>void 0!==t[e.route.id]);return e.slice(0,r+1)}return e}n5.displayName="FrameworkContext";let n8="data-react-router-critical-css";function n7({nonce:e,crossOrigin:t}){let{isSpaMode:r,manifest:n,routeModules:a,criticalCss:o,nonce:i}=n3(),{errors:l,matches:u}=n4(),c=n9(u,l,r),d=s.useMemo(()=>nJ(c.map(e=>{let t=a[e.route.id],r=n.routes[e.route.id];return[r&&r.css?r.css.map(e=>({rel:"stylesheet",href:e})):[],t?.links?.()||[]]}).flat(2),nW(c,n)),[c,a,n]);return null==e&&i&&(e=i),s.createElement(s.Fragment,null,"string"==typeof o?s.createElement("style",{[n8]:"",nonce:e,dangerouslySetInnerHTML:{__html:o}}):null,"object"==typeof o?s.createElement("link",{[n8]:"",rel:"stylesheet",href:o.href,nonce:e,crossOrigin:t}):null,d.map(({key:r,link:n})=>nz(n)?s.createElement(ae,{key:r,nonce:e,...n,crossOrigin:n.crossOrigin??t}):s.createElement("link",{key:r,nonce:e,...n,crossOrigin:n.crossOrigin??t})))}function ae({page:e,...t}){let r=tG(),{nonce:n}=n3(),{router:a}=n2(),o=s.useMemo(()=>_(a.routes,e,a.basename),[a.routes,e,a.basename]);return o?(null==t.nonce&&n&&(t={...t,nonce:n}),r)?s.createElement(at,{page:e,matches:o,...t}):s.createElement(ar,{page:e,matches:o,...t}):null}function at({page:e,matches:t,...r}){let n=re(),a=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=nM(e,"rsc"),a=!1,o=[];for(let e of t)"function"==typeof e.route.shouldRevalidate?a=!0:o.push(e.route.id);return a&&o.length>0&&r.searchParams.set("_routes",o.join(",")),[r.pathname+r.search]},[e,n,t]);return s.createElement(s.Fragment,null,a.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})))}function ar({page:e,matches:t,...r}){let n=re(),{manifest:a,routeModules:o}=n3(),{loaderData:i,matches:l}=n4(),u=s.useMemo(()=>nq(e,t,l,a,n,"data"),[e,t,l,a,n]),c=s.useMemo(()=>nq(e,t,l,a,n,"assets"),[e,t,l,a,n]),d=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=new Set,s=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in i&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:r.add(e.route.id))}),0===r.size)return[];let l=nM(e,"data");return s&&r.size>0&&l.searchParams.set("_routes",t.filter(e=>r.has(e.route.id)).map(e=>e.route.id).join(",")),[l.pathname+l.search]},[i,n,a,u,t,e,o]),h=s.useMemo(()=>nW(c,a),[c,a]),f=function(e){let{manifest:t,routeModules:r}=n3(),[n,a]=s.useState([]);return s.useEffect(()=>{let n=!1;return nB(e,t,r).then(e=>{n||a(e)}),()=>{n=!0}},[e,t,r]),n}(c);return s.createElement(s.Fragment,null,d.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})),h.map(e=>s.createElement("link",{key:e,rel:"modulepreload",href:e,...r})),f.map(({key:e,link:t})=>s.createElement("link",{key:e,nonce:r.nonce,...t,crossOrigin:t.crossOrigin??r.crossOrigin})))}function an(){let{isSpaMode:e,routeModules:t}=n3(),{errors:r,matches:n,loaderData:a}=n4(),o=re(),i=n9(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let u=[],c=null,d=[];for(let e=0;e<i.length;e++){let r=i[e],n=r.route.id,s=a[n],h=r.params,f=t[n],m=[],p={id:n,loaderData:s,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:l};if(d[e]=p,f?.meta?m="function"==typeof f.meta?f.meta({loaderData:s,params:h,location:o,matches:d,error:l}):Array.isArray(f.meta)?[...f.meta]:f.meta:c&&(m=[...c]),!Array.isArray(m=m||[]))throw Error("The route at "+r.route.path+" returns an invalid value. All route meta functions must return an array of meta objects.\n\nTo reference the meta function API, see https://reactrouter.com/start/framework/route-module#meta");p.meta=m,d[e]=p,c=u=[...m]}return s.createElement(s.Fragment,null,u.flat().map(e=>{if(!e)return null;if("tagName"in e){var t;let{tagName:r,...n}=e;return"string"==typeof(t=r)&&/^(meta|link)$/.test(t)?s.createElement(r,{key:JSON.stringify(n),...n}):(console.warn(`A meta object uses an invalid tagName: ${r}. Expected either 'link' or 'meta'`),null)}if("title"in e)return s.createElement("title",{key:"title"},String(e.title));if("charset"in e&&(e.charSet??=e.charset,delete e.charset),"charSet"in e&&null!=e.charSet)return"string"==typeof e.charSet?s.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return s.createElement("script",{key:`script:ld+json:${t}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:ns(t)}})}catch(e){return null}return s.createElement("meta",{key:JSON.stringify(e),...e})}))}let aa=!1;function ao(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i,nonce:l}=n3(),{router:u,static:c,staticContext:d}=n2(),{matches:h}=n4(),f=tG(),m=nV(o,i);null==e.nonce&&l&&(e={...e,nonce:l}),a&&(a.didRenderScripts=!0);let p=n9(h,null,n);s.useEffect(()=>{aa=!0},[]);let y=s.useMemo(()=>{if(f)return null;let n=d?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",a=c?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${!m?`import ${JSON.stringify(t.url)}`:""};
|
|
1
|
+
"use strict";(self.rspackChunk_kb_labs_release_manager_cli=self.rspackChunk_kb_labs_release_manager_cli||[]).push([[875],{7174(e,t,r){let n,a;r.r(t),r.d(t,{Await:()=>rZ,BrowserRouter:()=>a_,Form:()=>aH,HashRouter:()=>a$,HydratedRouter:()=>aS,IDLE_BLOCKER:()=>eU,IDLE_FETCHER:()=>eH,IDLE_NAVIGATION:()=>eF,Link:()=>aj,Links:()=>n7,MemoryRouter:()=>rJ,Meta:()=>an,NavLink:()=>aF,Navigate:()=>rY,NavigationType:()=>f,Outlet:()=>rX,PrefetchPageLinks:()=>ae,Route:()=>rV,Router:()=>rG,RouterContextProvider:()=>L,RouterProvider:()=>nn,Routes:()=>rK,Scripts:()=>ao,ScrollRestoration:()=>aU,ServerRouter:()=>oe,StaticRouter:()=>a5,StaticRouterProvider:()=>a3,UNSAFE_AwaitContextProvider:()=>t0,UNSAFE_DataRouterContext:()=>tY,UNSAFE_DataRouterStateContext:()=>tX,UNSAFE_ErrorResponseImpl:()=>ef,UNSAFE_FetchersContext:()=>tZ,UNSAFE_FrameworkContext:()=>n5,UNSAFE_LocationContext:()=>t2,UNSAFE_NavigationContext:()=>t1,UNSAFE_RSCDefaultRootErrorBoundary:()=>o9,UNSAFE_RemixErrorBoundary:()=>ai,UNSAFE_RouteContext:()=>t4,UNSAFE_ServerMode:()=>ob,UNSAFE_SingleFetchRedirectSymbol:()=>nE,UNSAFE_ViewTransitionContext:()=>tK,UNSAFE_WithComponentProps:()=>r3,UNSAFE_WithErrorBoundaryProps:()=>nt,UNSAFE_WithHydrateFallbackProps:()=>r8,UNSAFE_createBrowserHistory:()=>g,UNSAFE_createClientRoutes:()=>ap,UNSAFE_createClientRoutesWithHMRRevalidationOptOut:()=>ah,UNSAFE_createHashHistory:()=>w,UNSAFE_createMemoryHistory:()=>y,UNSAFE_createRouter:()=>eq,UNSAFE_decodeViaTurboStream:()=>nO,UNSAFE_defaultMapRouteProperties:()=>M,UNSAFE_getHydrationData:()=>ab,UNSAFE_getPatchRoutesOnNavigationFunction:()=>nG,UNSAFE_getTurboStreamSingleFetchDataStrategy:()=>nC,UNSAFE_hydrationRouteProperties:()=>rH,UNSAFE_invariant:()=>v,UNSAFE_shouldHydrateRouteLoader:()=>av,UNSAFE_useFogOFWarDiscovery:()=>nK,UNSAFE_useScrollRestoration:()=>a0,UNSAFE_withComponentProps:()=>r6,UNSAFE_withErrorBoundaryProps:()=>nr,UNSAFE_withHydrateFallbackProps:()=>r7,createBrowserRouter:()=>aM,createContext:()=>P,createCookie:()=>om,createCookieSessionStorage:()=>o0,createHashRouter:()=>aT,createMemoryRouter:()=>rU,createMemorySessionStorage:()=>o1,createPath:()=>S,createRequestHandler:()=>oB,createRoutesFromChildren:()=>r1,createRoutesFromElements:()=>r2,createRoutesStub:()=>ot,createSearchParams:()=>ak,createSession:()=>oG,createSessionStorage:()=>oZ,createStaticHandler:()=>eW,createStaticRouter:()=>a9,data:()=>el,generatePath:()=>B,href:()=>o4,isCookie:()=>op,isRouteErrorResponse:()=>em,isSession:()=>oK,matchPath:()=>q,matchRoutes:()=>_,parsePath:()=>x,redirect:()=>eu,redirectDocument:()=>ec,renderMatches:()=>r4,replace:()=>ed,resolvePath:()=>V,unstable_HistoryRouter:()=>aN,unstable_RSCStaticRouter:()=>ii,unstable_routeRSCServerRequest:()=>io,unstable_setDevServerHooks:()=>oR,unstable_usePrompt:()=>a2,unstable_useRoute:()=>r_,unstable_useRouterState:()=>rN,useActionData:()=>rP,useAsyncError:()=>rA,useAsyncValue:()=>rD,useBeforeUnload:()=>a1,useBlocker:()=>rT,useFetcher:()=>aV,useFetchers:()=>aG,useFormAction:()=>aX,useHref:()=>t8,useInRouterContext:()=>t7,useLinkClickHandler:()=>aq,useLoaderData:()=>rC,useLocation:()=>re,useMatch:()=>rr,useMatches:()=>rx,useNavigate:()=>ra,useNavigation:()=>rR,useNavigationType:()=>rt,useOutlet:()=>rs,useOutletContext:()=>ri,useParams:()=>rl,useResolvedPath:()=>ru,useRevalidator:()=>rS,useRouteError:()=>rL,useRouteLoaderData:()=>rk,useRoutes:()=>rc,useSearchParams:()=>aW,useSubmit:()=>aY,useViewTransitionState:()=>a4});var o,i,s=r(1692),l=r.n(s),u=r(8732);let c=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,d=/^[\\/]{2}/;function h(e,t){return t+e.replace(/\\/g,"/")}let f=((o={}).Pop="POP",o.Push="PUSH",o.Replace="REPLACE",o),m="popstate";function p(e){return"object"==typeof e&&null!=e&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function y(e={}){let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0,"string"==typeof e?void 0:e.mask));let o=l(null==n?t.length-1:n),i="POP",s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r=null,n,a){let i=R(t?t[o].pathname:"/",e,r,n,a);return b("/"===i.pathname.charAt(0),`relative pathnames are not supported in memory history: ${JSON.stringify(e)}`),i}function c(e){return"string"==typeof e?e:S(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:c,createURL:e=>new URL(c(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?x(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i="PUSH";let n=p(e)?e:u(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i="REPLACE";let n=p(e)?e:u(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i="POP";let r=l(o+e),n=t[r];o=r,s&&s({action:i,location:n,delta:e})},listen:e=>(s=e,()=>{s=null})}}function g(e={}){return C(function(e,t){let r=t.state?.masked,{pathname:n,search:a,hash:o}=r||e.location;return R("",{pathname:n,search:a,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default",r?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)},function(e,t){return"string"==typeof t?t:S(t)},null,e)}function w(e={}){return C(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=x(e.location.hash.substring(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),R("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:S(t))},function(e,t){b("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)},e)}function v(e,t){if(!1===e||null==e)throw Error(t)}function b(e,t){if(!e){"u">typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function E(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function R(e,t,r=null,n,a){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?x(t):t,state:r,key:t&&t.key||n||Math.random().toString(36).substring(2,10),mask:a}}function S({pathname:e="/",search:t="",hash:r=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),r&&"#"!==r&&(e+="#"===r.charAt(0)?r:"#"+r),e}function x(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function C(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,s="POP",l=null,u=c();function c(){return(i.state||{idx:null}).idx}function d(){s="POP";let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:f.location,delta:t})}function h(e){return k(a,e)}null==u&&(u=0,i.replaceState({...i.state,idx:u},""));let f={get action(){return s},get location(){return e(a,i)},listen(e){if(l)throw Error("A history only accepts one active listener");return a.addEventListener(m,d),l=e,()=>{a.removeEventListener(m,d),l=null}},createHref:e=>t(a,e),createURL:h,encodeLocation(e){let t=h(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s="PUSH";let n=p(e)?e:R(f.location,e,t);r&&r(n,e);let d=E(n,u=c()+1),h=f.createHref(n.mask||n);try{i.pushState(d,"",h)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(h)}o&&l&&l({action:s,location:f.location,delta:1})},replace:function(e,t){s="REPLACE";let n=p(e)?e:R(f.location,e,t);r&&r(n,e);let a=E(n,u=c()),d=f.createHref(n.mask||n);i.replaceState(a,"",d),o&&l&&l({action:s,location:f.location,delta:0})},go:e=>i.go(e)};return f}function k(e,t,r=!1){let n="http://localhost";e&&(n="null"!==e.location.origin?e.location.origin:e.location.href),v(n,"No window.location.(origin|href) available to create URL");let a="string"==typeof t?t:S(t);return a=a.replace(/ $/,"%20"),!r&&d.test(a)&&(a=n+a),new URL(a,n)}function P(e){return{defaultValue:e}}var L=class{#e=new Map;constructor(e){if(e)for(let[t,r]of e)this.set(t,r)}get(e){if(this.#e.has(e))return this.#e.get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw Error("No value found for context")}set(e,t){this.#e.set(e,t)}};let D=new Set(["lazy","caseSensitive","path","id","index","children"]),A=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function M(e){let t={};return e.Component&&Object.assign(t,{element:s.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:s.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:s.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function T(e,t=M,r=[],n={},a=!1){return e.map((e,o)=>{let i=[...r,String(o)],s="string"==typeof e.id?e.id:i.join("-");if(v(!0!==e.index||!e.children,"Cannot specify children on an index route"),v(a||!n[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),!0===e.index){let r={...e,id:s};return n[s]=O(r,t(r)),r}{let r={...e,id:s,children:void 0};return n[s]=O(r,t(r)),e.children&&(r.children=T(e.children,t,i,n,a)),r}})}function O(e,t){return Object.assign(e,{...t,..."object"==typeof t.lazy&&null!=t.lazy?{lazy:{...e.lazy,...t.lazy}}:{}})}function _(e,t,r="/"){return $(e,t,r,!1)}function $(e,t,r,n,a){let o=X(("string"==typeof t?x(t):t).pathname||"/",r);if(null==o)return null;let i=a??j(e),s=null,l=Y(o);for(let e=0;null==s&&e<i.length;++e)s=function(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c={path:s.relativePath,caseSensitive:s.caseSensitive,end:l},d=s.matcher&&s.compiledParams?W(c,u,s.matcher,s.compiledParams):q(c,u),h=s.route;if(!d&&l&&r&&!n[n.length-1].route.index&&(d=q({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!d)return null;Object.assign(a,d.params),i.push({params:a,pathname:er([o,d.pathname]),pathnameBase:ea(er([o,d.pathnameBase])),route:h}),"/"!==d.pathnameBase&&(o=er([o,d.pathnameBase]))}return i}(i[e],l,n);return s}function N(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,loaderData:t[r.id],handle:r.handle}}function j(e){let t=function e(t,r=[],n=[],a="",o=!1){let i=(t,i,s=o,l)=>{var u,c;let d,h,f={relativePath:void 0===l?t.path||"":l,caseSensitive:!0===t.caseSensitive,childrenIndex:i,route:t};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(a)&&s)return;v(f.relativePath.startsWith(a),`Absolute route path "${f.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(a.length)}let m=er([a,f.relativePath]),p=n.concat(f);t.children&&t.children.length>0&&(v(!0!==t.index,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),e(t.children,r,p,m,s)),(null!=t.path||t.index)&&r.push({path:m,score:(u=m,c=t.index,h=(d=u.split("/")).length,d.some(U)&&(h+=-2),c&&(h+=2),d.filter(e=>!U(e)).reduce((e,t)=>e+(F.test(t)?3:H.test(t)?3.5:""===t?1:10),h)),routesMeta:p.map((e,t)=>{let[r,n]=J(e.relativePath,e.caseSensitive,t===p.length-1);return{...e,matcher:r,compiledParams:n}})})};return t.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let s=e(a.join("/")),l=[];return l.push(...s.map(e=>""===e?i:[i,e].join("/"))),o&&l.push(...s),l.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))i(e,t,!0,r);else i(e,t)}),r}(e);return t.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)}),t}let F=/^:[\w-]+$/,H=/^:[\w-]+/,U=e=>"*"===e,z={"%24":"$","%26":"&","%2B":"+","%2C":",","%3A":":","%3B":";","%3D":"=","%40":"@"};function I(e){return encodeURIComponent(e).replace(/%(?:24|26|2B|2C|3A|3B|3D|40)/g,e=>z[e])}function B(e,t={}){let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(b(!1,`Route path "${r}" will be treated as if it were "${r.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${r.replace(/\*$/,"/*")}".`),r=r.replace(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)(.*)/);if(o){let[,e,r,n]=o,i=t[e];return v("?"===r||null!=i,`Missing ":${e}" param`),I(a(i))+n}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function q(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=J(e.path,e.caseSensitive,e.end);return W(e,t,r,n)}function W(e,t,r,n){let a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((e,{paramName:t,isOptional:r},n)=>{if("*"===t){let e=s[n]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}let a=s[n];return r&&!a?e[t]=void 0:e[t]=(a||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:i,pattern:e}}function J(e,t=!1,r=!0){b("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r,a,o)=>{if(n.push({paramName:t,isOptional:null!=r}),r){let t=o.charAt(a+e.length);return t&&"/"!==t?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(?=\/|$|\()/g,"(?:/$1)?");return e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Y(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return b(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function X(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}function V(e,t="/"){let{pathname:r,search:n="",hash:a=""}="string"==typeof e?x(e):e;return{pathname:r?(r=et(r)).startsWith("/")?G(r.substring(1),"/"):G(r,t):t,search:eo(n),hash:ei(a)}}function G(e,t){let r=en(t).split("/");return e.split("/").forEach(e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)}),r.length>1?r.join("/"):"/"}function K(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Z(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function Q(e){let t=Z(e);return t.map((e,r)=>r===t.length-1?e.pathname:e.pathnameBase)}function ee(e,t,r,n=!1){let a,o;"string"==typeof e?a=x(e):(v(!(a={...e}).pathname||!a.pathname.includes("?"),K("?","pathname","search",a)),v(!a.pathname||!a.pathname.includes("#"),K("#","pathname","hash",a)),v(!a.search||!a.search.includes("#"),K("#","search","hash",a)));let i=""===e||""===a.pathname,s=i?"/":a.pathname;if(null==s)o=r;else{let e=t.length-1;if(!n&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=V(a,o),u=s&&"/"!==s&&s.endsWith("/"),c=(i||"."===s)&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}let et=e=>e.replace(/[\\/]{2,}/g,"/"),er=e=>et(e.join("/")),en=e=>e.replace(/\/+$/,""),ea=e=>en(e).replace(/^\/*/,"/"),eo=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",ei=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";var es=class{type="DataWithResponseInit";data;init;constructor(e,t){this.data=e,this.init=t||null}};function el(e,t){return new es(e,"number"==typeof t?{status:t}:t)}let eu=(e,t=302)=>{let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},ec=(e,t)=>{let r=eu(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},ed=(e,t)=>{let r=eu(e,t);return r.headers.set("X-Remix-Replace","true"),r},eh=["EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"];var ef=class{status;statusText;data;error;internal;constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function em(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}function ep(e){return er(e.map(e=>e.route.path).filter(Boolean))||"/"}function ey(e,t){let r=new URL("string"==typeof e||e instanceof URL?e:e.url),n="string"==typeof t?x(t):t;if(r.pathname=n.pathname||"/",n.search){let e=new URLSearchParams(n.search),t=e.getAll("index");for(let r of(e.delete("index"),t.filter(Boolean)))e.append("index",r);let a=e.toString();r.search=a?`?${a}`:""}else r.search="";return r.hash=n.hash||"",r}let eg="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function ew(e,t){let r=e;if("string"!=typeof r||!c.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if(eg)try{let e=new URL(window.location.href),n=new URL(d.test(r)?h(r,e.protocol):r),o=X(n.pathname,t);n.origin===e.origin&&null!=o?r=o+n.search+n.hash:a=!0}catch(e){b(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:a,to:r}}let ev=Symbol("Uninstrumented"),eb=P(),eE=new WeakMap;function eR(e,t){var r,n,a,o;let i=[],s=[],l=[],u=[],c=[],d=[],h=[];e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){null!=e.lazy&&i.push(e.lazy),null!=e["lazy.loader"]&&s.push(e["lazy.loader"]),null!=e["lazy.action"]&&l.push(e["lazy.action"]),null!=e["lazy.middleware"]&&u.push(e["lazy.middleware"]),null!=e.middleware&&c.push(e.middleware),null!=e.loader&&d.push(e.loader),null!=e.action&&h.push(e.action)}}));let f={};if("function"==typeof t.lazy&&i.length>0){let e=t.lazy;f.lazy=async(...t)=>ek(await eP(i,void 0,()=>e(...t),eL))}if("object"==typeof t.lazy){let e=t.lazy;if("function"==typeof e.middleware&&u.length>0){let t=e.middleware;f.lazy=Object.assign(f.lazy||{},{middleware:async(...e)=>ek(await eP(u,void 0,()=>t(...e),eL))})}if("function"==typeof e.loader&&s.length>0){let t=e.loader;f.lazy=Object.assign(f.lazy||{},{loader:async(...e)=>ek(await eP(s,void 0,()=>t(...e),eL))})}if("function"==typeof e.action&&l.length>0){let t=e.action;f.lazy=Object.assign(f.lazy||{},{action:async(...e)=>ek(await eP(l,void 0,()=>t(...e),eL))})}}if("function"==typeof t.loader&&d.length>0){let e=eS(t.loader),a=async(...t)=>ek(await eP(d,eD(t[0]),()=>e(...t),eL));!0===e.hydrate&&(a.hydrate=!0),r=a,n=e,r[ev]=n,f.loader=a}if("function"==typeof t.action&&h.length>0){let e=eS(t.action),r=async(...t)=>ek(await eP(h,eD(t[0]),()=>e(...t),eL));a=r,o=e,a[ev]=o,f.action=r}return t.middleware&&t.middleware.length>0&&c.length>0&&(f.middleware=t.middleware.map(e=>{var t,r;let n=eS(e),a=async(...e)=>ek(await eP(c,eD(e[0]),()=>n(...e),eL));return t=a,r=n,t[ev]=r,a})),f}function eS(e){return e[ev]??e}function ex(e,t){return eE.set(e,t),()=>{eE.get(e)===t&&eE.delete(e)}}function eC(e){let t=eE.get(e);return eE.delete(e),t}function ek(e){if("error"===e.type)throw e.value;return e.value}async function eP(e,t,r,n,a={result:null,innerResult:null},o=e.length-1){let i=e[o];if(i){let s,l=async()=>(s?console.error("You cannot call instrumented handlers more than once"):s=eP(e,t,r,n,a,o-1),await s,v(a.innerResult,"Expected an inner result"),a.innerResult);try{await i(l,t)}catch(e){console.error("An instrumentation function threw an error:",e)}s||await l(),await s}else{try{a.result={type:"success",value:await r()}}catch(e){a.result={type:"error",value:e}}a.innerResult=n(a.result,t)}return a.result||(a.result={type:"error",value:Error("No result assigned in instrumentation chain.")},a.innerResult=n(a.result,t)),a.result}function eL(e){return"error"===e.type&&e.value instanceof Error?{status:"error",error:e.value}:{status:"success",error:void 0}}function eD(e){let{request:t,context:r,params:n}=e;return{...e,request:eM(t),params:{...n},context:eT(r)}}function eA(e,t){return{currentUrl:S(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function eM(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function eT(e){return{get:t=>e.get(t)}}let eO=["POST","PUT","PATCH","DELETE"],e_=new Set(eO),e$=new Set(["GET",...eO]),eN=new Set([301,302,303,307,308]),ej=new Set([307,308]),eF={state:"idle",location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eH={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eU={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ez="remix-router-transitions",eI=Symbol("ResetLoaderData");var eB=class{#t;#r;#n;#a;constructor(e){this.#t=e,this.#r=j(e)}get stableRoutes(){return this.#t}get activeRoutes(){return this.#n??this.#t}get branches(){return this.#a??this.#r}get hasHMRRoutes(){return null!=this.#n}setRoutes(e){this.#t=e,this.#r=j(e)}setHmrRoutes(e){this.#n=e,this.#a=j(e)}commitHmrRoutes(){this.#n&&(this.#t=this.#n,this.#r=this.#a,this.#n=void 0,this.#a=void 0)}};function eq(e){let t,r,n,a,o,i=e.window?e.window:"u">typeof window?window:void 0,s=void 0!==i&&void 0!==i.document&&void 0!==i.document.createElement;v(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let l=e.hydrationRouteProperties||[],u=e.mapRouteProperties,d=u||(()=>({}));if(e.instrumentations){let t=e.instrumentations;d=e=>({...u?.(e),...eR(t.map(e=>e.route).filter(Boolean),e)})}let h={},f=new eB(T(e.routes,d,void 0,h)),m=e.basename||"/";m.startsWith("/")||(m=`/${m}`);let p=e.dataStrategy||e8,y={...e.future},g=null,w=new Set,E=null,C=null,P=null,D=null,A=null!=e.hydrationData,M=$(f.activeRoutes,e.history.location,m,!1,f.branches),O=!1,_=null;if(null!=M||e.patchRoutesOnNavigation)if(M&&!e.hydrationData&&eJ(M,f.activeRoutes,e.history.location.pathname).active&&(M=null),M)if(M.some(e=>e.route.lazy))t=!1,r=!0;else if(M.some(e=>eZ(e.route))){let n=e.hydrationData?e.hydrationData.loaderData:null,a=e.hydrationData?e.hydrationData.errors:null,o=M;if(a){let e=M.findIndex(e=>void 0!==a[e.route.id]);o=o.slice(0,e+1)}r=!1,t=!0,o.forEach(e=>{let o=eQ(e.route,n,a);r=r||o.renderFallback,t=t&&!o.shouldLoad})}else t=!0,r=!1;else{t=!1,r=!0,M=[];let n=eJ(null,f.activeRoutes,e.history.location.pathname);n.active&&n.matches&&(O=!0,M=n.matches)}else{let n=tS(404,{pathname:e.history.location.pathname}),{matches:a,route:o}=tR(f.activeRoutes);t=!0,r=!1,M=a,_={[o.id]:n}}let j={historyAction:e.history.action,location:e.history.location,matches:M,initialized:t,renderFallback:r,navigation:eF,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||_,fetchers:new Map,blockers:new Map},F="POP",H=null,U=!1,z=!1,I=new Map,B=null,q=!1,W=!1,J=new Set,Y=new Map,V=0,G=-1,K=new Map,Z=new Set,Q=new Map,ee=new Map,et=new Set,er=new Map,en=null;function ea(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=h[e.route.id],r=e.route;return r.element!==t.element||r.errorElement!==t.errorElement||r.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}));let r=[],n=[];(j={...j,...e}).fetchers.forEach((e,t)=>{"idle"===e.state&&(et.has(t)?r.push(t):n.push(t))}),et.forEach(e=>{j.fetchers.has(e)||Y.has(e)||r.push(e)}),0===w.size&&(E={newErrors:e.errors??null}),[...w].forEach(n=>n(j,{deletedFetchers:r,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),r.forEach(e=>eE(j.fetchers,e)),n.forEach(e=>j.fetchers.delete(e))}function eo(t,r,{flushSync:n}={}){let a,o,i=null!=j.actionData&&null!=j.navigation.formMethod&&tF(j.navigation.formMethod)&&"loading"===j.navigation.state&&t.state?._isRedirect!==!0;a=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:i?j.actionData:null;let s=r.loaderData?tv(j.loaderData,r.loaderData,r.matches||[],r.errors):j.loaderData,l=j.blockers;l.size>0&&!q&&(l=new Map(l)).forEach((e,t)=>l.set(t,eU));let u=!q&&eW(t,r.matches||j.matches),c=!0===U||null!=j.navigation.formMethod&&tF(j.navigation.formMethod)&&t.state?._isRedirect!==!0;if(f.commitHmrRoutes(),q||"POP"===F||("PUSH"===F?e.history.push(t,t.state):"REPLACE"===F&&e.history.replace(t,t.state)),"POP"===F){let e=I.get(j.location.pathname);e&&e.has(t.pathname)?o={currentLocation:j.location,nextLocation:t}:I.has(t.pathname)&&(o={currentLocation:t,nextLocation:j.location})}else if(z){let e=I.get(j.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),I.set(j.location.pathname,e)),o={currentLocation:j.location,nextLocation:t}}ea({...r,actionData:a,loaderData:s,historyAction:F,location:t,initialized:!0,renderFallback:!1,navigation:eF,revalidation:"idle",restoreScrollPosition:u,preventScrollReset:c,blockers:l},{viewTransitionOpts:o,flushSync:!0===n}),F="POP",U=!1,z=!1,q=!1,W=!1,H?.resolve(),H=null,en?.resolve(),en=null}async function ei(t,r){let a;if(H?.resolve(),H=null,"number"==typeof t){H||(H=tJ());let r=H.promise;return e.history.go(t),r}let o=eC(n),{path:i,submission:s,error:l}=eG(!1,eV(j.location,j.matches,m,t,r?.fromRouteId,r?.relative),r);r?.mask&&(a={pathname:"",search:"",hash:"",..."string"==typeof r.mask?x(r.mask):{...j.location.mask,...r.mask}});let u=j.location,c=R(u,i,r&&r.state,void 0,a);c={...c,...e.history.encodeLocation(c)};let d=r&&null!=r.replace?r.replace:void 0,h="PUSH";!0===d?h="REPLACE":!1===d||null!=s&&tF(s.formMethod)&&s.formAction===j.location.pathname+j.location.search&&(h="REPLACE");let f=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,p=!0===(r&&r.flushSync),y=eN({currentLocation:u,nextLocation:c,historyAction:h});y?e$(y,{state:"blocked",location:c,proceed(){e$(y,{state:"proceeding",proceed:void 0,reset:void 0,location:c}),ei(t,r)},reset(){let e=new Map(j.blockers);e.set(y,eU),ea({blockers:e})}}):await es(h,c,{submission:s,pendingError:l,preventScrollReset:f,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:r&&r.defaultShouldRevalidate,instrumentationNavigateMetaReceiver:o})}async function es(t,r,n){var o,i,s,l;let u;a&&a.abort(),a=null,F=t,q=!0===(n&&n.startUninterruptedRevalidation),o=j.location,i=j.matches,C&&D&&(C[eq(o,i)]=D()),U=!0===(n&&n.preventScrollReset),z=!0===(n&&n.enableViewTransition);let c=f.activeRoutes,d=n?.initialHydration&&j.matches&&j.matches.length>0&&!O?j.matches:$(c,r,m,!1,f.branches),h=!0===(n&&n.flushSync);if(d&&j.initialized&&!W&&(s=j.location,l=r,s.pathname===l.pathname&&s.search===l.search&&(""===s.hash?""!==l.hash:s.hash===l.hash||""!==l.hash||!1))&&!(n&&n.submission&&tF(n.submission.formMethod)))return void eo(r,{matches:d},{flushSync:h});let p=eJ(d,c,r.pathname);if(p.active&&p.matches&&(d=p.matches),n?.instrumentationNavigateMetaReceiver){let t=tz(e.history,r,d);n.instrumentationNavigateMetaReceiver(t)}if(!d){let{error:e,notFoundMatches:t,route:n}=eI(r.pathname);eo(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:h});return}let y=n&&n.overrideNavigation?{...n.overrideNavigation,matches:d,historyAction:t}:void 0;a=new AbortController;let g=tm(e.history,r,a.signal,n&&n.submission),w=e.getContext?await e.getContext():new L;if(n&&n.pendingError)u=[tE(d).route.id,{type:"error",error:n.pendingError}];else if(n&&n.submission&&tF(n.submission.formMethod)){let o=await el(g,r,n.submission,d,t,w,p.active,n&&!0===n.initialHydration,{replace:n.replace,flushSync:h});if(o.shortCircuited)return;if(o.pendingActionResult){let[e,t]=o.pendingActionResult;if(tM(t)&&em(t.error)&&404===t.error.status){a=null,eo(r,{matches:o.matches,loaderData:{},errors:{[e]:t.error}});return}}d=o.matches||d,u=o.pendingActionResult,y=tB(r,d,t,n.submission),h=!1,p.active=!1,g=tm(e.history,g.url,g.signal)}let{shortCircuited:v,matches:b,loaderData:E,errors:R,workingFetchers:S}=await eu(g,r,d,t,w,p.active,y,n&&n.submission,n&&n.fetcherSubmission,n&&n.replace,n&&!0===n.initialHydration,h,u,n&&n.callSiteDefaultShouldRevalidate);v||(a=null,eo(r,{matches:b||d,...tb(u),loaderData:E,errors:R,...S?{fetchers:S}:{}}))}async function el(t,r,n,a,o,i,s,u,c={}){var p,y,g;let w;if(eg(),ea({navigation:(p=r,y=a,{state:"submitting",location:p,matches:y,historyAction:o,formMethod:(g=n).formMethod,formAction:g.formAction,formEncType:g.formEncType,formData:g.formData,json:g.json,text:g.text})},{flushSync:!0===c.flushSync}),s){let e=await eY(a,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=tR(f.activeRoutes);return{matches:t,pendingActionResult:[r.id,{type:"error",error:e.error}]}}let t=tE(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:"error",error:e.error}]}}if(e.matches)a=e.matches;else{let{notFoundMatches:e,error:t,route:n}=eI(r.pathname);return{matches:e,pendingActionResult:[n.id,{type:"error",error:t}]}}}let v=tU(a,r);if(v.route.action||v.route.lazy){let e=await ep(t,r,to(d,h,t,r,a,v,u?[]:l,i),i,null);if(!(w=e[v.route.id])){for(let t of a)if(e[t.route.id]){w=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}else w={type:"error",error:tS(405,{method:t.method,pathname:r.pathname,routeId:v.route.id})};if(tT(w)){let r;return r=c&&null!=c.replace?c.replace:tf(w.response.headers.get("Location"),new URL(t.url),m,e.history)===j.location.pathname+j.location.search,await ef(t,w,!0,{submission:n,replace:r}),{shortCircuited:!0}}if(tM(w)){let e=tE(a,v.route.id);return!0!==(c&&c.replace)&&(F="PUSH"),{matches:a,pendingActionResult:[e.route.id,w,v.route.id]}}return{matches:a,pendingActionResult:[v.route.id,w]}}async function eu(t,r,n,o,i,s,u,c,p,y,g,w,v,b){let E=u||tB(r,n,o,c),R=c||p||tI(E),S=!q&&!g;if(s){if(S){let e=ec(v);ea({navigation:E,...void 0!==e?{actionData:e}:{}},{flushSync:w})}let e=await eY(n,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=tR(f.activeRoutes);return{matches:t,loaderData:{},errors:{[r.id]:e.error}}}let t=tE(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)n=e.matches;else{let{error:e,notFoundMatches:t,route:n}=eI(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}}let x=f.activeRoutes,{dsMatches:C,revalidatingFetchers:k}=eK(t,i,d,h,e.history,j,n,R,r,g?[]:l,!0===g,W,J,et,Q,Z,x,m,null!=e.patchRoutesOnNavigation,f.branches,v,b);if(G=++V,!e.dataStrategy&&!C.some(e=>e.shouldLoad)&&!C.some(e=>e.route.middleware&&e.route.middleware.length>0)&&0===k.length){let e=new Map(j.fetchers),t=eT(e);return eo(r,{matches:n,loaderData:{},errors:v&&tM(v[1])?{[v[0]]:v[1].error}:null,...tb(v),...t?{fetchers:e}:{}},{flushSync:w}),{shortCircuited:!0}}if(S){var P;let e,t={};if(!s){t.navigation=E;let e=ec(v);void 0!==e&&(t.actionData=e)}k.length>0&&(P=k,e=new Map(j.fetchers),P.forEach(t=>{let r=e.get(t.key),n=tq(void 0,r?r.data:void 0);e.set(t.key,n)}),t.fetchers=e),ea(t,{flushSync:w})}k.forEach(e=>{eD(e.key),e.controller&&Y.set(e.key,e.controller)});let L=()=>k.forEach(e=>eD(e.key));a&&a.signal.addEventListener("abort",L);let{loaderResults:D,fetcherResults:A}=await ey(C,k,t,r,i);if(t.signal.aborted)return{shortCircuited:!0};a&&a.signal.removeEventListener("abort",L),k.forEach(e=>Y.delete(e.key));let M=tx(D);if(M)return await ef(t,M.result,!0,{replace:y}),{shortCircuited:!0};if(M=tx(A))return Z.add(M.key),await ef(t,M.result,!0,{replace:y}),{shortCircuited:!0};let T=new Map(j.fetchers),{loaderData:O,errors:_}=tw(j,n,D,v,k,A,T);g&&j.errors&&(_={...j.errors,..._});let $=eT(T),N=eO(G,T);return{matches:n,loaderData:O,errors:_,...$||N||k.length>0?{workingFetchers:T}:{}}}function ec(e){if(e&&!tM(e[1]))return{[e[0]]:e[1].data};if(j.actionData)if(0===Object.keys(j.actionData).length)return null;else return j.actionData}async function ed(t,r,n,o,i,s,u,c,p,y){var g,w;eg(),Q.delete(t),ew(t,(g=p,w=j.fetchers.get(t),{state:"submitting",formMethod:g.formMethod,formAction:g.formAction,formEncType:g.formEncType,formData:g.formData,json:g.json,text:g.text,data:w?w.data:void 0}),{flushSync:u});let b=new AbortController,E=tm(e.history,n,b.signal,p);if(s){let e=await eY(o,new URL(E.url).pathname,E.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eb(t,r,e.error,{flushSync:u});if(!e.matches)return void eb(t,r,tS(404,{pathname:n}),{flushSync:u});o=e.matches}let R=tU(o,n);if(!R.route.action&&!R.route.lazy)return void eb(t,r,tS(405,{method:p.formMethod,pathname:n,routeId:r}),{flushSync:u});Y.set(t,b);let S=V,x=to(d,h,E,n,o,R,l,i),C=await ep(E,n,x,i,t),k=C[R.route.id];if(!k){for(let e of x)if(C[e.route.id]){k=C[e.route.id];break}}if(E.signal.aborted){Y.get(t)===b&&Y.delete(t);return}if(et.has(t)){if(tT(k)||tM(k))return void ew(t,tW(void 0))}else{if(tT(k))return(Y.delete(t),G>S)?void ew(t,tW(void 0)):(Z.add(t),ew(t,tq(p)),ef(E,k,!1,{fetcherSubmission:p,preventScrollReset:c}));if(tM(k))return void eb(t,r,k.error)}let P=j.navigation.location||j.location,L=tm(e.history,P,b.signal),D=f.activeRoutes,A="idle"!==j.navigation.state?$(D,j.navigation.location,m,!1,f.branches):j.matches;v(A,"Didn't find any matches after fetcher action");let M=++V;K.set(t,M);let{dsMatches:T,revalidatingFetchers:O}=eK(L,i,d,h,e.history,j,A,p,P,l,!1,W,J,et,Q,Z,D,m,null!=e.patchRoutesOnNavigation,f.branches,[R.route.id,k],y),_=tq(p,k.data),N=new Map(j.fetchers);N.set(t,_),O.filter(e=>e.key!==t).forEach(e=>{let t=e.key,r=N.get(t),n=tq(void 0,r?r.data:void 0);N.set(t,n),eD(t),e.controller&&Y.set(t,e.controller)}),ea({fetchers:N});let H=()=>O.forEach(e=>eD(e.key));b.signal.addEventListener("abort",H);let{loaderResults:U,fetcherResults:z}=await ey(T,O,L,P,i);if(b.signal.aborted)return;b.signal.removeEventListener("abort",H),K.delete(t),Y.delete(t),O.forEach(e=>Y.delete(e.key));let I=j.fetchers.has(t),B=e=>{if(!I)return e;let r=new Map(e.fetchers);return r.set(t,tW(k.data)),{...e,fetchers:r}},q=tx(U);if(q)return j=B(j),ef(L,q.result,!1,{preventScrollReset:c});if(q=tx(z))return Z.add(q.key),j=B(j),ef(L,q.result,!1,{preventScrollReset:c});let X=new Map(j.fetchers);I&&X.set(t,tW(k.data));let{loaderData:ee,errors:er}=tw(j,A,U,void 0,O,z,X);eO(M,X),"loading"===j.navigation.state&&M>G?(v(F,"Expected pending action"),a&&a.abort(),eo(j.navigation.location,{matches:A,loaderData:ee,errors:er,fetchers:X})):(ea({errors:er,loaderData:tv(j.loaderData,ee,A,er),fetchers:X}),W=!1)}async function eh(t,r,n,a,o,i,s,u,c){let f=j.fetchers.get(t);ew(t,tq(c,f?f.data:void 0),{flushSync:s});let m=new AbortController,p=tm(e.history,n,m.signal);if(i){let e=await eY(a,new URL(p.url).pathname,p.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eb(t,r,e.error,{flushSync:s});if(!e.matches)return void eb(t,r,tS(404,{pathname:n}),{flushSync:s});a=e.matches}let y=tU(a,n);Y.set(t,m);let g=V,w=await ep(p,n,to(d,h,p,n,a,y,l,o),o,t),v=w[y.route.id];if(!v){for(let e of a)if(w[e.route.id]){v=w[e.route.id];break}}if(Y.get(t)===m&&Y.delete(t),!p.signal.aborted){if(et.has(t))return void ew(t,tW(void 0));if(tT(v))if(G>g)return void ew(t,tW(void 0));else{Z.add(t),await ef(p,v,!1,{preventScrollReset:u});return}if(tM(v))return void eb(t,r,v.error);ew(t,tW(v.data))}}async function ef(t,r,n,{submission:o,fetcherSubmission:l,preventScrollReset:u,replace:d}={}){n||(H?.resolve(),H=null),r.response.headers.has("X-Remix-Revalidate")&&(W=!0);let h=r.response.headers.get("Location");v(h,"Expected a Location header on the redirect Response"),h=tf(h,new URL(t.url),m,e.history);let f=R(j.location,h,{_isRedirect:!0});if(s){let e=!1;if(r.response.headers.has("X-Remix-Reload-Document"))e=!0;else{let t;if(t=h,c.test(t)){let t=k(i,h,!0);e=t.origin!==i.location.origin||null==X(t.pathname,m)}}if(e)return void(d?i.location.replace(h):i.location.assign(h))}a=null;let p=!0===d||r.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:y,formAction:g,formEncType:w}=j.navigation;!o&&!l&&y&&g&&w&&(o=tI(j.navigation));let b=o||l;ej.has(r.response.status)&&b&&tF(b.formMethod)?await es(p,f,{submission:{...b,formAction:h},preventScrollReset:u||U,enableViewTransition:n?z:void 0}):await es(p,f,{overrideNavigation:tB(f,[],p,o),fetcherSubmission:l,preventScrollReset:u||U,enableViewTransition:n?z:void 0})}async function ep(e,t,r,n,a){let o,i={};try{o=await ti(p,e,t,r,a,n,!1)}catch(e){return r.filter(e=>e.shouldLoad).forEach(t=>{i[t.route.id]={type:"error",error:e}}),i}if(e.signal.aborted)return i;if(!tF(e.method))for(let e of r){if(o[e.route.id]?.type==="error")break;!o.hasOwnProperty(e.route.id)&&!j.loaderData.hasOwnProperty(e.route.id)&&(!j.errors||!j.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(o[e.route.id]={type:"error",result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,n]of Object.entries(o))if(tA(n)){let a=n.result;i[t]={type:"redirect",response:tc(a,e,t,r,m)}}else i[t]=await tu(n);return i}async function ey(e,t,r,n,a){let o=ep(r,n,e,a,null),i=Promise.all(t.map(async e=>{if(!e.matches||!e.match||!e.request||!e.controller)return Promise.resolve({[e.key]:{type:"error",error:tS(404,{pathname:e.path})}});{let t=(await ep(e.request,e.path,e.matches,a,e.key))[e.match.route.id];return{[e.key]:t}}}));return{loaderResults:await o,fetcherResults:(await i).reduce((e,t)=>Object.assign(e,t),{})}}function eg(){W=!0,Q.forEach((e,t)=>{Y.has(t)&&J.add(t),eD(t)})}function ew(e,t,r={}){let n=new Map(j.fetchers);n.set(e,t),ea({fetchers:n},{flushSync:!0===(r&&r.flushSync)})}function eb(e,t,r,n={}){let a=tE(j.matches,t),o=new Map(j.fetchers);eE(o,e),ea({errors:{[a.route.id]:r},fetchers:o},{flushSync:!0===(n&&n.flushSync)})}function eE(e,t){let r=j.fetchers.get(t);Y.has(t)&&!(r&&"loading"===r.state&&K.has(t))&&eD(t),Q.delete(t),K.delete(t),Z.delete(t),et.delete(t),J.delete(t),e.delete(t)}function eD(e,t){let r=Y.get(e);r&&(r.abort(t),Y.delete(e))}function eM(e,t){for(let r of e){let e=t.get(r);v(e,`Expected fetcher: ${r}`);let n=tW(e.data);t.set(r,n)}}function eT(e){let t=[],r=!1;for(let n of Z){let a=e.get(n);v(a,`Expected fetcher: ${n}`),"loading"===a.state&&(Z.delete(n),t.push(n),r=!0)}return eM(t,e),r}function eO(e,t){let r=[];for(let[n,a]of K)if(a<e){let e=t.get(n);v(e,`Expected fetcher: ${n}`),"loading"===e.state&&(eD(n),K.delete(n),r.push(n))}return eM(r,t),r.length>0}function e_(e){j.blockers.delete(e),er.delete(e)}function e$(e,t){let r=j.blockers.get(e)||eU;v("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,`Invalid blocker state transition: ${r.state} -> ${t.state}`);let n=new Map(j.blockers);n.set(e,t),ea({blockers:n})}function eN({currentLocation:e,nextLocation:t,historyAction:r}){if(0===er.size)return;er.size>1&&b(!1,"A router only supports one blocker at a time");let n=Array.from(er.entries()),[a,o]=n[n.length-1],i=j.blockers.get(a);if((!i||"proceeding"!==i.state)&&o({currentLocation:e,nextLocation:t,historyAction:r}))return a}function eI(e){let t=tS(404,{pathname:e}),{matches:r,route:n}=tR(f.activeRoutes);return{notFoundMatches:r,route:n,error:t}}function eq(e,t){return P&&P(e,t.map(e=>N(e,j.loaderData)))||e.key}function eW(e,t){if(C){let r=C[eq(e,t)];if("number"==typeof r)return r}return null}function eJ(t,r,n){if(e.patchRoutesOnNavigation){let e=f.branches;if(!t)return{active:!0,matches:$(r,n,m,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:$(r,n,m,!0,e)}}return{active:!1,matches:null}}async function eY(t,r,n,a){if(!e.patchRoutesOnNavigation)return{type:"success",matches:t};let o=t;for(;;){let t=h;try{await e.patchRoutesOnNavigation({signal:n,path:r,matches:o,fetcherKey:a,patch:(e,r)=>{n.aborted||e1(e,r,f,t,d,!1)}})}catch(e){return{type:"error",error:e,partialMatches:o}}if(n.aborted)return{type:"aborted"};let i=f.branches,s=$(f.activeRoutes,r,m,!1,i),l=null;if(s){if(0===Object.keys(s[0].params).length)return{type:"success",matches:s};else if(!((l=$(f.activeRoutes,r,m,!0,i))&&o.length<l.length&&eX(o,l.slice(0,o.length))))return{type:"success",matches:s}}if(l||(l=$(f.activeRoutes,r,m,!0,i)),!l||eX(o,l))return{type:"success",matches:null};o=l}}function eX(e,t){return e.length===t.length&&e.every((e,r)=>e.route.id===t[r].route.id)}return n={get basename(){return m},get future(){return y},get state(){return j},get routes(){return f.stableRoutes},get branches(){return f.branches},get manifest(){return h},get window(){return i},initialize:function(){if(g=e.history.listen(({action:t,location:r,delta:n})=>{if(o){o(),o=void 0;return}b(0===er.size||null!=n,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let a=eN({currentLocation:j.location,nextLocation:r,historyAction:t});if(a&&null!=n){let t=new Promise(e=>{o=e});e.history.go(-1*n),e$(a,{state:"blocked",location:r,proceed(){e$(a,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(n))},reset(){let e=new Map(j.blockers);e.set(a,eU),ea({blockers:e})}}),H?.resolve(),H=null;return}return es(t,r)}),s){var t=i,r=I;try{let e=t.sessionStorage.getItem(ez);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ez,JSON.stringify(r))}catch(e){b(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}})(i,I);i.addEventListener("pagehide",e),B=()=>i.removeEventListener("pagehide",e)}return j.initialized||es("POP",j.location,{initialHydration:!0}),n},subscribe:function(e){if(w.add(e),E){let{newErrors:t}=E;E=null,e(j,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>w.delete(e)},enableScrollRestoration:function(e,t,r){if(C=e,D=t,P=r||null,!A&&j.navigation===eF){A=!0;let e=eW(j.location,j.matches);null!=e&&ea({restoreScrollPosition:e})}return()=>{C=null,D=null,P=null}},navigate:ei,fetch:async function t(t,r,a,o){eD(t);let i=!0===(o&&o.flushSync),s=eC(n),l=f.activeRoutes,u=eV(j.location,j.matches,m,a,r,o?.relative),c=$(l,u,m,!1,f.branches),d=eJ(c,l,u);if(d.active&&d.matches&&(c=d.matches),s&&s(tz(e.history,u,c)),!c)return void eb(t,r,tS(404,{pathname:u}),{flushSync:i});let{path:h,submission:p,error:y}=eG(!0,u,o);if(y)return void eb(t,r,y,{flushSync:i});let g=e.getContext?await e.getContext():new L,w=!0===(o&&o.preventScrollReset);p&&tF(p.formMethod)?await ed(t,r,h,c,g,d.active,i,w,p,o&&o.defaultShouldRevalidate):(Q.set(t,{routeId:r,path:h}),await eh(t,r,h,c,g,d.active,i,w,p))},revalidate:function(){en||(en=tJ()),eg(),ea({revalidation:"loading"});let e=en.promise;return"submitting"===j.navigation.state||("idle"===j.navigation.state?es(j.historyAction,j.location,{startUninterruptedRevalidation:!0}):es(F||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation,enableViewTransition:!0===z})),e},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:function(e){return ee.set(e,(ee.get(e)||0)+1),et.has(e)&&et.delete(e),j.fetchers.get(e)||eH},resetFetcher:function(e,t){eD(e,t?.reason),ew(e,tW(null))},deleteFetcher:function(e){let t=(ee.get(e)||0)-1;t<=0?(ee.delete(e),et.add(e)):ee.set(e,t),ea({fetchers:new Map(j.fetchers)})},dispose:function(){g&&g(),B&&B(),w.clear(),a&&a.abort(),j.fetchers.forEach((e,t)=>eE(j.fetchers,t)),j.blockers.forEach((e,t)=>e_(t))},getBlocker:function(e,t){let r=j.blockers.get(e)||eU;return er.get(e)!==t&&er.set(e,t),r},deleteBlocker:e_,patchRoutes:function(e,t,r=!1){e1(e,t,f,h,d,r),f.hasHMRRoutes||ea({})},_internalFetchControllers:Y,_internalSetRoutes:function(e){h={},f.setHmrRoutes(T(e,d,void 0,h))},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){ea(e)}},e.instrumentations&&(n=function(e,t){var r,n,a,o;let i=[],s=[];if(t.forEach(e=>e({instrument(e){null!=e.navigate&&i.push(e.navigate),null!=e.fetch&&s.push(e.fetch)}})),i.length>0){let t=eS(e.navigate),a=async(...r)=>{let n,[a,o]=r,s={to:"number"==typeof a||"string"==typeof a?a:a?S(a):".",...eA(e,o??{})};return ek(await eP(i,s,async()=>{if("number"==typeof a)return await t(...r);let o=ex(e,e=>{n=e});try{return await t(...r)}finally{o()}},e=>({...eL(e),meta:n})))};r=a,n=t,r[ev]=n,e.navigate=a}if(s.length>0){let t=eS(e.fetch),r=async(...r)=>{let n,[a,o,i,l]=r;return ek(await eP(s,{href:i??".",fetcherKey:a,...eA(e,l??{})},async()=>{let a=ex(e,e=>{n=e});try{return await t(...r)}finally{a()}},e=>({...eL(e),meta:n})))};a=r,o=t,a[ev]=o,e.fetch=r}return e}(n,e.instrumentations.map(e=>e.router).filter(Boolean))),n}function eW(e,t){v(e.length>0,"You must provide a non-empty routes array to createStaticHandler");let r={},n=(t?t.basename:null)||"/",a=t?.mapRouteProperties,o=a||(()=>({}));if({...t?.future},t?.instrumentations){let e=t.instrumentations;o=t=>({...a?.(t),...eR(e.map(e=>e.route).filter(Boolean),t)})}let i=T(e,o,void 0,r),s=j(i);async function l(e,{requestContext:t,filterMatchesToLoad:a,skipLoaderErrorBubbling:u,skipRevalidation:d,dataStrategy:h,generateMiddlewareResponse:f,normalizePath:m}={}){let p=e.method,y=R("",(m||eX)(e),null,"default"),g=$(i,y,n,!1,s);if(t=null!=t?t:new L,tj(p)||"HEAD"===p){if(!g){let e=tS(404,{pathname:y.pathname}),{matches:t,route:r}=tR(i),a={basename:n,location:y,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return f?f(()=>Promise.resolve(a)):a}}else{let e=tS(405,{method:p}),{matches:t,route:r}=tR(i),a={basename:n,location:y,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return f?f(()=>Promise.resolve(a)):a}if(f){v(t instanceof L,"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`");try{let s;await e6(g,r,o);let l=await e7({request:e,url:ey(e,y),pattern:ep(g),matches:g,params:g[0].params,context:t},async()=>await f(async(e,r={})=>{let o=await c(e,y,g,t,h||null,!0===u,null,"filterMatchesToLoad"in r?r.filterMatchesToLoad??null:a??null,!0===d);return t_(o)?o:s={location:y,basename:n,...o}}),async(e,t)=>{if(tN(e))return e;if(t_(e))try{e=new ef(e.status,e.statusText,await tl(e))}catch(t){e=t}if(tO(e)&&(e=tP(e)),s){t in s.loaderData&&(s.loaderData[t]=void 0);let r=eJ(i,s,e,u?t:tE(g,t).route.id);return f(()=>Promise.resolve(r))}{let r={matches:g,location:y,basename:n,loaderData:{},actionData:null,errors:{[u?t:tE(g,g.find(e=>e.route.id===t||e.route.loader)?.route.id||t).route.id]:e},statusCode:em(e)?e.status:500,actionHeaders:{},loaderHeaders:{}};return f(()=>Promise.resolve(r))}});return v(t_(l),"Expected a response in query()"),l}catch(e){if(t_(e))return e;throw e}}let w=await c(e,y,g,t,h||null,!0===u,null,a||null,!0===d);return t_(w)?w:{location:y,basename:n,...w}}async function u(e,{routeId:t,requestContext:a,dataStrategy:l,generateMiddlewareResponse:d,normalizePath:h}={}){let f=e.method,m=R("",(h||eX)(e),null,"default"),p=$(i,m,n,!1,s);if(a=null!=a?a:new L,tj(f)||"HEAD"===f||"OPTIONS"===f){if(!p)throw tS(404,{pathname:m.pathname})}else throw tS(405,{method:f});let y=t?p.find(e=>e.route.id===t):tU(p,m);if(t&&!y)throw tS(403,{pathname:m.pathname,routeId:t});if(!y)throw tS(404,{pathname:m.pathname});if(d)return v(a instanceof L,"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`"),await e6(p,r,o),await e7({request:e,url:ey(e,m),pattern:ep(p),matches:p,params:p[0].params,context:a},async()=>await d(async e=>{let t=g(await c(e,m,p,a,l||null,!1,y,null,!1));return t_(t)?t:"string"==typeof t?new Response(t):Response.json(t)}),e=>{if(tO(e))return Promise.resolve(tk(e));if(t_(e))return Promise.resolve(e);throw e});return g(await c(e,m,p,a,l||null,!1,y,null,!1));function g(e){if(t_(e))return e;let t=e.errors?Object.values(e.errors)[0]:void 0;if(void 0!==t)throw t;return e.actionData?Object.values(e.actionData)[0]:e.loaderData?Object.values(e.loaderData)[0]:void 0}}async function c(e,t,r,n,a,o,i,s,l){v(e.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(tF(e.method))return await d(e,t,r,i||tU(r,t),n,a,o,null!=i,s,l);let u=await h(e,t,r,n,a,o,i,s);return t_(u)?u:{...u,actionData:null,actionHeaders:{}}}catch(e){if(tD(e)&&t_(e.result)){if("error"===e.type)throw e.result;return e.result}if(tN(e))return e;throw e}}async function d(e,t,n,a,i,s,l,u,c,d){let m;if(a.route.action||a.route.lazy)m=(await f(e,t,to(o,r,e,t,n,a,[],i),u,i,s))[a.route.id],e.signal.aborted&&eY(e,u);else{let t=tS(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:a.route.id});if(u)throw t;m={type:"error",error:t}}if(tT(m))throw new Response(null,{status:m.response.status,headers:{Location:m.response.headers.get("Location")}});if(u){if(tM(m))throw m.error;return{matches:[a],loaderData:{},actionData:{[a.route.id]:m.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}if(d)if(!tM(m))return{actionData:{[a.route.id]:m.data},actionHeaders:m.headers?{[a.route.id]:m.headers}:{},matches:n,loaderData:{},errors:null,statusCode:m.statusCode||200,loaderHeaders:{}};else{let e=l?a:tE(n,a.route.id);return{statusCode:em(m.error)?m.error.status:null!=m.statusCode?m.statusCode:500,actionData:null,actionHeaders:{...m.headers?{[a.route.id]:m.headers}:{}},matches:n,loaderData:{},errors:{[e.route.id]:m.error},loaderHeaders:{}}}let p=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});return tM(m)?{...await h(p,t,n,i,s,l,null,c,[(l?a:tE(n,a.route.id)).route.id,m]),statusCode:em(m.error)?m.error.status:null!=m.statusCode?m.statusCode:500,actionData:null,actionHeaders:{...m.headers?{[a.route.id]:m.headers}:{}}}:{...await h(p,t,n,i,s,l,null,c),actionData:{[a.route.id]:m.data},...m.statusCode?{statusCode:m.statusCode}:{},actionHeaders:m.headers?{[a.route.id]:m.headers}:{}}}async function h(e,t,n,a,i,s,l,u,c){let d,h=null!=l;if(h&&!l?.route.loader&&!l?.route.lazy)throw tS(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:l?.route.id});if(l)d=to(o,r,e,t,n,l,[],a);else{let i=c&&tM(c[1])?n.findIndex(e=>e.route.id===c[0])-1:void 0,s=ep(n);d=n.map((n,l)=>null!=i&&l>i?ta(o,r,e,t,s,n,[],a,!1):ta(o,r,e,t,s,n,[],a,null!=(n.route.loader||n.route.lazy)&&(!u||u(n))))}if(!i&&!d.some(e=>e.shouldLoad))return{matches:n,loaderData:{},errors:c&&tM(c[1])?{[c[0]]:c[1].error}:null,statusCode:200,loaderHeaders:{}};let m=await f(e,t,d,h,a,i);return e.signal.aborted&&eY(e,h),{...tg(n,m,c,!0,s),matches:n}}async function f(e,t,r,a,o,i){let s=await ti(i||e9,e,t,r,null,o,!0),l={};return await Promise.all(r.map(async t=>{if(!(t.route.id in s))return;let o=s[t.route.id];if(tA(o))throw tc(o.result,e,t.route.id,r,n);if(a){if(t_(o.result))throw o;else if(tO(o.result))throw tk(o.result)}l[t.route.id]=await tu(o)})),l}return{dataRoutes:i,_internalRouteBranches:s,query:l,queryRoute:u}}function eJ(e,t,r,n){let a=n||t._deepestRenderedBoundaryId||e[0].id;return{...t,statusCode:em(r)?r.status:500,errors:{[a]:r}}}function eY(e,t){if(void 0!==e.signal.reason)throw e.signal.reason;throw Error(`${t?"queryRoute":"query"}() call aborted without an \`AbortSignal.reason\`: ${e.method} ${e.url}`)}function eX(e){let t=new URL(e.url);return{pathname:t.pathname,search:t.search,hash:t.hash}}function eV(e,t,r,n,a,o){let i,s;if(a){for(let e of(i=[],t))if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=ee(n||".",Q(i),X(e.pathname,r)||e.pathname,"path"===o);if(null==n&&(l.search=e.search,l.hash=e.hash),(null==n||""===n||"."===n)&&s){let e=tH(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();l.search=r?`?${r}`:""}}return"/"!==r&&(l.pathname=function({basename:e,pathname:t}){return"/"===t?e:er([e,t])}({basename:r,pathname:l.pathname})),S(l)}function eG(e,t,r){let n,a;if(!r||!(null!=r&&("formData"in r&&null!=r.formData||"body"in r&&void 0!==r.body)))return{path:t};if(r.formMethod&&!tj(r.formMethod))return{path:t,error:tS(405,{method:r.formMethod})};let o=()=>({path:t,error:tS(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=tC(t);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!tF(i))return o();let e="string"==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((e,[t,r])=>`${e}${t}=${r}
|
|
2
|
+
`,""):String(r.body);return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}else if("application/json"===r.formEncType){if(!tF(i))return o();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if(v("function"==typeof FormData,"FormData is not available in this environment"),r.formData)n=tp(r.formData),a=r.formData;else if(r.body instanceof FormData)n=tp(r.body),a=r.body;else if(r.body instanceof URLSearchParams)a=ty(n=r.body);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=ty(n)}catch(e){return o()}let l={formMethod:i,formAction:s,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(tF(l.formMethod))return{path:t,submission:l};let u=x(t);return e&&u.search&&tH(u.search)&&n.append("index",""),u.search=`?${n}`,{path:S(u),submission:l}}function eK(e,t,r,n,a,o,i,s,l,u,c,d,h,f,m,p,y,g,w,v,b,E){let R,S=b?tM(b[1])?b[1].error:b[1].data:void 0,x=a.createURL(o.location),C=a.createURL(l);if(c&&o.errors){let e=Object.keys(o.errors)[0];R=i.findIndex(t=>t.route.id===e)}else if(b&&tM(b[1])){let e=b[0];R=i.findIndex(t=>t.route.id===e)-1}let k=b?b[1].statusCode:void 0,P=k&&k>=400,L={currentUrl:x,currentParams:o.matches[0]?.params||{},nextUrl:C,nextParams:i[0].params,...s,actionResult:S,actionStatus:k},D=ep(i),A=i.map((a,i)=>{var s,h,f,m,p;let y,{route:g}=a,w=null;if(null!=R&&i>R)w=!1;else if(g.lazy)w=!0;else if(eZ(g))if(c){let{shouldLoad:e}=eQ(g,o.loaderData,o.errors);w=e}else{let e,t;s=o.loaderData,h=o.matches[i],f=a,e=!h||f.route.id!==h.route.id,t=!s.hasOwnProperty(f.route.id),(e||t)&&(w=!0)}else w=!1;if(null!==w)return ta(r,n,e,l,D,a,u,t,w);let v=!1;"boolean"==typeof E?v=E:P?v=!1:d||x.pathname+x.search===C.pathname+C.search||x.search!==C.search?v=!0:(m=o.matches[i],p=a,y=m.route.path,(m.pathname!==p.pathname||null!=y&&y.endsWith("*")&&m.params["*"]!==p.params["*"])&&(v=!0));let b={...L,defaultShouldRevalidate:v};return ta(r,n,e,l,D,a,u,t,e0(a,b),b,E)}),M=[];return m.forEach((e,s)=>{if(c||!i.some(t=>t.route.id===e.routeId)||f.has(s))return;let l=o.fetchers.get(s),m=l&&"idle"!==l.state&&void 0===l.data,b=$(y,e.path,g??"/",!1,v);if(!b){if(w&&m)return;M.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(p.has(s))return;let R=tU(b,e.path),S=new AbortController,x=tm(a,e.path,S.signal),C=null;if(h.has(s))h.delete(s),C=to(r,n,x,e.path,b,R,u,t);else if(m)d&&(C=to(r,n,x,e.path,b,R,u,t));else{let a={...L,defaultShouldRevalidate:"boolean"==typeof E?E:!P&&d};e0(R,a)&&(C=to(r,n,x,e.path,b,R,u,t,a))}C&&M.push({key:s,routeId:e.routeId,path:e.path,matches:C,match:R,request:x,controller:S})}),{dsMatches:A,revalidatingFetchers:M}}function eZ(e){return null!=e.loader||null!=e.middleware&&e.middleware.length>0}function eQ(e,t,r){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!eZ(e))return{shouldLoad:!1,renderFallback:!1};let n=null!=t&&e.id in t,a=null!=r&&void 0!==r[e.id];if(!n&&a)return{shouldLoad:!1,renderFallback:!1};if("function"==typeof e.loader&&!0===e.loader.hydrate)return{shouldLoad:!0,renderFallback:!n};let o=!n&&!a;return{shouldLoad:o,renderFallback:o}}function e0(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function e1(e,t,r,n,a,o){let i;if(e){let t=n[e];v(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),i=t.children}else i=r.activeRoutes;let s=[],l=[];if(t.forEach(e=>{let t=i.find(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||(t.children?.every((t,n)=>r.children?.some(r=>e(t,r)))??!1))})(e,t));t?l.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=T(s,a,[e||"_","patch",String(i?.length||"0")],n);i.push(...t)}if(o&&l.length>0)for(let e=0;e<l.length;e++){let{existingRoute:t,newRoute:r}=l[e],[n]=T([r],a,[],{},!0);Object.assign(t,{element:n.element?n.element:t.element,errorElement:n.errorElement?n.errorElement:t.errorElement,hydrateFallbackElement:n.hydrateFallbackElement?n.hydrateFallbackElement:t.hydrateFallbackElement})}r.hasHMRRoutes||r.setRoutes([...r.activeRoutes])}let e2=new WeakMap,e4=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(v(a,"No route found in manifest"),!a.lazy||"object"!=typeof a.lazy)return;let o=a.lazy[e];if(!o)return;let i=e2.get(a);i||(i={},e2.set(a,i));let s=i[e];if(s)return s;let l=(async()=>{let t=D.has(e),r=void 0!==a[e];if(t)b(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(r)b(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await o();null!=t&&(Object.assign(a,{[e]:t}),Object.assign(a,n(a)))}"object"==typeof a.lazy&&(a.lazy[e]=void 0,Object.values(a.lazy).every(e=>void 0===e)&&(a.lazy=void 0))})();return i[e]=l,l},e5=new WeakMap;function e3(e){return void 0!==e}function e6(e,t,r){let n=e.map(({route:e})=>{if("object"==typeof e.lazy&&e.lazy.middleware)return e4({key:"middleware",route:e,manifest:t,mapRouteProperties:r})}).filter(e3);return n.length>0?Promise.all(n):void 0}async function e9(e){let t=e.matches.filter(e=>e.shouldLoad),r={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,n)=>{r[t[n].route.id]=e}),r}async function e8(e){return e.matches.some(e=>e.route.middleware)?te(e,()=>e9(e)):e9(e)}function e7(e,t,r){return tt(e,t,function(e){return tO(e)?tk(e):e},t_,r)}function te(e,t){return tt(e,t,e=>{if(tN(e))throw e;return e},tL,r);async function r(t,r,n){if(n)return Object.assign(n.value,{[r]:{type:"error",result:t}});{let{matches:n}=e,a=Math.min(Math.max(n.findIndex(e=>e.route.id===r),0),Math.max(n.findIndex(e=>e.shouldCallHandler()),0)),o=n[a].route.id;for(let e of n.slice(0,a+1))try{await e._lazyPromises?.route}catch{o=e.route.id;break}return{[tE(n,o).route.id]:{type:"error",result:t}}}}}async function tt(e,t,r,n,a){let{matches:o,...i}=e;return await tr(i,o.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,r,n,a)}async function tr(e,t,r,n,a,o,i=0){let s,{request:l}=e;if(l.signal.aborted)throw l.signal.reason??Error(`Request aborted: ${l.method} ${l.url}`);let u=t[i];if(!u)return await r();let[c,d]=u,h=async()=>{if(s)throw Error("You may only call `next()` once per middleware");try{return(s={value:await tr(e,t,r,n,a,o,i+1)}).value}catch(e){return(s={value:await o(e,c,s)}).value}};try{let t=await d(e,h),r=null!=t?n(t):void 0;if(a(r))return r;if(s)return r??s.value;return(s={value:await h()}).value}catch(e){return await o(e,c,s)}}function tn(e,t,r,n,a){let o=e4({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=function(e,t,r,n,a){let o,i=r[e.id];if(v(i,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=e5.get(i);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let r=(async()=>{v("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),r={};for(let e in t){let n=t[e];if(void 0===n)continue;let a=A.has(e),o=void 0!==i[e];a?b(!a,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):o?b(!o,`Route "${i.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):r[e]=n}Object.assign(i,r),Object.assign(i,{...n(i),lazy:void 0})})();return e5.set(i,r),r.catch(()=>{}),{lazyRoutePromise:r,lazyHandlerPromise:r}}let s=Object.keys(e.lazy),l=[];for(let i of s){if(a&&a.includes(i))continue;let s=e4({key:i,route:e,manifest:r,mapRouteProperties:n});s&&(l.push(s),i===t&&(o=s))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:o}}(n.route,tF(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function ta(e,t,r,n,a,o,i,s,l,u=null,c){let d=!1,h=tn(e,t,r,o,i);return{...o,_lazyPromises:h,shouldLoad:l,shouldRevalidateArgs:u,shouldCallHandler:e=>(d=!0,u)?"boolean"==typeof c?e0(o,{...u,defaultShouldRevalidate:c}):"boolean"==typeof e?e0(o,{...u,defaultShouldRevalidate:e}):e0(o,u):l,resolve(e){let{lazy:t,loader:i,middleware:u}=o.route,c=d||l||e&&!tF(r.method)&&(t||i),f=u&&u.length>0&&!i&&!t;return c&&(tF(r.method)||!f)?ts({request:r,path:n,pattern:a,match:o,lazyHandlerPromise:h?.handler,lazyRoutePromise:h?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:"data",result:void 0})}}}function to(e,t,r,n,a,o,i,s,l=null){return a.map(u=>u.route.id!==o.route.id?{...u,shouldLoad:!1,shouldRevalidateArgs:l,shouldCallHandler:()=>!1,_lazyPromises:tn(e,t,r,u,i),resolve:()=>Promise.resolve({type:"data",result:void 0})}:ta(e,t,r,n,ep(a),u,i,s,!0,l))}async function ti(e,t,r,n,a,o,i){n.some(e=>e._lazyPromises?.middleware)&&await Promise.all(n.map(e=>e._lazyPromises?.middleware));let s={request:t,url:ey(t,r),pattern:ep(n),params:n[0].params,context:o,matches:n},l=i?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>te(s,()=>e({...s,fetcherKey:a,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}})),u=await e({...s,fetcherKey:a,runClientMiddleware:l});try{await Promise.all(n.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return u}async function ts({request:e,path:t,pattern:r,match:n,lazyHandlerPromise:a,lazyRoutePromise:o,handlerOverride:i,scopedContext:s}){let l,u,c=tF(e.method),d=c?"action":"loader",h=a=>{let o,l=new Promise((e,t)=>o=t);u=()=>o(),e.signal.addEventListener("abort",u);let c=o=>"function"!=typeof a?Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${n.route.id}]`)):a({request:e,url:ey(e,t),pattern:r,params:n.params,context:s},...void 0!==o?[o]:[]);return Promise.race([(async()=>{try{return{type:"data",result:await (i?i(e=>c(e)):c())}}catch(e){return{type:"error",result:e}}})(),l])};try{let t=c?n.route.action:n.route.loader;if(a||o)if(t){let e,[r]=await Promise.all([h(t).catch(t=>{e=t}),a,o]);if(void 0!==e)throw e;l=r}else{await a;let t=c?n.route.action:n.route.loader;if(t)[l]=await Promise.all([h(t),o]);else{if("action"!==d)return{type:"data",result:void 0};let t=new URL(e.url),r=t.pathname+t.search;throw tS(405,{method:e.method,pathname:r,routeId:n.route.id})}}else if(t)l=await h(t);else{let t=new URL(e.url);throw tS(404,{pathname:t.pathname+t.search})}}catch(e){return{type:"error",result:e}}finally{u&&e.signal.removeEventListener("abort",u)}return l}async function tl(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}async function tu(e){let{result:t,type:r}=e;if(t_(t)){let e;try{e=await tl(t)}catch(e){return{type:"error",error:e}}return"error"===r?{type:"error",error:new ef(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}if("error"===r)return tO(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:tP(t),statusCode:em(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:em(t)?t.status:void 0};return tO(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function tc(e,t,r,n,a){let o,i=e.headers.get("Location");if(v(i,"Redirects returned/thrown from loaders/actions must have a Location header"),o=i,!c.test(o)){let o=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=eV(new URL(t.url),o,a,i),e.headers.set("Location",i)}return e}let td=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function th(e){try{return td.includes(new URL(e).protocol)}catch{return!1}}function tf(e,t,r,n){if(c.test(e)){let n=new URL(d.test(e)?h(e,t.protocol):e);if(th(n.toString()))throw Error("Invalid redirect location");let a=null!=X(n.pathname,r);if(n.origin===t.origin&&a)return et(n.pathname)+n.search+n.hash}try{if(th(n.createURL(e).toString()))throw Error("Invalid redirect location")}catch(e){}return e}function tm(e,t,r,n){let a=e.createURL(tC(t)).toString(),o={signal:r};if(n&&tF(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=tp(n.formData):o.body=n.formData}return new Request(a,o)}function tp(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function ty(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function tg(e,t,r,n=!1,a=!1){let o,i={},s=null,l=!1,u={},c=r&&tM(r[1])?r[1].error:void 0;return e.forEach(r=>{if(!(r.route.id in t))return;let d=r.route.id,h=t[d];if(v(!tT(h),"Cannot handle redirect results in processLoaderData"),tM(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=tE(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[d]=eI),l||(l=!0,o=em(h.error)?h.error.status:500),h.headers&&(u[d]=h.headers)}else i[d]=h.data,h.statusCode&&200!==h.statusCode&&!l&&(o=h.statusCode),h.headers&&(u[d]=h.headers)}),void 0!==c&&r&&(s={[r[0]]:c},r[2]&&(i[r[2]]=void 0)),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}function tw(e,t,r,n,a,o,i){let{loaderData:s,errors:l}=tg(t,r,n);return a.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:r,match:n,controller:a}=t;if(a&&a.signal.aborted)return;let s=o[r];if(v(s,"Did not find corresponding fetcher result"),tM(s)){let t=tE(e.matches,n?.route.id);l&&l[t.route.id]||(l={...l,[t.route.id]:s.error}),i.delete(r)}else if(tT(s))v(!1,"Unhandled fetcher revalidation redirect");else{let e=tW(s.data);i.set(r,e)}}),{loaderData:s,errors:l}}function tv(e,t,r,n){let a=Object.entries(t).filter(([,e])=>e!==eI).reduce((e,[t,r])=>(e[t]=r,e),{});for(let o of r){let r=o.route.id;if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function tb(e){return e?tM(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function tE(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>null!=e.route.ErrorBoundary||null!=e.route.errorElement)||e[0]}function tR(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function tS(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(i="Bad Request",n&&t&&r?s=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:"invalid-body"===a&&(s="Unable to encode submission body")):403===e?(i="Forbidden",s=`Route "${r}" does not match URL "${t}"`):404===e?(i="Not Found",s=`No route matches URL "${t}"`):405===e&&(i="Method Not Allowed",n&&t&&r?s=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(s=`Invalid request method "${n.toUpperCase()}"`)),new ef(e||500,i,Error(s),!0)}function tx(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(tT(n))return{key:r,result:n}}}function tC(e){return S({..."string"==typeof e?x(e):e,hash:""})}function tk(e){return Response.json(e.data,e.init??void 0)}function tP(e){return new ef(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function tL(e){return null!=e&&"object"==typeof e&&Object.entries(e).every(([e,t])=>"string"==typeof e&&tD(t))}function tD(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&("data"===e.type||"error"===e.type)}function tA(e){return t_(e.result)&&eN.has(e.result.status)}function tM(e){return"error"===e.type}function tT(e){return"redirect"===(e&&e.type)}function tO(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function t_(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function t$(e){return eN.has(e)}function tN(e){return t_(e)&&t$(e.status)&&e.headers.has("Location")}function tj(e){return e$.has(e.toUpperCase())}function tF(e){return e_.has(e.toUpperCase())}function tH(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function tU(e,t){let r="string"==typeof t?x(t).search:t.search;if(e[e.length-1].route.index&&tH(r||""))return e[e.length-1];let n=Z(e);return n[n.length-1]}function tz(e,t,r){return{url:ey(e.createURL(t),t),pattern:r?ep(r):"",params:r?.[0]?.params?{...r[0].params}:{}}}function tI(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function tB(e,t,r,n){return n?{state:"loading",location:e,matches:t,historyAction:r,formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}:{state:"loading",location:e,matches:t,historyAction:r,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function tq(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function tW(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function tJ(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}let tY=s.createContext(null);tY.displayName="DataRouter";let tX=s.createContext(null);tX.displayName="DataRouterState";let tV=s.createContext(!1);function tG(){return s.useContext(tV)}let tK=s.createContext({isTransitioning:!1});tK.displayName="ViewTransition";let tZ=s.createContext(new Map);tZ.displayName="Fetchers";let tQ=s.createContext(null);tQ.displayName="Await";let t0=e=>s.createElement(tQ.Provider,e),t1=s.createContext(null);t1.displayName="Navigation";let t2=s.createContext(null);t2.displayName="Location";let t4=s.createContext({outlet:null,matches:[],isDataRoute:!1});t4.displayName="Route";let t5=s.createContext(null);t5.displayName="RouteError";let t3="REACT_ROUTER_ERROR";function t6(e){if(e.startsWith(`${t3}:REDIRECT:{`))try{let t=JSON.parse(e.slice(28));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText&&"string"==typeof t.location&&"boolean"==typeof t.reloadDocument&&"boolean"==typeof t.replace)return t}catch{}}function t9(e){if(e.startsWith(`${t3}:ROUTE_ERROR_RESPONSE:{`))try{let t=JSON.parse(e.slice(40));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText)return new ef(t.status,t.statusText,t.data)}catch{}}function t8(e,{relative:t}={}){v(t7(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=s.useContext(t1),{hash:a,pathname:o,search:i}=ru(e,{relative:t}),l=o;return"/"!==r&&(l="/"===o?r:er([r,o])),n.createHref({pathname:l,search:i,hash:a})}function t7(){return null!=s.useContext(t2)}function re(){return v(t7(),"useLocation() may be used only in the context of a <Router> component."),s.useContext(t2).location}function rt(){return s.useContext(t2).navigationType}function rr(e){v(t7(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=re();return s.useMemo(()=>q(e,Y(t)),[t,e])}let rn="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ra(){let{isDataRoute:e}=s.useContext(t4);return e?function(){let{router:e}=rv("useNavigate"),t=rE("useNavigate"),r=s.useRef(!1);return s.useLayoutEffect(()=>{r.current=!0}),s.useCallback(async(n,a={})=>{b(r.current,rn),r.current&&("number"==typeof n?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...a}))},[e,t])}():function(){v(t7(),"useNavigate() may be used only in the context of a <Router> component.");let e=s.useContext(tY),{basename:t,navigator:r}=s.useContext(t1),{matches:n}=s.useContext(t4),{pathname:a}=re(),o=JSON.stringify(Q(n)),i=s.useRef(!1);return s.useLayoutEffect(()=>{i.current=!0}),s.useCallback((n,s={})=>{if(b(i.current,rn),!i.current)return;if("number"==typeof n)return void r.go(n);let l=ee(n,JSON.parse(o),a,"path"===s.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:er([t,l.pathname])),(s.replace?r.replace:r.push)(l,s.state,s)},[t,r,o,a,e])}()}let ro=s.createContext(null);function ri(){return s.useContext(ro)}function rs(e){let t=s.useContext(t4).outlet;return s.useMemo(()=>t&&s.createElement(ro.Provider,{value:e},t),[t,e])}function rl(){let{matches:e}=s.useContext(t4);return e[e.length-1]?.params??{}}function ru(e,{relative:t}={}){let{matches:r}=s.useContext(t4),{pathname:n}=re(),a=JSON.stringify(Q(r));return s.useMemo(()=>ee(e,JSON.parse(a),n,"path"===t),[e,a,n,t])}function rc(e,t){return rd(e,t)}function rd(e,t,r){let n;v(t7(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=s.useContext(t1),{matches:o}=s.useContext(t4),i=o[o.length-1],l=i?i.params:{};i&&i.pathname;let u=i?i.pathnameBase:"/";i&&i.route;let c=re();if(t){let e="string"==typeof t?x(t):t;v("/"===u||e.pathname?.startsWith(u),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${e.pathname}" was given in the \`location\` prop.`),n=e}else n=c;let d=n.pathname||"/",h=d;if("/"!==u){let e=u.replace(/^\//,"").split("/");h="/"+d.replace(/^\//,"").split("/").slice(e.length).join("/")}let f=r&&r.state.matches.length?r.state.matches.map(e=>Object.assign(e,{route:r.manifest[e.route.id]||e.route})):_(e,{pathname:h}),m=rg(f&&f.map(e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:er([u,a.encodeLocation?a.encodeLocation(e.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:er([u,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),o,r);return t&&m?s.createElement(t2.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...n},navigationType:"POP"}},m):m}let rh=s.createElement(function(){let e=rL(),t=em(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null;return s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),r?s.createElement("pre",{style:{padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"}},r):null,null)},null);var rf=class extends s.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static contextType=tV;static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&"object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){let t=t9(e.digest);t&&(e=t)}let t=void 0!==e?s.createElement(t4.Provider,{value:this.props.routeContext},s.createElement(t5.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?s.createElement(rp,{error:e},t):t}};let rm=new WeakMap;function rp({children:e,error:t}){let{basename:r}=s.useContext(t1);if("object"==typeof t&&t&&"digest"in t&&"string"==typeof t.digest){let e=t6(t.digest);if(e){let n=rm.get(t);if(n)throw n;let a=ew(e.location,r),o=a.absoluteURL||a.to;if(th(o))throw Error("Invalid redirect location");if(eg&&!rm.get(t))if(a.isExternal||e.reloadDocument)window.location.href=o;else{let r=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw rm.set(t,r),r}return s.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o}`})}}return e}function ry({routeContext:e,match:t,children:r}){let n=s.useContext(tY);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),s.createElement(t4.Provider,{value:e},r)}function rg(e,t=[],r){let n=r?.state;if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let a=e,o=n?.errors;if(null!=o){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);v(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,e+1))}let i=!1,l=-1;if(r&&n){i=n.renderFallback;for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(l=e),t.route.id){let{loaderData:e,errors:o}=n,s=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!o||void 0===o[t.route.id]);if(t.route.lazy||s){r.isStatic&&(i=!0),a=l>=0?a.slice(0,l+1):[a[0]];break}}}}let u=r?.onError,c=n&&u?(e,t)=>{u(e,{location:n.location,params:n.matches?.[0]?.params??{},pattern:ep(n.matches),errorInfo:t})}:void 0;return a.reduceRight((e,r,u)=>{var d,h;let f,m=!1,p=null,y=null;n&&(f=o&&r.route.id?o[r.route.id]:void 0,p=r.route.errorElement||rh,i&&(l<0&&0===u?(d="route-fallback",h="No `HydrateFallback` element provided to render during initial hydration",rO[d]||(rO[d]=!0,b(!1,h)),m=!0,y=null):l===u&&(m=!0,y=r.route.hydrateFallbackElement||null)));let g=t.concat(a.slice(0,u+1)),w=()=>{let t;return t=f?p:m?y:r.route.Component?s.createElement(r.route.Component,null):r.route.element?r.route.element:e,s.createElement(ry,{match:r,routeContext:{outlet:e,matches:g,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===u)?s.createElement(rf,{location:n.location,revalidation:n.revalidation,component:p,error:f,children:w(),routeContext:{outlet:null,matches:g,isDataRoute:!0},onError:c}):w()},null)}function rw(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function rv(e){let t=s.useContext(tY);return v(t,rw(e)),t}function rb(e){let t=s.useContext(tX);return v(t,rw(e)),t}function rE(e){let t,r=(v(t=s.useContext(t4),rw(e)),t),n=r.matches[r.matches.length-1];return v(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function rR(){let e=rb("useNavigation");return s.useMemo(()=>{let{matches:t,historyAction:r,...n}=e.navigation;return n},[e.navigation])}function rS(){let e=rv("useRevalidator"),t=rb("useRevalidator"),r=s.useCallback(async()=>{await e.router.revalidate()},[e.router]);return s.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function rx(){let{matches:e,loaderData:t}=rb("useMatches");return s.useMemo(()=>e.map(e=>N(e,t)),[e,t])}function rC(){let e=rb("useLoaderData"),t=rE("useLoaderData");return e.loaderData[t]}function rk(e){return rb("useRouteLoaderData").loaderData[e]}function rP(){let e=rb("useActionData"),t=rE("useLoaderData");return e.actionData?e.actionData[t]:void 0}function rL(){let e=s.useContext(t5),t=rb("useRouteError"),r=rE("useRouteError");return void 0!==e?e:t.errors?.[r]}function rD(){return s.useContext(tQ)?._data}function rA(){return s.useContext(tQ)?._error}let rM=0;function rT(e){let{router:t,basename:r}=rv("useBlocker"),n=rb("useBlocker"),[a,o]=s.useState(""),i=s.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:{...n,pathname:X(n.pathname,r)||n.pathname},nextLocation:{...a,pathname:X(a.pathname,r)||a.pathname},historyAction:o})},[r,e]);return s.useEffect(()=>{let e=String(++rM);return o(e),()=>t.deleteBlocker(e)},[t]),s.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):eU}let rO={};function r_(...e){let t=rE("useRoute"),r=e[0]??t,n=rb("useRoute"),a=n.matches.find(({route:e})=>e.id===r);if(void 0!==a)return{handle:a.route.handle,loaderData:n.loaderData[r],actionData:n.actionData?.[r]}}function r$(e){return{id:e.route.id,pathname:e.pathname,params:e.params,handle:e.route.handle}}function rN(){let{location:e,historyAction:t,matches:r,navigation:n}=rb("unstable_useRouterState"),a=s.useMemo(()=>({type:t,location:e,searchParams:new URLSearchParams(e.search),params:r[r.length-1]?.params??{},matches:r.map(e=>r$(e))}),[e,r,t]),o=s.useMemo(()=>{if("idle"===n.state)return null;let e={type:n.historyAction,location:n.location,searchParams:new URLSearchParams(n.location.search),params:n.matches[n.matches.length-1]?.params??{},matches:n.matches.map(e=>r$(e))};return"loading"===n.state?{...e,state:"loading",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}:{...e,state:"submitting",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}},[n]);return s.useMemo(()=>({active:a,pending:o}),[a,o])}let rj={};function rF(e,t){e||rj[t]||(rj[t]=!0,console.warn(t))}let rH=["HydrateFallback","hydrateFallbackElement"];function rU(e,t){return eq({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:y({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:e,mapRouteProperties:M,hydrationRouteProperties:rH,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,instrumentations:t?.instrumentations}).initialize()}var rz=class{status="pending";promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}};function rI({router:e,flushSync:t,onError:r,useTransitions:n}){n=tG()||n;let[a,o]=s.useState(e.state),[i,l]=(0,s.useOptimistic)(a),[u,c]=s.useState(),[d,h]=s.useState({isTransitioning:!1}),[f,m]=s.useState(),[p,y]=s.useState(),[g,w]=s.useState(),v=s.useRef(new Map),b=s.useCallback((a,{deletedFetchers:i,newErrors:u,flushSync:d,viewTransitionOpts:g})=>{u&&r&&Object.values(u).forEach(e=>r(e,{location:a.location,params:a.matches[0]?.params??{},pattern:ep(a.matches)})),a.fetchers.forEach((e,t)=>{void 0!==e.data&&v.current.set(t,e.data)}),i.forEach(e=>v.current.delete(e)),rF(!1===d||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(rF(null==g||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!g||!b)return void(t&&d?t(()=>o(a)):!1===n?o(a):s.startTransition(()=>{!0===n&&l(e=>rB(e,a)),o(a)}));if(t&&d){t(()=>{p&&(f?.resolve(),p.skipTransition()),h({isTransitioning:!0,flushSync:!0,currentLocation:g.currentLocation,nextLocation:g.nextLocation})});let r=e.window.document.startViewTransition(()=>{t(()=>o(a))});r.finished.finally(()=>{t(()=>{m(void 0),y(void 0),c(void 0),h({isTransitioning:!1})})}),t(()=>y(r));return}p?(f?.resolve(),p.skipTransition(),w({state:a,currentLocation:g.currentLocation,nextLocation:g.nextLocation})):(c(a),h({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}))},[e.window,t,p,f,n,l,r]);s.useLayoutEffect(()=>e.subscribe(b),[e,b]),s.useEffect(()=>{d.isTransitioning&&!d.flushSync&&m(new rz)},[d]),s.useEffect(()=>{if(f&&u&&e.window){let t=f.promise,r=e.window.document.startViewTransition(async()=>{!1===n?o(u):s.startTransition(()=>{!0===n&&l(e=>rB(e,u)),o(u)}),await t});r.finished.finally(()=>{m(void 0),y(void 0),c(void 0),h({isTransitioning:!1})}),y(r)}},[u,f,e.window,n,l]),s.useEffect(()=>{f&&u&&i.location.key===u.location.key&&f.resolve()},[f,p,i.location,u]),s.useEffect(()=>{!d.isTransitioning&&g&&(c(g.state),h({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),w(void 0))},[d.isTransitioning,g]);let E=s.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,r,n)=>e.navigate(t,{state:r,preventScrollReset:n?.preventScrollReset}),replace:(t,r,n)=>e.navigate(t,{replace:!0,state:r,preventScrollReset:n?.preventScrollReset})}),[e]),R=e.basename||"/",S=s.useMemo(()=>({router:e,navigator:E,static:!1,basename:R,onError:r}),[e,E,R,r]);return s.createElement(s.Fragment,null,s.createElement(tY.Provider,{value:S},s.createElement(tX.Provider,{value:i},s.createElement(tZ.Provider,{value:v.current},s.createElement(tK.Provider,{value:d},s.createElement(rG,{basename:R,location:i.location,navigationType:i.historyAction,navigator:E,useTransitions:n},s.createElement(rq,{routes:e.routes,manifest:e.manifest,future:e.future,state:i,isStatic:!1,onError:r})))))),null)}function rB(e,t){return{...e,navigation:"idle"!==t.navigation.state?t.navigation:e.navigation,revalidation:"idle"!==t.revalidation?t.revalidation:e.revalidation,actionData:"submitting"!==t.navigation.state?t.actionData:e.actionData,fetchers:t.fetchers}}let rq=s.memo(rW);function rW({routes:e,manifest:t,future:r,state:n,isStatic:a,onError:o}){return rd(e,void 0,{manifest:t,state:n,isStatic:a,onError:o,future:r})}function rJ({basename:e,children:t,initialEntries:r,initialIndex:n,useTransitions:a}){let o=s.useRef(null);null==o.current&&(o.current=y({initialEntries:r,initialIndex:n,v5Compat:!0}));let i=o.current,[l,u]=s.useState({action:i.action,location:i.location}),c=s.useCallback(e=>{!1===a?u(e):s.startTransition(()=>u(e))},[a]);return s.useLayoutEffect(()=>i.listen(c),[i,c]),s.createElement(rG,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:i,useTransitions:a})}function rY({to:e,replace:t,state:r,relative:n}){v(t7(),"<Navigate> may be used only in the context of a <Router> component.");let{static:a}=s.useContext(t1);b(!a,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:o}=s.useContext(t4),{pathname:i}=re(),l=ra(),u=JSON.stringify(ee(e,Q(o),i,"path"===n));return s.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:n})},[l,u,n,t,r]),null}function rX(e){return rs(e.context)}function rV(e){v(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function rG({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1,useTransitions:i}){v(!t7(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),u=s.useMemo(()=>({basename:l,navigator:a,static:o,useTransitions:i,future:{}}),[l,a,o,i]);"string"==typeof r&&(r=x(r));let{pathname:c="/",search:d="",hash:h="",state:f=null,key:m="default",mask:p}=r,y=s.useMemo(()=>{let e=X(c,l);return null==e?null:{location:{pathname:e,search:d,hash:h,state:f,key:m,mask:p},navigationType:n}},[l,c,d,h,f,m,n,p]);return(b(null!=y,`<Router basename="${l}"> is not able to match the URL "${c}${d}${h}" because it does not start with the basename, so the <Router> won't render anything.`),null==y)?null:s.createElement(t1.Provider,{value:u},s.createElement(t2.Provider,{children:t,value:y}))}function rK({children:e,location:t}){return rd(r1(e),t)}function rZ({children:e,errorElement:t,resolve:r}){let n=s.useContext(tY),a=s.useContext(tX),o=s.useCallback((e,t)=>{n&&n.onError&&a&&n.onError(e,{location:a.location,params:a.matches[0]?.params||{},pattern:ep(a.matches),errorInfo:t})},[n,a]);return s.createElement(rQ,{resolve:r,errorElement:t,onError:o},s.createElement(r0,null,e))}var rQ=class extends s.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=0;if(r instanceof Promise)if(this.state.error){a=2;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?2:+("_data"in n):(a=0,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>{this.props.onError?.(e),Object.defineProperty(r,"_error",{get:()=>e})}));else a=1,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(2===a&&!t)throw n._error;if(2===a)return s.createElement(tQ.Provider,{value:n,children:t});if(1===a)return s.createElement(tQ.Provider,{value:n,children:e});throw n}};function r0({children:e}){let t=rD(),r="function"==typeof e?e(t):e;return s.createElement(s.Fragment,null,r)}function r1(e,t=[]){let r=[];return s.Children.forEach(e,(e,n)=>{if(!s.isValidElement(e))return;let a=[...t,n];if(e.type===s.Fragment)return void r.push.apply(r,r1(e.props.children,a));v(e.type===rV,`[${"string"==typeof e.type?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`);let o=e.props;v(!o.index||!o.children,"An index route cannot have child routes.");let i={id:o.id||a.join("-"),caseSensitive:o.caseSensitive,element:o.element,Component:o.Component,index:o.index,path:o.path,middleware:o.middleware,loader:o.loader,action:o.action,hydrateFallbackElement:o.hydrateFallbackElement,HydrateFallback:o.HydrateFallback,errorElement:o.errorElement,ErrorBoundary:o.ErrorBoundary,shouldRevalidate:o.shouldRevalidate,handle:o.handle,lazy:o.lazy};o.children&&(i.children=r1(o.children,a)),r.push(i)}),r}let r2=r1;function r4(e){return rg(e)}function r5(){return{params:rl(),loaderData:rC(),actionData:rP(),matches:rx()}}function r3({children:e}){let t=r5();return s.cloneElement(e,t)}function r6(e){return function(){let t=r5();return s.createElement(e,t)}}function r9(){return{params:rl(),loaderData:rC(),actionData:rP()}}function r8({children:e}){let t=r9();return s.cloneElement(e,t)}function r7(e){return function(){let t=r9();return s.createElement(e,t)}}function ne(){return{params:rl(),loaderData:rC(),actionData:rP(),error:rL()}}function nt({children:e}){let t=ne();return s.cloneElement(e,t)}function nr(e){return function(){let t=ne();return s.createElement(e,t)}}function nn(e){return s.createElement(rI,{flushSync:u.flushSync,...e})}function na(e,t){if(!1===e||null==e)throw Error(t)}let no={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ni=/[&><\u2028\u2029]/g;function ns(e){return e.replace(ni,e=>no[e])}var nl=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};let nu=()=>Date.now(),nc=()=>new Promise(e=>setTimeout(e,0));async function nd(e){let{indices:t}=this,r=t.get(e);if(r)return[r];if(void 0===e)return -7;if(null===e)return -5;if(Number.isNaN(e))return -2;if(1/0===e)return -6;if(-1/0===e)return -3;if(0===e&&1/e<0)return -4;let n=this.index++;t.set(e,n);let a=[[e,n]];return await nh.call(this,a),n}async function nh(e){let{deferred:t,indices:r,plugins:n,postPlugins:a}=this,o=this.stringified,i=nu(),s=t=>{let n=r.get(t);if(n)return[n];if(void 0===t)return -7;if(null===t)return -5;if(Number.isNaN(t))return -2;if(1/0===t)return -6;if(-1/0===t)return -3;if(0===t&&1/t<0)return -4;let a=this.index++;return r.set(t,a),e.push([t,a]),a},l=0;for(;e.length>0;){let r=nu();++l%6e3==0&&r-i>=1&&(await nc(),i=nu());let[u,c]=e.pop(),d=e=>Object.keys(e).map(t=>`"_${s(t)}":${s(e[t])}`).join(","),h=null;switch(typeof u){case"boolean":case"number":case"string":o[c]=JSON.stringify(u);break;case"bigint":o[c]=`["B","${u}"]`;break;case"symbol":{let e=Symbol.keyFor(u);e?o[c]=`["Y",${JSON.stringify(e)}]`:h=Error("Cannot encode symbol unless created with Symbol.for()");break}case"object":{if(!u){o[c]="-5";break}let e=Array.isArray(u),r=!1;if(!e&&n)for(let e of n){let t=e(u);if(Array.isArray(t)){r=!0;let[e,...n]=t;o[c]=`[${JSON.stringify(e)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}if(!r){let r=e?"[":"{";if(e){for(let e=0;e<u.length;e++)r+=(e?",":"")+(e in u?s(u[e]):-1);o[c]=`${r}]`}else if(u instanceof Date){let e=u.getTime();o[c]=`["D",${Number.isNaN(e)?JSON.stringify("invalid"):e}]`}else u instanceof URL?o[c]=`["U",${JSON.stringify(u.href)}]`:u instanceof RegExp?o[c]=`["R",${JSON.stringify(u.source)},${JSON.stringify(u.flags)}]`:u instanceof Set?u.size>0?o[c]=`["S",${[...u].map(e=>s(e)).join(",")}]`:o[c]='["S"]':u instanceof Map?u.size>0?o[c]=`["M",${[...u].flatMap(([e,t])=>[s(e),s(t)]).join(",")}]`:o[c]='["M"]':u instanceof Promise?(o[c]=`["P",${c}]`,t[c]=u):u instanceof Error?(o[c]=`["E",${JSON.stringify(u.message)}`,"Error"!==u.name&&(o[c]+=`,${JSON.stringify(u.name)}`),o[c]+="]"):null===Object.getPrototypeOf(u)?o[c]=`["N",{${d(u)}}]`:function(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||null===t||Object.getOwnPropertyNames(t).sort().join("\0")===nf}(u)?o[c]=`{${d(u)}}`:h=Error("Cannot encode object with prototype")}break}default:{let e=Array.isArray(u),t=!1;if(!e&&n)for(let e of n){let r=e(u);if(Array.isArray(r)){t=!0;let[e,...n]=r;o[c]=`[${JSON.stringify(e)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}t||(h=Error("Cannot encode function or unexpected type"))}}if(h){let e=!1;if(a)for(let t of a){let r=t(u);if(Array.isArray(r)){e=!0;let[t,...n]=r;o[c]=`[${JSON.stringify(t)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}if(!e)throw h}}}let nf=Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),nm="u">typeof window?window:"u">typeof globalThis?globalThis:void 0;function np(e){let{hydrated:t,values:r}=this;if("number"==typeof e)return ny.call(this,e);if(!Array.isArray(e)||!e.length)throw SyntaxError();let n=r.length;for(let t of e)r.push(t);return t.length=r.length,ny.call(this,n)}function ny(e){let t,{hydrated:r,values:n,deferred:a,plugins:o}=this,i=[[e,e=>{t=e}]],s=[];for(;i.length>0;){let[e,t]=i.pop();switch(e){case -7:t(void 0);continue;case -5:t(null);continue;case -2:t(0/0);continue;case -6:t(1/0);continue;case -3:t(-1/0);continue;case -4:t(-0);continue}if(r[e]){t(r[e]);continue}let l=n[e];if(!l||"object"!=typeof l){r[e]=l,t(l);continue}if(Array.isArray(l))if("string"==typeof l[0]){let[n,u,c]=l;switch(n){case"D":t(r[e]=new Date(u));continue;case"U":t(r[e]=new URL(u));continue;case"B":t(r[e]=BigInt(u));continue;case"R":t(r[e]=new RegExp(u,c));continue;case"Y":t(r[e]=Symbol.for(u));continue;case"S":let d=new Set;r[e]=d;for(let e=l.length-1;e>0;e--)i.push([l[e],e=>{d.add(e)}]);t(d);continue;case"M":let h=new Map;r[e]=h;for(let e=l.length-2;e>0;e-=2){let t=[];i.push([l[e+1],e=>{t[1]=e}]),i.push([l[e],e=>{t[0]=e}]),s.push(()=>{h.set(t[0],t[1])})}t(h);continue;case"N":let f=Object.create(null);for(let t of(r[e]=f,Object.keys(u).reverse())){let e=[];i.push([u[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{f[e[0]]=e[1]})}t(f);continue;case"P":if(r[u])t(r[e]=r[u]);else{let n=new nl;a[u]=n,t(r[e]=n.promise)}continue;case"E":let[,m,p]=l,y=p&&nm&&eh.includes(p)&&p in nm&&"function"==typeof nm[p]?new nm[p](m):Error(m);r[e]=y,t(y);continue;case"Z":t(r[e]=r[u]);continue;default:if(Array.isArray(o)){let n=[],a=l.slice(1);for(let e=0;e<a.length;e++){let t=a[e];i.push([t,t=>{n[e]=t}])}s.push(()=>{for(let a of o){let o=a(l[0],...n);if(o)return void t(r[e]=o.value)}throw SyntaxError()});continue}throw SyntaxError()}}else{let n=[];r[e]=n;for(let e=0;e<l.length;e++){let t=l[e];-1!==t&&i.push([t,t=>{n[e]=t}])}t(n);continue}{let n={};for(let t of(r[e]=n,Object.keys(l).reverse())){let e=[];i.push([l[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{n[e[0]]=e[1]})}t(n);continue}}for(;s.length>0;)s.pop()();return t}async function ng(e,t){let r,n,{plugins:a}=t??{},o=new nl,i=e.pipeThrough((r=new TextDecoder,n="",new TransformStream({transform(e,t){let a=r.decode(e,{stream:!0}),o=(n+a).split("\n");for(let e of(n=o.pop()||"",o))t.enqueue(e)},flush(e){n&&e.enqueue(n)}}))).getReader(),s={values:[],hydrated:[],deferred:{},plugins:a},l=await nw.call(s,i),u=o.promise;return l.done?o.resolve():u=nv.call(s,i).then(o.resolve).catch(e=>{for(let t of Object.values(s.deferred))t.reject(e);o.reject(e)}),{done:u.then(()=>i.closed),value:l.value}}async function nw(e){let t,r=await e.read();if(!r.value)throw SyntaxError();try{t=JSON.parse(r.value)}catch(e){throw SyntaxError()}return{done:r.done,value:np.call(this,t)}}async function nv(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;let r=t.value;switch(r[0]){case"P":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=np.call(this,e);a.resolve(i);break}case"E":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=np.call(this,e);a.reject(i);break}default:throw SyntaxError()}t=await e.read()}}async function nb(e){let t={signal:e.signal};if("GET"!==e.method){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}let nE=Symbol("SingleFetchRedirect");var nR=class extends Error{};let nS=new Set([100,101,204,205]);function nx({context:e,identifier:t,reader:r,textDecoder:n,nonce:a}){if(!e.renderMeta||!e.renderMeta.didRenderScripts)return null;e.renderMeta.streamCache||(e.renderMeta.streamCache={});let{streamCache:o}=e.renderMeta,i=o[t];if(i||(i=o[t]=r.read().then(e=>{o[t].result={done:e.done,value:n.decode(e.value,{stream:!0})}}).catch(e=>{o[t].error=e})),i.error)throw i.error;if(void 0===i.result)throw i;let{done:l,value:u}=i.result,c=u?s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:`window.__reactRouterContext.streamController.enqueue(${ns(JSON.stringify(u))});`}}):null;return l?s.createElement(s.Fragment,null,c,s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):s.createElement(s.Fragment,null,c,s.createElement(s.Suspense,null,s.createElement(nx,{context:e,identifier:t+1,reader:r,textDecoder:n,nonce:a})))}function nC(e,t,r,n){let a=function(e,t,r,n,a=()=>!0){return async o=>{let{request:i,matches:s,fetcherKey:l}=o,u=e();if("GET"!==i.method)return nk(o,r);let c=s.some(e=>{let{hasLoader:r,hasClientLoader:n}=t(e);return e.shouldCallHandler()&&r&&!n});return n||c?l?nA(o,r):nL(o,u,t,r,n,a):nP(o,t,r)}}(e,e=>{let r=t.routes[e.route.id];return na(r,"Route not found in manifest"),{hasLoader:r.hasLoader,hasClientLoader:r.hasClientLoader}},nT,n);return async e=>e.runClientMiddleware(a)}async function nk(e,t){let r,n=e.matches.find(e=>e.shouldCallHandler());na(n,"No action match found");let a=await n.resolve(async a=>await a(async()=>{let{data:a,status:o}=await t(e,[n.route.id]);return r=o,n_(a,n.route.id)}));return t_(a.result)||em(a.result)||tO(a.result)?{[n.route.id]:a}:{[n.route.id]:{type:a.type,result:el(a.result,r)}}}async function nP(e,t,r){let n=e.matches.filter(e=>e.shouldCallHandler()),a={};return await Promise.all(n.map(n=>n.resolve(async o=>{try{let{hasClientLoader:i}=t(n),s=n.route.id,l=i?await o(async()=>{let{data:t}=await r(e,[s]);return n_(t,s)}):await o();a[n.route.id]={type:"data",result:l}}catch(e){a[n.route.id]={type:"error",result:e}}}))),a}async function nL(e,t,r,n,a,o=()=>!0){let i=new Set,s=!1,l=e.matches.map(()=>n$()),u=n$(),c={},d=Promise.all(e.matches.map(async(t,a)=>t.resolve(async d=>{l[a].resolve();let h=t.route.id,{hasLoader:f,hasClientLoader:m}=r(t),p=!t.shouldRevalidateArgs||null==t.shouldRevalidateArgs.actionStatus||t.shouldRevalidateArgs.actionStatus<400;if(!t.shouldCallHandler(p)){s||=null!=t.shouldRevalidateArgs&&f;return}if(o(t)&&m){f&&(s=!0);try{c[h]={type:"data",result:await d(async()=>{let{data:t}=await n(e,[h]);return n_(t,h)})}}catch(e){c[h]={type:"error",result:e}}return}f&&i.add(h);try{c[h]={type:"data",result:await d(async()=>n_(await u.promise,h))}}catch(e){c[h]={type:"error",result:e}}})));if(await Promise.all(l.map(e=>e.promise)),(t.state.initialized||"idle"!==t.state.navigation.state)&&0!==i.size||window.__reactRouterHdrActive){let t=a&&s&&i.size>0?[...i.keys()]:void 0;try{let r=await n(e,t);u.resolve(r.data)}catch(e){u.reject(e)}}else u.resolve({routes:{}});return await d,await nD(u.promise,e.matches,i,c),c}async function nD(e,t,r,n){try{let a,o=await e;if("routes"in o){for(let e of t)if(e.route.id in o.routes){let t=o.routes[e.route.id];if("error"in t){a=t.error,n[e.route.id]?.result==null&&(n[e.route.id]={type:"error",result:a});break}}}void 0!==a&&Array.from(r.values()).forEach(e=>{n[e].result instanceof nR&&(n[e].result=a)})}catch(e){}}async function nA(e,t){let r=e.matches.find(e=>e.shouldCallHandler());na(r,"No fetcher match found");let n=r.route.id,a=await r.resolve(async r=>r(async()=>{let{data:r}=await t(e,[n]);return n_(r,n)}));return{[r.route.id]:a}}function nM(e,t){let r="string"==typeof e?new URL(e,"u"<typeof window?"server://singlefetch/":window.location.origin):e;return r.pathname.endsWith("/")?r.pathname=`${r.pathname}_.${t}`:r.pathname=`${r.pathname}.${t}`,r}async function nT(e,t){let{request:r}=e,n=nM(r.url,"data");"GET"===r.method&&(n=function(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let e of t)e&&r.push(e);for(let t of r)e.searchParams.append("index",t);return e}(n),t&&n.searchParams.set("_routes",t.join(",")));let a=await fetch(n,await nb(r));if(a.status>=400&&!a.headers.has("X-Remix-Response"))throw new ef(a.status,a.statusText,await a.text());if(204===a.status&&a.headers.has("X-Remix-Redirect"))return{status:202,data:{redirect:{redirect:a.headers.get("X-Remix-Redirect"),status:Number(a.headers.get("X-Remix-Status")||"302"),revalidate:"true"===a.headers.get("X-Remix-Revalidate"),reload:"true"===a.headers.get("X-Remix-Reload-Document"),replace:"true"===a.headers.get("X-Remix-Replace")}}};if(nS.has(a.status)){let e={};return t&&"GET"!==r.method&&(e[t[0]]={data:void 0}),{status:a.status,data:{routes:e}}}na(a.body,"No response body to decode");try{let e,n=await nO(a.body,window);if("GET"===r.method){let t=n.value;e=nE in t?{redirect:t[nE]}:{routes:t}}else{let r=n.value,a=t?.[0];na(a,"No routeId found for single fetch call decoding"),e="redirect"in r?{redirect:r}:{routes:{[a]:r}}}return{status:a.status,data:e}}catch(e){throw Error("Unable to decode turbo-stream response")}}function nO(e,t){return ng(e,{plugins:[(e,...r)=>{if("SanitizedError"===e){let[e,n,a]=r,o=Error;e&&eh.includes(e)&&e in t&&"function"==typeof t[e]&&(o=t[e]);let i=new o(n);return i.stack=a,{value:i}}if("ErrorResponse"===e){let[e,t,n]=r;return{value:new ef(t,n,e)}}return"SingleFetchRedirect"===e?{value:{[nE]:r[0]}}:"SingleFetchClassInstance"===e?{value:r[0]}:"SingleFetchFallback"===e?{value:void 0}:void 0}]})}function n_(e,t){if("redirect"in e){let{redirect:t,revalidate:r,reload:n,replace:a,status:o}=e.redirect;throw eu(t,{status:o,headers:{...r?{"X-Remix-Revalidate":"yes"}:null,...n?{"X-Remix-Reload-Document":"yes"}:null,...a?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(null==r)throw new nR(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw Error(`Invalid response found for routeId "${t}"`)}function n$(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}async function nN(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nj(e){return e.css?e.css.map(e=>({rel:"stylesheet",href:e})):[]}async function nF(e){if(!e.css)return;let t=nj(e);await Promise.all(t.map(nU))}async function nH(e,t){if(!e.css&&!t.links||!function(){if(void 0!==n)return n;let e=document.createElement("link");return n=e.relList.supports("preload"),e=null,n}())return;let r=[];if(e.css&&r.push(...nj(e)),t.links&&r.push(...t.links()),0===r.length)return;let a=[];for(let e of r)nz(e)||"stylesheet"!==e.rel||a.push({...e,rel:"preload",as:"style"});await Promise.all(a.map(nU))}async function nU(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");function n(){document.head.contains(r)&&document.head.removeChild(r)}Object.assign(r,e),r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function nz(e){return null!=e&&"string"==typeof e.page}function nI(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}async function nB(e,t,r){return nJ((await Promise.all(e.map(async e=>{let n=t.routes[e.route.id];if(n){let e=await nN(n,r);return e.links?e.links():[]}return[]}))).flat(1).filter(nI).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}function nq(e,t,r,n,a,o){let i=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>r[t].pathname!==e.pathname||r[t].route.path?.endsWith("*")&&r[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>i(e,t)||s(e,t)):"data"===o?t.filter((t,o)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(i(t,o)||s(t,o))return!0;if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0}):[]}function nW(e,t,{includeHydrateFallback:r}={}){return[...new Set(e.map(e=>{let n=t.routes[e.route.id];if(!n)return[];let a=[n.module];return n.clientActionModule&&(a=a.concat(n.clientActionModule)),n.clientLoaderModule&&(a=a.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(a=a.concat(n.hydrateFallbackModule)),n.imports&&(a=a.concat(n.imports)),a}).flat(1))]}function nJ(e,t){let r=new Set,n=new Set(t);return e.reduce((e,a)=>{if(t&&!nz(a)&&"script"===a.as&&a.href&&n.has(a.href))return e;let o=JSON.stringify(function(e){let t={};for(let r of Object.keys(e).sort())t[r]=e[r];return t}(a));return r.has(o)||(r.add(o),e.push({key:o,link:a})),e},[])}let nY=new Set,nX=new Set;function nV(e,t){return"lazy"===e.mode&&!0===t}function nG(e,t,r,n,a,o,i){if(nV(a,n))return async({path:s,patch:l,signal:u,fetcherKey:c})=>{if(nX.has(s))return;let{state:d}=e();await n1([s],c?window.location.href:S(d.navigation.location||d.location),t,r,n,o,i,a.manifestPath,l,u)}}function nK(e,t,r,n,a,o){s.useEffect(()=>{var i;let s;if(!nV(a,n)||window.navigator?.connection?.saveData===!0)return;function l(e){let t="FORM"===e.tagName?e.getAttribute("action"):e.getAttribute("href");if(!t)return;let r="A"===e.tagName?e.pathname:new URL(t,window.location.origin).pathname;nX.has(r)||nY.add(r)}async function u(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(l);let i=Array.from(nY.keys()).filter(e=>!nX.has(e)||(nY.delete(e),!1));if(0!==i.length)try{await n1(i,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(e){console.error("Failed to fetch manifest patches",e)}}let c=(i=u,(...e)=>{window.clearTimeout(s),s=window.setTimeout(()=>i(...e),100)});u();let d=new MutationObserver(()=>c());return d.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>d.disconnect()},[n,o,t,r,e,a])}function nZ(e,t){let r=e||"/__manifest";return null==t?r:er([t,r])}let nQ="react-router-manifest-version";async function n0(e,t,r){if(!e){try{sessionStorage.removeItem(nQ)}catch{}return!1}if(!r)return console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest."),!0;try{if(sessionStorage.getItem(nQ)===t)return console.error("Unable to discover routes due to manifest version mismatch."),!0;sessionStorage.setItem(nQ,t)}catch{}return window.location.href=r,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{}),!0}async function n1(e,t,r,n,a,o,i,s,l,u){var c;let d,h;c=e,h=new Set,c.forEach(e=>{e.startsWith("/")||(e=`/${e}`);for(let t=1;t<e.length;t++)"/"===e[t]&&h.add(e.slice(0,t));h.add(e)}),e=Array.from(h);let f=new URLSearchParams;f.set("paths",e.sort().join(",")),f.set("version",r.version);let m=new URL(nZ(s,i),window.location.origin);if(m.search=f.toString(),m.toString().length>7680)return void nY.clear();try{let e=await fetch(m,{signal:u});if(!e.ok)throw Error(`${e.status} ${e.statusText}`);if(await n0(204===e.status&&e.headers.has("X-Remix-Reload-Document"),r.version,t))return;d=await e.json()}catch(e){if(u?.aborted)return;throw e}let p=new Set(Object.keys(r.routes)),y=Object.values(d).reduce((e,t)=>(t&&!p.has(t.id)&&(e[t.id]=t),e),{});Object.assign(r.routes,y),e.forEach(e=>(function(e,t){if(t.size>=1e3){let e=t.values().next().value;void 0!==e&&t.delete(e)}t.add(e)})(e,nX));let g=new Set;Object.values(y).forEach(e=>{!e||e.parentId&&y[e.parentId]||g.add(e.parentId)}),g.forEach(e=>l(e||null,ap(y,n,null,a,o,e)))}function n2(){let e=s.useContext(tY);return na(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function n4(){let e=s.useContext(tX);return na(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}let n5=s.createContext(void 0);function n3(){let e=s.useContext(n5);return na(e,"You must render this element inside a <HydratedRouter> element"),e}function n6(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function n9(e,t,r){if(r&&!aa)return[e[0]];if(t){let r=e.findIndex(e=>void 0!==t[e.route.id]);return e.slice(0,r+1)}return e}n5.displayName="FrameworkContext";let n8="data-react-router-critical-css";function n7({nonce:e,crossOrigin:t}){let{isSpaMode:r,manifest:n,routeModules:a,criticalCss:o,nonce:i}=n3(),{errors:l,matches:u}=n4(),c=n9(u,l,r),d=s.useMemo(()=>nJ(c.map(e=>{let t=a[e.route.id],r=n.routes[e.route.id];return[r&&r.css?r.css.map(e=>({rel:"stylesheet",href:e})):[],t?.links?.()||[]]}).flat(2),nW(c,n)),[c,a,n]);return null==e&&i&&(e=i),s.createElement(s.Fragment,null,"string"==typeof o?s.createElement("style",{[n8]:"",nonce:e,dangerouslySetInnerHTML:{__html:o}}):null,"object"==typeof o?s.createElement("link",{[n8]:"",rel:"stylesheet",href:o.href,nonce:e,crossOrigin:t}):null,d.map(({key:r,link:n})=>nz(n)?s.createElement(ae,{key:r,nonce:e,...n,crossOrigin:n.crossOrigin??t}):s.createElement("link",{key:r,nonce:e,...n,crossOrigin:n.crossOrigin??t})))}function ae({page:e,...t}){let r=tG(),{nonce:n}=n3(),{router:a}=n2(),o=s.useMemo(()=>_(a.routes,e,a.basename),[a.routes,e,a.basename]);return o?(null==t.nonce&&n&&(t={...t,nonce:n}),r)?s.createElement(at,{page:e,matches:o,...t}):s.createElement(ar,{page:e,matches:o,...t}):null}function at({page:e,matches:t,...r}){let n=re(),a=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=nM(e,"rsc"),a=!1,o=[];for(let e of t)"function"==typeof e.route.shouldRevalidate?a=!0:o.push(e.route.id);return a&&o.length>0&&r.searchParams.set("_routes",o.join(",")),[r.pathname+r.search]},[e,n,t]);return s.createElement(s.Fragment,null,a.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})))}function ar({page:e,matches:t,...r}){let n=re(),{manifest:a,routeModules:o}=n3(),{loaderData:i,matches:l}=n4(),u=s.useMemo(()=>nq(e,t,l,a,n,"data"),[e,t,l,a,n]),c=s.useMemo(()=>nq(e,t,l,a,n,"assets"),[e,t,l,a,n]),d=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=new Set,s=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in i&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:r.add(e.route.id))}),0===r.size)return[];let l=nM(e,"data");return s&&r.size>0&&l.searchParams.set("_routes",t.filter(e=>r.has(e.route.id)).map(e=>e.route.id).join(",")),[l.pathname+l.search]},[i,n,a,u,t,e,o]),h=s.useMemo(()=>nW(c,a),[c,a]),f=function(e){let{manifest:t,routeModules:r}=n3(),[n,a]=s.useState([]);return s.useEffect(()=>{let n=!1;return nB(e,t,r).then(e=>{n||a(e)}),()=>{n=!0}},[e,t,r]),n}(c);return s.createElement(s.Fragment,null,d.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})),h.map(e=>s.createElement("link",{key:e,rel:"modulepreload",href:e,...r})),f.map(({key:e,link:t})=>s.createElement("link",{key:e,nonce:r.nonce,...t,crossOrigin:t.crossOrigin??r.crossOrigin})))}function an(){let{isSpaMode:e,routeModules:t}=n3(),{errors:r,matches:n,loaderData:a}=n4(),o=re(),i=n9(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let u=[],c=null,d=[];for(let e=0;e<i.length;e++){let r=i[e],n=r.route.id,s=a[n],h=r.params,f=t[n],m=[],p={id:n,loaderData:s,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:l};if(d[e]=p,f?.meta?m="function"==typeof f.meta?f.meta({loaderData:s,params:h,location:o,matches:d,error:l}):Array.isArray(f.meta)?[...f.meta]:f.meta:c&&(m=[...c]),!Array.isArray(m=m||[]))throw Error("The route at "+r.route.path+" returns an invalid value. All route meta functions must return an array of meta objects.\n\nTo reference the meta function API, see https://reactrouter.com/start/framework/route-module#meta");p.meta=m,d[e]=p,c=u=[...m]}return s.createElement(s.Fragment,null,u.flat().map(e=>{if(!e)return null;if("tagName"in e){var t;let{tagName:r,...n}=e;return"string"==typeof(t=r)&&/^(meta|link)$/.test(t)?s.createElement(r,{key:JSON.stringify(n),...n}):(console.warn(`A meta object uses an invalid tagName: ${r}. Expected either 'link' or 'meta'`),null)}if("title"in e)return s.createElement("title",{key:"title"},String(e.title));if("charset"in e&&(e.charSet??=e.charset,delete e.charset),"charSet"in e&&null!=e.charSet)return"string"==typeof e.charSet?s.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return s.createElement("script",{key:`script:ld+json:${t}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:ns(t)}})}catch(e){return null}return s.createElement("meta",{key:JSON.stringify(e),...e})}))}let aa=!1;function ao(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i,nonce:l}=n3(),{router:u,static:c,staticContext:d}=n2(),{matches:h}=n4(),f=tG(),m=nV(o,i);null==e.nonce&&l&&(e={...e,nonce:l}),a&&(a.didRenderScripts=!0);let p=n9(h,null,n);s.useEffect(()=>{aa=!0},[]);let y=s.useMemo(()=>{if(f)return null;let n=d?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",a=c?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${!m?`import ${JSON.stringify(t.url)}`:""};
|
|
3
3
|
${p.map((e,r)=>{let n=`route${r}`,a=t.routes[e.route.id];na(a,`Route ${e.route.id} not found in manifest`);let{clientActionModule:o,clientLoaderModule:i,clientMiddlewareModule:s,hydrateFallbackModule:l,module:u}=a,c=[...o?[{module:o,varName:`${n}_clientAction`}]:[],...i?[{module:i,varName:`${n}_clientLoader`}]:[],...s?[{module:s,varName:`${n}_clientMiddleware`}]:[],...l?[{module:l,varName:`${n}_HydrateFallback`}]:[],{module:u,varName:`${n}_main`}];return 1===c.length?`import * as ${n} from ${JSON.stringify(u)};`:[c.map(e=>`import * as ${e.varName} from "${e.module}";`).join("\n"),`const ${n} = {${c.map(e=>`...${e.varName}`).join(",")}};`].join("\n")}).join("\n")}
|
|
4
4
|
${m?`window.__reactRouterManifest = ${JSON.stringify(function({sri:e,...t},r){let n=new Set(r.state.matches.map(e=>e.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(e=>{let t=$(r.routes,e,r.basename||"/",!1,r.branches);t&&t.forEach(e=>n.add(e.route.id))});let i=[...n].reduce((e,r)=>Object.assign(e,{[r]:t.routes[r]}),{});return{...t,routes:i,sri:!!e||void 0}}(t,u),null,2)};`:""}
|
|
5
5
|
window.__reactRouterRouteModules = {${p.map((e,t)=>`${JSON.stringify(e.route.id)}:route${t}`).join(",")}};
|
|
@@ -18,8 +18,8 @@ import(${JSON.stringify(t.entry.module)});`:" ";return s.createElement(s.Fragmen
|
|
|
18
18
|
`));else{let r=i.stringified.slice(l+1).join(",");t.enqueue(s.encode(`E${e}:[${r}]
|
|
19
19
|
`)),l=i.stringified.length-1}})).finally(()=>{delete i.deferred[Number(e)]}));await Promise.race(Object.values(i.deferred))}e()}await Promise.all(Object.values(i.deferred)),await u,t.close(),r?.()}})}(e,{signal:a.signal,onComplete:s,plugins:[e=>{if(e instanceof Error){let{name:t,message:r,stack:a}="production"===n?oC(e,n):e;return["SanitizedError",t,r,a]}if(e instanceof ef){let{data:t,status:r,statusText:n}=e;return["ErrorResponse",t,r,n]}if(e&&"object"==typeof e&&nE in e)return["SingleFetchRedirect",e[nE]]}],postPlugins:[e=>{if(e&&"object"==typeof e)return["SingleFetchClassInstance",Object.fromEntries(Object.entries(e))]},()=>["SingleFetchFallback"]]})}function oI(e,t){var r;let n,a,o=function e(t,r="",n=function(e){let t={};return Object.values(e).forEach(e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}}),t}(t)){return(n[r]||[]).map(r=>{let a={id:r.id,path:r.path,middleware:r.module.middleware,loader:r.module.loader?async e=>{let t=ox(e.request,"X-React-Router-Prerender-Data");if(null!=t){let e=t?decodeURI(t):t;oL(e,"Missing prerendered data for route");let n=new TextEncoder().encode(e),a=(await nO(new ReadableStream({start(e){e.enqueue(n),e.close()}}),global)).value;if(a&&nE in a){let e=a[nE],t={status:e.status};if(e.reload)throw ec(e.redirect,t);if(e.replace)throw ed(e.redirect,t);throw eu(e.redirect,t)}{oL(a&&r.id in a,"Unable to decode prerendered data");let e=a[r.id];return oL("data"in e,"Unable to process prerendered data"),e.data}}return await oA(r.module.loader,e)}:void 0,action:r.module.action?e=>oA(r.module.action,e):void 0,ErrorBoundary:"root"===r.id||null!=r.module.ErrorBoundary?()=>null:void 0,handle:r.module.handle};return r.index?{index:!0,...a}:{caseSensitive:r.caseSensitive,children:e(t,r.id,n),...a}})}(e.routes),i="development"===t||"production"===t||"test"===t?t:"production",s=eW(o,{basename:e.basename,mapRouteProperties:M,instrumentations:e.entry.module.instrumentations,future:e.future}),l=e.entry.module.handleError||((e,{request:t})=>{"test"===i||t.signal.aborted||console.error(em(e)&&e.error?e.error:e)}),u=e.entry.module.instrumentations?.map(e=>e.handler).filter(Boolean),c=async(r,n)=>{let a,o,c={},d=e=>{"development"===t&&oS()?.processRequestError?.(e),l(e,{context:a,params:c,request:r})};if(n&&!(n instanceof L)){let e=Error("Invalid `context` value provided to `handleRequest`. You must return an instance of `RouterContextProvider` from your `getLoadContext` function.");return d(e),oX(e,i)}a=n||new L;let h=new URL(r.url),f=o$(r),m=f.pathname,p="yes"===ox(r,"X-React-Router-SPA-Mode");if(!e.ssr){let t=decodeURI(m);if(e.basename&&"/"!==e.basename){let n=X(t,e.basename);if(null==n)return l(new ef(404,"Not Found",`Refusing to prerender the \`${t}\` path because it does not start with the basename \`${e.basename}\``),{context:a,params:c,request:r}),new Response("Not Found",{status:404,statusText:"Not Found"});t=n}if(0===e.prerender.length)p=!0;else if(!e.prerender.some(e=>en(e)===en(t)))if(h.pathname.endsWith(".data"))return l(new ef(404,"Not Found",`Refusing to SSR the path \`${t}\` because \`ssr:false\` is set and the path is not included in the \`prerender\` config, so in production the path will be a 404.`),{context:a,params:c,request:r}),new Response("Not Found",{status:404,statusText:"Not Found"});else p=!0}let y=nZ(e.routeDiscovery.manifestPath,e.basename);if("lazy"===e.routeDiscovery.mode&&h.pathname===y)try{return await oq(e,s.dataRoutes,s._internalRouteBranches,h)}catch(e){return d(e),new Response("Unknown Server Error",{status:500})}let g=oD(e.routes,s.dataRoutes,s._internalRouteBranches,m,e.basename);if(g&&g.length>0&&Object.assign(c,g[0].params),u?.length&&a.set(eb,{url:ey(r,f),pattern:g?ep(g):"",params:g?.[0]?.params?{...g[0].params}:{}}),h.pathname.endsWith(".data"))tN(o=await oW(i,e,s,r,a,d))&&(o=oU(o,r,e,i)),e.entry.module.handleDataRequest&&tN(o=await e.entry.module.handleDataRequest(o,{context:a,params:g?g[0].params:{},request:r}))&&(o=oU(o,r,e,i));else if(!p&&g&&null==g[g.length-1].route.module.default&&null==g[g.length-1].route.module.ErrorBoundary)o=await oY(i,e,s,g.slice(-1)[0].route.id,r,a,d);else{let n,{pathname:l}=h;e.unstable_getCriticalCss?n=await e.unstable_getCriticalCss({pathname:l}):"development"===t&&oS()?.getCriticalCss&&(n=await oS()?.getCriticalCss?.(l)),o=await oJ(i,e,s,r,a,d,p,n)}return"HEAD"===r.method?new Response(null,{headers:o.headers,status:o.status,statusText:o.statusText}):o};return u?.length&&(r=c,n=[],u.forEach(e=>e({instrument(e){null!=e.request&&n.push(e.request)}})),a=r,n.length>0&&(a=async(...e)=>{let[t,a]=e,o=a??new L;return ek(await eP(n,{request:eM(t),context:eT(o)},()=>r(t,o),(e,t)=>{let r;try{r=t.context?.get(eb)}catch{}return v(e.value instanceof Response,"Expected a Response from the request handler"),{...eL(e),statusCode:e.value.status,meta:r}}))}),c=a),{serverMode:i,staticHandler:s,errorHandler:l,requestHandler:c}}let oB=(e,t)=>{let r,n,a,o,i;return async function(s,l){if(r="function"==typeof e?await e():e,"function"==typeof e){let e=oI(r,t);n=e.serverMode,a=e.staticHandler,o=e.errorHandler,i=e.requestHandler}else if(!n||!a||!o||!i){let e=oI(r,t);n=e.serverMode,a=e.staticHandler,o=e.errorHandler,i=e.requestHandler}return i(s,l)}};async function oq(e,t,r,n){if(n.toString().length>7680)return new Response(null,{statusText:"Bad Request",status:400});if(e.assets.version!==n.searchParams.get("version"))return new Response(null,{status:204,headers:{"X-Remix-Reload-Document":"true"}});let a={};if(n.searchParams.has("paths")){for(let o of new Set((n.searchParams.get("paths")||"").split(",").filter(Boolean))){o.startsWith("/")||(o=`/${o}`);let n=oD(e.routes,t,r,o,e.basename);if(n)for(let t of n){let r=t.route.id,n=e.assets.routes[r];n&&(a[r]=n)}}return Response.json(a,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}async function oW(e,t,r,n,a,o){return tF(n.method)?await oj(t,e,r,n,a,o):await oF(t,e,r,n,a,o)}async function oJ(e,t,r,n,a,o,i,s){try{if(tF(n.method))try{o_(n,Array.isArray(t.allowedActionOrigins)?t.allowedActionOrigins:[])}catch(e){return o(e),new Response("Bad Request",{status:400})}let e=await r.query(n,{requestContext:a,generateMiddlewareResponse:async e=>{try{let t=await e(n);return t_(t)||(t=await l(t,i)),t}catch(e){return o(e),new Response(null,{status:500})}},normalizePath:e=>o$(e)});return t_(e)||(e=await l(e,i)),e}catch(e){return o(e),new Response(null,{status:500})}async function l(i,l){var u,c;let d=oT(i,t);if(oN.has(i.statusCode))return new Response(null,{status:i.statusCode,headers:d});i.errors&&(Object.values(i.errors).forEach(e=>{(!em(e)||e.error)&&o(e)}),i.errors=ok(i.errors,e));let h={loaderData:i.loaderData,actionData:i.actionData,errors:i.errors},f={basename:t.basename,future:t.future,routeDiscovery:t.routeDiscovery,ssr:t.ssr,isSpaMode:l},m={manifest:t.assets,branches:r._internalRouteBranches,routeModules:Object.keys(u=t.routes).reduce((e,t)=>{let r=u[t];return r&&(e[t]=r.module),e},{}),staticHandlerContext:i,criticalCss:s,serverHandoffString:oM({...f,criticalCss:s}),serverHandoffStream:oz(h,n.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,ssr:t.ssr,routeDiscovery:t.routeDiscovery,isSpaMode:l,serializeError:t=>oP(t,e)},p=t.entry.module.default;try{return await p(n,i.statusCode,d,m,a)}catch(u){o(u);let s=u;if(t_(u))try{let e,t=await ((e=(c=u).headers.get("Content-Type"))&&/\bapplication\/json\b/.test(e)?null==c.body?null:c.json():c.text());s=new ef(u.status,u.statusText,t)}catch(e){}(i=eJ(r.dataRoutes,i,s)).errors&&(i.errors=ok(i.errors,e));let l={loaderData:i.loaderData,actionData:i.actionData,errors:i.errors};m={...m,staticHandlerContext:i,serverHandoffString:oM(f),serverHandoffStream:oz(l,n.signal,t.entry.module.streamTimeout,e),renderMeta:{}};try{return await p(n,i.statusCode,d,m,a)}catch(t){return o(t),oX(t,e)}}}}async function oY(e,t,r,n,a,o,i){try{return s(await r.queryRoute(a,{routeId:n,requestContext:o,generateMiddlewareResponse:async e=>{try{return s(await e(a))}catch(e){return l(e)}},normalizePath:e=>o$(e)}))}catch(e){return l(e)}function s(e){return t_(e)?e:"string"==typeof e?new Response(e):Response.json(e)}function l(t){if(t_(t))return t;if(em(t)){var r,n;return i(t),r=t,n=e,Response.json(oP(r.error||Error("Unexpected Server Error"),n),{status:r.status,statusText:r.statusText})}if(t instanceof Error&&"Expected a response from queryRoute"===t.message){let t=Error("Expected a Response to be returned from resource route handler");return i(t),oX(t,e)}return i(t),oX(t,e)}}function oX(e,t){let r="Unexpected Server Error";return"production"!==t&&(r+=`
|
|
20
20
|
|
|
21
|
-
${String(e)}`),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function oV(e){return`__flash_${e}__`}let oG=(e={},t="")=>{let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has:e=>r.has(e)||r.has(oV(e)),get(e){if(r.has(e))return r.get(e);let t=oV(e);if(r.has(t)){let e=r.get(t);return r.delete(t),e}},set(e,t){r.set(e,t)},flash(e,t){r.set(oV(e),t)},unset(e){r.delete(e)}}},oK=e=>null!=e&&"string"==typeof e.id&&void 0!==e.data&&"function"==typeof e.has&&"function"==typeof e.get&&"function"==typeof e.set&&"function"==typeof e.flash&&"function"==typeof e.unset;function oZ({cookie:e,createData:t,readData:r,updateData:n,deleteData:a}){let o=op(e)?e:om(e?.name||"__session",e);return oQ(o),{async getSession(e,t){let n=e&&await o.parse(e,t);return oG(n&&await r(n)||{},n||"")},async commitSession(e,r){let{id:a,data:i}=e,s=r?.maxAge!=null?new Date(Date.now()+1e3*r.maxAge):r?.expires!=null?r.expires:o.expires;return a?await n(a,i,s):a=await t(i,s),o.serialize(a,r)},destroySession:async(e,t)=>(await a(e.id),o.serialize("",{...t,maxAge:void 0,expires:new Date(0)}))}}function oQ(e){rF(e.isSigned,`The "${e.name}" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`)}function o0({cookie:e}={}){let t=op(e)?e:om(e?.name||"__session",e);return oQ(t),{getSession:async(e,r)=>oG(e&&await t.parse(e,r)||{}),async commitSession(e,r){let n=await t.serialize(e.data,r);if(n.length>4096)throw Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},destroySession:async(e,r)=>t.serialize("",{...r,maxAge:void 0,expires:new Date(0)})}}function o1({cookie:e}={}){let t=new Map;return oZ({cookie:e,async createData(e,r){let n=crypto.randomUUID();return t.set(n,{data:e,expires:r}),n},async readData(e){if(t.has(e)){let{data:r,expires:n}=t.get(e);if(!n||n>new Date)return r;n&&t.delete(e)}return null},async updateData(e,r,n){t.set(e,{data:r,expires:n})},async deleteData(e){t.delete(e)}})}function o2(e){return null==e?"":"string"==typeof e?e:String(e)}function o4(e,...t){let r=t[0],n=(function(e){let t=e.length-1,r=e[t];if("*"!==r&&"/"!==r)return e;for(t--;t>=0&&"/"===e[t];t--);return e.slice(0,t+1)})(e).replace(/\/:([\w-]+)(\?)?/g,(t,n,a)=>{let o=r?.[n];if(void 0===a&&void 0===o)throw Error(`Path '${e}' requires param '${n}' but it was not provided`);return null==o?"":"/"+I(o2(o))});if(e.endsWith("*")){let e=r?.["*"];void 0!==e&&(n+="/"+o2(e).split("/").map(I).join("/"))}return n||"/"}var o5=class extends l().Component{constructor(e){super(e),this.state={error:null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:null,location:e.location}:{error:t.error,location:t.location}}render(){return this.state.error?l().createElement(o6,{error:this.state.error,renderAppShell:!0}):this.props.children}};function o3({renderAppShell:e,title:t,children:r}){return e?l().createElement("html",{lang:"en"},l().createElement("head",null,l().createElement("meta",{charSet:"utf-8"}),l().createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),l().createElement("title",null,t)),l().createElement("body",null,l().createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r))):r}function o6({error:e,renderAppShell:t}){let r;console.error(e);let n=l().createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
21
|
+
${String(e)}`),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function oV(e){return`__flash_${e}__`}let oG=(e={},t="")=>{let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has:e=>r.has(e)||r.has(oV(e)),get(e){if(r.has(e))return r.get(e);let t=oV(e);if(r.has(t)){let e=r.get(t);return r.delete(t),e}},set(e,t){r.set(e,t)},flash(e,t){r.set(oV(e),t)},unset(e){r.delete(e)}}},oK=e=>null!=e&&"string"==typeof e.id&&void 0!==e.data&&"function"==typeof e.has&&"function"==typeof e.get&&"function"==typeof e.set&&"function"==typeof e.flash&&"function"==typeof e.unset;function oZ({cookie:e,createData:t,readData:r,updateData:n,deleteData:a}){let o=op(e)?e:om(e?.name||"__session",e);return oQ(o),{async getSession(e,t){let n=e&&await o.parse(e,t);return oG(n&&await r(n)||{},n||"")},async commitSession(e,r){let{id:a,data:i}=e,s=r?.maxAge!=null?new Date(Date.now()+1e3*r.maxAge):r?.expires!=null?r.expires:o.expires;return a?await n(a,i,s):a=await t(i,s),o.serialize(a,r)},destroySession:async(e,t)=>(await a(e.id),o.serialize("",{...t,maxAge:void 0,expires:new Date(0)}))}}function oQ(e){rF(e.isSigned,`The "${e.name}" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`)}function o0({cookie:e}={}){let t=op(e)?e:om(e?.name||"__session",e);return oQ(t),{getSession:async(e,r)=>oG(e&&await t.parse(e,r)||{}),async commitSession(e,r){let n=await t.serialize(e.data,r);if(n.length>4096)throw Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},destroySession:async(e,r)=>t.serialize("",{...r,maxAge:void 0,expires:new Date(0)})}}function o1({cookie:e}={}){let t=new Map;return oZ({cookie:e,async createData(e,r){let n=crypto.randomUUID();return t.set(n,{data:e,expires:r}),n},async readData(e){if(t.has(e)){let{data:r,expires:n}=t.get(e);if(!n||n>new Date)return r;n&&t.delete(e)}return null},async updateData(e,r,n){t.set(e,{data:r,expires:n})},async deleteData(e){t.delete(e)}})}function o2(e){return null==e?"":"string"==typeof e?e:String(e)}function o4(e,...t){let r=t[0],n=(function(e){let t=e.length-1,r=e[t];if("*"!==r&&"/"!==r)return e;for(t--;t>=0&&"/"===e[t];t--);return e.slice(0,t+1)})(e).replace(/\/:([\w-]+)(\?)?/g,(t,n,a)=>{let o=r?.[n];if(void 0===a&&void 0===o)throw Error(`Path '${e}' requires param '${n}' but it was not provided`);return null==o?"":"/"+I(o2(o))});if(e.endsWith("*")){let e=r?.["*"];void 0!==e&&(n+="/"+o2(e).split("/").map(I).join("/"))}return n||"/"}var o5=class extends l().Component{constructor(e){super(e),this.state={error:null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:null,location:e.location}:{error:t.error,location:t.location}}render(){return this.state.error?(l()).createElement(o6,{error:this.state.error,renderAppShell:!0}):this.props.children}};function o3({renderAppShell:e,title:t,children:r}){return e?(l()).createElement("html",{lang:"en"},(l()).createElement("head",null,(l()).createElement("meta",{charSet:"utf-8"}),(l()).createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),(l()).createElement("title",null,t)),(l()).createElement("body",null,(l()).createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r))):r}function o6({error:e,renderAppShell:t}){let r;console.error(e);let n=(l()).createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
22
22
|
console.log(
|
|
23
23
|
"💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
|
|
24
24
|
);
|
|
25
|
-
`}});return em(e)?l().createElement(o3,{renderAppShell:t,title:"Unhandled Thrown Response!"},l().createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),null):(r=e instanceof Error?e:Error(null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e)),l().createElement(o3,{renderAppShell:t,title:"Application Error!"},l().createElement("h1",{style:{fontSize:"24px"}},"Application Error"),l().createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),n))}function o9({hasRootLayout:e}){let t=rL();if(void 0===e)throw Error("Missing 'hasRootLayout' prop");return
|
|
25
|
+
`}});return em(e)?(l()).createElement(o3,{renderAppShell:t,title:"Unhandled Thrown Response!"},(l()).createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),null):(r=e instanceof Error?e:Error(null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e)),(l()).createElement(o3,{renderAppShell:t,title:"Application Error!"},(l()).createElement("h1",{style:{fontSize:"24px"}},"Application Error"),(l()).createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),n))}function o9({hasRootLayout:e}){let t=rL();if(void 0===e)throw Error("Missing 'hasRootLayout' prop");return(l()).createElement(o6,{renderAppShell:!e,error:t})}let o8=new TextEncoder;function o7(e,{nonce:t}={}){let r,n=new TextDecoder,a=new Promise(e=>r=e),o=!1,i=!1,s=null,l=[],u=null;function c(e){for(let t of l){let r=n.decode(t,{stream:!0});r.endsWith("</body></html>")&&(r=r.slice(0,-14)),e.enqueue(o8.encode(r))}l.length=0,u=null}return new TransformStream({transform(n,a){l.push(n),u||(u=setTimeout(async()=>{!i&&(c(a),o||(o=!0,ie(s=e.getReader(),a,()=>i,t).catch(e=>a.error(e)).then(r)))},0))},async flush(e){await a,u&&(clearTimeout(u),c(e)),e.enqueue(o8.encode("</body></html>"))},async cancel(t){i=!0,u&&(clearTimeout(u),u=null),l.length=0,s?await s.cancel(t).catch(()=>{}):await e.cancel(t).catch(()=>{}),r()}})}async function ie(e,t,r,n){let a=new TextDecoder("utf-8",{fatal:!0});try{let o;for(;(o=await e.read())&&!o.done;){if(r())return;let e=o.value;try{it(JSON.stringify(a.decode(e,{stream:!0})),t,n)}catch(r){it(`Uint8Array.from(atob(${JSON.stringify(btoa(String.fromCodePoint(...e)))}), m => m.codePointAt(0))`,t,n)}}}finally{e.releaseLock()}let o=a.decode();o.length&&!r()&&it(JSON.stringify(o),t,n)}function it(e,t,r){let n=null==r?"":` nonce="${r.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}"`;t.enqueue(o8.encode(`<script${n}>${`(self.__FLIGHT_DATA||=[]).push(${e})`.replace(/<!--/g,"<\\!--").replace(/<\/(script)/gi,"</\\$1")}</script>`))}let ir=()=>null,ia="/__manifest";async function io({request:e,serverResponse:t,createFromReadableStream:r,renderHTML:n,hydrate:a=!0,nonce:o}){let i,s,l,u=new URL(e.url);if(u.pathname.endsWith(".rsc")||u.pathname.endsWith(".manifest")||e.headers.has("rsc-action-id")||"true"===t.headers.get("React-Router-Resource"))return t;if(!t.body)throw Error("Missing body in server response");let c=t.clone(),d=null;a&&(d=t.clone());let h=t.body,f=[],m=()=>i?new ReadableStream({start(e){i.forEach(t=>e.enqueue(t)),f.push(e)}}):(i=[],h.pipeThrough(new TransformStream({transform(e,t){i.push(e),t.enqueue(e),f.forEach(t=>t.enqueue(e))},flush(){f.forEach(e=>e.close()),f=[]}}))),p=null;try{if(!c.body)throw Error("Failed to clone server response");let e=await r(c.body);if(202===t.status&&"redirect"===e.type){if(th(e.location))throw Error("Invalid redirect location");let r=new Headers(t.headers);return r.delete("Content-Encoding"),r.delete("Content-Length"),r.delete("Content-Type"),r.delete("X-Remix-Response"),r.set("Location",e.location),new Response(d?.body||"",{headers:r,status:e.status,statusText:t.statusText})}let i=new Headers,u=t.status,h=t.statusText,f=await n(()=>{let e=Promise.resolve(r(m()));return Object.defineProperties(e,{_deepestRenderedBoundaryId:{get:()=>p,set(e){p=e}},formState:{get:()=>e.then(e=>"render"===e.type?e.formState:void 0)}})},{nonce:o,onError(e){if("object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){if(s=t6(e.digest))return e.digest;let t=t9(e.digest);if(t)return l=t,u=t.status,h=t.statusText,e.digest}},onHeaders(e){for(let[t,r]of e)i.append(t,r)}}),y=new Headers(i);for(let[e,r]of t.headers)y.append(e,r);if(y.set("Content-Type","text/html; charset=utf-8"),s){if(th(s.location))throw Error("Invalid redirect location");return y.set("Location",s.location),new Response(f,{status:s.status,headers:y})}let g=new TransformStream({flush(e){s&&(th(s.location)||e.enqueue(new TextEncoder().encode(`<meta http-equiv="refresh" content="0;url=${ns(s.location)}"/>`)))}});if(!a)return new Response(f.pipeThrough(g),{status:u,statusText:h,headers:y});if(!d?.body)throw Error("Failed to clone server response");let w=f.pipeThrough(o7(d.body,{nonce:o})).pipeThrough(g);return new Response(w,{status:u,statusText:h,headers:y})}catch(e){if(e instanceof Response)return e;if(s){if(th(s.location))throw Error("Invalid redirect location");return new Response(`Redirect: ${s.location}`,{status:s.status,headers:{Location:s.location}})}try{let i,s=l??e,[u,c]=em(s)?[s.status,s.statusText]:[500,""],h=new Headers,f=await n(()=>{let e=Promise.resolve(r(m())).then(e=>Object.assign(e,{status:u,errors:p?{[p]:s}:{}}));return Object.defineProperties(e,{_deepestRenderedBoundaryId:{get:()=>p,set(e){p=e}},formState:{get:()=>e.then(e=>"render"===e.type?e.formState:void 0)}})},{nonce:o,onError(e){if("object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){if(i=t6(e.digest))return e.digest;let t=t9(e.digest);if(t)return u=t.status,c=t.statusText,e.digest}},onHeaders(e){for(let[t,r]of e)h.append(t,r)}}),y=new Headers(h);for(let[e,r]of t.headers)y.append(e,r);if(y.set("Content-Type","text/html; charset=utf-8"),i){if(th(i.location))throw Error("Invalid redirect location");return y.set("Location",i.location),new Response(f,{status:i.status,headers:y})}let g=new TransformStream({flush(e){i&&(th(i.location)||e.enqueue(new TextEncoder().encode(`<meta http-equiv="refresh" content="0;url=${ns(i.location)}"/>`)))}});if(!a)return new Response(f.pipeThrough(g),{status:u,statusText:c,headers:y});if(!d?.body)throw Error("Failed to clone server response");let w=f.pipeThrough(o7(d.body,{nonce:o})).pipeThrough(g);return new Response(w,{status:u,statusText:c,headers:y})}catch(e){}throw e}}function ii({getPayload:e,nonce:t}){let r=e(),n=s.use(r);if("redirect"===n.type){if(th(n.location))throw Error("Invalid redirect location");throw new Response(null,{status:n.status,headers:{Location:n.location}})}if("render"!==n.type)return null;let a={...n.loaderData};for(let e of n.matches)av(e.id,e.clientLoader,e.hasLoader,!1)&&(e.hydrateFallbackElement||!e.hasLoader)&&delete a[e.id];let o={get _deepestRenderedBoundaryId(){return r._deepestRenderedBoundaryId??null},set _deepestRenderedBoundaryId(boundaryId){r._deepestRenderedBoundaryId=boundaryId},actionData:n.actionData,actionHeaders:{},basename:n.basename,errors:n.errors,loaderData:a,loaderHeaders:{},location:n.location,statusCode:200,matches:n.matches.map(e=>({params:e.params,pathname:e.pathname,pathnameBase:e.pathnameBase,route:{id:e.id,action:e.hasAction||!!e.clientAction,handle:e.handle,loader:e.hasLoader||!!e.clientLoader,index:e.index,path:e.path,shouldRevalidate:e.shouldRevalidate}}))},i=a9(n.matches.reduceRight((e,t)=>{let r={id:t.id,action:t.hasAction||!!t.clientAction,element:t.element,errorElement:t.errorElement,handle:t.handle,hydrateFallbackElement:t.hydrateFallbackElement,index:t.index,loader:t.hasLoader||!!t.clientLoader,path:t.path,shouldRevalidate:t.shouldRevalidate};return e.length>0&&(r.children=e),[r]},[]),o),l={future:{},isSpaMode:!1,ssr:!0,criticalCss:"",manifest:{routes:{},version:"1",url:"",entry:{module:"",imports:[]}},routeDiscovery:"initial"===n.routeDiscovery.mode?{mode:"initial",manifestPath:ia}:{mode:"lazy",manifestPath:n.routeDiscovery.manifestPath||ia},routeModules:function(e){let t={};for(let a of e.matches){var r=t,n=a;for(let e of n=Array.isArray(n)?n:[n])r[e.id]={links:e.links,meta:e.meta,default:ir}}return t}(n),nonce:t};return s.createElement(tV.Provider,{value:!0},s.createElement(o5,{location:n.location},s.createElement(n5.Provider,{value:l},s.createElement(a3,{context:o,router:i,hydrate:!1}))))}}}]);
|