react-router 6.26.2 → 7.0.0-pre.0
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/CHANGELOG.md +307 -0
- package/README.md +1 -14
- package/dist/dom-export.d.ts +3 -0
- package/dist/dom-export.mjs +205 -0
- package/dist/dom-export.mjs.map +1 -0
- package/dist/index.d.ts +74 -29
- package/dist/index.mjs +11551 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/components.d.ts +250 -35
- package/dist/lib/context.d.ts +20 -7
- package/dist/lib/dom/dom.d.ts +123 -0
- package/dist/lib/dom/global.d.ts +40 -0
- package/dist/lib/dom/lib.d.ts +940 -0
- package/dist/lib/dom/server.d.ts +41 -0
- package/dist/lib/dom/ssr/components.d.ts +123 -0
- package/dist/lib/dom/ssr/data.d.ts +7 -0
- package/dist/lib/dom/ssr/entry.d.ts +47 -0
- package/dist/lib/dom/ssr/errorBoundaries.d.ts +36 -0
- package/dist/lib/dom/ssr/errors.d.ts +2 -0
- package/dist/lib/dom/ssr/fallback.d.ts +2 -0
- package/dist/lib/dom/ssr/fog-of-war.d.ts +28 -0
- package/dist/lib/dom/ssr/invariant.d.ts +2 -0
- package/dist/lib/dom/ssr/links.d.ts +25 -0
- package/dist/lib/dom/ssr/markup.d.ts +5 -0
- package/dist/lib/dom/ssr/routeModules.d.ts +141 -0
- package/dist/lib/dom/ssr/routes-test-stub.d.ts +59 -0
- package/dist/lib/dom/ssr/routes.d.ts +32 -0
- package/dist/lib/dom/ssr/server.d.ts +16 -0
- package/dist/lib/dom/ssr/single-fetch.d.ts +37 -0
- package/dist/lib/dom-export/dom-router-provider.d.ts +5 -0
- package/dist/lib/dom-export/hydrated-router.d.ts +5 -0
- package/dist/lib/dom-export.d.ts +3 -0
- package/dist/lib/hooks.d.ts +286 -57
- package/dist/lib/router/history.d.ts +253 -0
- package/dist/lib/router/links.d.ts +104 -0
- package/dist/lib/router/router.d.ts +540 -0
- package/dist/lib/router/utils.d.ts +505 -0
- package/dist/lib/server-runtime/build.d.ts +38 -0
- package/dist/lib/server-runtime/cookies.d.ts +62 -0
- package/dist/lib/server-runtime/crypto.d.ts +2 -0
- package/dist/lib/server-runtime/data.d.ts +15 -0
- package/dist/lib/server-runtime/dev.d.ts +8 -0
- package/dist/lib/server-runtime/entry.d.ts +3 -0
- package/dist/lib/server-runtime/errors.d.ts +51 -0
- package/dist/lib/server-runtime/headers.d.ts +3 -0
- package/dist/lib/server-runtime/invariant.d.ts +2 -0
- package/dist/lib/server-runtime/jsonify.d.ts +33 -0
- package/dist/lib/server-runtime/markup.d.ts +1 -0
- package/dist/lib/server-runtime/mode.d.ts +9 -0
- package/dist/lib/server-runtime/responses.d.ts +37 -0
- package/dist/lib/server-runtime/routeMatching.d.ts +8 -0
- package/dist/lib/server-runtime/routeModules.d.ts +212 -0
- package/dist/lib/server-runtime/routes.d.ts +31 -0
- package/dist/lib/server-runtime/server.d.ts +5 -0
- package/dist/lib/server-runtime/serverHandoff.d.ts +11 -0
- package/dist/lib/server-runtime/sessions/cookieStorage.d.ts +19 -0
- package/dist/lib/server-runtime/sessions/memoryStorage.d.ts +17 -0
- package/dist/lib/server-runtime/sessions.d.ts +140 -0
- package/dist/lib/server-runtime/single-fetch.d.ts +30 -0
- package/dist/lib/server-runtime/typecheck.d.ts +4 -0
- package/dist/lib/server-runtime/warnings.d.ts +1 -0
- package/dist/lib/types.d.ts +71 -0
- package/dist/lib/types.mjs +10 -0
- package/dist/main-dom-export.js +19 -0
- package/dist/main.js +1 -1
- package/dist/react-router-dom.development.js +199 -0
- package/dist/react-router-dom.development.js.map +1 -0
- package/dist/react-router-dom.production.min.js +12 -0
- package/dist/react-router-dom.production.min.js.map +1 -0
- package/dist/react-router.development.js +12271 -1129
- package/dist/react-router.development.js.map +1 -1
- package/dist/react-router.production.min.js +2 -2
- package/dist/react-router.production.min.js.map +1 -1
- package/dist/umd/react-router-dom.development.js +241 -0
- package/dist/umd/react-router-dom.development.js.map +1 -0
- package/dist/umd/react-router-dom.production.min.js +12 -0
- package/dist/umd/react-router-dom.production.min.js.map +1 -0
- package/dist/umd/react-router.development.js +12459 -1224
- package/dist/umd/react-router.development.js.map +1 -1
- package/dist/umd/react-router.production.min.js +2 -2
- package/dist/umd/react-router.production.min.js.map +1 -1
- package/package.json +35 -6
- package/dist/index.js +0 -1467
- package/dist/index.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* React Router
|
|
2
|
+
* React Router v7.0.0-pre.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@remix-run/router")):"function"==typeof define&&define.amd?define(["exports","react","@remix-run/router"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouter={},e.React,e.RemixRouter)}(this,(function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=n(t);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}const i=a.createContext(null),u=a.createContext(null),l=a.createContext(null),s=a.createContext(null),c=a.createContext(null),d=a.createContext({outlet:null,matches:[],isDataRoute:!1}),p=a.createContext(null);function f(){return null!=a.useContext(c)}function v(){return f()||r.UNSAFE_invariant(!1),a.useContext(c).location}function m(e){a.useContext(s).static||a.useLayoutEffect(e)}function h(){let{isDataRoute:e}=a.useContext(d);return e?function(){let{router:e}=O(U.UseNavigateStable),t=j(N.UseNavigateStable),r=a.useRef(!1);return m((()=>{r.current=!0})),a.useCallback((function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):e.navigate(n,o({fromRouteId:t},a)))}),[e,t])}():function(){f()||r.UNSAFE_invariant(!1);let e=a.useContext(i),{basename:t,future:n,navigator:o}=a.useContext(s),{matches:u}=a.useContext(d),{pathname:l}=v(),c=JSON.stringify(r.UNSAFE_getResolveToMatches(u,n.v7_relativeSplatPath)),p=a.useRef(!1);return m((()=>{p.current=!0})),a.useCallback((function(n,a){if(void 0===a&&(a={}),!p.current)return;if("number"==typeof n)return void o.go(n);let i=r.resolveTo(n,JSON.parse(c),l,"path"===a.relative);null==e&&"/"!==t&&(i.pathname="/"===i.pathname?t:r.joinPaths([t,i.pathname])),(a.replace?o.replace:o.push)(i,a.state,a)}),[t,o,c,l,e])}()}const g=a.createContext(null);function E(e){let t=a.useContext(d).outlet;return t?a.createElement(g.Provider,{value:e},t):t}function y(e,t){let{relative:n}=void 0===t?{}:t,{future:o}=a.useContext(s),{matches:i}=a.useContext(d),{pathname:u}=v(),l=JSON.stringify(r.UNSAFE_getResolveToMatches(i,o.v7_relativeSplatPath));return a.useMemo((()=>r.resolveTo(e,JSON.parse(l),u,"path"===n)),[e,l,u,n])}function b(e,t){return R(e,t)}function R(e,t,n,i){f()||r.UNSAFE_invariant(!1);let{navigator:u}=a.useContext(s),{matches:l}=a.useContext(d),p=l[l.length-1],m=p?p.params:{};!p||p.pathname;let h=p?p.pathnameBase:"/";p&&p.route;let g,E=v();if(t){var y;let e="string"==typeof t?r.parsePath(t):t;"/"===h||(null==(y=e.pathname)?void 0:y.startsWith(h))||r.UNSAFE_invariant(!1),g=e}else g=E;let b=g.pathname||"/",R=b;if("/"!==h){let e=h.replace(/^\//,"").split("/");R="/"+b.replace(/^\//,"").split("/").slice(e.length).join("/")}let P=r.matchRoutes(e,{pathname:R}),x=S(P&&P.map((e=>Object.assign({},e,{params:Object.assign({},m,e.params),pathname:r.joinPaths([h,u.encodeLocation?u.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?h:r.joinPaths([h,u.encodeLocation?u.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),l,n,i);return t&&x?a.createElement(c.Provider,{value:{location:o({pathname:"/",search:"",hash:"",state:null,key:"default"},g),navigationType:r.Action.Pop}},x):x}function P(){let e=F(),t=r.isRouteErrorResponse(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),n?a.createElement("pre",{style:o},n):null,null)}const x=a.createElement(P,null);class C extends a.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}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){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?a.createElement(d.Provider,{value:this.props.routeContext},a.createElement(p.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function _(e){let{routeContext:t,match:r,children:n}=e,o=a.useContext(i);return o&&o.static&&o.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=r.route.id),a.createElement(d.Provider,{value:t},n)}function S(e,t,n,o){var i;if(void 0===t&&(t=[]),void 0===n&&(n=null),void 0===o&&(o=null),null==e){var u;if(!n)return null;if(n.errors)e=n.matches;else{if(!(null!=(u=o)&&u.v7_partialHydration&&0===t.length&&!n.initialized&&n.matches.length>0))return null;e=n.matches}}let l=e,s=null==(i=n)?void 0:i.errors;if(null!=s){let e=l.findIndex((e=>e.route.id&&void 0!==(null==s?void 0:s[e.route.id])));e>=0||r.UNSAFE_invariant(!1),l=l.slice(0,Math.min(l.length,e+1))}let c=!1,d=-1;if(n&&o&&o.v7_partialHydration)for(let e=0;e<l.length;e++){let t=l[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(d=e),t.route.id){let{loaderData:e,errors:r}=n,a=t.route.loader&&void 0===e[t.route.id]&&(!r||void 0===r[t.route.id]);if(t.route.lazy||a){c=!0,l=d>=0?l.slice(0,d+1):[l[0]];break}}}return l.reduceRight(((e,r,o)=>{let i,u=!1,p=null,f=null;var v;n&&(i=s&&r.route.id?s[r.route.id]:void 0,p=r.route.errorElement||x,c&&(d<0&&0===o?(v="route-fallback",!1||B[v]||(B[v]=!0),u=!0,f=null):d===o&&(u=!0,f=r.route.hydrateFallbackElement||null)));let m=t.concat(l.slice(0,o+1)),h=()=>{let t;return t=i?p:u?f:r.route.Component?a.createElement(r.route.Component,null):r.route.element?r.route.element:e,a.createElement(_,{match:r,routeContext:{outlet:e,matches:m,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===o)?a.createElement(C,{location:n.location,revalidation:n.revalidation,component:p,error:i,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):h()}),null)}var U=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(U||{}),N=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(N||{});function O(e){let t=a.useContext(i);return t||r.UNSAFE_invariant(!1),t}function A(e){let t=a.useContext(u);return t||r.UNSAFE_invariant(!1),t}function j(e){let t=function(e){let t=a.useContext(d);return t||r.UNSAFE_invariant(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||r.UNSAFE_invariant(!1),n.route.id}function F(){var e;let t=a.useContext(p),r=A(N.UseRouteError),n=j(N.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function D(){let e=a.useContext(l);return null==e?void 0:e._data}let k=0;const B={};const L=a.startTransition;function M(e){let{routes:t,future:r,state:n}=e;return R(t,void 0,n,r)}function T(e){r.UNSAFE_invariant(!1)}function I(e){let{basename:t="/",children:n=null,location:i,navigationType:u=r.Action.Pop,navigator:l,static:d=!1,future:p}=e;f()&&r.UNSAFE_invariant(!1);let v=t.replace(/^\/*/,"/"),m=a.useMemo((()=>({basename:v,navigator:l,static:d,future:o({v7_relativeSplatPath:!1},p)})),[v,p,l,d]);"string"==typeof i&&(i=r.parsePath(i));let{pathname:h="/",search:g="",hash:E="",state:y=null,key:b="default"}=i,R=a.useMemo((()=>{let e=r.stripBasename(h,v);return null==e?null:{location:{pathname:e,search:g,hash:E,state:y,key:b},navigationType:u}}),[v,h,g,E,y,b,u]);return null==R?null:a.createElement(s.Provider,{value:m},a.createElement(c.Provider,{children:n,value:R}))}var H=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(H||{});const w=new Promise((()=>{}));class z extends a.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:n}=this.props,o=null,i=H.pending;if(n instanceof Promise)if(this.state.error){i=H.error;let e=this.state.error;o=Promise.reject().catch((()=>{})),Object.defineProperty(o,"_tracked",{get:()=>!0}),Object.defineProperty(o,"_error",{get:()=>e})}else n._tracked?(o=n,i="_error"in o?H.error:"_data"in o?H.success:H.pending):(i=H.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),o=n.then((e=>Object.defineProperty(n,"_data",{get:()=>e})),(e=>Object.defineProperty(n,"_error",{get:()=>e}))));else i=H.success,o=Promise.resolve(),Object.defineProperty(o,"_tracked",{get:()=>!0}),Object.defineProperty(o,"_data",{get:()=>n});if(i===H.error&&o._error instanceof r.AbortedDeferredError)throw w;if(i===H.error&&!t)throw o._error;if(i===H.error)return a.createElement(l.Provider,{value:o,children:t});if(i===H.success)return a.createElement(l.Provider,{value:o,children:e});throw o}}function J(e){let{children:t}=e,r=D(),n="function"==typeof t?t(r):t;return a.createElement(a.Fragment,null,n)}function q(e,t){void 0===t&&(t=[]);let n=[];return a.Children.forEach(e,((e,o)=>{if(!a.isValidElement(e))return;let i=[...t,o];if(e.type===a.Fragment)return void n.push.apply(n,q(e.props.children,i));e.type!==T&&r.UNSAFE_invariant(!1),e.props.index&&e.props.children&&r.UNSAFE_invariant(!1);let u={id:e.props.id||i.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(u.children=q(e.props.children,i)),n.push(u)})),n}function V(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:a.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:a.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:a.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}Object.defineProperty(e,"AbortedDeferredError",{enumerable:!0,get:function(){return r.AbortedDeferredError}}),Object.defineProperty(e,"NavigationType",{enumerable:!0,get:function(){return r.Action}}),Object.defineProperty(e,"createPath",{enumerable:!0,get:function(){return r.createPath}}),Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return r.defer}}),Object.defineProperty(e,"generatePath",{enumerable:!0,get:function(){return r.generatePath}}),Object.defineProperty(e,"isRouteErrorResponse",{enumerable:!0,get:function(){return r.isRouteErrorResponse}}),Object.defineProperty(e,"json",{enumerable:!0,get:function(){return r.json}}),Object.defineProperty(e,"matchPath",{enumerable:!0,get:function(){return r.matchPath}}),Object.defineProperty(e,"matchRoutes",{enumerable:!0,get:function(){return r.matchRoutes}}),Object.defineProperty(e,"parsePath",{enumerable:!0,get:function(){return r.parsePath}}),Object.defineProperty(e,"redirect",{enumerable:!0,get:function(){return r.redirect}}),Object.defineProperty(e,"redirectDocument",{enumerable:!0,get:function(){return r.redirectDocument}}),Object.defineProperty(e,"replace",{enumerable:!0,get:function(){return r.replace}}),Object.defineProperty(e,"resolvePath",{enumerable:!0,get:function(){return r.resolvePath}}),e.Await=function(e){let{children:t,errorElement:r,resolve:n}=e;return a.createElement(z,{resolve:n,errorElement:r},a.createElement(J,null,t))},e.MemoryRouter=function(e){let{basename:t,children:n,initialEntries:o,initialIndex:i,future:u}=e,l=a.useRef();null==l.current&&(l.current=r.createMemoryHistory({initialEntries:o,initialIndex:i,v5Compat:!0}));let s=l.current,[c,d]=a.useState({action:s.action,location:s.location}),{v7_startTransition:p}=u||{},f=a.useCallback((e=>{p&&L?L((()=>d(e))):d(e)}),[d,p]);return a.useLayoutEffect((()=>s.listen(f)),[s,f]),a.createElement(I,{basename:t,children:n,location:c.location,navigationType:c.action,navigator:s,future:u})},e.Navigate=function(e){let{to:t,replace:n,state:o,relative:i}=e;f()||r.UNSAFE_invariant(!1);let{future:u,static:l}=a.useContext(s),{matches:c}=a.useContext(d),{pathname:p}=v(),m=h(),g=r.resolveTo(t,r.UNSAFE_getResolveToMatches(c,u.v7_relativeSplatPath),p,"path"===i),E=JSON.stringify(g);return a.useEffect((()=>m(JSON.parse(E),{replace:n,state:o,relative:i})),[m,E,i,n,o]),null},e.Outlet=function(e){return E(e.context)},e.Route=T,e.Router=I,e.RouterProvider=function(e){let{fallbackElement:t,router:r,future:n}=e,[o,l]=a.useState(r.state),{v7_startTransition:s}=n||{},c=a.useCallback((e=>{s&&L?L((()=>l(e))):l(e)}),[l,s]);a.useLayoutEffect((()=>r.subscribe(c)),[r,c]),a.useEffect((()=>{}),[]);let d=a.useMemo((()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:e=>r.navigate(e),push:(e,t,n)=>r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,t,n)=>r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})})),[r]),p=r.basename||"/",f=a.useMemo((()=>({router:r,navigator:d,static:!1,basename:p})),[r,d,p]);return a.createElement(a.Fragment,null,a.createElement(i.Provider,{value:f},a.createElement(u.Provider,{value:o},a.createElement(I,{basename:p,location:o.location,navigationType:o.historyAction,navigator:d,future:{v7_relativeSplatPath:r.future.v7_relativeSplatPath}},o.initialized||r.future.v7_partialHydration?a.createElement(M,{routes:r.routes,future:r.future,state:o}):t))),null)},e.Routes=function(e){let{children:t,location:r}=e;return b(q(t),r)},e.UNSAFE_DataRouterContext=i,e.UNSAFE_DataRouterStateContext=u,e.UNSAFE_LocationContext=c,e.UNSAFE_NavigationContext=s,e.UNSAFE_RouteContext=d,e.UNSAFE_mapRouteProperties=V,e.UNSAFE_useRouteId=function(){return j(N.UseRouteId)},e.UNSAFE_useRoutesImpl=R,e.createMemoryRouter=function(e,t){return r.createRouter({basename:null==t?void 0:t.basename,future:o({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:r.createMemoryHistory({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:V,unstable_dataStrategy:null==t?void 0:t.unstable_dataStrategy,unstable_patchRoutesOnNavigation:null==t?void 0:t.unstable_patchRoutesOnNavigation}).initialize()},e.createRoutesFromChildren=q,e.createRoutesFromElements=q,e.renderMatches=function(e){return S(e)},e.useActionData=function(){let e=A(N.UseActionData),t=j(N.UseLoaderData);return e.actionData?e.actionData[t]:void 0},e.useAsyncError=function(){let e=a.useContext(l);return null==e?void 0:e._error},e.useAsyncValue=D,e.useBlocker=function(e){let{router:t,basename:n}=O(U.UseBlocker),i=A(N.UseBlocker),[u,l]=a.useState(""),s=a.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===n)return e(t);let{currentLocation:a,nextLocation:i,historyAction:u}=t;return e({currentLocation:o({},a,{pathname:r.stripBasename(a.pathname,n)||a.pathname}),nextLocation:o({},i,{pathname:r.stripBasename(i.pathname,n)||i.pathname}),historyAction:u})}),[n,e]);return a.useEffect((()=>{let e=String(++k);return l(e),()=>t.deleteBlocker(e)}),[t]),a.useEffect((()=>{""!==u&&t.getBlocker(u,s)}),[t,u,s]),u&&i.blockers.has(u)?i.blockers.get(u):r.IDLE_BLOCKER},e.useHref=function(e,t){let{relative:n}=void 0===t?{}:t;f()||r.UNSAFE_invariant(!1);let{basename:o,navigator:i}=a.useContext(s),{hash:u,pathname:l,search:c}=y(e,{relative:n}),d=l;return"/"!==o&&(d="/"===l?o:r.joinPaths([o,l])),i.createHref({pathname:d,search:c,hash:u})},e.useInRouterContext=f,e.useLoaderData=function(){let e=A(N.UseLoaderData),t=j(N.UseLoaderData);if(!e.errors||null==e.errors[t])return e.loaderData[t];console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")")},e.useLocation=v,e.useMatch=function(e){f()||r.UNSAFE_invariant(!1);let{pathname:t}=v();return a.useMemo((()=>r.matchPath(e,r.UNSAFE_decodePath(t))),[t,e])},e.useMatches=function(){let{matches:e,loaderData:t}=A(N.UseMatches);return a.useMemo((()=>e.map((e=>r.UNSAFE_convertRouteMatchToUiMatch(e,t)))),[e,t])},e.useNavigate=h,e.useNavigation=function(){return A(N.UseNavigation).navigation},e.useNavigationType=function(){return a.useContext(c).navigationType},e.useOutlet=E,e.useOutletContext=function(){return a.useContext(g)},e.useParams=function(){let{matches:e}=a.useContext(d),t=e[e.length-1];return t?t.params:{}},e.useResolvedPath=y,e.useRevalidator=function(){let e=O(U.UseRevalidator),t=A(N.UseRevalidator);return a.useMemo((()=>({revalidate:e.router.revalidate,state:t.revalidation})),[e.router.revalidate,t.revalidation])},e.useRouteError=F,e.useRouteLoaderData=function(e){return A(N.UseRouteLoaderData).loaderData[e]},e.useRoutes=b,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
11
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("turbo-stream"),require("cookie"),require("set-cookie-parser")):"function"==typeof define&&define.amd?define(["exports","react","turbo-stream","cookie","set-cookie-parser"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouter={},e.React,e.turboStream,e.cookie,e.setCookieParser)}(this,(function(e,t,r,n,a){"use strict";function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=o(t);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function l(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}let u=function(e){return e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE",e}({});const c="popstate";function d(e){void 0===e&&(e={});let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map(((e,t)=>d(e,"string"==typeof e?null:e.state,0===t?"default":void 0)));let o=l(null==n?t.length-1:n),i=u.Pop,s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function c(){return t[o]}function d(e,r,n){return void 0===r&&(r=null),y(t?c().pathname:"/",e,r,n)}function h(e){return"string"==typeof e?e:v(e)}return{get index(){return o},get action(){return i},get location(){return c()},createHref:h,createURL:e=>new URL(h(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?g(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i=u.Push;let n=d(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i=u.Replace;let n=d(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i=u.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 h(e){return void 0===e&&(e={}),w((function(e,t){let{pathname:r,search:n,hash:a}=e.location;return y("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"==typeof t?t:v(t)}),null,e)}function f(e){return void 0===e&&(e={}),w((function(e,t){let{pathname:r="/",search:n="",hash:a=""}=g(e.location.hash.substr(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),y("",{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:v(t))}),(function(e,t){}),e)}function m(e,t){if(!1===e||null==e)throw new Error(t)}function p(e,t){return{usr:e.state,key:e.key,idx:t}}function y(e,t,r,n){return void 0===r&&(r=null),s({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?g(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substr(2,8)})}function v(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&"?"!==r&&(t+="?"===r.charAt(0)?r:"?"+r),n&&"#"!==n&&(t+="#"===n.charAt(0)?n:"#"+n),t}function g(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function w(e,t,r,n){void 0===n&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l=u.Pop,d=null,h=f();function f(){return(i.state||{idx:null}).idx}function g(){l=u.Pop;let e=f(),t=null==e?null:e-h;h=e,d&&d({action:l,location:b.location,delta:t})}function w(e){let t="null"!==a.location.origin?a.location.origin:a.location.href,r="string"==typeof e?e:v(e);return r=r.replace(/ $/,"%20"),t||m(!1),new URL(r,t)}null==h&&(h=0,i.replaceState(s({},i.state,{idx:h}),""));let b={get action(){return l},get location(){return e(a,i)},listen(e){if(d)throw new Error("A history only accepts one active listener");return a.addEventListener(c,g),d=e,()=>{a.removeEventListener(c,g),d=null}},createHref:e=>t(a,e),createURL:w,encodeLocation(e){let t=w(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l=u.Push;let n=y(b.location,e,t);r&&r(n,e),h=f()+1;let s=p(n,h),c=b.createHref(n);try{i.pushState(s,"",c)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(c)}o&&d&&d({action:l,location:b.location,delta:1})},replace:function(e,t){l=u.Replace;let n=y(b.location,e,t);r&&r(n,e),h=f();let a=p(n,h),s=b.createHref(n);i.replaceState(a,"",s),o&&d&&d({action:l,location:b.location,delta:0})},go:e=>i.go(e)};return b}let b=function(e){return e.data="data",e.redirect="redirect",e.error="error",e}({});const E=new Set(["lazy","caseSensitive","path","id","index","children"]);function S(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map(((e,a)=>{let o=[...r,String(a)],i="string"==typeof e.id?e.id:o.join("-");if(!0===e.index&&e.children&&m(!1),n[i]&&m(!1),function(e){return!0===e.index}(e)){let r=s({},e,t(e),{id:i});return n[i]=r,r}{let r=s({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=S(e.children,t,o,n)),r}}))}function R(e,t,r){return void 0===r&&(r="/"),x(e,t,r,!1)}function x(e,t,r,n){let a=_(("string"==typeof t?g(t):t).pathname||"/",r);if(null==a)return null;let o=k(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every(((e,r)=>e===t[r]))?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let e=0;null==i&&e<o.length;++e){let t=O(a);i=M(o[e],t,n)}return i}function C(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function k(e,t,r,n){void 0===t&&(t=[]),void 0===r&&(r=[]),void 0===n&&(n="");let a=(e,a,o)=>{let i={relativePath:void 0===o?e.path||"":o,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};i.relativePath.startsWith("/")&&(i.relativePath.startsWith(n)||m(!1),i.relativePath=i.relativePath.slice(n.length));let s=H([n,i.relativePath]),l=r.concat(i);e.children&&e.children.length>0&&(!0===e.index&&m(!1),k(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:A(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?"))for(let r of D(e.path))a(e,t,r);else a(e,t)})),t}function D(e){let t=e.split("/");if(0===t.length)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(0===n.length)return a?[o,""]:[o];let i=D(n.join("/")),s=[];return s.push(...i.map((e=>""===e?o:[o,e].join("/")))),a&&s.push(...i),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const L=/^:[\w-]+$/,T=e=>"*"===e;function A(e,t){let r=e.split("/"),n=r.length;return r.some(T)&&(n+=-2),t&&(n+=2),r.filter((e=>!T(e))).reduce(((e,t)=>e+(L.test(t)?3:""===t?1:10)),n)}function M(e,t,r){void 0===r&&(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=P({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=P({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:H([o,c.pathname]),pathnameBase:I(H([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=H([o,c.pathnameBase]))}return i}function P(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=function(e,t,r){void 0===t&&(t=!1);void 0===r&&(r=!0);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,r)=>(n.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))");return[new RegExp(a,t?void 0:"i"),n]}(e.path,e.caseSensitive,e.end),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,t,r)=>{let{paramName:n,isOptional:a}=t;if("*"===n){let e=s[r]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}const l=s[r];return e[n]=a&&!l?void 0:(l||"").replace(/%2F/g,"/"),e}),{}),pathname:o,pathnameBase:i,pattern:e}}function O(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return e}}function _(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 U(e,t){void 0===t&&(t="/");let{pathname:r,search:n="",hash:a=""}="string"==typeof e?g(e):e,o=r?r.startsWith("/")?r:function(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)})),r.length>1?r.join("/"):"/"}(r,t):t;return{pathname:o,search:B(n),hash:z(a)}}function j(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function N(e){let t=j(e);return t.map(((e,r)=>r===t.length-1?e.pathname:e.pathnameBase))}function F(e,t,r,n){let a;void 0===n&&(n=!1),"string"==typeof e?a=g(e):(a=s({},e),a.pathname&&a.pathname.includes("?")&&m(!1),a.pathname&&a.pathname.includes("#")&&m(!1),a.search&&a.search.includes("#")&&m(!1));let o,i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let u=U(a,o),c=l&&"/"!==l&&l.endsWith("/"),d=(i||"."===l)&&r.endsWith("/");return u.pathname.endsWith("/")||!c&&!d||(u.pathname+="/"),u}const H=e=>e.join("/").replace(/\/\/+/g,"/"),I=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),B=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",z=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",q=function(e,t){void 0===t&&(t={});let r="number"==typeof t?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),s({},r,{headers:n}))};class J{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}}function W(e,t){return new J(e,"number"==typeof t?{status:t}:t)}const $=function(e,t){void 0===t&&(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,s({},r,{headers:n}))};class K{constructor(e,t,r,n){void 0===n&&(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 V(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const Y=["POST","PUT","PATCH","DELETE"],X=new Set(Y),G=["GET",...Y],Q=new Set(G),Z=new Set([301,302,303,307,308]),ee=new Set([307,308]),te={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},re={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ne={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ae=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,oe=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ie="remix-router-transitions",se=Symbol("ResetLoaderData");function le(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,r=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement;e.routes.length>0||m(!1);let n,a,o,i=e.mapRouteProperties||oe,l={},c=S(e.routes,i,void 0,l),d=e.basename||"/",h=e.dataStrategy||be,f=e.patchRoutesOnNavigation,p=s({},e.future),v=null,g=new Set,w=null,E=null,k=null,D=null!=e.hydrationData,L=R(c,e.history.location,d),T=null;if(null==L&&!f){let t=_e(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=Oe(c);L=r,T={[n.id]:t}}if(L&&!e.hydrationData){at(L,c,e.history.location.pathname).active&&(L=null)}if(L)if(L.some((e=>e.route.lazy)))a=!1;else if(L.some((e=>e.route.loader))){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null,n=e=>!e.route.loader||("function"!=typeof e.route.loader||!0!==e.route.loader.hydrate)&&(t&&void 0!==t[e.route.id]||r&&void 0!==r[e.route.id]);if(r){let e=L.findIndex((e=>void 0!==r[e.route.id]));a=L.slice(0,e+1).every(n)}else a=L.every(n)}else a=!0;else{a=!1,L=[];let t=at(null,c,e.history.location.pathname);t.active&&t.matches&&(L=t.matches)}let A,M,P={historyAction:e.history.action,location:e.history.location,matches:L,initialized:a,navigation:te,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||T,fetchers:new Map,blockers:new Map},O=u.Pop,U=!1,j=!1,N=new Map,F=null,H=!1,I=!1,B=new Set,z=new Map,q=0,J=-1,W=new Map,$=new Set,K=new Map,Y=new Map,X=new Set,G=new Map,Q=new Map,Z=null;function se(e,t){void 0===t&&(t={}),P=s({},P,e);let r=[],n=[];P.fetchers.forEach(((e,t)=>{"idle"===e.state&&(X.has(t)?r.push(t):n.push(t))})),[...g].forEach((e=>e(P,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync}))),r.forEach((e=>je(e))),n.forEach((e=>P.fetchers.delete(e)))}function le(t,r,a){var o,i,l;let d,{flushSync:h}=void 0===a?{}:a,f=null!=P.actionData&&null!=P.navigation.formMethod&&qe(P.navigation.formMethod)&&"loading"===P.navigation.state&&!0!==(null==(o=t.state)?void 0:o._isRedirect);d=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:f?P.actionData:null;let m=r.loaderData?Ae(P.loaderData,r.loaderData,r.matches||[],r.errors):P.loaderData,p=P.blockers;p.size>0&&(p=new Map(p),p.forEach(((e,t)=>p.set(t,ne))));let y,v=!0===U||null!=P.navigation.formMethod&&qe(P.navigation.formMethod)&&!0!==(null==(i=t.state)?void 0:i._isRedirect);if(n&&(c=n,n=void 0),H||O===u.Pop||(O===u.Push?e.history.push(t,t.state):O===u.Replace&&e.history.replace(t,t.state)),O===u.Pop){let e=N.get(P.location.pathname);e&&e.has(t.pathname)?y={currentLocation:P.location,nextLocation:t}:N.has(t.pathname)&&(y={currentLocation:t,nextLocation:P.location})}else if(j){let e=N.get(P.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),N.set(P.location.pathname,e)),y={currentLocation:P.location,nextLocation:t}}se(s({},r,{actionData:d,loaderData:m,historyAction:O,location:t,initialized:!0,navigation:te,revalidation:"idle",restoreScrollPosition:nt(t,r.matches||P.matches),preventScrollReset:v,blockers:p}),{viewTransitionOpts:y,flushSync:!0===h}),O=u.Pop,U=!1,j=!1,H=!1,I=!1,null==(l=Z)||l.resolve(),Z=null}async function ue(t,r,a){A&&A.abort(),A=null,O=t,H=!0===(a&&a.startUninterruptedRevalidation),function(e,t){if(w&&k){let r=rt(e,t);w[r]=k()}}(P.location,P.matches),U=!0===(a&&a.preventScrollReset),j=!0===(a&&a.enableViewTransition);let o=n||c,i=a&&a.overrideNavigation,l=R(o,r,d),h=!0===(a&&a.flushSync),f=at(l,o,r.pathname);if(f.active&&f.matches&&(l=f.matches),!l){let{error:e,notFoundMatches:t,route:n}=et(r.pathname);return void le(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:h})}if(P.initialized&&!I&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(P.location,r)&&!(a&&a.submission&&qe(a.submission.formMethod)))return void le(r,{matches:l},{flushSync:h});A=new AbortController;let m,p=Ce(e.history,r,A.signal,a&&a.submission);if(a&&a.pendingError)m=[Pe(l).route.id,{type:b.error,error:a.pendingError}];else if(a&&a.submission&&qe(a.submission.formMethod)){let t=await async function(e,t,r,n,a,o){void 0===o&&(o={});let i;if(we(),se({navigation:Ve(t,r)},{flushSync:!0===o.flushSync}),a){let r=await ot(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let{boundaryId:e,error:n}=tt(t.pathname,r);return{matches:r.partialMatches,pendingActionResult:[e,{type:b.error,error:n}]}}if(!r.matches){let{notFoundMatches:e,error:r,route:n}=et(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:b.error,error:r}]}}n=r.matches}let s=We(n,t);if(s.route.action||s.route.lazy){if(i=(await pe("action",P,e,[s],n,null))[s.route.id],e.signal.aborted)return{shortCircuited:!0}}else i={type:b.error,error:_e(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(He(i)){let t;if(o&&null!=o.replace)t=o.replace;else{t=xe(i.response.headers.get("Location"),new URL(e.url),d)===P.location.pathname+P.location.search}return await fe(e,i,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(Fe(i)){let e=Pe(n,s.route.id);return!0!==(o&&o.replace)&&(O=u.Push),{matches:n,pendingActionResult:[e.route.id,i]}}return{matches:n,pendingActionResult:[s.route.id,i]}}(p,r,a.submission,l,f.active,{replace:a.replace,flushSync:h});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,n]=t.pendingActionResult;if(Fe(n)&&V(n.error)&&404===n.error.status)return A=null,void le(r,{matches:t.matches,loaderData:{},errors:{[e]:n.error}})}l=t.matches||l,m=t.pendingActionResult,i=Ke(r,a.submission),h=!1,f.active=!1,p=Ce(e.history,p.url,p.signal)}let{shortCircuited:y,matches:v,loaderData:g,errors:E}=await async function(t,r,a,o,i,l,u,h,f,m,p){let y=i||Ke(r,l),v=l||u||$e(y),g=!H&&!f;if(o){if(g){let e=ce(p);se(s({navigation:y},void 0!==e?{actionData:e}:{}),{flushSync:m})}let e=await ot(a,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let{boundaryId:t,error:n}=tt(r.pathname,e);return{matches:e.partialMatches,loaderData:{},errors:{[t]:n}}}if(!e.matches){let{error:e,notFoundMatches:t,route:n}=et(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}a=e.matches}let w=n||c,[b,E]=me(e.history,P,a,v,r,!0===f,I,B,X,K,$,w,d,p);if(J=++q,0===b.length&&0===E.length){let e=ze();return le(r,s({matches:a,loaderData:{},errors:p&&Fe(p[1])?{[p[0]]:p[1].error}:null},Me(p),e?{fetchers:new Map(P.fetchers)}:{}),{flushSync:m}),{shortCircuited:!0}}if(g){let e={};if(!o){e.navigation=y;let t=ce(p);void 0!==t&&(e.actionData=t)}E.length>0&&(e.fetchers=function(e){return e.forEach((e=>{let t=P.fetchers.get(e.key),r=Ye(void 0,t?t.data:void 0);P.fetchers.set(e.key,r)})),new Map(P.fetchers)}(E)),se(e,{flushSync:m})}E.forEach((e=>{Ie(e.key),e.controller&&z.set(e.key,e.controller)}));let S=()=>E.forEach((e=>Ie(e.key)));A&&A.signal.addEventListener("abort",S);let{loaderResults:R,fetcherResults:x}=await ye(P,a,b,E,t);if(t.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",S);E.forEach((e=>z.delete(e.key)));let C=Ue(R);if(C)return await fe(t,C.result,!0,{replace:h}),{shortCircuited:!0};if(C=Ue(x),C)return $.add(C.key),await fe(t,C.result,!0,{replace:h}),{shortCircuited:!0};let{loaderData:k,errors:D}=Te(P,a,R,p,E,x);f&&P.errors&&Object.entries(P.errors).filter((e=>{let[t]=e;return!b.some((e=>e.route.id===t))})).forEach((e=>{let[t,r]=e;D=Object.assign(D||{},{[t]:r})}));let L=ze(),T=Je(J),M=L||T||E.length>0;return s({matches:a,loaderData:k,errors:D},M?{fetchers:new Map(P.fetchers)}:{})}(p,r,l,f.active,i,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,h,m);y||(A=null,le(r,s({matches:v||l},Me(m),{loaderData:g,errors:E})))}function ce(e){return e&&!Fe(e[1])?{[e[0]]:e[1].data}:P.actionData?0===Object.keys(P.actionData).length?null:P.actionData:void 0}async function fe(n,a,o,i){let{submission:l,fetcherSubmission:c,preventScrollReset:h,replace:f}=void 0===i?{}:i;a.response.headers.has("X-Remix-Revalidate")&&(I=!0);let p=a.response.headers.get("Location");p||m(!1),p=xe(p,new URL(n.url),d);let v=y(P.location,p,{_isRedirect:!0});if(r){let r=!1;if(a.response.headers.has("X-Remix-Reload-Document"))r=!0;else if(ae.test(p)){const n=e.history.createURL(p);r=n.origin!==t.location.origin||null==_(n.pathname,d)}if(r)return void(f?t.location.replace(p):t.location.assign(p))}A=null;let g=!0===f||a.response.headers.has("X-Remix-Replace")?u.Replace:u.Push,{formMethod:w,formAction:b,formEncType:E}=P.navigation;!l&&!c&&w&&b&&E&&(l=$e(P.navigation));let S=l||c;if(ee.has(a.response.status)&&S&&qe(S.formMethod))await ue(g,v,{submission:s({},S,{formAction:p}),preventScrollReset:h||U,enableViewTransition:o?j:void 0});else{let e=Ke(v,l);await ue(g,v,{overrideNavigation:e,fetcherSubmission:c,preventScrollReset:h||U,enableViewTransition:o?j:void 0})}}async function pe(e,t,r,n,a,o){let s,u={};try{s=await Ee(h,e,t,r,n,a,o,l,i)}catch(e){return n.forEach((t=>{u[t.route.id]={type:b.error,error:e}})),u}for(let[e,t]of Object.entries(s))if(Ne(t)){let n=t.result;u[e]={type:b.redirect,response:Re(n,r,e,a,d)}}else u[e]=await Se(t);return u}async function ye(t,r,n,a,o){t.matches;let i=pe("loader",t,o,n,r,null),s=Promise.all(a.map((async r=>{if(r.matches&&r.match&&r.controller){let n=(await pe("loader",t,Ce(e.history,r.path,r.controller.signal),[r.match],r.matches,r.key))[r.match.route.id];return{[r.key]:n}}return Promise.resolve({[r.key]:{type:b.error,error:_e(404,{pathname:r.path})}})})));return{loaderResults:await i,fetcherResults:(await s).reduce(((e,t)=>Object.assign(e,t)),{})}}function we(){I=!0,K.forEach(((e,t)=>{z.has(t)&&B.add(t),Ie(t)}))}function ke(e,t,r){void 0===r&&(r={}),P.fetchers.set(e,t),se({fetchers:new Map(P.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function De(e,t,r,n){void 0===n&&(n={});let a=Pe(P.matches,t);je(e),se({errors:{[a.route.id]:r},fetchers:new Map(P.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function Le(e){return Y.set(e,(Y.get(e)||0)+1),X.has(e)&&X.delete(e),P.fetchers.get(e)||re}function je(e){let t=P.fetchers.get(e);!z.has(e)||t&&"loading"===t.state&&W.has(e)||Ie(e),K.delete(e),W.delete(e),$.delete(e),X.delete(e),B.delete(e),P.fetchers.delete(e)}function Ie(e){let t=z.get(e);t&&(t.abort(),z.delete(e))}function Be(e){for(let t of e){let e=Xe(Le(t).data);P.fetchers.set(t,e)}}function ze(){let e=[],t=!1;for(let r of $){let n=P.fetchers.get(r);n||m(!1),"loading"===n.state&&($.delete(r),e.push(r),t=!0)}return Be(e),t}function Je(e){let t=[];for(let[r,n]of W)if(n<e){let e=P.fetchers.get(r);e||m(!1),"loading"===e.state&&(Ie(r),W.delete(r),t.push(r))}return Be(t),t.length>0}function Ge(e){P.blockers.delete(e),G.delete(e)}function Qe(e,t){let r=P.blockers.get(e)||ne;"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||m(!1);let n=new Map(P.blockers);n.set(e,t),se({blockers:n})}function Ze(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===G.size)return;G.size;let a=Array.from(G.entries()),[o,i]=a[a.length-1],s=P.blockers.get(o);return s&&"proceeding"===s.state?void 0:i({currentLocation:t,nextLocation:r,historyAction:n})?o:void 0}function et(e){let t=_e(404,{pathname:e}),r=n||c,{matches:a,route:o}=Oe(r);return{notFoundMatches:a,route:o,error:t}}function tt(e,t){return{boundaryId:Pe(t.partialMatches).route.id,error:_e(400,{type:"route-discovery",pathname:e,message:null!=t.error&&"message"in t.error?t.error:String(t.error)})}}function rt(e,t){if(E){return E(e,t.map((e=>C(e,P.loaderData))))||e.key}return e.key}function nt(e,t){if(w){let r=rt(e,t),n=w[r];if("number"==typeof n)return n}return null}function at(e,t,r){if(f){if(!e){return{active:!0,matches:x(t,r,d,!0)||[]}}if(Object.keys(e[0].params).length>0){return{active:!0,matches:x(t,r,d,!0)}}}return{active:!1,matches:null}}async function ot(e,t,r){let a=e;for(;;){let e=null==n,o=n||c;try{await ve(f,t,a,o,l,i,Q,r)}catch(e){return{type:"error",error:e,partialMatches:a}}finally{e&&(c=[...c])}if(r.aborted)return{type:"aborted"};let s=R(o,t,d);if(s)return{type:"success",matches:s};let u=x(o,t,d,!0);if(!u||a.length===u.length&&a.every(((e,t)=>e.route.id===u[t].route.id)))return{type:"success",matches:null};a=u}}return o={get basename(){return d},get future(){return p},get state(){return P},get routes(){return c},get window(){return t},initialize:function(){if(v=e.history.listen((t=>{let{action:r,location:n,delta:a}=t;if(M)return M(),void(M=void 0);let o=Ze({currentLocation:P.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise((e=>{M=e}));return e.history.go(-1*a),void Qe(o,{state:"blocked",location:n,proceed(){Qe(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then((()=>e.history.go(a)))},reset(){let e=new Map(P.blockers);e.set(o,ne),se({blockers:e})}})}return ue(r,n)})),r){!function(e,t){try{let r=e.sessionStorage.getItem(ie);if(r){let e=JSON.parse(r);for(let[r,n]of Object.entries(e||{}))n&&Array.isArray(n)&&t.set(r,new Set(n||[]))}}catch(e){}}(t,N);let e=()=>function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ie,JSON.stringify(r))}catch(e){}}}(t,N);t.addEventListener("pagehide",e),F=()=>t.removeEventListener("pagehide",e)}return P.initialized||ue(u.Pop,P.location,{initialHydration:!0}),o},subscribe:function(e){return g.add(e),()=>g.delete(e)},enableScrollRestoration:function(e,t,r){if(w=e,k=t,E=r||null,!D&&P.navigation===te){D=!0;let e=nt(P.location,P.matches);null!=e&&se({restoreScrollPosition:e})}return()=>{w=null,k=null,E=null}},navigate:async function t(r,n){if("number"==typeof r)return void e.history.go(r);let a=de(P.location,P.matches,d,r,null==n?void 0:n.fromRouteId,null==n?void 0:n.relative),{path:o,submission:i,error:l}=he(!1,a,n),c=P.location,h=y(P.location,o,n&&n.state);h=s({},h,e.history.encodeLocation(h));let f=n&&null!=n.replace?n.replace:void 0,m=u.Push;!0===f?m=u.Replace:!1===f||null!=i&&qe(i.formMethod)&&i.formAction===P.location.pathname+P.location.search&&(m=u.Replace);let p=n&&"preventScrollReset"in n?!0===n.preventScrollReset:void 0,v=!0===(n&&n.flushSync),g=Ze({currentLocation:c,nextLocation:h,historyAction:m});g?Qe(g,{state:"blocked",location:h,proceed(){Qe(g,{state:"proceeding",proceed:void 0,reset:void 0,location:h}),t(r,n)},reset(){let e=new Map(P.blockers);e.set(g,ne),se({blockers:e})}}):await ue(m,h,{submission:i,pendingError:l,preventScrollReset:p,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:v})},fetch:async function(t,r,a,o){Ie(t);let i=!0===(o&&o.flushSync),s=n||c,l=de(P.location,P.matches,d,a,r,null==o?void 0:o.relative),u=R(s,l,d),h=at(u,s,l);if(h.active&&h.matches&&(u=h.matches),!u)return void De(t,r,_e(404,{pathname:l}),{flushSync:i});let{path:f,submission:p,error:y}=he(!0,l,o);if(y)return void De(t,r,y,{flushSync:i});let v=We(u,f),g=!0===(o&&o.preventScrollReset);p&&qe(p.formMethod)?await async function(t,r,a,o,i,s,l,u,h){function f(e){if(!e.route.action&&!e.route.lazy){let e=_e(405,{method:h.formMethod,pathname:a,routeId:r});return De(t,r,e,{flushSync:l}),!0}return!1}if(we(),K.delete(t),!s&&f(o))return;let p=P.fetchers.get(t);ke(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(h,p),{flushSync:l});let y=new AbortController,v=Ce(e.history,a,y.signal,h);if(s){let e=await ot(i,a,v.signal);if("aborted"===e.type)return;if("error"===e.type){let{error:n}=tt(a,e);return void De(t,r,n,{flushSync:l})}if(!e.matches)return void De(t,r,_e(404,{pathname:a}),{flushSync:l});if(f(o=We(i=e.matches,a)))return}z.set(t,y);let g=q,w=(await pe("action",P,v,[o],i,t))[o.route.id];if(v.signal.aborted)return void(z.get(t)===y&&z.delete(t));if(X.has(t)){if(He(w)||Fe(w))return void ke(t,Xe(void 0))}else{if(He(w))return z.delete(t),J>g?void ke(t,Xe(void 0)):($.add(t),ke(t,Ye(h)),fe(v,w,!1,{fetcherSubmission:h,preventScrollReset:u}));if(Fe(w))return void De(t,r,w.error)}let b=P.navigation.location||P.location,E=Ce(e.history,b,y.signal),S=n||c,x="idle"!==P.navigation.state?R(S,P.navigation.location,d):P.matches;x||m(!1);let C=++q;W.set(t,C);let k=Ye(h,w.data);P.fetchers.set(t,k);let[D,L]=me(e.history,P,x,h,b,!1,I,B,X,K,$,S,d,[o.route.id,w]);L.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,r=P.fetchers.get(t),n=Ye(void 0,r?r.data:void 0);P.fetchers.set(t,n),Ie(t),e.controller&&z.set(t,e.controller)})),se({fetchers:new Map(P.fetchers)});let T=()=>L.forEach((e=>Ie(e.key)));y.signal.addEventListener("abort",T);let{loaderResults:M,fetcherResults:_}=await ye(P,x,D,L,E);if(y.signal.aborted)return;y.signal.removeEventListener("abort",T),W.delete(t),z.delete(t),L.forEach((e=>z.delete(e.key)));let U=Ue(M);if(U)return fe(E,U.result,!1,{preventScrollReset:u});if(U=Ue(_),U)return $.add(U.key),fe(E,U.result,!1,{preventScrollReset:u});let{loaderData:j,errors:N}=Te(P,x,M,void 0,L,_);if(P.fetchers.has(t)){let e=Xe(w.data);P.fetchers.set(t,e)}Je(C),"loading"===P.navigation.state&&C>J?(O||m(!1),A&&A.abort(),le(P.navigation.location,{matches:x,loaderData:j,errors:N,fetchers:new Map(P.fetchers)})):(se({errors:N,loaderData:Ae(P.loaderData,j,x,N),fetchers:new Map(P.fetchers)}),I=!1)}(t,r,f,v,u,h.active,i,g,p):(K.set(t,{routeId:r,path:f}),await async function(t,r,n,a,o,i,s,l,u){let c=P.fetchers.get(t);ke(t,Ye(u,c?c.data:void 0),{flushSync:s});let d=new AbortController,h=Ce(e.history,n,d.signal);if(i){let e=await ot(o,n,h.signal);if("aborted"===e.type)return;if("error"===e.type){let{error:a}=tt(n,e);return void De(t,r,a,{flushSync:s})}if(!e.matches)return void De(t,r,_e(404,{pathname:n}),{flushSync:s});a=We(o=e.matches,n)}z.set(t,d);let f=q,m=(await pe("loader",P,h,[a],o,t))[a.route.id];z.get(t)===d&&z.delete(t);if(h.signal.aborted)return;if(X.has(t))return void ke(t,Xe(void 0));if(He(m))return J>f?void ke(t,Xe(void 0)):($.add(t),void await fe(h,m,!1,{preventScrollReset:l}));if(Fe(m))return void De(t,r,m.error);ke(t,Xe(m.data))}(t,r,f,v,u,h.active,i,g,p))},revalidate:function(){Z||(Z=function(){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}}()),we(),se({revalidation:"loading"});let e=Z.promise;return"submitting"===P.navigation.state?e:"idle"===P.navigation.state?(ue(P.historyAction,P.location,{startUninterruptedRevalidation:!0}),e):(ue(O||P.historyAction,P.navigation.location,{overrideNavigation:P.navigation,enableViewTransition:!0===j}),e)},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Le,deleteFetcher:function(e){let t=(Y.get(e)||0)-1;t<=0?(Y.delete(e),X.add(e)):Y.set(e,t),se({fetchers:new Map(P.fetchers)})},dispose:function(){v&&v(),F&&F(),g.clear(),A&&A.abort(),P.fetchers.forEach(((e,t)=>je(t))),P.blockers.forEach(((e,t)=>Ge(t)))},getBlocker:function(e,t){let r=P.blockers.get(e)||ne;return G.get(e)!==t&&G.set(e,t),r},deleteBlocker:Ge,patchRoutes:function(e,t){let r=null==n;ge(e,t,n||c,l,i),r&&(c=[...c],se({}))},_internalFetchControllers:z,_internalSetRoutes:function(e){l={},n=S(e,i,void 0,l)}},o}function ue(e,t){e.length>0||m(!1);let r={},n=(t?t.basename:null)||"/",a=(null==t?void 0:t.mapRouteProperties)||oe,o=S(e,a,void 0,r);async function i(e,t,r,n,a,o,i){e.signal||m(!1);try{if(qe(e.method)){let c=await async function(e,t,r,n,a,o,i){let c;if(r.route.action||r.route.lazy){c=(await u("action",e,[r],t,i,n,a))[r.route.id],e.signal.aborted&&ce(e,i)}else{let t=_e(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:r.route.id});if(i)throw t;c={type:b.error,error:t}}if(He(c))throw new Response(null,{status:c.response.status,headers:{Location:c.response.headers.get("Location")}});if(i){if(Fe(c))throw c.error;return{matches:[r],loaderData:{},actionData:{[r.route.id]:c.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}let d=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});if(Fe(c)){let e=o?r:Pe(t,r.route.id);return s({},await l(d,t,n,a,o,null,[e.route.id,c]),{statusCode:V(c.error)?c.error.status:null!=c.statusCode?c.statusCode:500,actionData:null,actionHeaders:s({},c.headers?{[r.route.id]:c.headers}:{})})}return s({},await l(d,t,n,a,o,null),{actionData:{[r.route.id]:c.data}},c.statusCode?{statusCode:c.statusCode}:{},{actionHeaders:c.headers?{[r.route.id]:c.headers}:{}})}(e,r,i||We(r,t),n,a,o,null!=i);return c}let c=await l(e,r,n,a,o,i);return Be(c)?c:s({},c,{actionData:null,actionHeaders:{}})}catch(e){if(function(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&(e.type===b.data||e.type===b.error)}(e)&&Be(e.result)){if(e.type===b.error)throw e.result;return e.result}if(function(e){if(!Be(e))return!1;let t=e.status,r=e.headers.get("Location");return t>=300&&t<=399&&null!=r}(e))return e;throw e}}async function l(e,t,r,n,a,o,i){let l=null!=o;if(l&&(null==o||!o.route.loader)&&(null==o||!o.route.lazy))throw _e(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:null==o?void 0:o.route.id});let c=(o?[o]:i&&Fe(i[1])?fe(t,i[0]):t).filter((e=>e.route.loader||e.route.lazy));if(0===c.length)return{matches:t,loaderData:t.reduce(((e,t)=>Object.assign(e,{[t.route.id]:null})),{}),errors:i&&Fe(i[1])?{[i[0]]:i[1].error}:null,statusCode:200,loaderHeaders:{}};let d=await u("loader",e,c,t,l,r,n);e.signal.aborted&&ce(e,l);let h=Le(t,d,i,!0,a),f=new Set(c.map((e=>e.route.id)));return t.forEach((e=>{f.has(e.route.id)||(h.loaderData[e.route.id]=null)})),s({},h,{matches:t})}async function u(e,t,o,i,s,l,u){let c=await Ee(u||be,e,null,t,o,i,null,r,a,l),d={};return await Promise.all(i.map((async e=>{if(!(e.route.id in c))return;let r=c[e.route.id];if(Ne(r)){throw Re(r.result,t,e.route.id,i,n)}if(Be(r.result)&&s)throw r;d[e.route.id]=await Se(r)}))),d}return{dataRoutes:o,query:async function(e,t){let{requestContext:r,skipLoaderErrorBubbling:a,dataStrategy:l}=void 0===t?{}:t,u=new URL(e.url),c=e.method,d=y("",v(u),null,"default"),h=R(o,d,n);if(!ze(c)&&"HEAD"!==c){let e=_e(405,{method:c}),{matches:t,route:r}=Oe(o);return{basename:n,location:d,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}}}if(!h){let e=_e(404,{pathname:d.pathname}),{matches:t,route:r}=Oe(o);return{basename:n,location:d,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}}}let f=await i(e,d,h,r,l||null,!0===a,null);return Be(f)?f:s({location:d,basename:n},f)},queryRoute:async function(e,t){let{routeId:r,requestContext:a,dataStrategy:s}=void 0===t?{}:t,l=new URL(e.url),u=e.method,c=y("",v(l),null,"default"),d=R(o,c,n);if(!ze(u)&&"HEAD"!==u&&"OPTIONS"!==u)throw _e(405,{method:u});if(!d)throw _e(404,{pathname:c.pathname});let h=r?d.find((e=>e.route.id===r)):We(d,c);if(r&&!h)throw _e(403,{pathname:c.pathname,routeId:r});if(!h)throw _e(404,{pathname:c.pathname});let f=await i(e,c,d,a,s||null,!1,h);if(Be(f))return f;let m=f.errors?Object.values(f.errors)[0]:void 0;if(void 0!==m)throw m;return f.actionData?Object.values(f.actionData)[0]:f.loaderData?Object.values(f.loaderData)[0]:void 0}}}function ce(e,t){if(void 0!==e.signal.reason)throw e.signal.reason;throw new Error((t?"queryRoute":"query")+"() call aborted without an `AbortSignal.reason`: "+e.method+" "+e.url)}function de(e,t,r,n,a,o){let i,s;if(a){i=[];for(let e of t)if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=F(n||".",N(i),_(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=Je(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="/"===l.pathname?r:H([r,l.pathname])),v(l)}function he(e,t,r){if(!r||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(r))return{path:t};if(r.formMethod&&!ze(r.formMethod))return{path:t,error:_e(405,{method:r.formMethod})};let n,a,o=()=>({path:t,error:_e(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=je(t);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!qe(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)=>{let[r,n]=t;return""+e+r+"="+n+"\n"}),""):String(r.body);return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!qe(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("function"!=typeof FormData&&m(!1),r.formData)n=ke(r.formData),a=r.formData;else if(r.body instanceof FormData)n=ke(r.body),a=r.body;else if(r.body instanceof URLSearchParams)n=r.body,a=De(n);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=De(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(qe(l.formMethod))return{path:t,submission:l};let u=g(t);return e&&u.search&&Je(u.search)&&n.append("index",""),u.search="?"+n,{path:v(u),submission:l}}function fe(e,t){let r=e;if(t){let n=e.findIndex((e=>e.route.id===t));n>=0&&(r=e.slice(0,n))}return r}function me(e,t,r,n,a,o,i,l,u,c,d,h,f,m){let p=m?Fe(m[1])?m[1].error:m[1].data:void 0,y=e.createURL(t.location),v=e.createURL(a),g=m&&Fe(m[1])?m[0]:void 0,w=g?fe(r,g):r,b=m?m[1].statusCode:void 0,E=b&&b>=400,S=w.filter(((e,r)=>{let{route:a}=e;if(a.lazy)return!0;if(null==a.loader)return!1;if(o)return!("function"==typeof a.loader&&!a.loader.hydrate)||!(t.loaderData.hasOwnProperty(a.id)||t.errors&&void 0!==t.errors[a.id]);if(function(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}(t.loaderData,t.matches[r],e))return!0;let l=t.matches[r],u=e;return ye(e,s({currentUrl:y,currentParams:l.params,nextUrl:v,nextParams:u.params},n,{actionResult:p,actionStatus:b,defaultShouldRevalidate:!E&&(i||y.pathname+y.search===v.pathname+v.search||y.search!==v.search||pe(l,u))}))})),x=[];return c.forEach(((e,a)=>{if(o||!r.some((t=>t.route.id===e.routeId))||u.has(a))return;let c=R(h,e.path,f);if(!c)return void x.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let m=t.fetchers.get(a),g=We(c,e.path),w=!1;d.has(a)?w=!1:l.has(a)?(l.delete(a),w=!0):w=m&&"idle"!==m.state&&void 0===m.data?i:ye(g,s({currentUrl:y,currentParams:t.matches[t.matches.length-1].params,nextUrl:v,nextParams:r[r.length-1].params},n,{actionResult:p,actionStatus:b,defaultShouldRevalidate:!E&&i})),w&&x.push({key:a,routeId:e.routeId,path:e.path,matches:c,match:g,controller:new AbortController})})),[S,x]}function pe(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ye(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}async function ve(e,t,r,n,a,o,i,s){let l=[t,...r.map((e=>e.route.id))].join("-");try{let c=i.get(l);c||(c=e({path:t,matches:r,patch:(e,t)=>{s.aborted||ge(e,t,n,a,o)}}),i.set(l,c)),c&&("object"==typeof(u=c)&&null!=u&&"then"in u)&&await c}finally{i.delete(l)}var u}function ge(e,t,r,n,a){var o;let i;if(e){let t=n[e];t||m(!1),t.children||(t.children=[]),i=t.children}else i=r;let s=S(t.filter((e=>!i.some((t=>we(e,t))))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...s)}function we(e,t){return"id"in e&&"id"in t&&e.id===t.id||e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive&&(!(e.children&&0!==e.children.length||t.children&&0!==t.children.length)||e.children.every(((e,r)=>{var n;return null==(n=t.children)?void 0:n.some((t=>we(e,t)))})))}async function be(e){let{matches:t}=e,r=t.filter((e=>e.shouldLoad));return(await Promise.all(r.map((e=>e.resolve())))).reduce(((e,t,n)=>Object.assign(e,{[r[n].route.id]:t})),{})}async function Ee(e,t,r,n,a,o,i,l,u,c){let d=o.map((e=>e.route.lazy?async function(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];a||m(!1);let o={};for(let e in n)void 0!==a[e]&&"hasErrorBoundary"!==e||E.has(e)||(o[e]=n[e]);Object.assign(a,o),Object.assign(a,s({},t(a),{lazy:void 0}))}(e.route,u,l):void 0)),h=o.map(((e,r)=>{let o=d[r],i=a.some((t=>t.route.id===e.route.id));return s({},e,{shouldLoad:i,resolve:async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(i=!0),i?async function(e,t,r,n,a,o){let i,s,l=n=>{let i,l=new Promise(((e,t)=>i=t));s=()=>i(),t.signal.addEventListener("abort",s);let u=a=>"function"!=typeof n?Promise.reject(new Error('You cannot call the handler for a route which defines a boolean "'+e+'" [routeId: '+r.route.id+"]")):n({request:t,params:r.params,context:o},...void 0!==a?[a]:[]),c=(async()=>{try{return{type:"data",result:await(a?a((e=>u(e))):u())}}catch(e){return{type:"error",result:e}}})();return Promise.race([c,l])};try{let a=r.route[e];if(n)if(a){let e,[t]=await Promise.all([l(a).catch((t=>{e=t})),n]);if(void 0!==e)throw e;i=t}else{if(await n,a=r.route[e],!a){if("action"===e){let e=new URL(t.url),n=e.pathname+e.search;throw _e(405,{method:t.method,pathname:n,routeId:r.route.id})}return{type:b.data,result:void 0}}i=await l(a)}else{if(!a){let e=new URL(t.url);throw _e(404,{pathname:e.pathname+e.search})}i=await l(a)}}catch(e){return{type:b.error,result:e}}finally{s&&t.signal.removeEventListener("abort",s)}return i}(t,n,e,o,r,c):Promise.resolve({type:b.data,result:void 0}))})})),f=await e({matches:h,request:n,params:o[0].params,fetcherKey:i,context:c});try{await Promise.all(d)}catch(e){}return f}async function Se(e){let{result:t,type:r}=e;if(Be(t)){let e;try{let r=t.headers.get("Content-Type");e=r&&/\bapplication\/json\b/.test(r)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:b.error,error:e}}return r===b.error?{type:b.error,error:new K(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:b.data,data:e,statusCode:t.status,headers:t.headers}}if(r===b.error){if(Ie(t)){var n,a;if(t.data instanceof Error)return{type:b.error,error:t.data,statusCode:null==(a=t.init)?void 0:a.status};t=new K((null==(n=t.init)?void 0:n.status)||500,void 0,t.data)}return{type:b.error,error:t,statusCode:V(t)?t.status:void 0}}var o,i;return Ie(t)?{type:b.data,data:t.data,statusCode:null==(o=t.init)?void 0:o.status,headers:null!=(i=t.init)&&i.headers?new Headers(t.init.headers):void 0}:{type:b.data,data:t}}function Re(e,t,r,n,a){let o=e.headers.get("Location");if(o||m(!1),!ae.test(o)){let i=n.slice(0,n.findIndex((e=>e.route.id===r))+1);o=de(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function xe(e,t,r){if(ae.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=null!=_(a.pathname,r);if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Ce(e,t,r,n){let a=e.createURL(je(t)).toString(),o={signal:r};if(n&&qe(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=ke(n.formData):o.body=n.formData}return new Request(a,o)}function ke(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function De(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Le(e,t,r,n,a){void 0===n&&(n=!1),void 0===a&&(a=!1);let o,i={},s=null,l=!1,u={},c=r&&Fe(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(He(h)&&m(!1),Fe(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=Pe(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[d]=se),l||(l=!0,o=V(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},i[r[0]]=void 0),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}function Te(e,t,r,n,a,o){let{loaderData:i,errors:l}=Le(t,r,n);return a.forEach((t=>{let{key:r,match:n,controller:a}=t,i=o[r];if(i||m(!1),!a||!a.signal.aborted)if(Fe(i)){let t=Pe(e.matches,null==n?void 0:n.route.id);l&&l[t.route.id]||(l=s({},l,{[t.route.id]:i.error})),e.fetchers.delete(r)}else if(He(i))m(!1);else{let t=Xe(i.data);e.fetchers.set(r,t)}})),{loaderData:i,errors:l}}function Ae(e,t,r,n){let a=Object.entries(t).filter((e=>{let[,t]=e;return t!==se})).reduce(((e,t)=>{let[r,n]=t;return e[r]=n,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 Me(e){return e?Fe(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Pe(e,t){return(t?e.slice(0,e.findIndex((e=>e.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function Oe(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 _e(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=void 0===t?{}:t,s="Unknown Server Error",l="Unknown @remix-run/router error";return 400===e?(s="Bad Request","route-discovery"===o?l='Unable to match URL "'+r+'" - the `patchRoutesOnNavigation()` function threw the following error:\n'+i:a&&r&&n?l="You made a "+a+' request to "'+r+'" but did not provide a `loader` for route "'+n+'", so there is no way to handle the request.':"invalid-body"===o&&(l="Unable to encode submission body")):403===e?(s="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):404===e?(s="Not Found",l='No route matches URL "'+r+'"'):405===e&&(s="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but did not provide an `action` for route "'+n+'", so there is no way to handle the request.':a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new K(e||500,s,new Error(l),!0)}function Ue(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(He(n))return{key:r,result:n}}}function je(e){return v(s({},"string"==typeof e?g(e):e,{hash:""}))}function Ne(e){return Be(e.result)&&Z.has(e.result.status)}function Fe(e){return e.type===b.error}function He(e){return(e&&e.type)===b.redirect}function Ie(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function Be(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function ze(e){return Q.has(e.toUpperCase())}function qe(e){return X.has(e.toUpperCase())}function Je(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function We(e,t){let r="string"==typeof t?g(t).search:t.search;if(e[e.length-1].route.index&&Je(r||""))return e[e.length-1];let n=j(e);return n[n.length-1]}function $e(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n)return null!=a?{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a}:null!=o?{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0}:void 0!==i?{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}:void 0}function Ke(e,t){if(t){return{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}return{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Ve(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Ye(e,t){if(e){return{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}}return{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Xe(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}const Ge=i.createContext(null);Ge.displayName="DataRouter";const Qe=i.createContext(null);Qe.displayName="DataRouterState";const Ze=i.createContext({isTransitioning:!1});Ze.displayName="ViewTransition";const et=i.createContext(new Map);et.displayName="Fetchers";const tt=i.createContext(null);tt.displayName="Await";const rt=i.createContext(null);rt.displayName="Navigation";const nt=i.createContext(null);nt.displayName="Location";const at=i.createContext({outlet:null,matches:[],isDataRoute:!1});at.displayName="Route";const ot=i.createContext(null);function it(e,t){let{relative:r}=void 0===t?{}:t;st()||m(!1);let{basename:n,navigator:a}=i.useContext(rt),{hash:o,pathname:s,search:l}=ft(e,{relative:r}),u=s;return"/"!==n&&(u="/"===s?n:H([n,s])),a.createHref({pathname:u,search:l,hash:o})}function st(){return null!=i.useContext(nt)}function lt(){return st()||m(!1),i.useContext(nt).location}function ut(e){i.useContext(rt).static||i.useLayoutEffect(e)}function ct(){let{isDataRoute:e}=i.useContext(at);return e?function(){let{router:e}=Rt(Et.UseNavigateStable),t=Ct(St.UseNavigateStable),r=i.useRef(!1);return ut((()=>{r.current=!0})),i.useCallback((async function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):await e.navigate(n,s({fromRouteId:t},a)))}),[e,t])}():function(){st()||m(!1);let e=i.useContext(Ge),{basename:t,navigator:r}=i.useContext(rt),{matches:n}=i.useContext(at),{pathname:a}=lt(),o=JSON.stringify(N(n)),s=i.useRef(!1);return ut((()=>{s.current=!0})),i.useCallback((function(n,i){if(void 0===i&&(i={}),!s.current)return;if("number"==typeof n)return void r.go(n);let l=F(n,JSON.parse(o),a,"path"===i.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:H([t,l.pathname])),(i.replace?r.replace:r.push)(l,i.state,i)}),[t,r,o,a,e])}()}ot.displayName="RouteError";const dt=i.createContext(null);function ht(e){let t=i.useContext(at).outlet;return t?i.createElement(dt.Provider,{value:e},t):t}function ft(e,t){let{relative:r}=void 0===t?{}:t,{matches:n}=i.useContext(at),{pathname:a}=lt(),o=JSON.stringify(N(n));return i.useMemo((()=>F(e,JSON.parse(o),a,"path"===r)),[e,o,a,r])}function mt(e,t){return pt(e,t)}function pt(e,t,r,n){st()||m(!1);let{navigator:a}=i.useContext(rt),{matches:o}=i.useContext(at),l=o[o.length-1],c=l?l.params:{},d=l?l.pathname:"/",h=l?l.pathnameBase:"/",f=l&&l.route;{let e=f&&f.path||"";Ot(d,!f||e.endsWith("*"))}let p,y=lt();if(t){var v;let e="string"==typeof t?g(t):t;"/"===h||(null==(v=e.pathname)?void 0:v.startsWith(h))||m(!1),p=e}else p=y;let w=p.pathname||"/",b=w;if("/"!==h){let e=h.replace(/^\//,"").split("/");b="/"+w.replace(/^\//,"").split("/").slice(e.length).join("/")}let E=R(e,{pathname:b}),S=bt(E&&E.map((e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:H([h,a.encodeLocation?a.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?h:H([h,a.encodeLocation?a.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),o,r);return t&&S?i.createElement(nt.Provider,{value:{location:s({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:u.Pop}},S):S}function yt(){let e=Lt(),t=V(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=i.createElement(i.Fragment,null,i.createElement("p",null,"💿 Hey developer 👋"),i.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",i.createElement("code",{style:o},"ErrorBoundary")," or"," ",i.createElement("code",{style:o},"errorElement")," prop on your route.")),i.createElement(i.Fragment,null,i.createElement("h2",null,"Unexpected Application Error!"),i.createElement("h3",{style:{fontStyle:"italic"}},t),r?i.createElement("pre",{style:a},r):null,s)}const vt=i.createElement(yt,null);class gt extends i.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}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){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?i.createElement(at.Provider,{value:this.props.routeContext},i.createElement(ot.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function wt(e){let{routeContext:t,match:r,children:n}=e,a=i.useContext(Ge);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),i.createElement(at.Provider,{value:t},n)}function bt(e,t,r,n){var a;if(void 0===t&&(t=[]),void 0===r&&(r=null),null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let o=e,s=null==(a=r)?void 0:a.errors;if(null!=s){let e=o.findIndex((e=>e.route.id&&void 0!==(null==s?void 0:s[e.route.id])));e>=0||m(!1),o=o.slice(0,Math.min(o.length,e+1))}let l=!1,u=-1;if(r)for(let e=0;e<o.length;e++){let t=o[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){l=!0,o=u>=0?o.slice(0,u+1):[o[0]];break}}}return o.reduceRight(((e,n,a)=>{let c,d=!1,h=null,f=null;r&&(c=s&&n.route.id?s[n.route.id]:void 0,h=n.route.errorElement||vt,l&&(u<0&&0===a?(Ot("route-fallback",!1),d=!0,f=null):u===a&&(d=!0,f=n.route.hydrateFallbackElement||null)));let m=t.concat(o.slice(0,a+1)),p=()=>{let t;return t=c?h:d?f:n.route.Component?i.createElement(n.route.Component,null):n.route.element?n.route.element:e,i.createElement(wt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?i.createElement(gt,{location:r.location,revalidation:r.revalidation,component:h,error:c,children:p(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):p()}),null)}var Et=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Et||{}),St=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(St||{});function Rt(e){let t=i.useContext(Ge);return t||m(!1),t}function xt(e){let t=i.useContext(Qe);return t||m(!1),t}function Ct(e){let t=function(e){let t=i.useContext(at);return t||m(!1),t}(),r=t.matches[t.matches.length-1];return r.route.id||m(!1),r.route.id}function kt(){return xt(St.UseNavigation).navigation}function Dt(){let{matches:e,loaderData:t}=xt(St.UseMatches);return i.useMemo((()=>e.map((e=>C(e,t)))),[e,t])}function Lt(){var e;let t=i.useContext(ot),r=xt(St.UseRouteError),n=Ct(St.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function Tt(){let e=i.useContext(tt);return null==e?void 0:e._data}let At=0;function Mt(e){let{router:t,basename:r}=Rt(Et.UseBlocker),n=xt(St.UseBlocker),[a,o]=i.useState(""),l=i.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:s({},n,{pathname:_(n.pathname,r)||n.pathname}),nextLocation:s({},a,{pathname:_(a.pathname,r)||a.pathname}),historyAction:o})}),[r,e]);return i.useEffect((()=>{let e=String(++At);return o(e),()=>t.deleteBlocker(e)}),[t]),i.useEffect((()=>{""!==a&&t.getBlocker(a,l)}),[t,a,l]),a&&n.blockers.has(a)?n.blockers.get(a):ne}const Pt={};function Ot(e,t,r){t||Pt[e]||(Pt[e]=!0)}const _t={};function Ut(e,t){e||_t[t]||(_t[t]=!0,console.warn(t))}function jt(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element,Object.assign(t,{element:i.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement,Object.assign(t,{hydrateFallbackElement:i.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement,Object.assign(t,{errorElement:i.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}function Nt(e,t){return le({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:d({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:jt,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()}class Ft{constructor(){this.status="pending",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 Ht(e){let{router:t,flushSync:r}=e,[n,a]=i.useState(t.state),[o,s]=i.useState(),[l,u]=i.useState({isTransitioning:!1}),[c,d]=i.useState(),[h,f]=i.useState(),[m,p]=i.useState(),y=i.useRef(new Map),v=i.useCallback(((e,n)=>{let{deletedFetchers:o,flushSync:l,viewTransitionOpts:m}=n;o.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)})),Ut(!1===l||null!=r,'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 v=null!=t.window&&null!=t.window.document&&"function"==typeof t.window.document.startViewTransition;if(Ut(null==m||v,"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."),m&&v){if(r&&l){r((()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:m.currentLocation,nextLocation:m.nextLocation})}));let n=t.window.document.startViewTransition((()=>{r((()=>a(e)))}));return n.finished.finally((()=>{r((()=>{d(void 0),f(void 0),s(void 0),u({isTransitioning:!1})}))})),void r((()=>f(n)))}h?(c&&c.resolve(),h.skipTransition(),p({state:e,currentLocation:m.currentLocation,nextLocation:m.nextLocation})):(s(e),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}))}else r&&l?r((()=>a(e))):i.startTransition((()=>a(e)))}),[t.window,r,h,c]);i.useLayoutEffect((()=>t.subscribe(v)),[t,v]),i.useEffect((()=>{l.isTransitioning&&!l.flushSync&&d(new Ft)}),[l]),i.useEffect((()=>{if(c&&o&&t.window){let e=o,r=c.promise,n=t.window.document.startViewTransition((async()=>{i.startTransition((()=>a(e))),await r}));n.finished.finally((()=>{d(void 0),f(void 0),s(void 0),u({isTransitioning:!1})})),f(n)}}),[o,c,t.window]),i.useEffect((()=>{c&&o&&n.location.key===o.location.key&&c.resolve()}),[c,h,n.location,o]),i.useEffect((()=>{!l.isTransitioning&&m&&(s(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),p(void 0))}),[l.isTransitioning,m]);let g=i.useMemo((()=>({createHref:t.createHref,encodeLocation:t.encodeLocation,go:e=>t.navigate(e),push:(e,r,n)=>t.navigate(e,{state:r,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,r,n)=>t.navigate(e,{replace:!0,state:r,preventScrollReset:null==n?void 0:n.preventScrollReset})})),[t]),w=t.basename||"/",b=i.useMemo((()=>({router:t,navigator:g,static:!1,basename:w})),[t,g,w]);return i.createElement(i.Fragment,null,i.createElement(Ge.Provider,{value:b},i.createElement(Qe.Provider,{value:n},i.createElement(et.Provider,{value:y.current},i.createElement(Ze.Provider,{value:l},i.createElement(Jt,{basename:w,location:n.location,navigationType:n.historyAction,navigator:g},i.createElement(It,{routes:t.routes,future:t.future,state:n})))))),null)}const It=i.memo(Bt);function Bt(e){let{routes:t,future:r,state:n}=e;return pt(t,void 0,n)}function zt(e){return ht(e.context)}function qt(e){m(!1)}function Jt(e){let{basename:t="/",children:r=null,location:n,navigationType:a=u.Pop,navigator:o,static:s=!1}=e;st()&&m(!1);let l=t.replace(/^\/*/,"/"),c=i.useMemo((()=>({basename:l,navigator:o,static:s,future:{}})),[l,o,s]);"string"==typeof n&&(n=g(n));let{pathname:d="/",search:h="",hash:f="",state:p=null,key:y="default"}=n,v=i.useMemo((()=>{let e=_(d,l);return null==e?null:{location:{pathname:e,search:h,hash:f,state:p,key:y},navigationType:a}}),[l,d,h,f,p,y,a]);return null==v?null:i.createElement(rt.Provider,{value:c},i.createElement(nt.Provider,{children:r,value:v}))}var Wt=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(Wt||{});class $t extends i.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(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=Wt.pending;if(r instanceof Promise)if(this.state.error){a=Wt.error;let e=this.state.error;n=Promise.reject().catch((()=>{})),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?(n=r,a="_error"in n?Wt.error:"_data"in n?Wt.success:Wt.pending):(a=Wt.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then((e=>Object.defineProperty(r,"_data",{get:()=>e})),(e=>Object.defineProperty(r,"_error",{get:()=>e}))));else a=Wt.success,n=Promise.resolve(),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(a===Wt.error&&!t)throw n._error;if(a===Wt.error)return i.createElement(tt.Provider,{value:n,children:t});if(a===Wt.success)return i.createElement(tt.Provider,{value:n,children:e});throw n}}function Kt(e){let{children:t}=e,r=Tt(),n="function"==typeof t?t(r):t;return i.createElement(i.Fragment,null,n)}function Vt(e,t){void 0===t&&(t=[]);let r=[];return i.Children.forEach(e,((e,n)=>{if(!i.isValidElement(e))return;let a=[...t,n];if(e.type===i.Fragment)return void r.push.apply(r,Vt(e.props.children,a));e.type!==qt&&m(!1),e.props.index&&e.props.children&&m(!1);let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=Vt(e.props.children,a)),r.push(o)})),r}const Yt="get",Xt="application/x-www-form-urlencoded";function Gt(e){return null!=e&&"string"==typeof e.tagName}function Qt(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map((e=>[r,e])):[[r,n]])}),[]))}let Zt=null;const er=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function tr(e){return null==e||er.has(e)?e:null}function rr(e,t){let r,n,a,o,i;if(Gt(s=e)&&"form"===s.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?_(i,t):null,r=e.getAttribute("method")||Yt,a=tr(e.getAttribute("enctype"))||Xt,o=new FormData(e)}else if(function(e){return Gt(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Gt(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||i.getAttribute("action");if(n=s?_(s,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||Yt,a=tr(e.getAttribute("formenctype"))||tr(i.getAttribute("enctype"))||Xt,o=new FormData(i,e),!function(){if(null===Zt)try{new FormData(document.createElement("form"),0),Zt=!1}catch(e){Zt=!0}return Zt}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?t+".":"";o.append(e+"x","0"),o.append(e+"y","0")}else t&&o.append(t,n)}}else{if(Gt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Yt,n=null,a=Xt,i=e}var s;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}function nr(e,t){if(!1===e||null==e)throw new Error(t)}async function ar(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 or(e,t,r){let n=e.map((e=>{let n=t[e.route.id],a=r.routes[e.route.id];return[a.css?a.css.map((e=>({rel:"stylesheet",href:e}))):[],(null==n||null==n.links?void 0:n.links())||[]]})).flat(2),a=function(e,t){return dr(e.map((e=>{let r=t.routes[e.route.id],n=[r.module];return r.imports&&(n=n.concat(r.imports)),n})).flat(1))}(e,r);return hr(n,a)}async function ir(e,t){if(!e.css&&!t.links||!function(){if(void 0!==fr)return fr;let e=document.createElement("link");return fr=e.relList.supports("preload"),e=null,fr}())return;let r=[];if(e.css&&r.push(...e.css.map((e=>({rel:"stylesheet",href:e})))),t.links&&r.push(...t.links()),0===r.length)return;let n=[];for(let e of r)lr(e)||"stylesheet"!==e.rel||n.push(s({},e,{rel:"preload",as:"style"}));let a=n.filter((e=>(!e.media||window.matchMedia(e.media).matches)&&!document.querySelector('link[rel="stylesheet"][href="'+e.href+'"]')));await Promise.all(a.map(sr))}async function sr(e){return new Promise((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 lr(e){return null!=e&&"string"==typeof e.page}function ur(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)}function cr(e,t,r,n,a,o){let i=function(e){let t=g(e);void 0===t.search&&(t.search="");return t}(e),s=(e,t)=>!r[t]||e.route.id!==r[t].route.id,l=(e,t)=>{var n;return r[t].pathname!==e.pathname||(null==(n=r[t].route.path)?void 0:n.endsWith("*"))&&r[t].params["*"]!==e.params["*"]};return"data"===o&&a.search!==i.search?t.filter(((t,o)=>{if(!n.routes[t.route.id].hasLoader)return!1;if(s(t,o)||l(t,o))return!0;if(t.route.shouldRevalidate){var i;let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:(null==(i=r[0])?void 0:i.params)||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0})):t.filter(((e,t)=>{let r=n.routes[e.route.id];return("assets"===o||r.hasLoader)&&(s(e,t)||l(e,t))}))}function dr(e){return[...new Set(e)]}function hr(e,t){let r=new Set,n=new Set(t);return e.reduce(((e,a)=>{if(t&&!lr(a)&&"script"===a.as&&a.href&&n.has(a.href))return e;let o=JSON.stringify(function(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}(a));return r.has(o)||(r.add(o),e.push({key:o,link:a})),e}),[])}let fr;const mr={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},pr=/[&><\u2028\u2029]/g;function yr(e){return{__html:e}}async function vr(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}const gr=Symbol("SingleFetchRedirect");function wr(e){let{context:t,identifier:r,reader:n,textDecoder:a,nonce:o}=e;if(!t.renderMeta||!t.renderMeta.didRenderScripts)return null;t.renderMeta.streamCache||(t.renderMeta.streamCache={});let{streamCache:s}=t.renderMeta,l=s[r];if(l||(l=s[r]=n.read().then((e=>{s[r].result={done:e.done,value:a.decode(e.value,{stream:!0})}})).catch((e=>{s[r].error=e}))),l.error)throw l.error;if(void 0===l.result)throw l;let{done:u,value:c}=l.result,d=c?i.createElement("script",{nonce:o,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.enqueue("+(h=JSON.stringify(c),h.replace(pr,(e=>mr[e]))+");")}}):null;var h;return u?i.createElement(i.Fragment,null,d,i.createElement("script",{nonce:o,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):i.createElement(i.Fragment,null,d,i.createElement(i.Suspense,null,i.createElement(wr,{context:t,identifier:r+1,reader:n,textDecoder:a,nonce:o})))}function br(e,t,r,n){return e((async()=>{let e=new URL(t);e.searchParams.set("_routes",n);let{data:a}=await Rr(e,r);return Cr(a,n)}))}function Er(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}function Sr(e){let t="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===t.pathname?t.pathname="_root.data":t.pathname=t.pathname.replace(/\/$/,"")+".data",t}async function Rr(e,t){let r=await fetch(e,t);if(404===r.status&&!r.headers.has("X-Remix-Response"))throw new K(404,"Not Found",!0);r.body||nr(!1);try{let e=await xr(r.body,window);return{status:r.status,data:e.value}}catch(e){throw new Error("Unable to decode turbo-stream response")}}function xr(e,t){return r.decode(e,{plugins:[function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];if("SanitizedError"===e){let[e,r,a]=n,o=Error;e&&e in t&&"function"==typeof t[e]&&(o=t[e]);let i=new o(r);return i.stack=a,{value:i}}if("ErrorResponse"===e){let[e,t,r]=n;return{value:new K(t,r,e)}}return"SingleFetchRedirect"===e?{value:{[gr]:n[0]}}:"SingleFetchClassInstance"===e?{value:n[0]}:"SingleFetchFallback"===e?{value:void 0}:void 0}]})}function Cr(e,t){let r=e[gr];return r?kr(r,t):void 0!==e[t]?kr(e[t],t):null}function kr(e,t){if("error"in e)throw e.error;if("redirect"in e){let t={};return e.revalidate&&(t["X-Remix-Revalidate"]="yes"),e.reload&&(t["X-Remix-Reload-Document"]="yes"),e.replace&&(t["X-Remix-Replace"]="yes"),$(e.redirect,{status:e.status,headers:t})}if("data"in e)return e.data;throw new Error('No response found for routeId "'+t+'"')}function Dr(){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}}class Lr extends i.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?i.createElement(Tr,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}}function Tr(e){let{error:t,isOutsideRemixApp:r}=e;console.error(t);let n,a=i.createElement("script",{dangerouslySetInnerHTML:{__html:'\n console.log(\n "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information."\n );\n '}});if(V(t))return i.createElement(Ar,{title:"Unhandled Thrown Response!"},i.createElement("h1",{style:{fontSize:"24px"}},t.status," ",t.statusText),a);if(t instanceof Error)n=t;else{let e=null==t?"Unknown Error":"object"==typeof t&&"toString"in t?t.toString():JSON.stringify(t);n=new Error(e)}return i.createElement(Ar,{title:"Application Error!",isOutsideRemixApp:r},i.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),i.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),a)}function Ar(e){var t;let{title:r,renderScripts:n,isOutsideRemixApp:a,children:o}=e,{routeModules:s}=Gr();return null!=(t=s.root)&&t.Layout&&!a?o:i.createElement("html",{lang:"en"},i.createElement("head",null,i.createElement("meta",{charSet:"utf-8"}),i.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),i.createElement("title",null,r)),i.createElement("body",null,i.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},o,n?i.createElement(an,null):null)))}function Mr(){return i.createElement(Ar,{title:"Loading...",renderScripts:!0},i.createElement("script",{dangerouslySetInnerHTML:{__html:'\n console.log(\n "💿 Hey developer 👋. You can provide a way better UX than this " +\n "when your app is loading JS modules and/or running `clientLoader` " +\n "functions. Check out https://remix.run/route/hydrate-fallback " +\n "for more information."\n );\n '}}))}function Pr(e){let t={};return Object.values(e).forEach((e=>{let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)})),t}function Or(e,t,r){let n=Hr(t),a=!t.HydrateFallback||r&&"root"!==e.id?"root"===e.id?Mr:void 0:t.HydrateFallback,o=t.ErrorBoundary?t.ErrorBoundary:"root"===e.id?()=>i.createElement(Tr,{error:Lt()}):void 0;return"root"===e.id&&t.Layout?s({},n?{element:i.createElement(t.Layout,null,i.createElement(n,null))}:{Component:n},o?{errorElement:i.createElement(t.Layout,null,i.createElement(o,null))}:{ErrorBoundary:o},a?{hydrateFallbackElement:i.createElement(t.Layout,null,i.createElement(a,null))}:{HydrateFallback:a}):{Component:n,ErrorBoundary:o,HydrateFallback:a}}function _r(e,t,r,n,a,o,i){return void 0===a&&(a=""),void 0===o&&(o=Pr(e)),void 0===i&&(i=Promise.resolve({Component:()=>null})),(o[a]||[]).map((a=>{let l=t[a.id];l||nr(!1);let u=s({},Or(a,l,n),{caseSensitive:a.caseSensitive,id:a.id,index:a.index,path:a.path,handle:l.handle,lazy:n?()=>i:void 0,loader:a.hasLoader||a.hasClientLoader?()=>null:void 0}),c=_r(e,t,r,n,a.id,o,i);return c.length>0&&(u.children=c),u}))}function Ur(e,t,r){if(r){let r="You cannot call "+("action"===e?"serverAction()":"serverLoader()")+' in SPA Mode (routeId: "'+t.id+'")';throw console.error(r),new K(400,"Bad Request",new Error(r),!0)}let n="You are trying to call "+("action"===e?"serverAction()":"serverLoader()")+" on a route that does not have a server "+e+' (routeId: "'+t.id+'")';if("loader"===e&&!t.hasLoader||"action"===e&&!t.hasAction)throw console.error(n),new K(400,"Bad Request",new Error(n),!0)}function jr(e,t){let r="clientAction"===e?"a":"an",n='Route "'+t+'" does not have '+r+" "+e+", but you are trying to submit to it. To fix this, please add "+r+" `"+e+"` function to the route";throw console.error(n),new K(405,"Method Not Allowed",new Error(n),!0)}function Nr(e,t,r,n,a,o,i){return void 0===a&&(a=""),void 0===o&&(o=Pr(e)),(o[a]||[]).map((a=>{let l=t[a.id];function u(e){return"function"!=typeof e&&nr(!1),e()}function c(e){return a.hasLoader?u(e):Promise.resolve(null)}function d(e){if(!a.hasAction)throw jr("action",a.id);return u(e)}async function h(e){let r=t[a.id],n=r?ir(a,r):Promise.resolve();try{return e()}finally{await n}}let f={id:a.id,index:a.index,path:a.path};if(l){var m,p,y;Object.assign(f,s({},f,Or(a,l,n),{handle:l.handle,shouldRevalidate:i?Fr(a.id,l.shouldRevalidate,i):l.shouldRevalidate}));let e=null==r||null==(m=r.loaderData)?void 0:m[a.id],t=null==r||null==(p=r.errors)?void 0:p[a.id],o=null==i&&(!0===(null==(y=l.clientLoader)?void 0:y.hydrate)||!a.hasLoader);f.loader=async(r,i)=>{let{request:s,params:u}=r;try{return await h((async()=>(l||nr(!1),l.clientLoader?l.clientLoader({request:s,params:u,async serverLoader(){if(Ur("loader",a,n),o){if(void 0!==t)throw t;return e}return c(i)}}):n?null:c(i))))}finally{o=!1}},f.loader.hydrate=Ir(a,l,n),f.action=(e,t)=>{let{request:r,params:o}=e;return h((async()=>{if(l||nr(!1),!l.clientAction){if(n)throw jr("clientAction",a.id);return d(t)}return l.clientAction({request:r,params:o,serverAction:async()=>(Ur("action",a,n),d(t))})}))}}else a.hasClientLoader||(f.loader=(e,t)=>h((()=>n?Promise.resolve(null):c(t)))),a.hasClientAction||(f.action=(e,t)=>h((()=>{if(n)throw jr("clientAction",a.id);return d(t)}))),f.lazy=async()=>{let e=await async function(e,t){let r=await ar(e,t);return await ir(e,r),{Component:Hr(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}(a,t),r=s({},e);if(e.clientLoader){let t=e.clientLoader;r.loader=(e,r)=>t(s({},e,{serverLoader:async()=>(Ur("loader",a,n),c(r))}))}if(e.clientAction){let t=e.clientAction;r.action=(e,r)=>t(s({},e,{serverAction:async()=>(Ur("action",a,n),d(r))}))}return i&&(r.shouldRevalidate=Fr(a.id,e.shouldRevalidate,i)),s({},r.loader?{loader:r.loader}:{},r.action?{action:r.action}:{},{hasErrorBoundary:r.hasErrorBoundary,shouldRevalidate:r.shouldRevalidate,handle:r.handle,Component:r.Component,ErrorBoundary:r.ErrorBoundary})};let v=Nr(e,t,r,n,a.id,o,i);return v.length>0&&(f.children=v),f}))}function Fr(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}function Hr(e){if(null==e.default)return;return"object"==typeof e.default&&0===Object.keys(e.default).length?void 0:e.default}function Ir(e,t,r){return r&&"root"!==e.id||null!=t.clientLoader&&(!0===t.clientLoader.hydrate||!0!==e.hasLoader)}const Br=new Set,zr=new Set;function qr(e){return!e}async function Jr(e,t,r,n,a,o){let i=((null!=a?a:"/")+"/__manifest").replace(/\/+/g,"/"),s=new URL(i,window.location.origin);if(e.sort().forEach((e=>s.searchParams.append("p",e))),s.searchParams.set("version",t.version),s.toString().length>7680)return void Br.clear();let l=await fetch(s);if(!l.ok)throw new Error(l.status+" "+l.statusText);if(l.status>=400)throw new Error(await l.text());let u=await l.json(),c=new Set(Object.keys(t.routes)),d=Object.values(u).reduce(((e,t)=>c.has(t.id)?e:Object.assign(e,{[t.id]:t})),{});Object.assign(t.routes,d),e.forEach((e=>function(e,t){if(t.size>=1e3){let e=t.values().next().value;t.delete(e)}t.add(e)}(e,zr)));let h=new Set;Object.values(d).forEach((e=>{e.parentId&&d[e.parentId]||h.add(e.parentId)})),h.forEach((e=>o(e||null,Nr(d,r,null,n,e))))}const Wr=["page"],$r=["page","matches"],Kr=["tagName"];function Vr(){let e=i.useContext(Ge);return e||nr(!1),e}function Yr(){let e=i.useContext(Qe);return e||nr(!1),e}const Xr=i.createContext(void 0);function Gr(){let e=i.useContext(Xr);return e||nr(!1),e}function Qr(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Zr(e,t,r){if(r&&!nn)return[e[0]];if(t){let r=e.findIndex((e=>void 0!==t[e.route.id]));return e.slice(0,r+1)}return e}function en(e){let{page:t}=e,r=l(e,Wr),{router:n}=Vr(),a=i.useMemo((()=>R(n.routes,t,n.basename)),[n.routes,t,n.basename]);return a?i.createElement(rn,s({page:t,matches:a},r)):(console.warn("Tried to prefetch "+t+" but no routes matched."),null)}function tn(e){let{manifest:t,routeModules:r}=Gr(),[n,a]=i.useState([]);return i.useEffect((()=>{let n=!1;return async function(e,t,r){return hr((await Promise.all(e.map((async e=>{let n=await ar(t.routes[e.route.id],r);return n.links?n.links():[]})))).flat(1).filter(ur).filter((e=>"stylesheet"===e.rel||"preload"===e.rel)).map((e=>"stylesheet"===e.rel?s({},e,{rel:"prefetch",as:"style"}):s({},e,{rel:"prefetch"}))))}(e,t,r).then((e=>{n||a(e)})),()=>{n=!0}}),[e,t,r]),n}function rn(e){let{page:t,matches:r}=e,n=l(e,$r),a=lt(),{manifest:o,routeModules:u}=Gr(),{loaderData:c,matches:d}=Yr(),h=i.useMemo((()=>cr(t,r,d,o,a,"data")),[t,r,d,o,a]),f=i.useMemo((()=>cr(t,r,d,o,a,"assets")),[t,r,d,o,a]),m=i.useMemo((()=>{if(t===a.pathname+a.search+a.hash)return[];let e=new Set,n=!1;if(r.forEach((t=>{var r;o.routes[t.route.id].hasLoader&&(!h.some((e=>e.route.id===t.route.id))&&t.route.id in c&&null!=(r=u[t.route.id])&&r.shouldRevalidate||o.routes[t.route.id].hasClientLoader?n=!0:e.add(t.route.id))})),0===e.size)return[];let i=Sr(t);return n&&e.size>0&&i.searchParams.set("_routes",r.filter((t=>e.has(t.route.id))).map((e=>e.route.id)).join(",")),[i.pathname+i.search]}),[c,a,o,h,r,t,u]),p=i.useMemo((()=>function(e,t){return dr(e.map((e=>{let r=t.routes[e.route.id],n=[r.module];return r.imports&&(n=n.concat(r.imports)),n})).flat(1))}(f,o)),[f,o]),y=tn(f);return i.createElement(i.Fragment,null,m.map((e=>i.createElement("link",s({key:e,rel:"prefetch",as:"fetch",href:e},n)))),p.map((e=>i.createElement("link",s({key:e,rel:"modulepreload",href:e},n)))),y.map((e=>{let{key:t,link:r}=e;return i.createElement("link",s({key:t},r))})))}Xr.displayName="FrameworkContext";let nn=!1;function an(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a}=Gr(),{router:o,static:l,staticContext:u}=Vr(),{matches:c}=Yr(),d=qr(n);a&&(a.didRenderScripts=!0);let h=Zr(c,null,n);i.useEffect((()=>{nn=!0}),[]);let f=i.useMemo((()=>{var n;let a=u?"window.__reactRouterContext = "+r+";window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());":" ",c=l?(null!=(n=t.hmr)&&n.runtime?"import "+JSON.stringify(t.hmr.runtime)+";":"")+(d?"":"import "+JSON.stringify(t.url))+";\n"+h.map(((e,r)=>"import * as route"+r+" from "+JSON.stringify(t.routes[e.route.id].module)+";")).join("\n")+"\n "+(d?"window.__reactRouterManifest = "+JSON.stringify(function(e,t){let r=new Set(t.state.matches.map((e=>e.route.id))),n=t.state.location.pathname.split("/").filter(Boolean),a=["/"];for(n.pop();n.length>0;)a.push("/"+n.join("/")),n.pop();a.forEach((e=>{let n=R(t.routes,e,t.basename);n&&n.forEach((e=>r.add(e.route.id)))}));let o=[...r].reduce(((t,r)=>Object.assign(t,{[r]:e.routes[r]})),{});return s({},e,{routes:o})}(t,o),null,2)+";":"")+"\n window.__reactRouterRouteModules = {"+h.map(((e,t)=>JSON.stringify(e.route.id)+":route"+t)).join(",")+"};\n\nimport("+JSON.stringify(t.entry.module)+");":" ";return i.createElement(i.Fragment,null,i.createElement("script",s({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:yr(a),type:void 0})),i.createElement("script",s({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:yr(c),type:"module",async:!0})))}),[]),m=h.map((e=>{let r=t.routes[e.route.id];return(r.imports||[]).concat([r.module])})).flat(1),p=nn?[]:t.entry.imports.concat(m);return nn?null:i.createElement(i.Fragment,null,d?null:i.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),i.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),(y=p,[...new Set(y)]).map((t=>i.createElement("link",{key:t,rel:"modulepreload",href:t,crossOrigin:e.crossOrigin}))),f);var y}function on(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return e=>{t.forEach((t=>{"function"==typeof t?t(e):null!=t&&(t.current=e)}))}}const sn=["onClick","discover","prefetch","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],ln=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],un=["discover","fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"],cn=["getKey","storageKey"],dn="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{dn&&(window.__reactRouterVersion="7")}catch(e){}function hn(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=s({},t,{errors:fn(t.errors)})),t}function fn(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new K(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=new Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}function mn(e){let{basename:t,children:r,history:n}=e,[a,o]=i.useState({action:n.action,location:n.location}),s=i.useCallback((e=>{i.startTransition((()=>o(e)))}),[o]);return i.useLayoutEffect((()=>n.listen(s)),[n,s]),i.createElement(Jt,{basename:t,children:r,location:a.location,navigationType:a.action,navigator:n})}mn.displayName="unstable_HistoryRouter";const pn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,yn=i.forwardRef((function(e,t){let r,{onClick:n,discover:a="render",prefetch:o="none",relative:u,reloadDocument:c,replace:d,state:h,target:f,to:m,preventScrollReset:p,viewTransition:y}=e,v=l(e,sn),{basename:g}=i.useContext(rt),w="string"==typeof m&&pn.test(m),b=!1;if("string"==typeof m&&w&&(r=m,dn))try{let e=new URL(window.location.href),t=m.startsWith("//")?new URL(e.protocol+m):new URL(m),r=_(t.pathname,g);t.origin===e.origin&&null!=r?m=r+t.search+t.hash:b=!0}catch(e){}let E=it(m,{relative:u}),[S,R,x]=function(e,t){let r=i.useContext(Xr),[n,a]=i.useState(!1),[o,s]=i.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:h}=t,f=i.useRef(null);i.useEffect((()=>{if("render"===e&&s(!0),"viewport"===e){let e=new IntersectionObserver((e=>{e.forEach((e=>{s(e.isIntersecting)}))}),{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}}),[e]),i.useEffect((()=>{if(n){let e=setTimeout((()=>{s(!0)}),100);return()=>{clearTimeout(e)}}}),[n]);let m=()=>{a(!0)},p=()=>{a(!1),s(!1)};return r?"intent"!==e?[o,f,{}]:[o,f,{onFocus:Qr(l,m),onBlur:Qr(u,p),onMouseEnter:Qr(c,m),onMouseLeave:Qr(d,p),onTouchStart:Qr(h,m)}]:[!1,f,{}]}(o,v),C=xn(m,{replace:d,state:h,target:f,preventScrollReset:p,relative:u,viewTransition:y});let k=i.createElement("a",s({},v,x,{href:r||E,onClick:b||c?n:function(e){n&&n(e),e.defaultPrevented||C(e)},ref:on(t,R),target:f,"data-discover":w||"render"!==a?void 0:"true"}));return S&&!w?i.createElement(i.Fragment,null,k,i.createElement(en,{page:E})):k}));yn.displayName="Link";const vn=i.forwardRef((function(e,t){let{"aria-current":r="page",caseSensitive:n=!1,className:a="",end:o=!1,style:u,to:c,viewTransition:d,children:h}=e,f=l(e,ln),m=ft(c,{relative:f.relative}),p=lt(),y=i.useContext(Qe),{navigator:v,basename:g}=i.useContext(rt),w=null!=y&&Pn(m)&&!0===d,b=v.encodeLocation?v.encodeLocation(m).pathname:m.pathname,E=p.pathname,S=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;n||(E=E.toLowerCase(),S=S?S.toLowerCase():null,b=b.toLowerCase()),S&&g&&(S=_(S,g)||S);const R="/"!==b&&b.endsWith("/")?b.length-1:b.length;let x,C=E===b||!o&&E.startsWith(b)&&"/"===E.charAt(R),k=null!=S&&(S===b||!o&&S.startsWith(b)&&"/"===S.charAt(b.length)),D={isActive:C,isPending:k,isTransitioning:w},L=C?r:void 0;x="function"==typeof a?a(D):[a,C?"active":null,k?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let T="function"==typeof u?u(D):u;return i.createElement(yn,s({},f,{"aria-current":L,className:x,ref:t,style:T,to:c,viewTransition:d}),"function"==typeof h?h(D):h)}));vn.displayName="NavLink";const gn=i.forwardRef(((e,t)=>{let{discover:r="render",fetcherKey:n,navigate:a,reloadDocument:o,replace:u,state:c,method:d=Yt,action:h,onSubmit:f,relative:m,preventScrollReset:p,viewTransition:y}=e,v=l(e,un),g=kn(),w=Dn(h,{relative:m}),b="get"===d.toLowerCase()?"get":"post",E="string"==typeof h&&pn.test(h);return i.createElement("form",s({ref:t,method:b,action:w,onSubmit:o?f:e=>{if(f&&f(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,r=(null==t?void 0:t.getAttribute("formmethod"))||d;g(t||e.currentTarget,{fetcherKey:n,method:r,navigate:a,replace:u,state:c,relative:m,preventScrollReset:p,viewTransition:y})}},v,{"data-discover":E||"render"!==r?void 0:"true"}))}));function wn(e){let{getKey:t,storageKey:r}=e,n=l(e,cn),a=i.useContext(Xr),{basename:o}=i.useContext(rt),u=lt(),c=Dt();Mn({getKey:t,storageKey:r});let d=i.useMemo((()=>{if(!a||!t)return null;let e=An(u,c,o,t);return e!==u.key?e:null}),[]);if(!a||a.isSpaMode)return null;let h=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},"")}try{let r=JSON.parse(sessionStorage.getItem(e)||"{}")[t||window.history.state.key];"number"==typeof r&&window.scrollTo(0,r)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return i.createElement("script",s({},n,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:"("+h+")("+JSON.stringify(r||Ln)+", "+JSON.stringify(d)+")"}}))}gn.displayName="Form",wn.displayName="ScrollRestoration";var bn=function(e){return e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState",e}(bn||{}),En=function(e){return e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration",e}(En||{});function Sn(e){let t=i.useContext(Ge);return t||m(!1),t}function Rn(e){let t=i.useContext(Qe);return t||m(!1),t}function xn(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:s,viewTransition:l}=void 0===t?{}:t,u=ct(),c=lt(),d=ft(e,{relative:s});return i.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,r)){t.preventDefault();let r=void 0!==n?n:v(c)===v(d);u(e,{replace:r,state:a,preventScrollReset:o,relative:s,viewTransition:l})}}),[c,u,d,n,a,r,e,o,s,l])}let Cn=0;function kn(){let{router:e}=Sn(bn.UseSubmit),{basename:t}=i.useContext(rt),r=Ct(St.UseRouteId);return i.useCallback((async function(n,a){void 0===a&&(a={});let{action:o,method:i,encType:s,formData:l,body:u}=rr(n,t);if(!1===a.navigate){let t=a.fetcherKey||"__"+String(++Cn)+"__";await e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,flushSync:a.flushSync})}else await e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})}),[e,t,r])}function Dn(e,t){let{relative:r}=void 0===t?{}:t,{basename:n}=i.useContext(rt),a=i.useContext(at);a||m(!1);let[o]=a.matches.slice(-1),l=s({},ft(e||".",{relative:r})),u=lt();if(null==e){l.search=u.search;let e=new URLSearchParams(l.search),t=e.getAll("index");if(t.some((e=>""===e))){e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let r=e.toString();l.search=r?"?"+r:""}}return e&&"."!==e||!o.route.index||(l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(l.pathname="/"===l.pathname?n:H([n,l.pathname])),v(l)}const Ln="react-router-scroll-positions";let Tn={};function An(e,t,r,n){let a=null;return n&&(a=n("/"!==r?s({},e,{pathname:_(e.pathname,r)||e.pathname}):e,t)),null==a&&(a=e.key),a}function Mn(e){let{getKey:t,storageKey:r}=void 0===e?{}:e,{router:n}=Sn(bn.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=Rn(En.UseScrollRestoration),{basename:s}=i.useContext(rt),l=lt(),u=Dt(),c=kt();i.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:r}=t||{};i.useEffect((()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,r])}(i.useCallback((()=>{if("idle"===c.state){let e=An(l,u,s,t);Tn[e]=window.scrollY}try{sessionStorage.setItem(r||Ln,JSON.stringify(Tn))}catch(e){}window.history.scrollRestoration="auto"}),[c.state,t,s,l,u,r])),"undefined"!=typeof document&&(i.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(r||Ln);e&&(Tn=JSON.parse(e))}catch(e){}}),[r]),i.useLayoutEffect((()=>{let e=null==n?void 0:n.enableScrollRestoration(Tn,(()=>window.scrollY),t?(e,r)=>An(e,r,s,t):void 0);return()=>e&&e()}),[n,s,t]),i.useLayoutEffect((()=>{if(!1!==a)if("number"!=typeof a){if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==o&&window.scrollTo(0,0)}else window.scrollTo(0,a)}),[l,a,o]))}function Pn(e,t){void 0===t&&(t={});let r=i.useContext(Ze);null==r&&m(!1);let{basename:n}=Sn(bn.useViewTransitionState),a=ft(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=_(r.currentLocation.pathname,n)||r.currentLocation.pathname,s=_(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=P(a.pathname,s)||null!=P(a.pathname,o)}function On(e){let{context:t,router:r,hydrate:n=!0,nonce:a}=e;r&&t||m(!1);let o={router:r,navigator:jn(),static:!0,staticContext:t,basename:t.basename||"/"},s=new Map,l="";if(!1!==n){let e={loaderData:t.loaderData,actionData:t.actionData,errors:Un(t.errors)};l="window.__staticRouterHydrationData = JSON.parse("+JSON.stringify(JSON.stringify(e)).replace(zn,(e=>Bn[e]))+");"}let{state:u}=o.router;return i.createElement(i.Fragment,null,i.createElement(Ge.Provider,{value:o},i.createElement(Qe.Provider,{value:u},i.createElement(et.Provider,{value:s},i.createElement(Ze.Provider,{value:{isTransitioning:!1}},i.createElement(Jt,{basename:o.basename,location:u.location,navigationType:u.historyAction,navigator:o.navigator,static:o.static},i.createElement(_n,{routes:r.routes,future:r.future,state:u})))))),l?i.createElement("script",{suppressHydrationWarning:!0,nonce:a,dangerouslySetInnerHTML:{__html:l}}):null)}function _n(e){let{routes:t,future:r,state:n}=e;return pt(t,void 0,n)}function Un(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)V(n)?r[e]=s({},n,{__type:"RouteErrorResponse"}):n instanceof Error?r[e]=s({message:n.message,__type:"Error"},"Error"!==n.name?{__subType:n.name}:{}):r[e]=n;return r}function jn(){return{createHref:Fn,encodeLocation:Hn,push(e){throw new Error("You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+")` somewhere in your app.")},replace(e){throw new Error("You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+", { replace: true })` somewhere in your app.")},go(e){throw new Error("You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+e+")` somewhere in your app.")},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}}}function Nn(e,t,r){void 0===r&&(r={});let n={},a=S(e,jt,void 0,n),o=t.matches.map((e=>s({},e,{route:n[e.route.id]||e.route}))),i=e=>"You cannot use router."+e+"() on the server because it is a stateless environment";return{get basename(){return t.basename},get future(){var e;return s({},null==(e=r)?void 0:e.future)},get state(){return{historyAction:u.Pop,location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,navigation:te,restoreScrollPosition:null,preventScrollReset:!1,revalidation:"idle",fetchers:new Map,blockers:new Map}},get routes(){return a},get window(){},initialize(){throw i("initialize")},subscribe(){throw i("subscribe")},enableScrollRestoration(){throw i("enableScrollRestoration")},navigate(){throw i("navigate")},fetch(){throw i("fetch")},revalidate(){throw i("revalidate")},createHref:Fn,encodeLocation:Hn,getFetcher:()=>re,deleteFetcher(){throw i("deleteFetcher")},dispose(){throw i("dispose")},getBlocker:()=>ne,deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")}}}function Fn(e){return"string"==typeof e?e:v(e)}function Hn(e){let t="string"==typeof e?e:v(e);t=t.replace(/ $/,"%20");let r=In.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:r.pathname,search:r.search,hash:r.hash}}const In=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Bn={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},zn=/[&><\u2028\u2029]/g;function qn(e,t,r,n,a){return e.map((e=>{if(!e.id)throw new Error("Expected a route.id in @remix-run/testing processRoutes() function");let{loader:o,action:i}=e,l={id:e.id,path:e.path,index:e.index,Component:e.Component,HydrateFallback:e.HydrateFallback,ErrorBoundary:e.ErrorBoundary,action:i?e=>i(s({},e,{context:t})):void 0,loader:o?e=>o(s({},e,{context:t})):void 0,handle:e.handle,shouldRevalidate:e.shouldRevalidate},u={id:e.id,path:e.path,index:e.index,parentId:a,hasAction:null!=e.action,hasLoader:null!=e.loader,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:null!=e.ErrorBoundary,module:"build/stub-path-to-module.js"};return r.routes[l.id]=u,n[e.id]={default:e.Component||zt,ErrorBoundary:e.ErrorBoundary||void 0,handle:e.handle,links:e.links,meta:e.meta,shouldRevalidate:e.shouldRevalidate},e.children&&(l.children=qn(e.children,t,r,n,l.id)),l}))}const Jn=new TextEncoder,Wn=async(e,t)=>{let r=e.lastIndexOf("."),n=e.slice(0,r),a=e.slice(r+1),o=Jn.encode(n),i=await $n(t,["verify"]),s=function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(atob(a));return!!await crypto.subtle.verify("HMAC",i,s,o)&&n},$n=async(e,t)=>crypto.subtle.importKey("raw",Jn.encode(e),{name:"HMAC",hash:"SHA-256"},!1,t);const Kn=["secrets"],Vn=function(e,t){void 0===t&&(t={});let r=s({path:"/",sameSite:"lax"},t),{secrets:a=[]}=r,o=l(r,Kn);return function(e,t){Ut(!t,'The "'+e+'" cookie has an "expires" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use `commitSession(session, { expires })` if using a session storage object, or `cookie.serialize("value", { expires })` if you\'re using the cookie directly.')}(e,o.expires),{get name(){return e},get isSigned(){return a.length>0},get expires(){return void 0!==o.maxAge?new Date(Date.now()+1e3*o.maxAge):o.expires},async parse(t,r){if(!t)return null;let i=n.parse(t,s({},o,r));return e in i?""===i[e]?"":await async function(e,t){if(t.length>0){for(let r of t){let t=await Wn(e,r);if(!1!==t)return Xn(t)}return null}return Xn(e)}(i[e],a):null},serialize:async(t,r)=>n.serialize(e,""===t?"":await async function(e,t){let r=function(e){return btoa(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;){if(t=n.charAt(o++),"%"===t)if("u"===n.charAt(o)){if(r=n.slice(o+1,o+5),/^[\da-f]{4}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=5;continue}}else if(r=n.slice(o,o+2),/^[\da-f]{2}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=2;continue}a+=t}return a}(encodeURIComponent(JSON.stringify(e))))}(e);t.length>0&&(r=await(async(e,t)=>{let r=Jn.encode(e),n=await $n(t,["sign"]),a=await crypto.subtle.sign("HMAC",n,r);return e+"."+btoa(String.fromCharCode(...new Uint8Array(a))).replace(/=+$/,"")})(r,t[0]));return r}(t,a),s({},o,r))}},Yn=e=>null!=e&&"string"==typeof e.name&&"boolean"==typeof e.isSigned&&"function"==typeof e.parse&&"function"==typeof e.serialize;function Xn(e){try{return JSON.parse(decodeURIComponent(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;)t=n.charAt(o++),/[\w*+\-./@]/.exec(t)?a+=t:(r=t.charCodeAt(0),a+=r<256?"%"+Gn(r,2):"%u"+Gn(r,4).toUpperCase());return a}(atob(e))))}catch(e){return{}}}function Gn(e,t){let r=e.toString(16);for(;r.length<t;)r="0"+r;return r}function Qn(e){return Object.keys(e).reduce(((t,r)=>(t[r]=e[r].module,t)),{})}let Zn=function(e){return e.Development="development",e.Production="production",e.Test="test",e}({});function ea(e,t){if(e instanceof Error&&t!==Zn.Development){let e=new Error("Unexpected Server Error");return e.stack=void 0,e}return e}function ta(e,t){return Object.entries(e).reduce(((e,r)=>{let[n,a]=r;return Object.assign(e,{[n]:ea(a,t)})}),{})}function ra(e,t){let r=ea(e,t);return{message:r.message,stack:r.stack}}function na(e,t){if(!e)return null;let r=Object.entries(e),n={};for(let[e,a]of r)if(V(a))n[e]=s({},a,{__type:"RouteErrorResponse"});else if(a instanceof Error){let r=ea(a,t);n[e]=s({message:r.message,stack:r.stack,__type:"Error"},"Error"!==r.name?{__subType:r.name}:{})}else n[e]=a;return n}function aa(e,t,r){let n=R(e,t,r);return n?n.map((e=>({params:e.params,pathname:e.pathname,route:e.route}))):null}function oa(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}const ia=new Set([301,302,303,307,308]);function sa(e){return ia.has(e)}async function la(e,t){let r=await e({request:ca(ua(t.request)),params:t.params,context:t.context});if(Ie(r)&&r.init&&r.init.status&&sa(r.init.status))throw new Response(null,r.init);return r}function ua(e){let t=new URL(e.url),r=t.searchParams.getAll("index");t.searchParams.delete("index");let n=[];for(let e of r)e&&n.push(e);for(let e of n)t.searchParams.append("index",e);let a={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return a.body&&(a.duplex="half"),new Request(t.href,a)}function ca(e){let t=new URL(e.url);t.searchParams.delete("_routes");let r={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return r.body&&(r.duplex="half"),new Request(t.href,r)}function da(e){let t={};return Object.values(e).forEach((e=>{let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)})),t}function ha(e,t,r){return void 0===t&&(t=""),void 0===r&&(r=da(e)),(r[t]||[]).map((t=>s({},t,{children:ha(e,t.id,r)})))}function fa(e,t,r,n){return void 0===r&&(r=""),void 0===n&&(n=da(e)),(n[r]||[]).map((r=>{let a={hasErrorBoundary:"root"===r.id||null!=r.module.ErrorBoundary,id:r.id,path:r.path,loader:r.module.loader?e=>la(r.module.loader,e):void 0,action:r.module.action?e=>la(r.module.action,e):void 0,handle:r.module.handle};return r.index?s({index:!0},a):s({caseSensitive:r.caseSensitive,children:fa(e,t,r.id,n)},a)}))}const ma={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},pa=/[&><\u2028\u2029]/g;function ya(e){return JSON.stringify(e).replace(pa,(e=>ma[e]))}const va="__reactRouterDevServerHooks";function ga(){return globalThis[va]}function wa(e,t){let r,n=t.errors?t.matches.findIndex((e=>t.errors[e.route.id])):-1,a=n>=0?t.matches.slice(0,n+1):t.matches;if(n>=0){let{actionHeaders:e,actionData:a,loaderHeaders:o,loaderData:i}=t;t.matches.slice(n).some((t=>{let n=t.route.id;return!e[n]||a&&a.hasOwnProperty(n)?o[n]&&!i.hasOwnProperty(n)&&(r=o[n]):r=e[n],null!=r}))}return a.reduce(((n,o,i)=>{let{id:s}=o.route,l=e.routes[s].module,u=t.loaderHeaders[s]||new Headers,c=t.actionHeaders[s]||new Headers,d=null!=r&&i===a.length-1,h=d&&r!==u&&r!==c;if(null==l.headers){let e=new Headers(n);return h&&ba(r,e),ba(c,e),ba(u,e),e}let f=new Headers(l.headers?"function"==typeof l.headers?l.headers({loaderHeaders:u,parentHeaders:n,actionHeaders:c,errorHeaders:d?r:void 0}):l.headers:void 0);return h&&ba(r,f),ba(c,f),ba(u,f),ba(n,f),f}),new Headers)}function ba(e,t){let r=e.get("Set-Cookie");if(r){a.splitCookiesString(r).forEach((e=>{t.append("Set-Cookie",e)}))}}const Ea=202;function Sa(e){let{isActionDataRequest:t,loadRouteIds:r}=void 0===e?{}:e;return async e=>{let{request:n,matches:a}=e;if(t&&"GET"===n.method)return{};let o=r?a.filter((e=>r.includes(e.route.id))):a;return(await Promise.all(o.map((e=>e.resolve())))).reduce(((e,t,r)=>Object.assign(e,{[o[r].route.id]:t})),{})}}function Ra(e,t,r){let n=t.get("Location");return r&&(n=_(n,r)||n),{redirect:n,status:e,revalidate:t.has("X-Remix-Revalidate")||t.has("Set-Cookie"),reload:t.has("X-Remix-Reload-Document"),replace:t.has("X-Remix-Replace")}}function xa(e,t,n,a){let o=new AbortController,i=setTimeout((()=>o.abort(new Error("Server Timeout"))),"number"==typeof n?n:4950);return t.addEventListener("abort",(()=>clearTimeout(i))),r.encode(e,{signal:o.signal,plugins:[e=>{if(e instanceof Error){let{name:t,message:r,stack:n}=a===Zn.Production?ea(e,a):e;return["SanitizedError",t,r,n]}if(e instanceof K){let{data:t,status:r,statusText:n}=e;return["ErrorResponse",t,r,n]}if(e&&"object"==typeof e&&gr in e)return["SingleFetchRedirect",e[gr]]}],postPlugins:[e=>{if(e&&"object"==typeof e)return["SingleFetchClassInstance",Object.fromEntries(Object.entries(e))]},()=>["SingleFetchFallback"]]})}function Ca(e,t){if(!1===e||null==e)throw console.error("The following error is a bug in Remix; please open an issue! https://github.com/remix-run/remix/issues/new"),new Error(t)}function ka(e,t){let r=ha(e.routes),n=fa(e.routes,e.future),a=(o=t)===Zn.Development||o===Zn.Production||o===Zn.Test?t:Zn.Production;var o;let i=ue(n,{basename:e.basename}),s=e.entry.module.handleError||((e,t)=>{let{request:r}=t;a===Zn.Test||r.signal.aborted||console.error(V(e)&&e.error?e.error:e)});return{routes:r,dataRoutes:n,serverMode:a,staticHandler:i,errorHandler:s}}function Da(e,t){let r="Unexpected Server Error";return t!==Zn.Production&&(r+="\n\n"+String(e)),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function La(e){return"__flash_"+e+"__"}const Ta=function(e,t){void 0===e&&(e={}),void 0===t&&(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(La(e)),get(e){if(r.has(e))return r.get(e);let t=La(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(La(e),t)},unset(e){r.delete(e)}}};function Aa(e){let{cookie:t,createData:r,readData:n,updateData:a,deleteData:o}=e,i=Yn(t)?t:Vn((null==t?void 0:t.name)||"__session",t);return Ma(i),{async getSession(e,t){let r=e&&await i.parse(e,t),a=r&&await n(r);return Ta(a||{},r||"")},async commitSession(e,t){let{id:n,data:o}=e,s=null!=(null==t?void 0:t.maxAge)?new Date(Date.now()+1e3*t.maxAge):null!=(null==t?void 0:t.expires)?t.expires:i.expires;return n?await a(n,o,s):n=await r(o,s),i.serialize(n,t)},destroySession:async(e,t)=>(await o(e.id),i.serialize("",s({},t,{maxAge:void 0,expires:new Date(0)})))}}function Ma(e){Ut(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://remix.run/utils/cookies#signing-cookies for more information.')}e.Await=function(e){let{children:t,errorElement:r,resolve:n}=e;return i.createElement($t,{resolve:n,errorElement:r},i.createElement(Kt,null,t))},e.BrowserRouter=function(e){let{basename:t,children:r,window:n}=e,a=i.useRef();null==a.current&&(a.current=h({window:n,v5Compat:!0}));let o=a.current,[s,l]=i.useState({action:o.action,location:o.location}),u=i.useCallback((e=>{i.startTransition((()=>l(e)))}),[l]);return i.useLayoutEffect((()=>o.listen(u)),[o,u]),i.createElement(Jt,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o})},e.Form=gn,e.HashRouter=function(e){let{basename:t,children:r,window:n}=e,a=i.useRef();null==a.current&&(a.current=f({window:n,v5Compat:!0}));let o=a.current,[s,l]=i.useState({action:o.action,location:o.location}),u=i.useCallback((e=>{i.startTransition((()=>l(e)))}),[l]);return i.useLayoutEffect((()=>o.listen(u)),[o,u]),i.createElement(Jt,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o})},e.IDLE_BLOCKER=ne,e.IDLE_FETCHER=re,e.IDLE_NAVIGATION=te,e.Link=yn,e.Links=function(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=Gr(),{errors:a,matches:o}=Yr(),l=Zr(o,a,e),u=i.useMemo((()=>or(l,r,t)),[l,r,t]);return i.createElement(i.Fragment,null,n?i.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,u.map((e=>{let{key:t,link:r}=e;return lr(r)?i.createElement(en,s({key:t},r)):i.createElement("link",s({key:t},r))})))},e.MemoryRouter=function(e){let{basename:t,children:r,initialEntries:n,initialIndex:a}=e,o=i.useRef();null==o.current&&(o.current=d({initialEntries:n,initialIndex:a,v5Compat:!0}));let s=o.current,[l,u]=i.useState({action:s.action,location:s.location}),c=i.useCallback((e=>{i.startTransition((()=>u(e)))}),[u]);return i.useLayoutEffect((()=>s.listen(c)),[s,c]),i.createElement(Jt,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:s})},e.Meta=function(){let{isSpaMode:e,routeModules:t}=Gr(),{errors:r,matches:n,loaderData:a}=Yr(),o=lt(),u=Zr(n,r,e),c=null;r&&(c=r[u[u.length-1].route.id]);let d=[],h=null,f=[];for(let e=0;e<u.length;e++){let r=u[e],n=r.route.id,i=a[n],s=r.params,l=t[n],m=[],p={id:n,data:i,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:c};if(f[e]=p,null!=l&&l.meta?m="function"==typeof l.meta?l.meta({data:i,params:s,location:o,matches:f,error:c}):Array.isArray(l.meta)?[...l.meta]:l.meta:h&&(m=[...h]),m=m||[],!Array.isArray(m))throw new 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://remix.run/route/meta");p.meta=m,f[e]=p,d=[...m],h=d}return i.createElement(i.Fragment,null,d.flat().map((e=>{if(!e)return null;if("tagName"in e){let{tagName:t}=e,r=l(e,Kr);if(!function(e){return"string"==typeof e&&/^(meta|link)$/.test(e)}(t))return console.warn("A meta object uses an invalid tagName: "+t+". Expected either 'link' or 'meta'"),null;let n=t;return i.createElement(n,s({key:JSON.stringify(r)},r))}if("title"in e)return i.createElement("title",{key:"title"},String(e.title));"charset"in e&&(null!=e.charSet||(e.charSet=e.charset),delete e.charset);if("charSet"in e&&null!=e.charSet)return"string"==typeof e.charSet?i.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return i.createElement("script",{key:"script:ld+json:"+t,type:"application/ld+json",dangerouslySetInnerHTML:{__html:t}})}catch(e){return null}return i.createElement("meta",s({key:JSON.stringify(e)},e))})))},e.NavLink=vn,e.Navigate=function(e){let{to:t,replace:r,state:n,relative:a}=e;st()||m(!1),i.useContext(rt);let{matches:o}=i.useContext(at),{pathname:s}=lt(),l=ct(),u=F(t,N(o),s,"path"===a),c=JSON.stringify(u);return i.useEffect((()=>{l(JSON.parse(c),{replace:r,state:n,relative:a})}),[l,c,a,r,n]),null},e.NavigationType=u,e.Outlet=zt,e.PrefetchPageLinks=en,e.Route=qt,e.Router=Jt,e.RouterProvider=Ht,e.Routes=function(e){let{children:t,location:r}=e;return mt(Vt(t),r)},e.Scripts=an,e.ScrollRestoration=wn,e.ServerRouter=function(e){let{context:t,url:r,abortDelay:n,nonce:a}=e;"string"==typeof r&&(r=new URL(r));let{manifest:o,routeModules:l,criticalCss:u,serverHandoffString:c}=t,d=_r(o.routes,l,t.future,t.isSpaMode);t.staticHandlerContext.loaderData=s({},t.staticHandlerContext.loaderData);for(let e of t.staticHandlerContext.matches){let r=e.route.id,n=l[r],a=t.manifest.routes[r];n&&Ir(a,n,t.isSpaMode)&&(n.HydrateFallback||!a.hasLoader)&&delete t.staticHandlerContext.loaderData[r]}let h=Nn(d,t.staticHandlerContext);return i.createElement(i.Fragment,null,i.createElement(Xr.Provider,{value:{manifest:o,routeModules:l,criticalCss:u,serverHandoffString:c,future:t.future,isSpaMode:t.isSpaMode,serializeError:t.serializeError,abortDelay:n,renderMeta:t.renderMeta}},i.createElement(Lr,{location:h.state.location},i.createElement(On,{router:h,context:t.staticHandlerContext,hydrate:!1}))),t.serverHandoffStream?i.createElement(i.Suspense,null,i.createElement(wr,{context:t,identifier:0,reader:t.serverHandoffStream.getReader(),textDecoder:new TextDecoder,nonce:a})):null)},e.StaticRouter=function(e){let{basename:t,children:r,location:n="/"}=e;"string"==typeof n&&(n=g(n));let a=u.Pop,o={pathname:n.pathname||"/",search:n.search||"",hash:n.hash||"",state:null!=n.state?n.state:null,key:n.key||"default"},s=jn();return i.createElement(Jt,{basename:t,children:r,location:o,navigationType:a,navigator:s,static:!0})},e.StaticRouterProvider=On,e.UNSAFE_DataRouterContext=Ge,e.UNSAFE_DataRouterStateContext=Qe,e.UNSAFE_ErrorResponseImpl=K,e.UNSAFE_FetchersContext=et,e.UNSAFE_FrameworkContext=Xr,e.UNSAFE_LocationContext=nt,e.UNSAFE_NavigationContext=rt,e.UNSAFE_RemixErrorBoundary=Lr,e.UNSAFE_RouteContext=at,e.UNSAFE_ServerMode=Zn,e.UNSAFE_SingleFetchRedirectSymbol=gr,e.UNSAFE_ViewTransitionContext=Ze,e.UNSAFE_createBrowserHistory=h,e.UNSAFE_createClientRoutes=Nr,e.UNSAFE_createClientRoutesWithHMRRevalidationOptOut=function(e,t,r,n,a,o){return Nr(t,r,n,o,"",Pr(t),e)},e.UNSAFE_createRouter=le,e.UNSAFE_decodeViaTurboStream=xr,e.UNSAFE_deserializeErrors=function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new K(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack=n.stack,r[e]=a}catch(e){}}if(null==r[e]){let t=new Error(n.message);t.stack=n.stack,r[e]=t}}else r[e]=n;return r},e.UNSAFE_getPatchRoutesOnNavigationFunction=function(e,t,r,n){if(qr(r))return async a=>{let{path:o,patch:i}=a;zr.has(o)||await Jr([o],e,t,r,n,i)}},e.UNSAFE_getSingleFetchDataStrategy=function(e,t,r){return async n=>{let{request:a,matches:o,fetcherKey:i}=n;return"GET"!==a.method?async function(e,t){let r=t.find((e=>e.shouldLoad));r||nr(!1);let n,a=await r.resolve((async t=>{let a=await t((async()=>{let t=Sr(e.url),a=await vr(e),{data:o,status:i}=await Rr(t,a);return n=i,kr(o,r.route.id)}));return a}));if(o=a.result,null!=o&&"number"==typeof o.status&&"string"==typeof o.statusText&&"object"==typeof o.headers&&void 0!==o.body||V(a.result))return{[r.route.id]:a};var o;return{[r.route.id]:{type:a.type,result:W(a.result,n)}}}(a,o):i?async function(e,t){let r=t.find((e=>e.shouldLoad));r||nr(!1);let n=await r.resolve((async t=>br(t,Er(Sr(e.url)),await vr(e),r.route.id)));return{[r.route.id]:n}}(a,o):async function(e,t,r,n,a){let o=new Set,i=!1,s=a.map((()=>Dr())),l=Promise.all(s.map((e=>e.promise))),u=Dr(),c=Er(Sr(n.url)),d=await vr(n),h={},f=Promise.all(a.map((async(n,a)=>n.resolve((async l=>{if(s[a].resolve(),!n.shouldLoad){var f;if(!r.state.initialized)return;if(n.route.id in r.state.loaderData&&e.routes[n.route.id].hasLoader&&null!=(f=t[n.route.id])&&f.shouldRevalidate)return void(i=!0)}if(e.routes[n.route.id].hasClientLoader){e.routes[n.route.id].hasLoader&&(i=!0);try{let e=await br(l,c,d,n.route.id);h[n.route.id]={type:"data",result:e}}catch(e){h[n.route.id]={type:"error",result:e}}}else{e.routes[n.route.id].hasLoader&&o.add(n.route.id);try{let e=await l((async()=>Cr(await u.promise,n.route.id)));h[n.route.id]={type:"data",result:e}}catch(e){h[n.route.id]={type:"error",result:e}}}})))));if(await l,r.state.initialized&&0!==o.size||window.__reactRouterHdrActive)try{i&&o.size>0&&c.searchParams.set("_routes",a.filter((e=>o.has(e.route.id))).map((e=>e.route.id)).join(","));let e=await Rr(c,d);u.resolve(e.data)}catch(e){u.reject(e)}else u.resolve({});return await f,h}(e,t,r(),a,o)}},e.UNSAFE_invariant=m,e.UNSAFE_mapRouteProperties=jt,e.UNSAFE_shouldHydrateRouteLoader=Ir,e.UNSAFE_useFogOFWarDiscovery=function(e,t,r,n){i.useEffect((()=>{var a;if(!qr(n)||!0===(null==(a=navigator.connection)?void 0:a.saveData))return;function o(e){let t="FORM"===e.tagName?e.getAttribute("action"):e.getAttribute("href");if(!t)return;let r=new URL(t,window.location.origin);zr.has(r.pathname)||Br.add(r.pathname)}async function i(){let a=Array.from(Br.keys()).filter((e=>!zr.has(e)||(Br.delete(e),!1)));if(0!==a.length)try{await Jr(a,t,r,n,e.basename,e.patchRoutes)}catch(e){console.error("Failed to fetch manifest patches",e)}}document.body.querySelectorAll("a[data-discover], form[data-discover]").forEach((e=>o(e))),i();let s=function(e,t){let r;return function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];window.clearTimeout(r),r=window.setTimeout((()=>e(...a)),t)}}(i,100);let l=new MutationObserver((e=>{let t=new Set;e.forEach((e=>{[e.target,...e.addedNodes].forEach((e=>{(function(e){return e.nodeType===Node.ELEMENT_NODE})(e)&&(("A"===e.tagName&&e.getAttribute("data-discover")||"FORM"===e.tagName&&e.getAttribute("data-discover"))&&t.add(e),"A"!==e.tagName&&e.querySelectorAll("a[data-discover], form[data-discover]").forEach((e=>t.add(e))))}))})),t.forEach((e=>o(e))),s()}));return l.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>l.disconnect()}),[n,t,r,e])},e.UNSAFE_useScrollRestoration=Mn,e.createBrowserRouter=function(e,t){return le({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:h({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||hn(),routes:e,mapRouteProperties:jt,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()},e.createCookie=Vn,e.createCookieSessionStorage=function(e){let{cookie:t}=void 0===e?{}:e,r=Yn(t)?t:Vn((null==t?void 0:t.name)||"__session",t);return Ma(r),{getSession:async(e,t)=>Ta(e&&await r.parse(e,t)||{}),async commitSession(e,t){let n=await r.serialize(e.data,t);if(n.length>4096)throw new Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},destroySession:async(e,t)=>r.serialize("",s({},t,{maxAge:void 0,expires:new Date(0)}))}},e.createHashRouter=function(e,t){return le({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:f({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||hn(),routes:e,mapRouteProperties:jt,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()},e.createMemoryRouter=Nt,e.createMemorySessionStorage=function(e){let{cookie:t}=void 0===e?{}:e,r=new Map;return Aa({cookie:t,async createData(e,t){let n=Math.random().toString(36).substring(2,10);return r.set(n,{data:e,expires:t}),n},async readData(e){if(r.has(e)){let{data:t,expires:n}=r.get(e);if(!n||n>new Date)return t;n&&r.delete(e)}return null},async updateData(e,t,n){r.set(e,{data:t,expires:n})},async deleteData(e){r.delete(e)}})},e.createPath=v,e.createRequestHandler=(e,t)=>{let r,n,a,o,i;return async function(l,u){var c;if(void 0===u&&(u={}),r="function"==typeof e?await e():e,"function"==typeof e){let e=ka(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler}else if(!(n&&a&&o&&i)){let e=ka(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler}let d=new URL(l.url),h={},f=e=>{var r;t===Zn.Development&&(null==(r=ga())||null==r.processRequestError||r.processRequestError(e));i(e,{context:u,params:h,request:l})},m=((null!=(c=r.basename)?c:"/")+"/__manifest").replace(/\/+/g,"/");if(d.pathname===m)try{let e=await async function(e,t,r){let n={};if(r.searchParams.has("p")){for(let a of r.searchParams.getAll("p")){let r=aa(t,a,e.basename);if(r)for(let t of r){let r=t.route.id;n[r]=e.assets.routes[r]}}return function(e,t){return void 0===t&&(t={}),q(e,t)}(n,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}(r,n,d);return e}catch(e){return f(e),new Response("Unknown Server Error",{status:500})}let p,y=aa(n,d.pathname,r.basename);if(y&&y.length>0&&Object.assign(h,y[0].params),d.pathname.endsWith(".data")){let e=new URL(l.url);e.pathname=e.pathname.replace(/\.data$/,"").replace(/^\/_root$/,"/");let t=aa(n,e.pathname,r.basename);if(p=await async function(e,t,r,n,a,o,i){let{result:l,headers:u,status:c}="GET"!==n.method?await async function(e,t,r,n,a,o,i){try{let l=new Request(a,s({method:n.method,body:n.body,headers:n.headers,signal:n.signal},n.body?{duplex:"half"}:void 0)),u=await r.query(l,{requestContext:o,skipLoaderErrorBubbling:!0,dataStrategy:Sa({isActionDataRequest:!0})});if(oa(u))return{result:Ra(u.status,u.headers,e.basename),headers:u.headers,status:Ea};let c,d=u,h=wa(e,d);return sa(d.statusCode)&&h.has("Location")?{result:Ra(d.statusCode,h,e.basename),headers:h,status:Ea}:(d.errors&&(Object.values(d.errors).forEach((e=>{V(e)&&!e.error||i(e)})),d.errors=ta(d.errors,t)),c=d.errors?{error:Object.values(d.errors)[0]}:{data:Object.values(d.actionData||{})[0]},{result:c,headers:h,status:d.statusCode})}catch(e){return i(e),{result:{error:e},headers:new Headers,status:500}}}(t,e,r,n,a,o,i):await async function(e,t,r,n,a,o,i){try{var s;let l=new Request(a,{headers:n.headers,signal:n.signal}),u=(null==(s=new URL(n.url).searchParams.get("_routes"))?void 0:s.split(","))||void 0,c=await r.query(l,{requestContext:o,skipLoaderErrorBubbling:!0,dataStrategy:Sa({loadRouteIds:u})});if(oa(c))return{result:{[gr]:Ra(c.status,c.headers,e.basename)},headers:c.headers,status:Ea};let d=c,h=wa(e,d);if(sa(d.statusCode)&&h.has("Location"))return{result:{[gr]:Ra(d.statusCode,h,e.basename)},headers:h,status:Ea};d.errors&&(Object.values(d.errors).forEach((e=>{V(e)&&!e.error||i(e)})),d.errors=ta(d.errors,t));let f={};return(u?d.matches.filter((e=>e.route.loader&&u.includes(e.route.id))):d.matches).forEach((e=>{let{id:t}=e.route;d.errors&&d.errors.hasOwnProperty(t)?f[t]={error:d.errors[t]}:d.loaderData.hasOwnProperty(t)&&(f[t]={data:d.loaderData[t]})})),{result:f,headers:h,status:d.statusCode}}catch(e){return i(e),{result:{root:{error:e}},headers:new Headers,status:500}}}(t,e,r,n,a,o,i),d=new Headers(u);if(d.set("X-Remix-Response","yes"),304===c)return new Response(null,{status:304,headers:d});return d.set("Content-Type","text/x-script"),new Response(xa(l,n.signal,t.entry.module.streamTimeout,e),{status:c||200,headers:d})}(a,r,o,l,e,u,f),r.entry.module.handleDataRequest&&(p=await r.entry.module.handleDataRequest(p,{context:u,params:t?t[0].params:{},request:l}),function(e){return sa(e.status)}(p))){let e=Ra(p.status,p.headers,r.basename);"GET"===l.method&&(e={[gr]:e});let t=new Headers(p.headers);return t.set("Content-Type","text/x-script"),new Response(xa(e,l.signal,r.entry.module.streamTimeout,a),{status:Ea,headers:t})}}else if(y&&null==y[y.length-1].route.module.default&&null==y[y.length-1].route.module.ErrorBoundary)p=await async function(e,t,r,n,a,o,i){try{let e=await r.queryRoute(a,{routeId:n,requestContext:o});return oa(e)||Ca(!1),e}catch(t){return oa(t)?(t.headers.set("X-Remix-Catch","yes"),t):V(t)?(t&&i(t),function(e,t){return q(ra(e.error||new Error("Unexpected Server Error"),t),{status:e.status,statusText:e.statusText,headers:{"X-Remix-Error":"yes"}})}(t,e)):(i(t),Da(t,e))}}(a,0,o,y.slice(-1)[0].route.id,l,u,f);else{var v;let e=t===Zn.Development?await(null==(v=ga())||null==v.getCriticalCss?void 0:v.getCriticalCss(r,d.pathname)):void 0;p=await async function(e,t,r,n,a,o,i){let l;try{l=await r.query(n,{requestContext:a})}catch(e){return o(e),new Response(null,{status:500})}if(oa(l))return l;let u=wa(t,l);if(304===l.statusCode)return new Response(null,{status:304,headers:u});l.errors&&(Object.values(l.errors).forEach((e=>{V(e)&&!e.error||o(e)})),l.errors=ta(l.errors,e));let c={loaderData:l.loaderData,actionData:l.actionData,errors:na(l.errors,e)},d={manifest:t.assets,routeModules:Qn(t.routes),staticHandlerContext:l,criticalCss:i,serverHandoffString:ya({basename:t.basename,criticalCss:i,future:t.future,isSpaMode:t.isSpaMode}),serverHandoffStream:xa(c,n.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,isSpaMode:t.isSpaMode,serializeError:t=>ra(t,e)},h=t.entry.module.default;try{return await h(n,l.statusCode,u,d,a)}catch(i){o(i);let c=i;if(oa(i))try{let e=await function(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}(i);c=new K(i.status,i.statusText,e)}catch(e){}l=function(e,t,r){return s({},t,{statusCode:V(r)?r.status:500,errors:{[t._deepestRenderedBoundaryId||e[0].id]:r}})}(r.dataRoutes,l,c),l.errors&&(l.errors=ta(l.errors,e));let f={loaderData:l.loaderData,actionData:l.actionData,errors:na(l.errors,e)};d=s({},d,{staticHandlerContext:l,serverHandoffString:ya({basename:t.basename,future:t.future,isSpaMode:t.isSpaMode}),serverHandoffStream:xa(f,n.signal,t.entry.module.streamTimeout,e),renderMeta:{}});try{return await h(n,l.statusCode,u,d,a)}catch(t){return o(t),Da(t,e)}}}(a,r,o,l,u,f,e)}return"HEAD"===l.method?new Response(null,{headers:p.headers,status:p.status,statusText:p.statusText}):p}},e.createRoutesFromChildren=Vt,e.createRoutesFromElements=Vt,e.createRoutesStub=function(e,t){return void 0===t&&(t={}),function(r){let{initialEntries:n,initialIndex:a,hydrationData:o,future:s}=r,l=i.useRef(),u=i.useRef();if(null==l.current){u.current={future:{},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},isSpaMode:!1};let r=qn(S(e,(e=>e)),t,u.current.manifest,u.current.routeModules);l.current=Nt(r,{initialEntries:n,initialIndex:a,hydrationData:o})}return i.createElement(Xr.Provider,{value:u.current},i.createElement(Ht,{router:l.current}))}},e.createSearchParams=Qt,e.createSession=Ta,e.createSessionStorage=Aa,e.createStaticHandler=function(e,t){return ue(e,s({},t,{mapRouteProperties:jt}))},e.createStaticRouter=Nn,e.data=W,e.generatePath=function(e,t){void 0===t&&(t={});let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(r=r.replace(/\*$/,"/*"));const 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["*"])}const o=e.match(/^:([\w-]+)(\??)$/);if(o){const[,e,r]=o;let n=t[e];return"?"!==r&&null==n&&m(!1),a(n)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")},e.isCookie=Yn,e.isRouteErrorResponse=V,e.isSession=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,e.json=q,e.matchPath=P,e.matchRoutes=R,e.parsePath=g,e.redirect=$,e.redirectDocument=(e,t)=>{let r=$(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},e.renderMatches=function(e){return bt(e)},e.replace=(e,t)=>{let r=$(e,t);return r.headers.set("X-Remix-Replace","true"),r},e.resolvePath=U,e.unstable_HistoryRouter=mn,e.unstable_setDevServerHooks=function(e){globalThis[va]=e},e.unstable_usePrompt=function(e){let{when:t,message:r}=e,n=Mt(t);i.useEffect((()=>{if("blocked"===n.state){window.confirm(r)?setTimeout(n.proceed,0):n.reset()}}),[n,r]),i.useEffect((()=>{"blocked"!==n.state||t||n.reset()}),[n,t])},e.useActionData=function(){let e=xt(St.UseActionData),t=Ct(St.UseLoaderData);return e.actionData?e.actionData[t]:void 0},e.useAsyncError=function(){let e=i.useContext(tt);return null==e?void 0:e._error},e.useAsyncValue=Tt,e.useBeforeUnload=function(e,t){let{capture:r}=t||{};i.useEffect((()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,r])},e.useBlocker=Mt,e.useFetcher=function(e){var t;let{key:r}=void 0===e?{}:e,{router:n}=Sn(bn.UseFetcher),a=Rn(En.UseFetcher),o=i.useContext(et),l=i.useContext(at),u=null==(t=l.matches[l.matches.length-1])?void 0:t.route.id;o||m(!1),l||m(!1),null==u&&m(!1);let c=i.useId(),[d,h]=i.useState(r||c);r&&r!==d&&h(r),i.useEffect((()=>(n.getFetcher(d),()=>n.deleteFetcher(d))),[n,d]);let f=i.useCallback((async(e,t)=>{u||m(!1),await n.fetch(d,u,e,t)}),[d,u,n]),p=kn(),y=i.useCallback((async(e,t)=>{await p(e,s({},t,{navigate:!1,fetcherKey:d}))}),[d,p]),v=i.useMemo((()=>{let e=i.forwardRef(((e,t)=>i.createElement(gn,s({},e,{navigate:!1,fetcherKey:d,ref:t}))));return e.displayName="fetcher.Form",e}),[d]),g=a.fetchers.get(d)||re,w=o.get(d);return i.useMemo((()=>s({Form:v,submit:y,load:f},g,{data:w})),[v,y,f,g,w])},e.useFetchers=function(){let e=Rn(En.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,r]=e;return s({},r,{key:t})}))},e.useFormAction=Dn,e.useHref=it,e.useInRouterContext=st,e.useLinkClickHandler=xn,e.useLoaderData=function(){let e=xt(St.UseLoaderData),t=Ct(St.UseLoaderData);return e.loaderData[t]},e.useLocation=lt,e.useMatch=function(e){st()||m(!1);let{pathname:t}=lt();return i.useMemo((()=>P(e,O(t))),[t,e])},e.useMatches=Dt,e.useNavigate=ct,e.useNavigation=kt,e.useNavigationType=function(){return i.useContext(nt).navigationType},e.useOutlet=ht,e.useOutletContext=function(){return i.useContext(dt)},e.useParams=function(){let{matches:e}=i.useContext(at),t=e[e.length-1];return t?t.params:{}},e.useResolvedPath=ft,e.useRevalidator=function(){let e=Rt(Et.UseRevalidator),t=xt(St.UseRevalidator);return i.useMemo((()=>({async revalidate(){await e.router.revalidate()},state:t.revalidation})),[e.router,t.revalidation])},e.useRouteError=Lt,e.useRouteLoaderData=function(e){return xt(St.UseRouteLoaderData).loaderData[e]},e.useRoutes=mt,e.useSearchParams=function(e){let t=i.useRef(Qt(e)),r=i.useRef(!1),n=lt(),a=i.useMemo((()=>function(e,t){let r=Qt(e);return t&&t.forEach(((e,n)=>{r.has(n)||t.getAll(n).forEach((e=>{r.append(n,e)}))})),r}(n.search,r.current?null:t.current)),[n.search]),o=ct(),s=i.useCallback(((e,t)=>{const n=Qt("function"==typeof e?e(a):e);r.current=!0,o("?"+n,t)}),[o,a]);return[a,s]},e.useSubmit=kn,e.useViewTransitionState=Pn,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
12
12
|
//# sourceMappingURL=react-router.production.min.js.map
|