@dcl/explore-site 0.0.1-24138829632.commit-0946e16
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/assets/HomePage-CbNrtXMa.js +3 -0
- package/assets/QueryClientProvider-DUSjZ_J_.js +2 -0
- package/assets/RoobertPRO-Bold-DDyOqNrI.woff2 +0 -0
- package/assets/RoobertPRO-Bold-zQ2qeH97.ttf +0 -0
- package/assets/SensorsRounded-Ci-z6t1A.js +15 -0
- package/assets/___vite-browser-external_commonjs-proxy-BqV5D26a.js +1 -0
- package/assets/__federation_expose_App-BckrSixU.js +1 -0
- package/assets/__federation_fn_import-WDa0gv1I.js +1 -0
- package/assets/__federation_shared_@dcl/hooks-BmGk-LAU.js +535 -0
- package/assets/__federation_shared_@dcl/schemas-FcJQcJ28.js +1 -0
- package/assets/__federation_shared_@emotion/react-oi_M7gMJ.js +1 -0
- package/assets/__federation_shared_@emotion/styled-YrTPT9q1.js +1 -0
- package/assets/__federation_shared_@reduxjs/toolkit-R1Ell7gI.js +1 -0
- package/assets/__federation_shared_decentraland-ui2-D5N7yacO.js +357 -0
- package/assets/__federation_shared_react-B3tlNTLg.js +1 -0
- package/assets/__federation_shared_react-dom-Dsn5WX9N.js +1 -0
- package/assets/__federation_shared_react-redux-DMak3BVq.js +13 -0
- package/assets/__federation_shared_react-router-dom-CSW28ZSI.js +49 -0
- package/assets/__federation_shared_viem-DsDw7lUr.js +2 -0
- package/assets/__federation_shared_wagmi-h3zhLZbR.js +17 -0
- package/assets/__vite-optional-peer-dep_lottie-react_decentraland-ui2-BIHI7g3E.js +1 -0
- package/assets/_commonjsHelpers-C4iS2aBk.js +1 -0
- package/assets/add-Ccyt7YRh.js +15 -0
- package/assets/all-wallets-BIOtzF11.js +6 -0
- package/assets/app-store-BqACXnTM.js +17 -0
- package/assets/apple-zIEkvR7h.js +18 -0
- package/assets/arrow-bottom-CxQ54WH1.js +8 -0
- package/assets/arrow-bottom-circle-BjCA11Rn.js +11 -0
- package/assets/arrow-left-CsFQBdFD.js +8 -0
- package/assets/arrow-right-jT5LSgqq.js +8 -0
- package/assets/arrow-top-CA_1oaHw.js +8 -0
- package/assets/auto-track-UOggKKzv.js +1 -0
- package/assets/bank-81NjtLlm.js +14 -0
- package/assets/basic-CvR9b359.js +2128 -0
- package/assets/brotli_wasm_bg-NfWIZley.wasm +0 -0
- package/assets/browser-BjIqaPVu.js +14 -0
- package/assets/card-BJomEEgV.js +14 -0
- package/assets/ccip-DotuofV0.js +1 -0
- package/assets/checkmark-Cz0VZAkr.js +11 -0
- package/assets/checkmark-bold-blkVLUov.js +8 -0
- package/assets/chevron-bottom-ClawczSo.js +8 -0
- package/assets/chevron-left-DfJ9r4mv.js +8 -0
- package/assets/chevron-right-CrxmyW0K.js +8 -0
- package/assets/chevron-top-BVIfb-H3.js +8 -0
- package/assets/chrome-store-Cb5xVI0B.js +61 -0
- package/assets/clock-Bx-Kyhh-.js +8 -0
- package/assets/close-DOjpWTZi.js +8 -0
- package/assets/coinPlaceholder-BqONZM6Q.js +8 -0
- package/assets/compass-ByyIpxD6.js +8 -0
- package/assets/copy-BOu2-Xgv.js +15 -0
- package/assets/core-BGxUaCGc.js +907 -0
- package/assets/create-submenu-Bu20F8-Z.webp +0 -0
- package/assets/createClient-CSnZgvsb.js +1 -0
- package/assets/cursor-BqYz2L6D.js +3 -0
- package/assets/cursor-transparent-CWCRGDtx.js +12 -0
- package/assets/custom-welcome-background-BxlFQma9.webp +0 -0
- package/assets/defineChain-7I0Ce1VT.js +1 -0
- package/assets/desktop-Cd_vx0kT.js +9 -0
- package/assets/disconnect-D5AICJhj.js +8 -0
- package/assets/discord-26Vqbq7c.js +17 -0
- package/assets/emotion-react.browser.esm-5OnyV0Sh.js +8 -0
- package/assets/emotion-use-insertion-effect-with-fallbacks.browser.esm-B75LdcJS.js +1 -0
- package/assets/etherscan--DKVcYrP.js +6 -0
- package/assets/exclamation-triangle-DOsYf3fQ.js +4 -0
- package/assets/explore-submenu-BFVuYMi9.webp +0 -0
- package/assets/extension-DEaO3Zvk.js +8 -0
- package/assets/external-link-DcpG6wpM.js +8 -0
- package/assets/facebook-ByV0OclL.js +26 -0
- package/assets/farcaster-DI6fsEyh.js +12 -0
- package/assets/filters-Djn1aDVs.js +8 -0
- package/assets/github-B3p0LLP5.js +18 -0
- package/assets/google-ae7qga4R.js +18 -0
- package/assets/governance-submenu-VTIKvCIL.webp +0 -0
- package/assets/help-circle-BmzUA_Be.js +12 -0
- package/assets/hooks.module-Dz_XB4AG.js +1 -0
- package/assets/id-2hYEZqNH.js +12 -0
- package/assets/image-mDqi4ffo.js +4 -0
- package/assets/index-9zCVakoE.js +1 -0
- package/assets/index-BKLT1eit.js +2 -0
- package/assets/index-Biwg5bHN.js +1 -0
- package/assets/index-BzXoRVC1.js +1 -0
- package/assets/index-C05H8NDX.js +1 -0
- package/assets/index-CGCGB-at.js +1 -0
- package/assets/index-CNMKbeE1.js +5 -0
- package/assets/index-CVdhIPEJ.js +1 -0
- package/assets/index-CdOcIHYV.js +395 -0
- package/assets/index-CdrMQoR6.js +1 -0
- package/assets/index-Ctl4brHr.js +2 -0
- package/assets/index-D6O4pjzC.js +12 -0
- package/assets/index-D6ZMQedT.js +1 -0
- package/assets/index-DGVKdsht.js +1 -0
- package/assets/index-D_fJMF1A.js +1 -0
- package/assets/index-Dy0yjznp.js +1 -0
- package/assets/index-Dy0yjznp__bundled.js +9 -0
- package/assets/index-JFBsW0Hp.js +1 -0
- package/assets/index-OQ3TYt4p.js +7 -0
- package/assets/index-VfkM29PH.js +1 -0
- package/assets/index-VfkM29PH__bundled.js +24 -0
- package/assets/index-nibyPLVP.js +1 -0
- package/assets/index-pEp_vRda.js +8 -0
- package/assets/index.es-D_4_VpXc.js +38 -0
- package/assets/index.umd-6zndRFhB.js +1 -0
- package/assets/info-Bhf5PLdi.js +3 -0
- package/assets/info-circle-CZ5iih32.js +12 -0
- package/assets/inherits_browser-BlmhoU4v.js +1 -0
- package/assets/is-plan-event-enabled-DeNtQvA5.js +1 -0
- package/assets/jsx-runtime-B1l0k91v.js +1 -0
- package/assets/jsx-runtime-B1l0k91v__bundled.js +9 -0
- package/assets/learn-submenu-sfxVP5Db.webp +0 -0
- package/assets/lightbulb-CA3e26a0.js +3 -0
- package/assets/localBatchGatewayRequest-vExM5jac.js +1 -0
- package/assets/logo-pattern-D4X-bvlg.webp +0 -0
- package/assets/mail-BktjMbEk.js +8 -0
- package/assets/man-default1-BEO13leF.png +0 -0
- package/assets/marketplace-submenu-CixWTv8_.webp +0 -0
- package/assets/mobile-zfEM0JzU.js +9 -0
- package/assets/more-Dg45xuT9.js +11 -0
- package/assets/native-CJ5et6AR.js +1 -0
- package/assets/network-placeholder-duQhExzj.js +14 -0
- package/assets/nftPlaceholder-C3kMYu-p.js +8 -0
- package/assets/off-Cz636L92.js +8 -0
- package/assets/play-store-Cch0eiCp.js +32 -0
- package/assets/plus-orAhHwVf.js +13 -0
- package/assets/preload-helper-BrYcp76J.js +1 -0
- package/assets/qr-code-7plug-hj.js +6 -0
- package/assets/recycle-horizontal-B6ivY9Sz.js +9 -0
- package/assets/refresh-CqfvjhXq.js +8 -0
- package/assets/remoteEntry.js +1 -0
- package/assets/reown-logo-DGoAljI9.js +12 -0
- package/assets/reselect-BfUrOuXx.js +1 -0
- package/assets/rich-text-react-renderer_decentraland-ui2-BIHI7g3E.js +1 -0
- package/assets/search-nNK2K8mD.js +8 -0
- package/assets/secp256k1-D6s48BOl.js +1 -0
- package/assets/send-BPz2SBvc.js +15 -0
- package/assets/swapHorizontal-TvVHlgjl.js +8 -0
- package/assets/swapHorizontalBold-BTw_LG1-.js +8 -0
- package/assets/swapHorizontalMedium-C3jJnFs_.js +16 -0
- package/assets/swapHorizontalRoundedBold-nTFwdVeT.js +8 -0
- package/assets/swapVertical-CHKvPR_7.js +8 -0
- package/assets/telegram-C552IoSr.js +16 -0
- package/assets/three-dots-Nyfa4nYF.js +5 -0
- package/assets/top_background-Bnd2vX_F.webp +0 -0
- package/assets/tslib.es6-DbvBTznf.js +1 -0
- package/assets/twitch-7SJKGXSa.js +18 -0
- package/assets/twitterIcon-BBg9ypIU.js +6 -0
- package/assets/uid-CX4a_w4r.js +44 -0
- package/assets/verify-BwQ9FKM1.js +8 -0
- package/assets/verify-filled-BAdDAZxZ.js +8 -0
- package/assets/w3m-modal-BqXXR9rX.js +642 -0
- package/assets/wallet-DJsa1d3M.js +8 -0
- package/assets/wallet-placeholder-DPIkQ5vM.js +14 -0
- package/assets/walletconnect-osdnzzVU.js +30 -0
- package/assets/warning-circle-BQ9uHGTL.js +12 -0
- package/assets/webSocket-CIn5Ftst.js +3 -0
- package/assets/x-5oycQ-0v.js +12 -0
- package/dcl-logo.svg +1 -0
- package/index.html +41 -0
- package/package.json +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as f}from"./index-Dy0yjznp.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as f}from"./index-VfkM29PH.js";export{f as default};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{importShared as Pe}from"./__federation_fn_import-WDa0gv1I.js";import{r as he}from"./index-Dy0yjznp.js";var ie={exports:{}},le={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* use-sync-external-store-with-selector.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var I=he;function ge(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Re=typeof Object.is=="function"?Object.is:ge,we=I.useSyncExternalStore,Ee=I.useRef,Te=I.useEffect,xe=I.useMemo,Oe=I.useDebugValue;le.useSyncExternalStoreWithSelector=function(e,t,r,u,n){var o=Ee(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=xe(function(){function s(y){if(!i){if(i=!0,d=y,y=u(y),n!==void 0&&a.hasValue){var S=a.value;if(n(S,y))return f=S}return f=y}if(S=f,Re(d,y))return S;var h=u(y);return n!==void 0&&n(S,h)?(d=y,S):(d=y,f=h)}var i=!1,d,f,p=r===void 0?null:r;return[function(){return s(t())},p===null?void 0:function(){return s(p())}]},[t,r,u,n]);var l=we(e,o[0],o[1]);return Te(function(){a.hasValue=!0,a.value=l},[l]),Oe(l),l};ie.exports=le;var _e=ie.exports;const c=await Pe("react");var Ne=c.version.startsWith("19"),Me=Symbol.for(Ne?"react.transitional.element":"react.element"),Ae=Symbol.for("react.portal"),Fe=Symbol.for("react.fragment"),Ie=Symbol.for("react.strict_mode"),$e=Symbol.for("react.profiler"),ke=Symbol.for("react.consumer"),Ue=Symbol.for("react.context"),fe=Symbol.for("react.forward_ref"),Ye=Symbol.for("react.suspense"),Le=Symbol.for("react.suspense_list"),Z=Symbol.for("react.memo"),Ve=Symbol.for("react.lazy"),We=fe,De=Z;function Be(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case Me:switch(e=e.type,e){case Fe:case $e:case Ie:case Ye:case Le:return e;default:switch(e=e&&e.$$typeof,e){case Ue:case fe:case Ve:case Z:return e;case ke:return e;default:return t}}case Ae:return t}}}function He(e){return Be(e)===Z}function ze(e,t,r,u,{areStatesEqual:n,areOwnPropsEqual:o,areStatePropsEqual:a}){let l=!1,s,i,d,f,p;function y(b,m){return s=b,i=m,d=e(s,i),f=t(u,i),p=r(d,f,i),l=!0,p}function S(){return d=e(s,i),t.dependsOnOwnProps&&(f=t(u,i)),p=r(d,f,i),p}function h(){return e.dependsOnOwnProps&&(d=e(s,i)),t.dependsOnOwnProps&&(f=t(u,i)),p=r(d,f,i),p}function v(){const b=e(s,i),m=!a(b,d);return d=b,m&&(p=r(d,f,i)),p}function P(b,m){const w=!o(m,i),Y=!n(b,s,m,i);return s=b,i=m,w&&Y?S():w?h():Y?v():p}return function(m,w){return l?P(m,w):y(m,w)}}function Ge(e,{initMapStateToProps:t,initMapDispatchToProps:r,initMergeProps:u,...n}){const o=t(e,n),a=r(e,n),l=u(e,n);return ze(o,a,l,e,n)}function Ke(e,t){const r={};for(const u in e){const n=e[u];typeof n=="function"&&(r[u]=(...o)=>t(n(...o)))}return r}function K(e){return function(r){const u=e(r);function n(){return u}return n.dependsOnOwnProps=!1,n}}function ne(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function de(e,t){return function(u,{displayName:n}){const o=function(l,s){return o.dependsOnOwnProps?o.mapToProps(l,s):o.mapToProps(l,void 0)};return o.dependsOnOwnProps=!0,o.mapToProps=function(l,s){o.mapToProps=e,o.dependsOnOwnProps=ne(e);let i=o(l,s);return typeof i=="function"&&(o.mapToProps=i,o.dependsOnOwnProps=ne(i),i=o(l,s)),i},o}}function q(e,t){return(r,u)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${u.wrappedComponentName}.`)}}function Xe(e){return e&&typeof e=="object"?K(t=>Ke(e,t)):e?typeof e=="function"?de(e):q(e,"mapDispatchToProps"):K(t=>({dispatch:t}))}function Ze(e){return e?typeof e=="function"?de(e):q(e,"mapStateToProps"):K(()=>({}))}function qe(e,t,r){return{...r,...e,...t}}function Je(e){return function(r,{displayName:u,areMergedPropsEqual:n}){let o=!1,a;return function(s,i,d){const f=e(s,i,d);return o?n(f,a)||(a=f):(o=!0,a=f),a}}}function Qe(e){return e?typeof e=="function"?Je(e):q(e,"mergeProps"):()=>qe}function pe(e){e()}function je(){let e=null,t=null;return{clear(){e=null,t=null},notify(){pe(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let u=e;for(;u;)r.push(u),u=u.next;return r},subscribe(r){let u=!0;const n=t={callback:r,next:null,prev:t};return n.prev?n.prev.next=n:e=n,function(){!u||e===null||(u=!1,n.next?n.next.prev=n.prev:t=n.prev,n.prev?n.prev.next=n.next:e=n.next)}}}}var oe={notify(){},get:()=>[]};function ye(e,t){let r,u=oe,n=0,o=!1;function a(h){d();const v=u.subscribe(h);let P=!1;return()=>{P||(P=!0,v(),f())}}function l(){u.notify()}function s(){S.onStateChange&&S.onStateChange()}function i(){return o}function d(){n++,r||(r=t?t.addNestedSub(s):e.subscribe(s),u=je())}function f(){n--,r&&n===0&&(r(),r=void 0,u.clear(),u=oe)}function p(){o||(o=!0,d())}function y(){o&&(o=!1,f())}const S={addNestedSub:a,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:i,trySubscribe:p,tryUnsubscribe:y,getListeners:()=>u};return S}var et=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",tt=et(),rt=()=>typeof navigator<"u"&&navigator.product==="ReactNative",nt=rt(),ot=()=>tt||nt?c.useLayoutEffect:c.useEffect,U=ot();function ue(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function G(e,t){if(ue(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),u=Object.keys(t);if(r.length!==u.length)return!1;for(let n=0;n<r.length;n++)if(!Object.prototype.hasOwnProperty.call(t,r[n])||!ue(e[r[n]],t[r[n]]))return!1;return!0}var ut={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},st={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},ct={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Se={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},at={[We]:ct,[De]:Se};function se(e){return He(e)?Se:at[e.$$typeof]||ut}var it=Object.defineProperty,lt=Object.getOwnPropertyNames,ce=Object.getOwnPropertySymbols,ft=Object.getOwnPropertyDescriptor,dt=Object.getPrototypeOf,ae=Object.prototype;function X(e,t){if(typeof t!="string"){if(ae){const o=dt(t);o&&o!==ae&&X(e,o)}let r=lt(t);ce&&(r=r.concat(ce(t)));const u=se(e),n=se(t);for(let o=0;o<r.length;++o){const a=r[o];if(!st[a]&&!(n&&n[a])&&!(u&&u[a])){const l=ft(t,a);try{it(e,a,l)}catch{}}}}return e}var pt=Symbol.for("react-redux-context"),yt=typeof globalThis<"u"?globalThis:{};function St(){if(!c.createContext)return{};const e=yt[pt]??=new Map;let t=e.get(c.createContext);return t||(t=c.createContext(null),e.set(c.createContext,t)),t}var R=St(),vt=[null,null];function bt(e,t,r){U(()=>e(...t),r)}function mt(e,t,r,u,n,o){e.current=u,r.current=!1,n.current&&(n.current=null,o())}function Ct(e,t,r,u,n,o,a,l,s,i,d){if(!e)return()=>{};let f=!1,p=null;const y=()=>{if(f||!l.current)return;const h=t.getState();let v,P;try{v=u(h,n.current)}catch(b){P=b,p=b}P||(p=null),v===o.current?a.current||i():(o.current=v,s.current=v,a.current=!0,d())};return r.onStateChange=y,r.trySubscribe(),y(),()=>{if(f=!0,r.tryUnsubscribe(),r.onStateChange=null,p)throw p}}function Pt(e,t){return e===t}function ht(e,t,r,{pure:u,areStatesEqual:n=Pt,areOwnPropsEqual:o=G,areStatePropsEqual:a=G,areMergedPropsEqual:l=G,forwardRef:s=!1,context:i=R}={}){const d=i,f=Ze(e),p=Xe(t),y=Qe(r),S=!!e;return v=>{const P=v.displayName||v.name||"Component",b=`Connect(${P})`,m={shouldHandleStateChanges:S,displayName:b,wrappedComponentName:P,WrappedComponent:v,initMapStateToProps:f,initMapDispatchToProps:p,initMergeProps:y,areStatesEqual:n,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:l};function w(E){const[O,L,T]=c.useMemo(()=>{const{reactReduxForwardedRef:C,...F}=E;return[E.context,C,F]},[E]),_=c.useMemo(()=>{let C=d;return O?.Consumer,C},[O,d]),g=c.useContext(_),N=!!E.store&&!!E.store.getState&&!!E.store.dispatch,me=!!g&&!!g.store,x=N?E.store:g.store,Q=me?g.getServerState:x.getState,V=c.useMemo(()=>Ge(x.dispatch,m),[x]),[M,j]=c.useMemo(()=>{if(!S)return vt;const C=ye(x,N?void 0:g.subscription),F=C.notifyNestedSubs.bind(C);return[C,F]},[x,N,g]),ee=c.useMemo(()=>N?g:{...g,subscription:M},[N,g,M]),W=c.useRef(void 0),D=c.useRef(T),A=c.useRef(void 0),te=c.useRef(!1),B=c.useRef(!1),H=c.useRef(void 0);U(()=>(B.current=!0,()=>{B.current=!1}),[]);const re=c.useMemo(()=>()=>A.current&&T===D.current?A.current:V(x.getState(),T),[x,T]),Ce=c.useMemo(()=>F=>M?Ct(S,x,M,V,D,W,te,B,A,j,F):()=>{},[M]);bt(mt,[D,W,te,T,A,j]);let k;try{k=c.useSyncExternalStore(Ce,re,Q?()=>V(Q(),T):re)}catch(C){throw H.current&&(C.message+=`
|
|
10
|
+
The error may be correlated with this previous error:
|
|
11
|
+
${H.current.stack}
|
|
12
|
+
|
|
13
|
+
`),C}U(()=>{H.current=void 0,A.current=void 0,W.current=k});const z=c.useMemo(()=>c.createElement(v,{...k,ref:L}),[L,v,k]);return c.useMemo(()=>S?c.createElement(_.Provider,{value:ee},z):z,[_,z,ee])}const $=c.memo(w);if($.WrappedComponent=v,$.displayName=w.displayName=b,s){const O=c.forwardRef(function(T,_){return c.createElement($,{...T,reactReduxForwardedRef:_})});return O.displayName=b,O.WrappedComponent=v,X(O,v)}return X($,v)}}var Nt=ht;function gt(e){const{children:t,context:r,serverState:u,store:n}=e,o=c.useMemo(()=>{const s=ye(n);return{store:n,subscription:s,getServerState:u?()=>u:void 0}},[n,u]),a=c.useMemo(()=>n.getState(),[n]);U(()=>{const{subscription:s}=o;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),a!==n.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[o,a]);const l=r||R;return c.createElement(l.Provider,{value:o},t)}var Mt=gt;function J(e=R){return function(){return c.useContext(e)}}var ve=J();function be(e=R){const t=e===R?ve:J(e),r=()=>{const{store:u}=t();return u};return Object.assign(r,{withTypes:()=>r}),r}var Rt=be();function wt(e=R){const t=e===R?Rt:be(e),r=()=>t().dispatch;return Object.assign(r,{withTypes:()=>r}),r}var At=wt(),Et=(e,t)=>e===t;function Tt(e=R){const t=e===R?ve:J(e),r=(u,n={})=>{const{equalityFn:o=Et}=typeof n=="function"?{equalityFn:n}:n,a=t(),{store:l,subscription:s,getServerState:i}=a;c.useRef(!0);const d=c.useCallback({[u.name](p){return u(p)}}[u.name],[u]),f=_e.useSyncExternalStoreWithSelector(s.addNestedSub,l.getState,i||l.getState,d,o);return c.useDebugValue(f),f};return Object.assign(r,{withTypes:()=>r}),r}var Ft=Tt(),It=pe;export{Mt as Provider,R as ReactReduxContext,It as batch,Nt as connect,wt as createDispatchHook,Tt as createSelectorHook,be as createStoreHook,G as shallowEqual,At as useDispatch,Ft as useSelector,Rt as useStore};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import{importShared as oe}from"./__federation_fn_import-WDa0gv1I.js";/**
|
|
2
|
+
* react-router v7.9.4
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/var Gn=e=>{throw TypeError(e)},yl=(e,t,r)=>t.has(e)||Gn("Cannot "+r),Wr=(e,t,r)=>(yl(e,t,"read from private field"),r?r.call(e):t.get(e)),vl=(e,t,r)=>t.has(e)?Gn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),wl=(e=>(e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE",e))(wl||{}),fn="popstate";function Qn(e={}){let{initialEntries:t=["/"],initialIndex:r,v5Compat:a=!1}=e,n;n=t.map((m,h)=>c(m,typeof m=="string"?null:m.state,h===0?"default":void 0));let o=s(r??n.length-1),i="POP",l=null;function s(m){return Math.min(Math.max(m,0),n.length-1)}function u(){return n[o]}function c(m,h=null,g){let p=Je(n?u().pathname:"/",m,h,g);return Q(p.pathname.charAt(0)==="/",`relative pathnames are not supported in memory history: ${JSON.stringify(m)}`),p}function d(m){return typeof m=="string"?m:Ee(m)}return{get index(){return o},get action(){return i},get location(){return u()},createHref:d,createURL(m){return new URL(d(m),"http://localhost")},encodeLocation(m){let h=typeof m=="string"?Te(m):m;return{pathname:h.pathname||"",search:h.search||"",hash:h.hash||""}},push(m,h){i="PUSH";let g=c(m,h);o+=1,n.splice(o,n.length,g),a&&l&&l({action:i,location:g,delta:1})},replace(m,h){i="REPLACE";let g=c(m,h);n[o]=g,a&&l&&l({action:i,location:g,delta:0})},go(m){i="POP";let h=s(o+m),g=n[h];o=h,l&&l({action:i,location:g,delta:m})},listen(m){return l=m,()=>{l=null}}}}function xr(e={}){function t(a,n){let{pathname:o,search:i,hash:l}=a.location;return Je("",{pathname:o,search:i,hash:l},n.state&&n.state.usr||null,n.state&&n.state.key||"default")}function r(a,n){return typeof n=="string"?n:Ee(n)}return qn(t,r,null,e)}function Zn(e={}){function t(n,o){let{pathname:i="/",search:l="",hash:s=""}=Te(n.location.hash.substring(1));return!i.startsWith("/")&&!i.startsWith(".")&&(i="/"+i),Je("",{pathname:i,search:l,hash:s},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function r(n,o){let i=n.document.querySelector("base"),l="";if(i&&i.getAttribute("href")){let s=n.location.href,u=s.indexOf("#");l=u===-1?s:s.slice(0,u)}return l+"#"+(typeof o=="string"?o:Ee(o))}function a(n,o){Q(n.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(o)})`)}return qn(t,r,a,e)}function A(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Q(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function gl(){return Math.random().toString(36).substring(2,10)}function hn(e,t){return{usr:e.state,key:e.key,idx:t}}function Je(e,t,r=null,a){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Te(t):t,state:r,key:t&&t.key||a||gl()}}function Ee({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function Te(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function qn(e,t,r,a={}){let{window:n=document.defaultView,v5Compat:o=!1}=a,i=n.history,l="POP",s=null,u=c();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function c(){return(i.state||{idx:null}).idx}function d(){l="POP";let p=c(),v=p==null?null:p-u;u=p,s&&s({action:l,location:g.location,delta:v})}function f(p,v){l="PUSH";let R=Je(g.location,p,v);r&&r(R,p),u=c()+1;let x=hn(R,u),S=g.createHref(R);try{i.pushState(x,"",S)}catch(b){if(b instanceof DOMException&&b.name==="DataCloneError")throw b;n.location.assign(S)}o&&s&&s({action:l,location:g.location,delta:1})}function m(p,v){l="REPLACE";let R=Je(g.location,p,v);r&&r(R,p),u=c();let x=hn(R,u),S=g.createHref(R);i.replaceState(x,"",S),o&&s&&s({action:l,location:g.location,delta:0})}function h(p){return eo(p)}let g={get action(){return l},get location(){return e(n,i)},listen(p){if(s)throw new Error("A history only accepts one active listener");return n.addEventListener(fn,d),s=p,()=>{n.removeEventListener(fn,d),s=null}},createHref(p){return t(n,p)},createURL:h,encodeLocation(p){let v=h(p);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:f,replace:m,go(p){return i.go(p)}};return g}function eo(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),A(r,"No window.location.(origin|href) available to create URL");let a=typeof e=="string"?e:Ee(e);return a=a.replace(/ $/,"%20"),!t&&a.startsWith("//")&&(a=r+a),new URL(a,r)}function Rl(e){return{defaultValue:e}}var $t,Ye=class{constructor(e){if(vl(this,$t,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(Wr(this,$t).has(e))return Wr(this,$t).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Wr(this,$t).set(e,t)}};$t=new WeakMap;var El=new Set(["lazy","caseSensitive","path","id","index","children"]);function bl(e){return El.has(e)}var Sl=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function Cl(e){return Sl.has(e)}function xl(e){return e.index===!0}function at(e,t,r=[],a={},n=!1){return e.map((o,i)=>{let l=[...r,String(i)],s=typeof o.id=="string"?o.id:l.join("-");if(A(o.index!==!0||!o.children,"Cannot specify children on an index route"),A(n||!a[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),xl(o)){let u={...o,...t(o),id:s};return a[s]=u,u}else{let u={...o,...t(o),id:s,children:void 0};return a[s]=u,o.children&&(u.children=at(o.children,t,l,a,n)),u}})}function Se(e,t,r="/"){return sr(e,t,r,!1)}function sr(e,t,r,a){let n=typeof t=="string"?Te(t):t,o=le(n.pathname||"/",r);if(o==null)return null;let i=ro(e);Dl(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=oo(o);l=Ol(i[s],u,a)}return l}function to(e,t){let{route:r,pathname:a,params:n}=e;return{id:r.id,pathname:a,params:n,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function ro(e,t=[],r=[],a="",n=!1){let o=(i,l,s=n,u)=>{let c={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};if(c.relativePath.startsWith("/")){if(!c.relativePath.startsWith(a)&&s)return;A(c.relativePath.startsWith(a),`Absolute route path "${c.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(a.length)}let d=He([a,c.relativePath]),f=r.concat(c);i.children&&i.children.length>0&&(A(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),ro(i.children,t,f,d,s)),!(i.path==null&&!i.index)&&t.push({path:d,score:Al(d,i.index),routesMeta:f})};return e.forEach((i,l)=>{if(i.path===""||!i.path?.includes("?"))o(i,l);else for(let s of ao(i.path))o(i,l,!0,s)}),t}function ao(e){let t=e.split("/");if(t.length===0)return[];let[r,...a]=t,n=r.endsWith("?"),o=r.replace(/\?$/,"");if(a.length===0)return n?[o,""]:[o];let i=ao(a.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),n&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function Dl(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Fl(t.routesMeta.map(a=>a.childrenIndex),r.routesMeta.map(a=>a.childrenIndex)))}var Pl=/^:[\w-]+$/,Ll=3,_l=2,Ml=1,Tl=10,kl=-2,mn=e=>e==="*";function Al(e,t){let r=e.split("/"),a=r.length;return r.some(mn)&&(a+=kl),t&&(a+=_l),r.filter(n=>!mn(n)).reduce((n,o)=>n+(Pl.test(o)?Ll:o===""?Ml:Tl),a)}function Fl(e,t){return e.length===t.length&&e.slice(0,-1).every((a,n)=>a===t[n])?e[e.length-1]-t[t.length-1]:0}function Ol(e,t,r=!1){let{routesMeta:a}=e,n={},o="/",i=[];for(let l=0;l<a.length;++l){let s=a[l],u=l===a.length-1,c=o==="/"?t:t.slice(o.length)||"/",d=Ht({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},c),f=s.route;if(!d&&u&&r&&!a[a.length-1].route.index&&(d=Ht({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},c)),!d)return null;Object.assign(n,d.params),i.push({params:n,pathname:He([o,d.pathname]),pathnameBase:Hl(He([o,d.pathnameBase])),route:f}),d.pathnameBase!=="/"&&(o=He([o,d.pathnameBase]))}return i}function ud(e,t={}){let r=e;r.endsWith("*")&&r!=="*"&&!r.endsWith("/*")&&(Q(!1,`Route path "${r}" will be treated as if it were "${r.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${r.replace(/\*$/,"/*")}".`),r=r.replace(/\*$/,"/*"));const a=r.startsWith("/")?"/":"",n=i=>i==null?"":typeof i=="string"?i:String(i),o=r.split(/\/+/).map((i,l,s)=>{if(l===s.length-1&&i==="*")return n(t["*"]);const c=i.match(/^:([\w-]+)(\??)$/);if(c){const[,d,f]=c;let m=t[d];return A(f==="?"||m!=null,`Missing ":${d}" param`),encodeURIComponent(n(m))}return i.replace(/\?$/g,"")}).filter(i=>!!i);return a+o.join("/")}function Ht(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,a]=no(e.path,e.caseSensitive,e.end),n=t.match(r);if(!n)return null;let o=n[0],i=o.replace(/(.)\/+$/,"$1"),l=n.slice(1);return{params:a.reduce((u,{paramName:c,isOptional:d},f)=>{if(c==="*"){let h=l[f]||"";i=o.slice(0,o.length-h.length).replace(/(.)\/+$/,"$1")}const m=l[f];return d&&!m?u[c]=void 0:u[c]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function no(e,t=!1,r=!0){Q(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let a=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s)=>(a.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),a]}function oo(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Q(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function le(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,a=e.charAt(r);return a&&a!=="/"?null:e.slice(r)||"/"}function Nl({basename:e,pathname:t}){return t==="/"?e:He([e,t])}function $l(e,t="/"){let{pathname:r,search:a="",hash:n=""}=typeof e=="string"?Te(e):e;return{pathname:r?r.startsWith("/")?r:Il(r,t):t,search:Ul(a),hash:jl(n)}}function Il(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(n=>{n===".."?r.length>1&&r.pop():n!=="."&&r.push(n)}),r.length>1?r.join("/"):"/"}function Vr(e,t,r,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function io(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Dr(e){let t=io(e);return t.map((r,a)=>a===t.length-1?r.pathname:r.pathnameBase)}function Pr(e,t,r,a=!1){let n;typeof e=="string"?n=Te(e):(n={...e},A(!n.pathname||!n.pathname.includes("?"),Vr("?","pathname","search",n)),A(!n.pathname||!n.pathname.includes("#"),Vr("#","pathname","hash",n)),A(!n.search||!n.search.includes("#"),Vr("#","search","hash",n)));let o=e===""||n.pathname==="",i=o?"/":n.pathname,l;if(i==null)l=r;else{let d=t.length-1;if(!a&&i.startsWith("..")){let f=i.split("/");for(;f[0]==="..";)f.shift(),d-=1;n.pathname=f.join("/")}l=d>=0?t[d]:"/"}let s=$l(n,l),u=i&&i!=="/"&&i.endsWith("/"),c=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}var He=e=>e.join("/").replace(/\/\/+/g,"/"),Hl=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ul=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,jl=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,zl=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function Bl(e,t){return new zl(e,typeof t=="number"?{status:t}:t)}var Lr=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let a=new Headers(r.headers);return a.set("Location",e),new Response(null,{...r,headers:a})},Wl=(e,t)=>{let r=Lr(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},Vl=(e,t)=>{let r=Lr(e,t);return r.headers.set("X-Remix-Replace","true"),r},ce=class{constructor(e,t,r,a=!1){this.status=e,this.statusText=t||"",this.internal=a,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function ne(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var lo=["POST","PUT","PATCH","DELETE"],Yl=new Set(lo),Jl=["GET",...lo],Kl=new Set(Jl),so=new Set([301,302,303,307,308]),Xl=new Set([307,308]),ur={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Sa={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},pt={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Gl=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ca=e=>Gl.test(e),uo=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),co="remix-router-transitions",fo=Symbol("ResetLoaderData");function Wt(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";A(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a=e.hydrationRouteProperties||[],n=e.mapRouteProperties||uo,o={},i=at(e.routes,n,void 0,o),l,s=e.basename||"/";s.startsWith("/")||(s=`/${s}`);let u=e.dataStrategy||rs,c={...e.future},d=null,f=new Set,m=null,h=null,g=null,p=e.hydrationData!=null,v=Se(i,e.history.location,s),R=!1,x=null,S;if(v==null&&!e.patchRoutesOnNavigation){let y=ae(404,{pathname:e.history.location.pathname}),{matches:E,route:C}=Rt(i);S=!0,v=E,x={[C.id]:y}}else if(v&&!e.hydrationData&&Gt(v,i,e.history.location.pathname).active&&(v=null),v)if(v.some(y=>y.route.lazy))S=!1;else if(!v.some(y=>xa(y.route)))S=!0;else{let y=e.hydrationData?e.hydrationData.loaderData:null,E=e.hydrationData?e.hydrationData.errors:null;if(E){let C=v.findIndex(D=>E[D.route.id]!==void 0);S=v.slice(0,C+1).every(D=>!ea(D.route,y,E))}else S=v.every(C=>!ea(C.route,y,E))}else{S=!1,v=[];let y=Gt(null,i,e.history.location.pathname);y.active&&y.matches&&(R=!0,v=y.matches)}let b,w={historyAction:e.history.action,location:e.history.location,matches:v,initialized:S,navigation:ur,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||x,fetchers:new Map,blockers:new Map},M="POP",P=!1,T,$=!1,V=new Map,Z=null,Y=!1,G=!1,we=new Set,J=new Map,Pe=0,ge=-1,Ae=new Map,Re=new Set,Le=new Map,Fe=new Map,Oe=new Set,lt=new Map,Kt,Mt=null;function Zi(){if(d=e.history.listen(({action:y,location:E,delta:C})=>{if(Kt){Kt(),Kt=void 0;return}Q(lt.size===0||C!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let D=sn({currentLocation:w.location,nextLocation:E,historyAction:y});if(D&&C!=null){let L=new Promise(I=>{Kt=I});e.history.go(C*-1),Xt(D,{state:"blocked",location:E,proceed(){Xt(D,{state:"proceeding",proceed:void 0,reset:void 0,location:E}),L.then(()=>e.history.go(C))},reset(){let I=new Map(w.blockers);I.set(D,pt),de({blockers:I})}});return}return st(y,E)}),r){us(t,V);let y=()=>cs(t,V);t.addEventListener("pagehide",y),Z=()=>t.removeEventListener("pagehide",y)}return w.initialized||st("POP",w.location,{initialHydration:!0}),b}function qi(){d&&d(),Z&&Z(),f.clear(),T&&T.abort(),w.fetchers.forEach((y,E)=>jr(E)),w.blockers.forEach((y,E)=>ln(E))}function el(y){return f.add(y),()=>f.delete(y)}function de(y,E={}){y.matches&&(y.matches=y.matches.map(L=>{let I=o[L.route.id],U=L.route;return U.element!==I.element||U.errorElement!==I.errorElement||U.hydrateFallbackElement!==I.hydrateFallbackElement?{...L,route:I}:L})),w={...w,...y};let C=[],D=[];w.fetchers.forEach((L,I)=>{L.state==="idle"&&(Oe.has(I)?C.push(I):D.push(I))}),Oe.forEach(L=>{!w.fetchers.has(L)&&!J.has(L)&&C.push(L)}),[...f].forEach(L=>L(w,{deletedFetchers:C,viewTransitionOpts:E.viewTransitionOpts,flushSync:E.flushSync===!0})),C.forEach(L=>jr(L)),D.forEach(L=>w.fetchers.delete(L))}function vt(y,E,{flushSync:C}={}){let D=w.actionData!=null&&w.navigation.formMethod!=null&&me(w.navigation.formMethod)&&w.navigation.state==="loading"&&y.state?._isRedirect!==!0,L;E.actionData?Object.keys(E.actionData).length>0?L=E.actionData:L=null:D?L=w.actionData:L=null;let I=E.loaderData?Dn(w.loaderData,E.loaderData,E.matches||[],E.errors):w.loaderData,U=w.blockers;U.size>0&&(U=new Map(U),U.forEach((j,H)=>U.set(H,pt)));let O=Y?!1:cn(y,E.matches||w.matches),z=P===!0||w.navigation.formMethod!=null&&me(w.navigation.formMethod)&&y.state?._isRedirect!==!0;l&&(i=l,l=void 0),Y||M==="POP"||(M==="PUSH"?e.history.push(y,y.state):M==="REPLACE"&&e.history.replace(y,y.state));let W;if(M==="POP"){let j=V.get(w.location.pathname);j&&j.has(y.pathname)?W={currentLocation:w.location,nextLocation:y}:V.has(y.pathname)&&(W={currentLocation:y,nextLocation:w.location})}else if($){let j=V.get(w.location.pathname);j?j.add(y.pathname):(j=new Set([y.pathname]),V.set(w.location.pathname,j)),W={currentLocation:w.location,nextLocation:y}}de({...E,actionData:L,loaderData:I,historyAction:M,location:y,initialized:!0,navigation:ur,revalidation:"idle",restoreScrollPosition:O,preventScrollReset:z,blockers:U},{viewTransitionOpts:W,flushSync:C===!0}),M="POP",P=!1,$=!1,Y=!1,G=!1,Mt?.resolve(),Mt=null}async function qa(y,E){if(typeof y=="number"){e.history.go(y);return}let C=qr(w.location,w.matches,s,y,E?.fromRouteId,E?.relative),{path:D,submission:L,error:I}=yn(!1,C,E),U=w.location,O=Je(w.location,D,E&&E.state);O={...O,...e.history.encodeLocation(O)};let z=E&&E.replace!=null?E.replace:void 0,W="PUSH";z===!0?W="REPLACE":z===!1||L!=null&&me(L.formMethod)&&L.formAction===w.location.pathname+w.location.search&&(W="REPLACE");let j=E&&"preventScrollReset"in E?E.preventScrollReset===!0:void 0,H=(E&&E.flushSync)===!0,K=sn({currentLocation:U,nextLocation:O,historyAction:W});if(K){Xt(K,{state:"blocked",location:O,proceed(){Xt(K,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),qa(y,E)},reset(){let ee=new Map(w.blockers);ee.set(K,pt),de({blockers:ee})}});return}await st(W,O,{submission:L,pendingError:I,preventScrollReset:j,replace:E&&E.replace,enableViewTransition:E&&E.viewTransition,flushSync:H})}function tl(){Mt||(Mt=ds()),Ur(),de({revalidation:"loading"});let y=Mt.promise;return w.navigation.state==="submitting"?y:w.navigation.state==="idle"?(st(w.historyAction,w.location,{startUninterruptedRevalidation:!0}),y):(st(M||w.historyAction,w.navigation.location,{overrideNavigation:w.navigation,enableViewTransition:$===!0}),y)}async function st(y,E,C){T&&T.abort(),T=null,M=y,Y=(C&&C.startUninterruptedRevalidation)===!0,fl(w.location,w.matches),P=(C&&C.preventScrollReset)===!0,$=(C&&C.enableViewTransition)===!0;let D=l||i,L=C&&C.overrideNavigation,I=C?.initialHydration&&w.matches&&w.matches.length>0&&!R?w.matches:Se(D,E,s),U=(C&&C.flushSync)===!0;if(I&&w.initialized&&!G&&ns(w.location,E)&&!(C&&C.submission&&me(C.submission.formMethod))){vt(E,{matches:I},{flushSync:U});return}let O=Gt(I,D,E.pathname);if(O.active&&O.matches&&(I=O.matches),!I){let{error:ve,notFoundMatches:te,route:q}=zr(E.pathname);vt(E,{matches:te,loaderData:{},errors:{[q.id]:ve}},{flushSync:U});return}T=new AbortController;let z=gt(e.history,E,T.signal,C&&C.submission),W=e.getContext?await e.getContext():new Ye,j;if(C&&C.pendingError)j=[Me(I).route.id,{type:"error",error:C.pendingError}];else if(C&&C.submission&&me(C.submission.formMethod)){let ve=await rl(z,E,C.submission,I,W,O.active,C&&C.initialHydration===!0,{replace:C.replace,flushSync:U});if(ve.shortCircuited)return;if(ve.pendingActionResult){let[te,q]=ve.pendingActionResult;if(ue(q)&&ne(q.error)&&q.error.status===404){T=null,vt(E,{matches:ve.matches,loaderData:{},errors:{[te]:q.error}});return}}I=ve.matches||I,j=ve.pendingActionResult,L=Yr(E,C.submission),U=!1,O.active=!1,z=gt(e.history,z.url,z.signal)}let{shortCircuited:H,matches:K,loaderData:ee,errors:se}=await al(z,E,I,W,O.active,L,C&&C.submission,C&&C.fetcherSubmission,C&&C.replace,C&&C.initialHydration===!0,U,j);H||(T=null,vt(E,{matches:K||I,...Pn(j),loaderData:ee,errors:se}))}async function rl(y,E,C,D,L,I,U,O={}){Ur();let z=ls(E,C);if(de({navigation:z},{flushSync:O.flushSync===!0}),I){let H=await Qt(D,E.pathname,y.signal);if(H.type==="aborted")return{shortCircuited:!0};if(H.type==="error"){if(H.partialMatches.length===0){let{matches:ee,route:se}=Rt(i);return{matches:ee,pendingActionResult:[se.id,{type:"error",error:H.error}]}}let K=Me(H.partialMatches).route.id;return{matches:H.partialMatches,pendingActionResult:[K,{type:"error",error:H.error}]}}else if(H.matches)D=H.matches;else{let{notFoundMatches:K,error:ee,route:se}=zr(E.pathname);return{matches:K,pendingActionResult:[se.id,{type:"error",error:ee}]}}}let W,j=Et(D,E);if(!j.route.action&&!j.route.lazy)W={type:"error",error:ae(405,{method:y.method,pathname:E.pathname,routeId:j.route.id})};else{let H=tt(n,o,y,D,j,U?[]:a,L),K=await Tt(y,H,L,null);if(W=K[j.route.id],!W){for(let ee of D)if(K[ee.route.id]){W=K[ee.route.id];break}}if(y.signal.aborted)return{shortCircuited:!0}}if(et(W)){let H;return O&&O.replace!=null?H=O.replace:H=Sn(W.response.headers.get("Location"),new URL(y.url),s)===w.location.pathname+w.location.search,await ut(y,W,!0,{submission:C,replace:H}),{shortCircuited:!0}}if(ue(W)){let H=Me(D,j.route.id);return(O&&O.replace)!==!0&&(M="PUSH"),{matches:D,pendingActionResult:[H.route.id,W,j.route.id]}}return{matches:D,pendingActionResult:[j.route.id,W]}}async function al(y,E,C,D,L,I,U,O,z,W,j,H){let K=I||Yr(E,U),ee=U||O||Ln(K),se=!Y&&!W;if(L){if(se){let fe=en(H);de({navigation:K,...fe!==void 0?{actionData:fe}:{}},{flushSync:j})}let X=await Qt(C,E.pathname,y.signal);if(X.type==="aborted")return{shortCircuited:!0};if(X.type==="error"){if(X.partialMatches.length===0){let{matches:wt,route:ft}=Rt(i);return{matches:wt,loaderData:{},errors:{[ft.id]:X.error}}}let fe=Me(X.partialMatches).route.id;return{matches:X.partialMatches,loaderData:{},errors:{[fe]:X.error}}}else if(X.matches)C=X.matches;else{let{error:fe,notFoundMatches:wt,route:ft}=zr(E.pathname);return{matches:wt,loaderData:{},errors:{[ft.id]:fe}}}}let ve=l||i,{dsMatches:te,revalidatingFetchers:q}=vn(y,D,n,o,e.history,w,C,ee,E,W?[]:a,W===!0,G,we,Oe,Le,Re,ve,s,e.patchRoutesOnNavigation!=null,H);if(ge=++Pe,!e.dataStrategy&&!te.some(X=>X.shouldLoad)&&!te.some(X=>X.route.middleware&&X.route.middleware.length>0)&&q.length===0){let X=nn();return vt(E,{matches:C,loaderData:{},errors:H&&ue(H[1])?{[H[0]]:H[1].error}:null,...Pn(H),...X?{fetchers:new Map(w.fetchers)}:{}},{flushSync:j}),{shortCircuited:!0}}if(se){let X={};if(!L){X.navigation=K;let fe=en(H);fe!==void 0&&(X.actionData=fe)}q.length>0&&(X.fetchers=nl(q)),de(X,{flushSync:j})}q.forEach(X=>{Be(X.key),X.controller&&J.set(X.key,X.controller)});let ct=()=>q.forEach(X=>Be(X.key));T&&T.signal.addEventListener("abort",ct);let{loaderResults:kt,fetcherResults:Qe}=await tn(te,q,y,D);if(y.signal.aborted)return{shortCircuited:!0};T&&T.signal.removeEventListener("abort",ct),q.forEach(X=>J.delete(X.key));let Ne=tr(kt);if(Ne)return await ut(y,Ne.result,!0,{replace:z}),{shortCircuited:!0};if(Ne=tr(Qe),Ne)return Re.add(Ne.key),await ut(y,Ne.result,!0,{replace:z}),{shortCircuited:!0};let{loaderData:Br,errors:At}=xn(w,C,kt,H,q,Qe);W&&w.errors&&(At={...w.errors,...At});let dt=nn(),Zt=on(ge),qt=dt||Zt||q.length>0;return{matches:C,loaderData:Br,errors:At,...qt?{fetchers:new Map(w.fetchers)}:{}}}function en(y){if(y&&!ue(y[1]))return{[y[0]]:y[1].data};if(w.actionData)return Object.keys(w.actionData).length===0?null:w.actionData}function nl(y){return y.forEach(E=>{let C=w.fetchers.get(E.key),D=Ft(void 0,C?C.data:void 0);w.fetchers.set(E.key,D)}),new Map(w.fetchers)}async function ol(y,E,C,D){Be(y);let L=(D&&D.flushSync)===!0,I=l||i,U=qr(w.location,w.matches,s,C,E,D?.relative),O=Se(I,U,s),z=Gt(O,I,U);if(z.active&&z.matches&&(O=z.matches),!O){ze(y,E,ae(404,{pathname:U}),{flushSync:L});return}let{path:W,submission:j,error:H}=yn(!0,U,D);if(H){ze(y,E,H,{flushSync:L});return}let K=e.getContext?await e.getContext():new Ye,ee=(D&&D.preventScrollReset)===!0;if(j&&me(j.formMethod)){await il(y,E,W,O,K,z.active,L,ee,j);return}Le.set(y,{routeId:E,path:W}),await ll(y,E,W,O,K,z.active,L,ee,j)}async function il(y,E,C,D,L,I,U,O,z){Ur(),Le.delete(y);let W=w.fetchers.get(y);je(y,ss(z,W),{flushSync:U});let j=new AbortController,H=gt(e.history,C,j.signal,z);if(I){let ie=await Qt(D,new URL(H.url).pathname,H.signal,y);if(ie.type==="aborted")return;if(ie.type==="error"){ze(y,E,ie.error,{flushSync:U});return}else if(ie.matches)D=ie.matches;else{ze(y,E,ae(404,{pathname:C}),{flushSync:U});return}}let K=Et(D,C);if(!K.route.action&&!K.route.lazy){let ie=ae(405,{method:z.formMethod,pathname:C,routeId:E});ze(y,E,ie,{flushSync:U});return}J.set(y,j);let ee=Pe,se=tt(n,o,H,D,K,a,L),te=(await Tt(H,se,L,y))[K.route.id];if(H.signal.aborted){J.get(y)===j&&J.delete(y);return}if(Oe.has(y)){if(et(te)||ue(te)){je(y,Ve(void 0));return}}else{if(et(te))if(J.delete(y),ge>ee){je(y,Ve(void 0));return}else return Re.add(y),je(y,Ft(z)),ut(H,te,!1,{fetcherSubmission:z,preventScrollReset:O});if(ue(te)){ze(y,E,te.error);return}}let q=w.navigation.location||w.location,ct=gt(e.history,q,j.signal),kt=l||i,Qe=w.navigation.state!=="idle"?Se(kt,w.navigation.location,s):w.matches;A(Qe,"Didn't find any matches after fetcher action");let Ne=++Pe;Ae.set(y,Ne);let Br=Ft(z,te.data);w.fetchers.set(y,Br);let{dsMatches:At,revalidatingFetchers:dt}=vn(ct,L,n,o,e.history,w,Qe,z,q,a,!1,G,we,Oe,Le,Re,kt,s,e.patchRoutesOnNavigation!=null,[K.route.id,te]);dt.filter(ie=>ie.key!==y).forEach(ie=>{let er=ie.key,dn=w.fetchers.get(er),pl=Ft(void 0,dn?dn.data:void 0);w.fetchers.set(er,pl),Be(er),ie.controller&&J.set(er,ie.controller)}),de({fetchers:new Map(w.fetchers)});let Zt=()=>dt.forEach(ie=>Be(ie.key));j.signal.addEventListener("abort",Zt);let{loaderResults:qt,fetcherResults:X}=await tn(At,dt,ct,L);if(j.signal.aborted)return;if(j.signal.removeEventListener("abort",Zt),Ae.delete(y),J.delete(y),dt.forEach(ie=>J.delete(ie.key)),w.fetchers.has(y)){let ie=Ve(te.data);w.fetchers.set(y,ie)}let fe=tr(qt);if(fe)return ut(ct,fe.result,!1,{preventScrollReset:O});if(fe=tr(X),fe)return Re.add(fe.key),ut(ct,fe.result,!1,{preventScrollReset:O});let{loaderData:wt,errors:ft}=xn(w,Qe,qt,void 0,dt,X);on(Ne),w.navigation.state==="loading"&&Ne>ge?(A(M,"Expected pending action"),T&&T.abort(),vt(w.navigation.location,{matches:Qe,loaderData:wt,errors:ft,fetchers:new Map(w.fetchers)})):(de({errors:ft,loaderData:Dn(w.loaderData,wt,Qe,ft),fetchers:new Map(w.fetchers)}),G=!1)}async function ll(y,E,C,D,L,I,U,O,z){let W=w.fetchers.get(y);je(y,Ft(z,W?W.data:void 0),{flushSync:U});let j=new AbortController,H=gt(e.history,C,j.signal);if(I){let q=await Qt(D,new URL(H.url).pathname,H.signal,y);if(q.type==="aborted")return;if(q.type==="error"){ze(y,E,q.error,{flushSync:U});return}else if(q.matches)D=q.matches;else{ze(y,E,ae(404,{pathname:C}),{flushSync:U});return}}let K=Et(D,C);J.set(y,j);let ee=Pe,se=tt(n,o,H,D,K,a,L),te=(await Tt(H,se,L,y))[K.route.id];if(J.get(y)===j&&J.delete(y),!H.signal.aborted){if(Oe.has(y)){je(y,Ve(void 0));return}if(et(te))if(ge>ee){je(y,Ve(void 0));return}else{Re.add(y),await ut(H,te,!1,{preventScrollReset:O});return}if(ue(te)){ze(y,E,te.error);return}je(y,Ve(te.data))}}async function ut(y,E,C,{submission:D,fetcherSubmission:L,preventScrollReset:I,replace:U}={}){E.response.headers.has("X-Remix-Revalidate")&&(G=!0);let O=E.response.headers.get("Location");A(O,"Expected a Location header on the redirect Response"),O=Sn(O,new URL(y.url),s);let z=Je(w.location,O,{_isRedirect:!0});if(r){let se=!1;if(E.response.headers.has("X-Remix-Reload-Document"))se=!0;else if(Ca(O)){const ve=eo(O,!0);se=ve.origin!==t.location.origin||le(ve.pathname,s)==null}if(se){U?t.location.replace(O):t.location.assign(O);return}}T=null;let W=U===!0||E.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:j,formAction:H,formEncType:K}=w.navigation;!D&&!L&&j&&H&&K&&(D=Ln(w.navigation));let ee=D||L;if(Xl.has(E.response.status)&&ee&&me(ee.formMethod))await st(W,z,{submission:{...ee,formAction:O},preventScrollReset:I||P,enableViewTransition:C?$:void 0});else{let se=Yr(z,D);await st(W,z,{overrideNavigation:se,fetcherSubmission:L,preventScrollReset:I||P,enableViewTransition:C?$:void 0})}}async function Tt(y,E,C,D){let L,I={};try{L=await Ro(u,y,E,D,C,!1)}catch(U){return E.filter(O=>O.shouldLoad).forEach(O=>{I[O.route.id]={type:"error",error:U}}),I}if(y.signal.aborted)return I;for(let[U,O]of Object.entries(L))if(Po(O)){let z=O.result;I[U]={type:"redirect",response:So(z,y,U,E,s)}}else I[U]=await bo(O);return I}async function tn(y,E,C,D){let L=Tt(C,y,D,null),I=Promise.all(E.map(async z=>{if(z.matches&&z.match&&z.request&&z.controller){let j=(await Tt(z.request,z.matches,D,z.key))[z.match.route.id];return{[z.key]:j}}else return Promise.resolve({[z.key]:{type:"error",error:ae(404,{pathname:z.path})}})})),U=await L,O=(await I).reduce((z,W)=>Object.assign(z,W),{});return{loaderResults:U,fetcherResults:O}}function Ur(){G=!0,Le.forEach((y,E)=>{J.has(E)&&we.add(E),Be(E)})}function je(y,E,C={}){w.fetchers.set(y,E),de({fetchers:new Map(w.fetchers)},{flushSync:(C&&C.flushSync)===!0})}function ze(y,E,C,D={}){let L=Me(w.matches,E);jr(y),de({errors:{[L.route.id]:C},fetchers:new Map(w.fetchers)},{flushSync:(D&&D.flushSync)===!0})}function rn(y){return Fe.set(y,(Fe.get(y)||0)+1),Oe.has(y)&&Oe.delete(y),w.fetchers.get(y)||Sa}function sl(y,E){Be(y,E?.reason),je(y,Ve(null))}function jr(y){let E=w.fetchers.get(y);J.has(y)&&!(E&&E.state==="loading"&&Ae.has(y))&&Be(y),Le.delete(y),Ae.delete(y),Re.delete(y),Oe.delete(y),we.delete(y),w.fetchers.delete(y)}function ul(y){let E=(Fe.get(y)||0)-1;E<=0?(Fe.delete(y),Oe.add(y)):Fe.set(y,E),de({fetchers:new Map(w.fetchers)})}function Be(y,E){let C=J.get(y);C&&(C.abort(E),J.delete(y))}function an(y){for(let E of y){let C=rn(E),D=Ve(C.data);w.fetchers.set(E,D)}}function nn(){let y=[],E=!1;for(let C of Re){let D=w.fetchers.get(C);A(D,`Expected fetcher: ${C}`),D.state==="loading"&&(Re.delete(C),y.push(C),E=!0)}return an(y),E}function on(y){let E=[];for(let[C,D]of Ae)if(D<y){let L=w.fetchers.get(C);A(L,`Expected fetcher: ${C}`),L.state==="loading"&&(Be(C),Ae.delete(C),E.push(C))}return an(E),E.length>0}function cl(y,E){let C=w.blockers.get(y)||pt;return lt.get(y)!==E&<.set(y,E),C}function ln(y){w.blockers.delete(y),lt.delete(y)}function Xt(y,E){let C=w.blockers.get(y)||pt;A(C.state==="unblocked"&&E.state==="blocked"||C.state==="blocked"&&E.state==="blocked"||C.state==="blocked"&&E.state==="proceeding"||C.state==="blocked"&&E.state==="unblocked"||C.state==="proceeding"&&E.state==="unblocked",`Invalid blocker state transition: ${C.state} -> ${E.state}`);let D=new Map(w.blockers);D.set(y,E),de({blockers:D})}function sn({currentLocation:y,nextLocation:E,historyAction:C}){if(lt.size===0)return;lt.size>1&&Q(!1,"A router only supports one blocker at a time");let D=Array.from(lt.entries()),[L,I]=D[D.length-1],U=w.blockers.get(L);if(!(U&&U.state==="proceeding")&&I({currentLocation:y,nextLocation:E,historyAction:C}))return L}function zr(y){let E=ae(404,{pathname:y}),C=l||i,{matches:D,route:L}=Rt(C);return{notFoundMatches:D,route:L,error:E}}function dl(y,E,C){if(m=y,g=E,h=C||null,!p&&w.navigation===ur){p=!0;let D=cn(w.location,w.matches);D!=null&&de({restoreScrollPosition:D})}return()=>{m=null,g=null,h=null}}function un(y,E){return h&&h(y,E.map(D=>to(D,w.loaderData)))||y.key}function fl(y,E){if(m&&g){let C=un(y,E);m[C]=g()}}function cn(y,E){if(m){let C=un(y,E),D=m[C];if(typeof D=="number")return D}return null}function Gt(y,E,C){if(e.patchRoutesOnNavigation)if(y){if(Object.keys(y[0].params).length>0)return{active:!0,matches:sr(E,C,s,!0)}}else return{active:!0,matches:sr(E,C,s,!0)||[]};return{active:!1,matches:null}}async function Qt(y,E,C,D){if(!e.patchRoutesOnNavigation)return{type:"success",matches:y};let L=y;for(;;){let I=l==null,U=l||i,O=o;try{await e.patchRoutesOnNavigation({signal:C,path:E,matches:L,fetcherKey:D,patch:(j,H)=>{C.aborted||wn(j,H,U,O,n,!1)}})}catch(j){return{type:"error",error:j,partialMatches:L}}finally{I&&!C.aborted&&(i=[...i])}if(C.aborted)return{type:"aborted"};let z=Se(U,E,s);if(z)return{type:"success",matches:z};let W=sr(U,E,s,!0);if(!W||L.length===W.length&&L.every((j,H)=>j.route.id===W[H].route.id))return{type:"success",matches:null};L=W}}function hl(y){o={},l=at(y,n,void 0,o)}function ml(y,E,C=!1){let D=l==null;wn(y,E,l||i,o,n,C),D&&(i=[...i],de({}))}return b={get basename(){return s},get future(){return c},get state(){return w},get routes(){return i},get window(){return t},initialize:Zi,subscribe:el,enableScrollRestoration:dl,navigate:qa,fetch:ol,revalidate:tl,createHref:y=>e.history.createHref(y),encodeLocation:y=>e.history.encodeLocation(y),getFetcher:rn,resetFetcher:sl,deleteFetcher:ul,dispose:qi,getBlocker:cl,deleteBlocker:ln,patchRoutes:ml,_internalFetchControllers:J,_internalSetRoutes:hl,_internalSetStateDoNotUseOrYouWillBreakYourApp(y){de(y)}},b}function ho(e,t){A(e.length>0,"You must provide a non-empty routes array to createStaticHandler");let r={},a=(t?t.basename:null)||"/",n=t?.mapRouteProperties||uo,o=at(e,n,void 0,r);async function i(f,{requestContext:m,filterMatchesToLoad:h,skipLoaderErrorBubbling:g,skipRevalidation:p,dataStrategy:v,generateMiddlewareResponse:R}={}){let x=new URL(f.url),S=f.method,b=Je("",Ee(x),null,"default"),w=Se(o,b,a);if(m=m??new Ye,!na(S)&&S!=="HEAD"){let P=ae(405,{method:S}),{matches:T,route:$}=Rt(o),V={basename:a,location:b,matches:T,loaderData:{},actionData:null,errors:{[$.id]:P},statusCode:P.status,loaderHeaders:{},actionHeaders:{}};return R?R(()=>Promise.resolve(V)):V}else if(!w){let P=ae(404,{pathname:b.pathname}),{matches:T,route:$}=Rt(o),V={basename:a,location:b,matches:T,loaderData:{},actionData:null,errors:{[$.id]:P},statusCode:P.status,loaderHeaders:{},actionHeaders:{}};return R?R(()=>Promise.resolve(V)):V}if(R){A(m instanceof Ye,"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`");try{await En(w,r,n);let P,T=await bn({request:f,matches:w,params:w[0].params,context:m},async()=>await R(async(V,Z={})=>{let Y=await s(V,b,w,m,v||null,g===!0,null,"filterMatchesToLoad"in Z?Z.filterMatchesToLoad??null:h??null,p===!0);return re(Y)?Y:(P={location:b,basename:a,...Y},P)}),async($,V)=>{if(vr($))return $;if(re($))try{$=new ce($.status,$.statusText,await Eo($))}catch(Z){$=Z}if(rt($)&&($=os($)),P){V in P.loaderData&&(P.loaderData[V]=void 0);let Z=mo(o,P,$,g?V:Me(w,V).route.id);return R(()=>Promise.resolve(Z))}else{let Z=g?V:Me(w,w.find(G=>G.route.id===V||G.route.loader)?.route.id||V).route.id,Y={matches:w,location:b,basename:a,loaderData:{},actionData:null,errors:{[Z]:$},statusCode:ne($)?$.status:500,actionHeaders:{},loaderHeaders:{}};return R(()=>Promise.resolve(Y))}});return A(re(T),"Expected a response in query()"),T}catch(P){if(re(P))return P;throw P}}let M=await s(f,b,w,m,v||null,g===!0,null,h||null,p===!0);return re(M)?M:{location:b,basename:a,...M}}async function l(f,{routeId:m,requestContext:h,dataStrategy:g,generateMiddlewareResponse:p}={}){let v=new URL(f.url),R=f.method,x=Je("",Ee(v),null,"default"),S=Se(o,x,a);if(h=h??new Ye,!na(R)&&R!=="HEAD"&&R!=="OPTIONS")throw ae(405,{method:R});if(!S)throw ae(404,{pathname:x.pathname});let b=m?S.find(P=>P.route.id===m):Et(S,x);if(m&&!b)throw ae(403,{pathname:x.pathname,routeId:m});if(!b)throw ae(404,{pathname:x.pathname});if(p)return A(h instanceof Ye,"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`"),await En(S,r,n),await bn({request:f,matches:S,params:S[0].params,context:h},async()=>await p(async $=>{let V=await s($,x,S,h,g||null,!1,b,null,!1),Z=M(V);return re(Z)?Z:typeof Z=="string"?new Response(Z):Response.json(Z)}),T=>{if(rt(T))return Promise.resolve(aa(T));if(re(T))return Promise.resolve(T);throw T});let w=await s(f,x,S,h,g||null,!1,b,null,!1);return M(w);function M(P){if(re(P))return P;let T=P.errors?Object.values(P.errors)[0]:void 0;if(T!==void 0)throw T;if(P.actionData)return Object.values(P.actionData)[0];if(P.loaderData)return Object.values(P.loaderData)[0]}}async function s(f,m,h,g,p,v,R,x,S){A(f.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(me(f.method))return await u(f,h,R||Et(h,m),g,p,v,R!=null,x,S);let b=await c(f,h,g,p,v,R,x);return re(b)?b:{...b,actionData:null,actionHeaders:{}}}catch(b){if(Do(b)&&re(b.result)){if(b.type==="error")throw b.result;return b.result}if(vr(b))return b;throw b}}async function u(f,m,h,g,p,v,R,x,S){let b;if(!h.route.action&&!h.route.lazy){let P=ae(405,{method:f.method,pathname:new URL(f.url).pathname,routeId:h.route.id});if(R)throw P;b={type:"error",error:P}}else{let P=tt(n,r,f,m,h,[],g);b=(await d(f,P,R,g,p))[h.route.id],f.signal.aborted&&pn(f,R)}if(et(b))throw new Response(null,{status:b.response.status,headers:{Location:b.response.headers.get("Location")}});if(R){if(ue(b))throw b.error;return{matches:[h],loaderData:{},actionData:{[h.route.id]:b.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}if(S)if(ue(b)){let P=v?h:Me(m,h.route.id);return{statusCode:ne(b.error)?b.error.status:b.statusCode!=null?b.statusCode:500,actionData:null,actionHeaders:{...b.headers?{[h.route.id]:b.headers}:{}},matches:m,loaderData:{},errors:{[P.route.id]:b.error},loaderHeaders:{}}}else return{actionData:{[h.route.id]:b.data},actionHeaders:b.headers?{[h.route.id]:b.headers}:{},matches:m,loaderData:{},errors:null,statusCode:b.statusCode||200,loaderHeaders:{}};let w=new Request(f.url,{headers:f.headers,redirect:f.redirect,signal:f.signal});if(ue(b)){let P=v?h:Me(m,h.route.id);return{...await c(w,m,g,p,v,null,x,[P.route.id,b]),statusCode:ne(b.error)?b.error.status:b.statusCode!=null?b.statusCode:500,actionData:null,actionHeaders:{...b.headers?{[h.route.id]:b.headers}:{}}}}return{...await c(w,m,g,p,v,null,x),actionData:{[h.route.id]:b.data},...b.statusCode?{statusCode:b.statusCode}:{},actionHeaders:b.headers?{[h.route.id]:b.headers}:{}}}async function c(f,m,h,g,p,v,R,x){let S=v!=null;if(S&&!v?.route.loader&&!v?.route.lazy)throw ae(400,{method:f.method,pathname:new URL(f.url).pathname,routeId:v?.route.id});let b;if(v)b=tt(n,r,f,m,v,[],h);else{let P=x&&ue(x[1])?m.findIndex(T=>T.route.id===x[0])-1:void 0;b=m.map((T,$)=>P!=null&&$>P?Ut(n,r,f,T,[],h,!1):Ut(n,r,f,T,[],h,(T.route.loader||T.route.lazy)!=null&&(!R||R(T))))}if(!g&&!b.some(P=>P.shouldLoad))return{matches:m,loaderData:{},errors:x&&ue(x[1])?{[x[0]]:x[1].error}:null,statusCode:200,loaderHeaders:{}};let w=await d(f,b,S,h,g);return f.signal.aborted&&pn(f,S),{...Co(m,w,x,!0,p),matches:m}}async function d(f,m,h,g,p){let v=await Ro(p||ta,f,m,null,g,!0),R={};return await Promise.all(m.map(async x=>{if(!(x.route.id in v))return;let S=v[x.route.id];if(Po(S)){let b=S.result;throw So(b,f,x.route.id,m,a)}if(h){if(re(S.result))throw S;if(rt(S.result))throw aa(S.result)}R[x.route.id]=await bo(S)})),R}return{dataRoutes:o,query:i,queryRoute:l}}function mo(e,t,r,a){let n=a||t._deepestRenderedBoundaryId||e[0].id;return{...t,statusCode:ne(r)?r.status:500,errors:{[n]:r}}}function pn(e,t){if(e.signal.reason!==void 0)throw e.signal.reason;let r=t?"queryRoute":"query";throw new Error(`${r}() call aborted without an \`AbortSignal.reason\`: ${e.method} ${e.url}`)}function Ql(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function qr(e,t,r,a,n,o){let i,l;if(n){i=[];for(let u of t)if(i.push(u),u.route.id===n){l=u;break}}else i=t,l=t[t.length-1];let s=Pr(a||".",Dr(i),le(e.pathname,r)||e.pathname,o==="path");if(a==null&&(s.search=e.search,s.hash=e.hash),(a==null||a===""||a===".")&&l){let u=Pa(s.search);if(l.route.index&&!u)s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index";else if(!l.route.index&&u){let c=new URLSearchParams(s.search),d=c.getAll("index");c.delete("index"),d.filter(m=>m).forEach(m=>c.append("index",m));let f=c.toString();s.search=f?`?${f}`:""}}return r!=="/"&&(s.pathname=Nl({basename:r,pathname:s.pathname})),Ee(s)}function yn(e,t,r){if(!r||!Ql(r))return{path:t};if(r.formMethod&&!na(r.formMethod))return{path:t,error:ae(405,{method:r.formMethod})};let a=()=>({path:t,error:ae(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),i=xo(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!me(o))return a();let d=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((f,[m,h])=>`${f}${m}=${h}
|
|
11
|
+
`,""):String(r.body);return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:void 0,text:d}}}else if(r.formEncType==="application/json"){if(!me(o))return a();try{let d=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:d,text:void 0}}}catch{return a()}}}A(typeof FormData=="function","FormData is not available in this environment");let l,s;if(r.formData)l=ra(r.formData),s=r.formData;else if(r.body instanceof FormData)l=ra(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=Cn(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=Cn(l)}catch{return a()}let u={formMethod:o,formAction:i,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(me(u.formMethod))return{path:t,submission:u};let c=Te(t);return e&&c.search&&Pa(c.search)&&l.append("index",""),c.search=`?${l}`,{path:Ee(c),submission:u}}function vn(e,t,r,a,n,o,i,l,s,u,c,d,f,m,h,g,p,v,R,x){let S=x?ue(x[1])?x[1].error:x[1].data:void 0,b=n.createURL(o.location),w=n.createURL(s),M;if(c&&o.errors){let Y=Object.keys(o.errors)[0];M=i.findIndex(G=>G.route.id===Y)}else if(x&&ue(x[1])){let Y=x[0];M=i.findIndex(G=>G.route.id===Y)-1}let P=x?x[1].statusCode:void 0,T=P&&P>=400,$={currentUrl:b,currentParams:o.matches[0]?.params||{},nextUrl:w,nextParams:i[0].params,...l,actionResult:S,actionStatus:P},V=i.map((Y,G)=>{let{route:we}=Y,J=null;if(M!=null&&G>M?J=!1:we.lazy?J=!0:xa(we)?c?J=ea(we,o.loaderData,o.errors):Zl(o.loaderData,o.matches[G],Y)&&(J=!0):J=!1,J!==null)return Ut(r,a,e,Y,u,t,J);let Pe=T?!1:d||b.pathname+b.search===w.pathname+w.search||b.search!==w.search||ql(o.matches[G],Y),ge={...$,defaultShouldRevalidate:Pe},Ae=yr(Y,ge);return Ut(r,a,e,Y,u,t,Ae,ge)}),Z=[];return h.forEach((Y,G)=>{if(c||!i.some(Fe=>Fe.route.id===Y.routeId)||m.has(G))return;let we=o.fetchers.get(G),J=we&&we.state!=="idle"&&we.data===void 0,Pe=Se(p,Y.path,v);if(!Pe){if(R&&J)return;Z.push({key:G,routeId:Y.routeId,path:Y.path,matches:null,match:null,request:null,controller:null});return}if(g.has(G))return;let ge=Et(Pe,Y.path),Ae=new AbortController,Re=gt(n,Y.path,Ae.signal),Le=null;if(f.has(G))f.delete(G),Le=tt(r,a,Re,Pe,ge,u,t);else if(J)d&&(Le=tt(r,a,Re,Pe,ge,u,t));else{let Fe={...$,defaultShouldRevalidate:T?!1:d};yr(ge,Fe)&&(Le=tt(r,a,Re,Pe,ge,u,t,Fe))}Le&&Z.push({key:G,routeId:Y.routeId,path:Y.path,matches:Le,match:ge,request:Re,controller:Ae})}),{dsMatches:V,revalidatingFetchers:Z}}function xa(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function ea(e,t,r){if(e.lazy)return!0;if(!xa(e))return!1;let a=t!=null&&e.id in t,n=r!=null&&r[e.id]!==void 0;return!a&&n?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!a&&!n}function Zl(e,t,r){let a=!t||r.route.id!==t.route.id,n=!e.hasOwnProperty(r.route.id);return a||n}function ql(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function yr(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function wn(e,t,r,a,n,o){let i;if(e){let u=a[e];A(u,`No route found to patch children into: routeId = ${e}`),u.children||(u.children=[]),i=u.children}else i=r;let l=[],s=[];if(t.forEach(u=>{let c=i.find(d=>po(u,d));c?s.push({existingRoute:c,newRoute:u}):l.push(u)}),l.length>0){let u=at(l,n,[e||"_","patch",String(i?.length||"0")],a);i.push(...u)}if(o&&s.length>0)for(let u=0;u<s.length;u++){let{existingRoute:c,newRoute:d}=s[u],f=c,[m]=at([d],n,[],{},!0);Object.assign(f,{element:m.element?m.element:f.element,errorElement:m.errorElement?m.errorElement:f.errorElement,hydrateFallbackElement:m.hydrateFallbackElement?m.hydrateFallbackElement:f.hydrateFallbackElement})}}function po(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,a)=>t.children?.some(n=>po(r,n))):!1}var gn=new WeakMap,Da=({key:e,route:t,manifest:r,mapRouteProperties:a})=>{let n=r[t.id];if(A(n,"No route found in manifest"),!n.lazy||typeof n.lazy!="object")return;let o=n.lazy[e];if(!o)return;let i=gn.get(n);i||(i={},gn.set(n,i));let l=i[e];if(l)return l;let s=(async()=>{let u=bl(e),d=n[e]!==void 0&&e!=="hasErrorBoundary";if(u)Q(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(d)Q(!1,`Route "${n.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let f=await o();f!=null&&(Object.assign(n,{[e]:f}),Object.assign(n,a(n)))}typeof n.lazy=="object"&&(n.lazy[e]=void 0,Object.values(n.lazy).every(f=>f===void 0)&&(n.lazy=void 0))})();return i[e]=s,s},Rn=new WeakMap;function es(e,t,r,a,n){let o=r[e.id];if(A(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let c=Rn.get(o);if(c)return{lazyRoutePromise:c,lazyHandlerPromise:c};let d=(async()=>{A(typeof e.lazy=="function","No lazy route function found");let f=await e.lazy(),m={};for(let h in f){let g=f[h];if(g===void 0)continue;let p=Cl(h),R=o[h]!==void 0&&h!=="hasErrorBoundary";p?Q(!p,"Route property "+h+" is not a supported property to be returned from a lazy route function. This property will be ignored."):R?Q(!R,`Route "${o.id}" has a static property "${h}" defined but its lazy function is also returning a value for this property. The lazy route property "${h}" will be ignored.`):m[h]=g}Object.assign(o,m),Object.assign(o,{...a(o),lazy:void 0})})();return Rn.set(o,d),d.catch(()=>{}),{lazyRoutePromise:d,lazyHandlerPromise:d}}let i=Object.keys(e.lazy),l=[],s;for(let c of i){if(n&&n.includes(c))continue;let d=Da({key:c,route:e,manifest:r,mapRouteProperties:a});d&&(l.push(d),c===t&&(s=d))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),s?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:s}}function ts(e){return e!==void 0}function En(e,t,r){let a=e.map(({route:n})=>{if(!(typeof n.lazy!="object"||!n.lazy.middleware))return Da({key:"middleware",route:n,manifest:t,mapRouteProperties:r})}).filter(ts);return a.length>0?Promise.all(a):void 0}async function ta(e){let t=e.matches.filter(n=>n.shouldLoad),r={};return(await Promise.all(t.map(n=>n.resolve()))).forEach((n,o)=>{r[t[o].route.id]=n}),r}async function rs(e){return e.matches.some(t=>t.route.middleware)?yo(e,()=>ta(e)):ta(e)}function bn(e,t,r){return vo(e,t,a,re,r);function a(n){return rt(n)?aa(n):n}}function yo(e,t){return vo(e,t,a=>a,is,r);function r(a,n,o){if(o)return Promise.resolve(Object.assign(o.value,{[n]:{type:"error",result:a}}));{let{matches:i}=e,l=Math.min(Math.max(i.findIndex(u=>u.route.id===n),0),Math.max(i.findIndex(u=>u.unstable_shouldCallHandler()),0)),s=Me(i,i[l].route.id).route.id;return Promise.resolve({[s]:{type:"error",result:a}})}}}async function vo(e,t,r,a,n){let{matches:o,request:i,params:l,context:s}=e,u=o.flatMap(d=>d.route.middleware?d.route.middleware.map(f=>[d.route.id,f]):[]);return await wo({request:i,params:l,context:s},u,t,r,a,n)}async function wo(e,t,r,a,n,o,i=0){let{request:l}=e;if(l.signal.aborted)throw l.signal.reason??new Error(`Request aborted: ${l.method} ${l.url}`);let s=t[i];if(!s)return await r();let[u,c]=s,d,f=async()=>{if(d)throw new Error("You may only call `next()` once per middleware");try{return d={value:await wo(e,t,r,a,n,o,i+1)},d.value}catch(m){return d={value:await o(m,u,d)},d.value}};try{let m=await c(e,f),h=m!=null?a(m):void 0;return n(h)?h:d?h??d.value:(d={value:await f()},d.value)}catch(m){return await o(m,u,d)}}function go(e,t,r,a,n){let o=Da({key:"middleware",route:a.route,manifest:t,mapRouteProperties:e}),i=es(a.route,me(r.method)?"action":"loader",t,e,n);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function Ut(e,t,r,a,n,o,i,l=null){let s=!1,u=go(e,t,r,a,n);return{...a,_lazyPromises:u,shouldLoad:i,unstable_shouldRevalidateArgs:l,unstable_shouldCallHandler(c){return s=!0,l?typeof c=="boolean"?yr(a,{...l,defaultShouldRevalidate:c}):yr(a,l):i},resolve(c){let{lazy:d,loader:f,middleware:m}=a.route,h=s||i||c&&!me(r.method)&&(d||f),g=m&&m.length>0&&!f&&!d;return h&&!g?as({request:r,match:a,lazyHandlerPromise:u?.handler,lazyRoutePromise:u?.route,handlerOverride:c,scopedContext:o}):Promise.resolve({type:"data",result:void 0})}}}function tt(e,t,r,a,n,o,i,l=null){return a.map(s=>s.route.id!==n.route.id?{...s,shouldLoad:!1,unstable_shouldRevalidateArgs:l,unstable_shouldCallHandler:()=>!1,_lazyPromises:go(e,t,r,s,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Ut(e,t,r,s,o,i,!0,l))}async function Ro(e,t,r,a,n,o){r.some(u=>u._lazyPromises?.middleware)&&await Promise.all(r.map(u=>u._lazyPromises?.middleware));let i={request:t,params:r[0].params,context:n,matches:r},s=await e({...i,fetcherKey:a,runClientMiddleware:o?()=>{throw new Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:u=>{let c=i;return yo(c,()=>u({...c,fetcherKey:a,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(r.flatMap(u=>[u._lazyPromises?.handler,u._lazyPromises?.route]))}catch{}return s}async function as({request:e,match:t,lazyHandlerPromise:r,lazyRoutePromise:a,handlerOverride:n,scopedContext:o}){let i,l,s=me(e.method),u=s?"action":"loader",c=d=>{let f,m=new Promise((p,v)=>f=v);l=()=>f(),e.signal.addEventListener("abort",l);let h=p=>typeof d!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${u}" [routeId: ${t.route.id}]`)):d({request:e,params:t.params,context:o},...p!==void 0?[p]:[]),g=(async()=>{try{return{type:"data",result:await(n?n(v=>h(v)):h())}}catch(p){return{type:"error",result:p}}})();return Promise.race([g,m])};try{let d=s?t.route.action:t.route.loader;if(r||a)if(d){let f,[m]=await Promise.all([c(d).catch(h=>{f=h}),r,a]);if(f!==void 0)throw f;i=m}else{await r;let f=s?t.route.action:t.route.loader;if(f)[i]=await Promise.all([c(f),a]);else if(u==="action"){let m=new URL(e.url),h=m.pathname+m.search;throw ae(405,{method:e.method,pathname:h,routeId:t.route.id})}else return{type:"data",result:void 0}}else if(d)i=await c(d);else{let f=new URL(e.url),m=f.pathname+f.search;throw ae(404,{pathname:m})}}catch(d){return{type:"error",result:d}}finally{l&&e.signal.removeEventListener("abort",l)}return i}async function Eo(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function bo(e){let{result:t,type:r}=e;if(re(t)){let a;try{a=await Eo(t)}catch(n){return{type:"error",error:n}}return r==="error"?{type:"error",error:new ce(t.status,t.statusText,a),statusCode:t.status,headers:t.headers}:{type:"data",data:a,statusCode:t.status,headers:t.headers}}return r==="error"?rt(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new ce(t.init?.status||500,void 0,t.data),statusCode:ne(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:ne(t)?t.status:void 0}:rt(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function So(e,t,r,a,n){let o=e.headers.get("Location");if(A(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!Ca(o)){let i=a.slice(0,a.findIndex(l=>l.route.id===r)+1);o=qr(new URL(t.url),i,n,o),e.headers.set("Location",o)}return e}function Sn(e,t,r){if(Ca(e)){let a=e,n=a.startsWith("//")?new URL(t.protocol+a):new URL(a),o=le(n.pathname,r)!=null;if(n.origin===t.origin&&o)return n.pathname+n.search+n.hash}return e}function gt(e,t,r,a){let n=e.createURL(xo(t)).toString(),o={signal:r};if(a&&me(a.formMethod)){let{formMethod:i,formEncType:l}=a;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(a.json)):l==="text/plain"?o.body=a.text:l==="application/x-www-form-urlencoded"&&a.formData?o.body=ra(a.formData):o.body=a.formData}return new Request(n,o)}function ra(e){let t=new URLSearchParams;for(let[r,a]of e.entries())t.append(r,typeof a=="string"?a:a.name);return t}function Cn(e){let t=new FormData;for(let[r,a]of e.entries())t.append(r,a);return t}function Co(e,t,r,a=!1,n=!1){let o={},i=null,l,s=!1,u={},c=r&&ue(r[1])?r[1].error:void 0;return e.forEach(d=>{if(!(d.route.id in t))return;let f=d.route.id,m=t[f];if(A(!et(m),"Cannot handle redirect results in processLoaderData"),ue(m)){let h=m.error;if(c!==void 0&&(h=c,c=void 0),i=i||{},n)i[f]=h;else{let g=Me(e,f);i[g.route.id]==null&&(i[g.route.id]=h)}a||(o[f]=fo),s||(s=!0,l=ne(m.error)?m.error.status:500),m.headers&&(u[f]=m.headers)}else o[f]=m.data,m.statusCode&&m.statusCode!==200&&!s&&(l=m.statusCode),m.headers&&(u[f]=m.headers)}),c!==void 0&&r&&(i={[r[0]]:c},r[2]&&(o[r[2]]=void 0)),{loaderData:o,errors:i,statusCode:l||200,loaderHeaders:u}}function xn(e,t,r,a,n,o){let{loaderData:i,errors:l}=Co(t,r,a);return n.filter(s=>!s.matches||s.matches.some(u=>u.shouldLoad)).forEach(s=>{let{key:u,match:c,controller:d}=s;if(d&&d.signal.aborted)return;let f=o[u];if(A(f,"Did not find corresponding fetcher result"),ue(f)){let m=Me(e.matches,c?.route.id);l&&l[m.route.id]||(l={...l,[m.route.id]:f.error}),e.fetchers.delete(u)}else if(et(f))A(!1,"Unhandled fetcher revalidation redirect");else{let m=Ve(f.data);e.fetchers.set(u,m)}}),{loaderData:i,errors:l}}function Dn(e,t,r,a){let n=Object.entries(t).filter(([,o])=>o!==fo).reduce((o,[i,l])=>(o[i]=l,o),{});for(let o of r){let i=o.route.id;if(!t.hasOwnProperty(i)&&e.hasOwnProperty(i)&&o.route.loader&&(n[i]=e[i]),a&&a.hasOwnProperty(i))break}return n}function Pn(e){return e?ue(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Me(e,t){return(t?e.slice(0,e.findIndex(a=>a.route.id===t)+1):[...e]).reverse().find(a=>a.route.hasErrorBoundary===!0)||e[0]}function Rt(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ae(e,{pathname:t,routeId:r,method:a,type:n,message:o}={}){let i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",a&&t&&r?l=`You made a ${a} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:n==="invalid-body"&&(l="Unable to encode submission body")):e===403?(i="Forbidden",l=`Route "${r}" does not match URL "${t}"`):e===404?(i="Not Found",l=`No route matches URL "${t}"`):e===405&&(i="Method Not Allowed",a&&t&&r?l=`You made a ${a.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:a&&(l=`Invalid request method "${a.toUpperCase()}"`)),new ce(e||500,i,new Error(l),!0)}function tr(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[a,n]=t[r];if(et(n))return{key:a,result:n}}}function xo(e){let t=typeof e=="string"?Te(e):e;return Ee({...t,hash:""})}function ns(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function aa(e){return Response.json(e.data,e.init??void 0)}function os(e){return new ce(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function is(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&Do(r))}function Do(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function Po(e){return re(e.result)&&so.has(e.result.status)}function ue(e){return e.type==="error"}function et(e){return(e&&e.type)==="redirect"}function rt(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function re(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function _r(e){return so.has(e)}function vr(e){return re(e)&&_r(e.status)&&e.headers.has("Location")}function na(e){return Kl.has(e.toUpperCase())}function me(e){return Yl.has(e.toUpperCase())}function Pa(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Et(e,t){let r=typeof t=="string"?Te(t).search:t.search;if(e[e.length-1].route.index&&Pa(r||""))return e[e.length-1];let a=io(e);return a[a.length-1]}function Ln(e){let{formMethod:t,formAction:r,formEncType:a,text:n,formData:o,json:i}=e;if(!(!t||!r||!a)){if(n!=null)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:void 0,text:n};if(o!=null)return{formMethod:t,formAction:r,formEncType:a,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:i,text:void 0}}}function Yr(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function ls(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 Ft(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ss(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}}function Ve(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function us(e,t){try{let r=e.sessionStorage.getItem(co);if(r){let a=JSON.parse(r);for(let[n,o]of Object.entries(a||{}))o&&Array.isArray(o)&&t.set(n,new Set(o||[]))}}catch{}}function cs(e,t){if(t.size>0){let r={};for(let[a,n]of t)r[a]=[...n];try{e.sessionStorage.setItem(co,JSON.stringify(r))}catch(a){Q(!1,`Failed to save applied view transitions in sessionStorage (${a}).`)}}}function ds(){let e,t,r=new Promise((a,n)=>{e=async o=>{a(o);try{await r}catch{}},t=async o=>{n(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}const ke=await oe("react");var Ue=ke.createContext(null);Ue.displayName="DataRouter";var ot=ke.createContext(null);ot.displayName="DataRouterState";var La=ke.createContext(!1);function fs(){return ke.useContext(La)}var Mr=ke.createContext({isTransitioning:!1});Mr.displayName="ViewTransition";var Vt=ke.createContext(new Map);Vt.displayName="Fetchers";var xt=ke.createContext(null);xt.displayName="Await";var cd=e=>ke.createElement(xt.Provider,e),Ce=ke.createContext(null);Ce.displayName="Navigation";var Dt=ke.createContext(null);Dt.displayName="Location";var xe=ke.createContext({outlet:null,matches:[],isDataRoute:!1});xe.displayName="Route";var _a=ke.createContext(null);_a.displayName="RouteError";const N=await oe("react");function hs(e,{relative:t}={}){A(yt(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:a}=N.useContext(Ce),{hash:n,pathname:o,search:i}=Yt(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:He([r,o])),a.createHref({pathname:l,search:i,hash:n})}function yt(){return N.useContext(Dt)!=null}function De(){return A(yt(),"useLocation() may be used only in the context of a <Router> component."),N.useContext(Dt).location}function dd(){return N.useContext(Dt).navigationType}function fd(e){A(yt(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=De();return N.useMemo(()=>Ht(e,oo(t)),[t,e])}var Lo="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function _o(e){N.useContext(Ce).static||N.useLayoutEffect(e)}function Ma(){let{isDataRoute:e}=N.useContext(xe);return e?Ps():ms()}function ms(){A(yt(),"useNavigate() may be used only in the context of a <Router> component.");let e=N.useContext(Ue),{basename:t,navigator:r}=N.useContext(Ce),{matches:a}=N.useContext(xe),{pathname:n}=De(),o=JSON.stringify(Dr(a)),i=N.useRef(!1);return _o(()=>{i.current=!0}),N.useCallback((s,u={})=>{if(Q(i.current,Lo),!i.current)return;if(typeof s=="number"){r.go(s);return}let c=Pr(s,JSON.parse(o),n,u.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:He([t,c.pathname])),(u.replace?r.replace:r.push)(c,u.state,u)},[t,r,o,n,e])}var Mo=N.createContext(null);function hd(){return N.useContext(Mo)}function ps(e){let t=N.useContext(xe).outlet;return N.useMemo(()=>t&&N.createElement(Mo.Provider,{value:e},t),[t,e])}function Ta(){let{matches:e}=N.useContext(xe),t=e[e.length-1];return t?t.params:{}}function Yt(e,{relative:t}={}){let{matches:r}=N.useContext(xe),{pathname:a}=De(),n=JSON.stringify(Dr(r));return N.useMemo(()=>Pr(e,JSON.parse(n),a,t==="path"),[e,n,a,t])}function ys(e,t){return ka(e,t)}function ka(e,t,r,a,n){A(yt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=N.useContext(Ce),{matches:i}=N.useContext(xe),l=i[i.length-1],s=l?l.params:{},u=l?l.pathname:"/",c=l?l.pathnameBase:"/",d=l&&l.route;{let R=d&&d.path||"";ko(u,!d||R.endsWith("*")||R.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${R}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
12
|
+
|
|
13
|
+
Please change the parent <Route path="${R}"> to <Route path="${R==="/"?"*":`${R}/*`}">.`)}let f=De(),m;if(t){let R=typeof t=="string"?Te(t):t;A(c==="/"||R.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${R.pathname}" was given in the \`location\` prop.`),m=R}else m=f;let h=m.pathname||"/",g=h;if(c!=="/"){let R=c.replace(/^\//,"").split("/");g="/"+h.replace(/^\//,"").split("/").slice(R.length).join("/")}let p=Se(e,{pathname:g});Q(d||p!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),Q(p==null||p[p.length-1].route.element!==void 0||p[p.length-1].route.Component!==void 0||p[p.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let v=To(p&&p.map(R=>Object.assign({},R,{params:Object.assign({},s,R.params),pathname:He([c,o.encodeLocation?o.encodeLocation(R.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:R.pathname]),pathnameBase:R.pathnameBase==="/"?c:He([c,o.encodeLocation?o.encodeLocation(R.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:R.pathnameBase])})),i,r,a,n);return t&&v?N.createElement(Dt.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...m},navigationType:"POP"}},v):v}function vs(){let e=Tr(),t=ne(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:a},o={padding:"2px 4px",backgroundColor:a},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=N.createElement(N.Fragment,null,N.createElement("p",null,"💿 Hey developer 👋"),N.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",N.createElement("code",{style:o},"ErrorBoundary")," or"," ",N.createElement("code",{style:o},"errorElement")," prop on your route.")),N.createElement(N.Fragment,null,N.createElement("h2",null,"Unexpected Application Error!"),N.createElement("h3",{style:{fontStyle:"italic"}},t),r?N.createElement("pre",{style:n},r):null,i)}var ws=N.createElement(vs,null),gs=class extends N.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||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.unstable_onError?this.props.unstable_onError(e,t):console.error("React Router caught the following error during render",e)}render(){return this.state.error!==void 0?N.createElement(xe.Provider,{value:this.props.routeContext},N.createElement(_a.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Rs({routeContext:e,match:t,children:r}){let a=N.useContext(Ue);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),N.createElement(xe.Provider,{value:e},r)}function To(e,t=[],r=null,a=null,n=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,i=r?.errors;if(i!=null){let u=o.findIndex(c=>c.route.id&&i?.[c.route.id]!==void 0);A(u>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,u+1))}let l=!1,s=-1;if(r)for(let u=0;u<o.length;u++){let c=o[u];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(s=u),c.route.id){let{loaderData:d,errors:f}=r,m=c.route.loader&&!d.hasOwnProperty(c.route.id)&&(!f||f[c.route.id]===void 0);if(c.route.lazy||m){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}return o.reduceRight((u,c,d)=>{let f,m=!1,h=null,g=null;r&&(f=i&&c.route.id?i[c.route.id]:void 0,h=c.route.errorElement||ws,l&&(s<0&&d===0?(ko("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),m=!0,g=null):s===d&&(m=!0,g=c.route.hydrateFallbackElement||null)));let p=t.concat(o.slice(0,d+1)),v=()=>{let R;return f?R=h:m?R=g:c.route.Component?R=N.createElement(c.route.Component,null):c.route.element?R=c.route.element:R=u,N.createElement(Rs,{match:c,routeContext:{outlet:u,matches:p,isDataRoute:r!=null},children:R})};return r&&(c.route.ErrorBoundary||c.route.errorElement||d===0)?N.createElement(gs,{location:r.location,revalidation:r.revalidation,component:h,error:f,children:v(),routeContext:{outlet:null,matches:p,isDataRoute:!0},unstable_onError:a}):v()},null)}function Aa(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Fa(e){let t=N.useContext(Ue);return A(t,Aa(e)),t}function Ke(e){let t=N.useContext(ot);return A(t,Aa(e)),t}function Es(e){let t=N.useContext(xe);return A(t,Aa(e)),t}function Pt(e){let t=Es(e),r=t.matches[t.matches.length-1];return A(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function bs(){return Pt("useRouteId")}function Ss(){return Ke("useNavigation").navigation}function md(){let e=Fa("useRevalidator"),t=Ke("useRevalidator"),r=N.useCallback(async()=>{await e.router.revalidate()},[e.router]);return N.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function Oa(){let{matches:e,loaderData:t}=Ke("useMatches");return N.useMemo(()=>e.map(r=>to(r,t)),[e,t])}function Na(){let e=Ke("useLoaderData"),t=Pt("useLoaderData");return e.loaderData[t]}function pd(e){return Ke("useRouteLoaderData").loaderData[e]}function $a(){let e=Ke("useActionData"),t=Pt("useLoaderData");return e.actionData?e.actionData[t]:void 0}function Tr(){let e=N.useContext(_a),t=Ke("useRouteError"),r=Pt("useRouteError");return e!==void 0?e:t.errors?.[r]}function Cs(){return N.useContext(xt)?._data}function yd(){return N.useContext(xt)?._error}var xs=0;function Ds(e){let{router:t,basename:r}=Fa("useBlocker"),a=Ke("useBlocker"),[n,o]=N.useState(""),i=N.useCallback(l=>{if(typeof e!="function")return!!e;if(r==="/")return e(l);let{currentLocation:s,nextLocation:u,historyAction:c}=l;return e({currentLocation:{...s,pathname:le(s.pathname,r)||s.pathname},nextLocation:{...u,pathname:le(u.pathname,r)||u.pathname},historyAction:c})},[r,e]);return N.useEffect(()=>{let l=String(++xs);return o(l),()=>t.deleteBlocker(l)},[t]),N.useEffect(()=>{n!==""&&t.getBlocker(n,i)},[t,n,i]),n&&a.blockers.has(n)?a.blockers.get(n):pt}function Ps(){let{router:e}=Fa("useNavigate"),t=Pt("useNavigate"),r=N.useRef(!1);return _o(()=>{r.current=!0}),N.useCallback(async(n,o={})=>{Q(r.current,Lo),r.current&&(typeof n=="number"?e.navigate(n):await e.navigate(n,{fromRouteId:t,...o}))},[e,t])}var _n={};function ko(e,t,r){!t&&!_n[e]&&(_n[e]=!0,Q(!1,r))}function vd(...e){const t=Pt("useRoute"),r=e[0]??t,a=Ke("useRouteLoaderData");if(a.matches.find(({route:o})=>o.id===r)!==void 0)return{loaderData:a.loaderData[r],actionData:a.actionData?.[r]}}const _=await oe("react");var Mn={};function jt(e,t){!e&&!Mn[t]&&(Mn[t]=!0,console.warn(t))}function Lt(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&Q(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:_.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&Q(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:_.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&Q(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:_.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var kr=["HydrateFallback","hydrateFallbackElement"];function Ls(e,t){return Wt({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:Qn({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:e,hydrationRouteProperties:kr,mapRouteProperties:Lt,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation}).initialize()}var _s=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function Ms(e,t){if(e===t)return!1;let r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!0;for(let n of r)if(e[n]!==t[n])return!0;return!1}function Ts({router:e,flushSync:t,unstable_onError:r}){let a=_.useRef(new Map),[n,o]=_.useTransition(),[i,l]=_.useState(e.state);e.__setPendingRerender=d=>o(async()=>{const f=await d;o(()=>{f()})});let s=_.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:d=>e.navigate(d),push:(d,f,m)=>e.navigate(d,{state:f,preventScrollReset:m?.preventScrollReset}),replace:(d,f,m)=>e.navigate(d,{replace:!0,state:f,preventScrollReset:m?.preventScrollReset})}),[e]),u=e.basename||"/",c=_.useMemo(()=>({router:e,navigator:s,static:!1,basename:u,unstable_onError:r}),[e,s,u,r]);return _.useLayoutEffect(()=>e.subscribe((d,{deletedFetchers:f,flushSync:m,viewTransitionOpts:h})=>{d.fetchers.forEach((p,v)=>{p.data!==void 0&&a.current.set(v,p.data)}),f.forEach(p=>a.current.delete(p)),Ms(i,d)&&(m?t?t(()=>l(d)):l(d):_.startTransition(()=>{l(d)}))}),[e,t,i]),_.createElement(_.Fragment,null,_.createElement(Ue.Provider,{value:c},_.createElement(ot.Provider,{value:{...i,revalidation:n?"loading":i.revalidation}},_.createElement(Vt.Provider,{value:a.current},_.createElement(it,{basename:u,location:i.location,navigationType:i.historyAction,navigator:s},_.createElement(Fo,{routes:e.routes,future:e.future,state:i,unstable_onError:r}))))),null)}function Ao({router:e,flushSync:t,unstable_onError:r}){let[a,n]=_.useState(e.state),[o,i]=_.useState(),[l,s]=_.useState({isTransitioning:!1}),[u,c]=_.useState(),[d,f]=_.useState(),[m,h]=_.useState(),g=_.useRef(new Map),p=_.useCallback(b=>{n(w=>(b.errors&&r&&Object.entries(b.errors).forEach(([M,P])=>{w.errors?.[M]!==P&&r(P)}),b))},[r]),v=_.useCallback((b,{deletedFetchers:w,flushSync:M,viewTransitionOpts:P})=>{b.fetchers.forEach(($,V)=>{$.data!==void 0&&g.current.set(V,$.data)}),w.forEach($=>g.current.delete($)),jt(M===!1||t!=null,'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 T=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(jt(P==null||T,"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."),!P||!T){t&&M?t(()=>p(b)):_.startTransition(()=>p(b));return}if(t&&M){t(()=>{d&&(u&&u.resolve(),d.skipTransition()),s({isTransitioning:!0,flushSync:!0,currentLocation:P.currentLocation,nextLocation:P.nextLocation})});let $=e.window.document.startViewTransition(()=>{t(()=>p(b))});$.finished.finally(()=>{t(()=>{c(void 0),f(void 0),i(void 0),s({isTransitioning:!1})})}),t(()=>f($));return}d?(u&&u.resolve(),d.skipTransition(),h({state:b,currentLocation:P.currentLocation,nextLocation:P.nextLocation})):(i(b),s({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}))},[e.window,t,d,u,p]);_.useLayoutEffect(()=>e.subscribe(v),[e,v]),_.useEffect(()=>{l.isTransitioning&&!l.flushSync&&c(new _s)},[l]),_.useEffect(()=>{if(u&&o&&e.window){let b=o,w=u.promise,M=e.window.document.startViewTransition(async()=>{_.startTransition(()=>p(b)),await w});M.finished.finally(()=>{c(void 0),f(void 0),i(void 0),s({isTransitioning:!1})}),f(M)}},[o,u,e.window,p]),_.useEffect(()=>{u&&o&&a.location.key===o.location.key&&u.resolve()},[u,d,a.location,o]),_.useEffect(()=>{!l.isTransitioning&&m&&(i(m.state),s({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),h(void 0))},[l.isTransitioning,m]);let R=_.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:b=>e.navigate(b),push:(b,w,M)=>e.navigate(b,{state:w,preventScrollReset:M?.preventScrollReset}),replace:(b,w,M)=>e.navigate(b,{replace:!0,state:w,preventScrollReset:M?.preventScrollReset})}),[e]),x=e.basename||"/",S=_.useMemo(()=>({router:e,navigator:R,static:!1,basename:x,unstable_onError:r}),[e,R,x,r]);return _.createElement(_.Fragment,null,_.createElement(Ue.Provider,{value:S},_.createElement(ot.Provider,{value:a},_.createElement(Vt.Provider,{value:g.current},_.createElement(Mr.Provider,{value:l},_.createElement(it,{basename:x,location:a.location,navigationType:a.historyAction,navigator:R},_.createElement(Fo,{routes:e.routes,future:e.future,state:a,unstable_onError:r})))))),null)}var Fo=_.memo(ks);function ks({routes:e,future:t,state:r,unstable_onError:a}){return ka(e,void 0,r,a,t)}function wd({basename:e,children:t,initialEntries:r,initialIndex:a}){let n=_.useRef();n.current==null&&(n.current=Qn({initialEntries:r,initialIndex:a,v5Compat:!0}));let o=n.current,[i,l]=_.useState({action:o.action,location:o.location}),s=_.useCallback(u=>{_.startTransition(()=>l(u))},[l]);return _.useLayoutEffect(()=>o.listen(s),[o,s]),_.createElement(it,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o})}function gd({to:e,replace:t,state:r,relative:a}){A(yt(),"<Navigate> may be used only in the context of a <Router> component.");let{static:n}=_.useContext(Ce);Q(!n,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:o}=_.useContext(xe),{pathname:i}=De(),l=Ma(),s=Pr(e,Dr(o),i,a==="path"),u=JSON.stringify(s);return _.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:a})},[l,u,a,t,r]),null}function As(e){return ps(e.context)}function Fs(e){A(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function it({basename:e="/",children:t=null,location:r,navigationType:a="POP",navigator:n,static:o=!1}){A(!yt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let i=e.replace(/^\/*/,"/"),l=_.useMemo(()=>({basename:i,navigator:n,static:o,future:{}}),[i,n,o]);typeof r=="string"&&(r=Te(r));let{pathname:s="/",search:u="",hash:c="",state:d=null,key:f="default"}=r,m=_.useMemo(()=>{let h=le(s,i);return h==null?null:{location:{pathname:h,search:u,hash:c,state:d,key:f},navigationType:a}},[i,s,u,c,d,f,a]);return Q(m!=null,`<Router basename="${i}"> is not able to match the URL "${s}${u}${c}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:_.createElement(Ce.Provider,{value:l},_.createElement(Dt.Provider,{children:t,value:m}))}function Rd({children:e,location:t}){return ys(wr(e),t)}function Ed({children:e,errorElement:t,resolve:r}){let a=_.useContext(Ue);return _.createElement(Os,{resolve:r,errorElement:t,unstable_onError:a?.unstable_onError},_.createElement(Ns,null,e))}var Os=class extends _.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.unstable_onError?this.props.unstable_onError(e,t):console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,a=null,n=0;if(!(r instanceof Promise))n=1,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>r});else if(this.state.error){n=2;let o=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>o})}else r._tracked?(a=r,n="_error"in a?2:"_data"in a?1:0):(n=0,Object.defineProperty(r,"_tracked",{get:()=>!0}),a=r.then(o=>Object.defineProperty(r,"_data",{get:()=>o}),o=>{this.props.unstable_onError?.(o),Object.defineProperty(r,"_error",{get:()=>o})}));if(n===2&&!t)throw a._error;if(n===2)return _.createElement(xt.Provider,{value:a,children:t});if(n===1)return _.createElement(xt.Provider,{value:a,children:e});throw a}};function Ns({children:e}){let t=Cs(),r=typeof e=="function"?e(t):e;return _.createElement(_.Fragment,null,r)}function wr(e,t=[]){let r=[];return _.Children.forEach(e,(a,n)=>{if(!_.isValidElement(a))return;let o=[...t,n];if(a.type===_.Fragment){r.push.apply(r,wr(a.props.children,o));return}A(a.type===Fs,`[${typeof a.type=="string"?a.type:a.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),A(!a.props.index||!a.props.children,"An index route cannot have child routes.");let i={id:a.props.id||o.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,middleware:a.props.middleware,loader:a.props.loader,action:a.props.action,hydrateFallbackElement:a.props.hydrateFallbackElement,HydrateFallback:a.props.HydrateFallback,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.hasErrorBoundary===!0||a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(i.children=wr(a.props.children,o)),r.push(i)}),r}var bd=wr;function Sd(e){return To(e)}function Oo(){return{params:Ta(),loaderData:Na(),actionData:$a(),matches:Oa()}}function Cd({children:e}){const t=Oo();return _.cloneElement(e,t)}function $s(e){return function(){const r=Oo();return _.createElement(e,r)}}function No(){return{params:Ta(),loaderData:Na(),actionData:$a()}}function xd({children:e}){const t=No();return _.cloneElement(e,t)}function Is(e){return function(){const r=No();return _.createElement(e,r)}}function $o(){return{params:Ta(),loaderData:Na(),actionData:$a(),error:Tr()}}function Dd({children:e}){const t=$o();return _.cloneElement(e,t)}function Hs(e){return function(){const r=$o();return _.createElement(e,r)}}var cr="get",dr="application/x-www-form-urlencoded";function Ar(e){return e!=null&&typeof e.tagName=="string"}function Us(e){return Ar(e)&&e.tagName.toLowerCase()==="button"}function js(e){return Ar(e)&&e.tagName.toLowerCase()==="form"}function zs(e){return Ar(e)&&e.tagName.toLowerCase()==="input"}function Bs(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Ws(e,t){return e.button===0&&(!t||t==="_self")&&!Bs(e)}function oa(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let a=e[r];return t.concat(Array.isArray(a)?a.map(n=>[r,n]):[[r,a]])},[]))}function Vs(e,t){let r=oa(e);return t&&t.forEach((a,n)=>{r.has(n)||t.getAll(n).forEach(o=>{r.append(n,o)})}),r}var rr=null;function Ys(){if(rr===null)try{new FormData(document.createElement("form"),0),rr=!1}catch{rr=!0}return rr}var Js=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Jr(e){return e!=null&&!Js.has(e)?(Q(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${dr}"`),null):e}function Ks(e,t){let r,a,n,o,i;if(js(e)){let l=e.getAttribute("action");a=l?le(l,t):null,r=e.getAttribute("method")||cr,n=Jr(e.getAttribute("enctype"))||dr,o=new FormData(e)}else if(Us(e)||zs(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(a=s?le(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||cr,n=Jr(e.getAttribute("formenctype"))||Jr(l.getAttribute("enctype"))||dr,o=new FormData(l,e),!Ys()){let{name:u,type:c,value:d}=e;if(c==="image"){let f=u?`${u}.`:"";o.append(`${f}x`,"0"),o.append(`${f}y`,"0")}else u&&o.append(u,d)}}else{if(Ar(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=cr,a=null,n=dr,i=e}return o&&n==="text/plain"&&(i=o,o=void 0),{action:a,method:r.toLowerCase(),encType:n,formData:o,body:i}}const We=await oe("react");var Io=-1,Ho=-2,Uo=-3,jo=-4,Ia=-5,zo=-6,Bo=-7,Wo="B",Vo="D",bt="E",ia="M",Yo="N",St="P",Jo="R",la="S",Ko="Y",Xo="U",sa="Z",Go=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function Xs(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,a){const n=e.decode(r,{stream:!0}),o=(t+n).split(`
|
|
14
|
+
`);t=o.pop()||"";for(const i of o)a.enqueue(i)},flush(r){t&&r.enqueue(t)}})}function _e(e){const{indices:t}=this,r=t.get(e);if(r)return[r];if(e===void 0)return Bo;if(e===null)return Ia;if(Number.isNaN(e))return Ho;if(e===Number.POSITIVE_INFINITY)return zo;if(e===Number.NEGATIVE_INFINITY)return Uo;if(e===0&&1/e<0)return jo;const a=this.index++;return t.set(e,a),Gs.call(this,e,a),a}function Gs(e,t){const{deferred:r,plugins:a,postPlugins:n}=this,o=this.stringified,i=[[e,t]];for(;i.length>0;){const[l,s]=i.pop(),u=d=>Object.keys(d).map(f=>`"_${_e.call(this,f)}":${_e.call(this,d[f])}`).join(",");let c=null;switch(typeof l){case"boolean":case"number":case"string":o[s]=JSON.stringify(l);break;case"bigint":o[s]=`["${Wo}","${l}"]`;break;case"symbol":{const d=Symbol.keyFor(l);d?o[s]=`["${Ko}",${JSON.stringify(d)}]`:c=new Error("Cannot encode symbol unless created with Symbol.for()");break}case"object":{if(!l){o[s]=`${Ia}`;break}const d=Array.isArray(l);let f=!1;if(!d&&a)for(const m of a){const h=m(l);if(Array.isArray(h)){f=!0;const[g,...p]=h;o[s]=`[${JSON.stringify(g)}`,p.length>0&&(o[s]+=`,${p.map(v=>_e.call(this,v)).join(",")}`),o[s]+="]";break}}if(!f){let m=d?"[":"{";if(d){for(let h=0;h<l.length;h++)m+=(h?",":"")+(h in l?_e.call(this,l[h]):Io);o[s]=`${m}]`}else if(l instanceof Date){const h=l.getTime();o[s]=`["${Vo}",${Number.isNaN(h)?JSON.stringify("invalid"):h}]`}else l instanceof URL?o[s]=`["${Xo}",${JSON.stringify(l.href)}]`:l instanceof RegExp?o[s]=`["${Jo}",${JSON.stringify(l.source)},${JSON.stringify(l.flags)}]`:l instanceof Set?l.size>0?o[s]=`["${la}",${[...l].map(h=>_e.call(this,h)).join(",")}]`:o[s]=`["${la}"]`:l instanceof Map?l.size>0?o[s]=`["${ia}",${[...l].flatMap(([h,g])=>[_e.call(this,h),_e.call(this,g)]).join(",")}]`:o[s]=`["${ia}"]`:l instanceof Promise?(o[s]=`["${St}",${s}]`,r[s]=l):l instanceof Error?(o[s]=`["${bt}",${JSON.stringify(l.message)}`,l.name!=="Error"&&(o[s]+=`,${JSON.stringify(l.name)}`),o[s]+="]"):Object.getPrototypeOf(l)===null?o[s]=`["${Yo}",{${u(l)}}]`:Zs(l)?o[s]=`{${u(l)}}`:c=new Error("Cannot encode object with prototype")}break}default:{const d=Array.isArray(l);let f=!1;if(!d&&a)for(const m of a){const h=m(l);if(Array.isArray(h)){f=!0;const[g,...p]=h;o[s]=`[${JSON.stringify(g)}`,p.length>0&&(o[s]+=`,${p.map(v=>_e.call(this,v)).join(",")}`),o[s]+="]";break}}f||(c=new Error("Cannot encode function or unexpected type"))}}if(c){let d=!1;if(n)for(const f of n){const m=f(l);if(Array.isArray(m)){d=!0;const[h,...g]=m;o[s]=`[${JSON.stringify(h)}`,g.length>0&&(o[s]+=`,${g.map(p=>_e.call(this,p)).join(",")}`),o[s]+="]";break}}if(!d)throw c}}}var Qs=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Zs(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===Qs}var Kr=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function ua(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return Tn.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const a=r.length;for(const n of e)r.push(n);return t.length=r.length,Tn.call(this,a)}function Tn(e){const{hydrated:t,values:r,deferred:a,plugins:n}=this;let o;const i=[[e,s=>{o=s}]];let l=[];for(;i.length>0;){const[s,u]=i.pop();switch(s){case Bo:u(void 0);continue;case Ia:u(null);continue;case Ho:u(NaN);continue;case zo:u(1/0);continue;case Uo:u(-1/0);continue;case jo:u(-0);continue}if(t[s]){u(t[s]);continue}const c=r[s];if(!c||typeof c!="object"){t[s]=c,u(c);continue}if(Array.isArray(c))if(typeof c[0]=="string"){const[d,f,m]=c;switch(d){case Vo:u(t[s]=new Date(f));continue;case Xo:u(t[s]=new URL(f));continue;case Wo:u(t[s]=BigInt(f));continue;case Jo:u(t[s]=new RegExp(f,m));continue;case Ko:u(t[s]=Symbol.for(f));continue;case la:const h=new Set;t[s]=h;for(let S=c.length-1;S>0;S--)i.push([c[S],b=>{h.add(b)}]);u(h);continue;case ia:const g=new Map;t[s]=g;for(let S=c.length-2;S>0;S-=2){const b=[];i.push([c[S+1],w=>{b[1]=w}]),i.push([c[S],w=>{b[0]=w}]),l.push(()=>{g.set(b[0],b[1])})}u(g);continue;case Yo:const p=Object.create(null);t[s]=p;for(const S of Object.keys(f).reverse()){const b=[];i.push([f[S],w=>{b[1]=w}]),i.push([Number(S.slice(1)),w=>{b[0]=w}]),l.push(()=>{p[b[0]]=b[1]})}u(p);continue;case St:if(t[f])u(t[s]=t[f]);else{const S=new Go;a[f]=S,u(t[s]=S.promise)}continue;case bt:const[,v,R]=c;let x=R&&Kr&&Kr[R]?new Kr[R](v):new Error(v);t[s]=x,u(x);continue;case sa:u(t[s]=t[f]);continue;default:if(Array.isArray(n)){const S=[],b=c.slice(1);for(let w=0;w<b.length;w++){const M=b[w];i.push([M,P=>{S[w]=P}])}l.push(()=>{for(const w of n){const M=w(c[0],...S);if(M){u(t[s]=M.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const d=[];t[s]=d;for(let f=0;f<c.length;f++){const m=c[f];m!==Io&&i.push([m,h=>{d[f]=h}])}u(d);continue}else{const d={};t[s]=d;for(const f of Object.keys(c).reverse()){const m=[];i.push([c[f],h=>{m[1]=h}]),i.push([Number(f.slice(1)),h=>{m[0]=h}]),l.push(()=>{d[m[0]]=m[1]})}u(d);continue}}for(;l.length>0;)l.pop()();return o}async function qs(e,t){const{plugins:r}=t??{},a=new Go,n=e.pipeThrough(Xs()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await eu.call(o,n);let l=a.promise;return i.done?a.resolve():l=tu.call(o,n).then(a.resolve).catch(s=>{for(const u of Object.values(o.deferred))u.reject(s);a.reject(s)}),{done:l.then(()=>n.closed),value:i.value}}async function eu(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:ua.call(this,r)}}async function tu(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case St:{const a=r.indexOf(":"),n=Number(r.slice(1,a)),o=this.deferred[n];if(!o)throw new Error(`Deferred ID ${n} not found in stream`);const i=r.slice(a+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=ua.call(this,l);o.resolve(s);break}case bt:{const a=r.indexOf(":"),n=Number(r.slice(1,a)),o=this.deferred[n];if(!o)throw new Error(`Deferred ID ${n} not found in stream`);const i=r.slice(a+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=ua.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}function ru(e,t){const{plugins:r,postPlugins:a,signal:n}=t??{},o={deferred:{},index:0,indices:new Map,stringified:[],plugins:r,postPlugins:a,signal:n},i=new TextEncoder;let l=0;return new ReadableStream({async start(u){const c=_e.call(o,e);if(Array.isArray(c))throw new Error("This should never happen");c<0?u.enqueue(i.encode(`${c}
|
|
15
|
+
`)):(u.enqueue(i.encode(`[${o.stringified.join(",")}]
|
|
16
|
+
`)),l=o.stringified.length-1);const d=new WeakSet;if(Object.keys(o.deferred).length){let f;const m=new Promise((h,g)=>{if(f=h,n){const p=()=>g(n.reason||new Error("Signal was aborted."));n.aborted?p():n.addEventListener("abort",v=>{p()})}});for(;Object.keys(o.deferred).length>0;){for(const[h,g]of Object.entries(o.deferred))d.has(g)||d.add(o.deferred[Number(h)]=Promise.race([m,g]).then(p=>{const v=_e.call(o,p);if(Array.isArray(v))u.enqueue(i.encode(`${St}${h}:[["${sa}",${v[0]}]]
|
|
17
|
+
`)),o.index++,l++;else if(v<0)u.enqueue(i.encode(`${St}${h}:${v}
|
|
18
|
+
`));else{const R=o.stringified.slice(l+1).join(",");u.enqueue(i.encode(`${St}${h}:[${R}]
|
|
19
|
+
`)),l=o.stringified.length-1}},p=>{(!p||typeof p!="object"||!(p instanceof Error))&&(p=new Error("An unknown error occurred"));const v=_e.call(o,p);if(Array.isArray(v))u.enqueue(i.encode(`${bt}${h}:[["${sa}",${v[0]}]]
|
|
20
|
+
`)),o.index++,l++;else if(v<0)u.enqueue(i.encode(`${bt}${h}:${v}
|
|
21
|
+
`));else{const R=o.stringified.slice(l+1).join(",");u.enqueue(i.encode(`${bt}${h}:[${R}]
|
|
22
|
+
`)),l=o.stringified.length-1}}).finally(()=>{delete o.deferred[Number(h)]}));await Promise.race(Object.values(o.deferred))}f()}await Promise.all(Object.values(o.deferred)),u.close()}})}async function Qo(e){let t={signal:e.signal};if(e.method!=="GET"){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}var au={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},nu=/[&><\u2028\u2029]/g;function Ha(e){return e.replace(nu,t=>au[t])}function ye(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var nt=Symbol("SingleFetchRedirect"),Zo=class extends Error{},Ua=202,qo=new Set([100,101,204,205]);function ei({context:e,identifier:t,reader:r,textDecoder:a,nonce:n}){if(!e.renderMeta||!e.renderMeta.didRenderScripts)return null;e.renderMeta.streamCache||(e.renderMeta.streamCache={});let{streamCache:o}=e.renderMeta,i=o[t];if(i||(i=o[t]=r.read().then(c=>{o[t].result={done:c.done,value:a.decode(c.value,{stream:!0})}}).catch(c=>{o[t].error=c})),i.error)throw i.error;if(i.result===void 0)throw i;let{done:l,value:s}=i.result,u=s?We.createElement("script",{nonce:n,dangerouslySetInnerHTML:{__html:`window.__reactRouterContext.streamController.enqueue(${Ha(JSON.stringify(s))});`}}):null;return l?We.createElement(We.Fragment,null,u,We.createElement("script",{nonce:n,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):We.createElement(We.Fragment,null,u,We.createElement(We.Suspense,null,We.createElement(ei,{context:e,identifier:t+1,reader:r,textDecoder:a,nonce:n})))}function ou(e,t,r,a,n){let o=ti(e,i=>{let l=t.routes[i.route.id];ye(l,"Route not found in manifest");let s=r[i.route.id];return{hasLoader:l.hasLoader,hasClientLoader:l.hasClientLoader,hasShouldRevalidate:!!s?.shouldRevalidate}},du,a,n);return async i=>i.runClientMiddleware(o)}function ti(e,t,r,a,n,o=()=>!0){return async i=>{let{request:l,matches:s,fetcherKey:u}=i,c=e();if(l.method!=="GET")return iu(i,r,n);let d=s.some(f=>{let{hasLoader:m,hasClientLoader:h}=t(f);return f.unstable_shouldCallHandler()&&m&&!h});return!a&&!d?lu(i,t,r,n):u?cu(i,r,n):su(i,c,t,r,a,n,o)}}async function iu(e,t,r){let a=e.matches.find(i=>i.unstable_shouldCallHandler());ye(a,"No action match found");let n,o=await a.resolve(async i=>await i(async()=>{let{data:s,status:u}=await t(e,r,[a.route.id]);return n=u,zt(s,a.route.id)}));return re(o.result)||ne(o.result)||rt(o.result)?{[a.route.id]:o}:{[a.route.id]:{type:o.type,result:Bl(o.result,n)}}}async function lu(e,t,r,a){let n=e.matches.filter(i=>i.unstable_shouldCallHandler()),o={};return await Promise.all(n.map(i=>i.resolve(async l=>{try{let{hasClientLoader:s}=t(i),u=i.route.id,c=s?await l(async()=>{let{data:d}=await r(e,a,[u]);return zt(d,u)}):await l();o[i.route.id]={type:"data",result:c}}catch(s){o[i.route.id]={type:"error",result:s}}}))),o}async function su(e,t,r,a,n,o,i=()=>!0){let l=new Set,s=!1,u=e.matches.map(()=>kn()),c=kn(),d={},f=Promise.all(e.matches.map(async(h,g)=>h.resolve(async p=>{u[g].resolve();let v=h.route.id,{hasLoader:R,hasClientLoader:x,hasShouldRevalidate:S}=r(h),b=!h.unstable_shouldRevalidateArgs||h.unstable_shouldRevalidateArgs.actionStatus==null||h.unstable_shouldRevalidateArgs.actionStatus<400;if(!h.unstable_shouldCallHandler(b)){s||(s=h.unstable_shouldRevalidateArgs!=null&&R&&S===!0);return}if(i(h)&&x){R&&(s=!0);try{let M=await p(async()=>{let{data:P}=await a(e,o,[v]);return zt(P,v)});d[v]={type:"data",result:M}}catch(M){d[v]={type:"error",result:M}}return}R&&l.add(v);try{let M=await p(async()=>{let P=await c.promise;return zt(P,v)});d[v]={type:"data",result:M}}catch(M){d[v]={type:"error",result:M}}})));if(await Promise.all(u.map(h=>h.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||l.size===0)&&!window.__reactRouterHdrActive)c.resolve({routes:{}});else{let h=n&&s&&l.size>0?[...l.keys()]:void 0;try{let g=await a(e,o,h);c.resolve(g.data)}catch(g){c.reject(g)}}return await f,await uu(c.promise,e.matches,l,d),d}async function uu(e,t,r,a){try{let n,o=await e;if("routes"in o){for(let i of t)if(i.route.id in o.routes){let l=o.routes[i.route.id];if("error"in l){n=l.error,a[i.route.id]?.result==null&&(a[i.route.id]={type:"error",result:n});break}}}n!==void 0&&Array.from(r.values()).forEach(i=>{a[i].result instanceof Zo&&(a[i].result=n)})}catch{}}async function cu(e,t,r){let a=e.matches.find(i=>i.unstable_shouldCallHandler());ye(a,"No fetcher match found");let n=a.route.id,o=await a.resolve(async i=>i(async()=>{let{data:l}=await t(e,r,[n]);return zt(l,n)}));return{[a.route.id]:o}}function ri(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let a of t)a&&r.push(a);for(let a of r)e.searchParams.append("index",a);return e}function ja(e,t,r){let a=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return a.pathname==="/"?a.pathname=`_root.${r}`:t&&le(a.pathname,t)==="/"?a.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:a.pathname=`${a.pathname.replace(/\/$/,"")}.${r}`,a}async function du(e,t,r){let{request:a}=e,n=ja(a.url,t,"data");a.method==="GET"&&(n=ri(n),r&&n.searchParams.set("_routes",r.join(",")));let o=await fetch(n,await Qo(a));if(o.status>=400&&!o.headers.has("X-Remix-Response"))throw new ce(o.status,o.statusText,await o.text());if(o.status===204&&o.headers.has("X-Remix-Redirect"))return{status:Ua,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:o.headers.get("X-Remix-Revalidate")==="true",reload:o.headers.get("X-Remix-Reload-Document")==="true",replace:o.headers.get("X-Remix-Replace")==="true"}}};if(qo.has(o.status)){let i={};return r&&a.method!=="GET"&&(i[r[0]]={data:void 0}),{status:o.status,data:{routes:i}}}ye(o.body,"No response body to decode");try{let i=await za(o.body,window),l;if(a.method==="GET"){let s=i.value;nt in s?l={redirect:s[nt]}:l={routes:s}}else{let s=i.value,u=r?.[0];ye(u,"No routeId found for single fetch call decoding"),"redirect"in s?l={redirect:s}:l={routes:{[u]:s}}}return{status:o.status,data:l}}catch{throw new Error("Unable to decode turbo-stream response")}}function za(e,t){return qs(e,{plugins:[(r,...a)=>{if(r==="SanitizedError"){let[n,o,i]=a,l=Error;n&&n in t&&typeof t[n]=="function"&&(l=t[n]);let s=new l(o);return s.stack=i,{value:s}}if(r==="ErrorResponse"){let[n,o,i]=a;return{value:new ce(o,i,n)}}if(r==="SingleFetchRedirect")return{value:{[nt]:a[0]}};if(r==="SingleFetchClassInstance")return{value:a[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function zt(e,t){if("redirect"in e){let{redirect:a,revalidate:n,reload:o,replace:i,status:l}=e.redirect;throw Lr(a,{status:l,headers:{...n?{"X-Remix-Revalidate":"yes"}:null,...o?{"X-Remix-Reload-Document":"yes"}:null,...i?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(r==null)throw new Zo(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw new Error(`Invalid response found for routeId "${t}"`)}function kn(){let e,t,r=new Promise((a,n)=>{e=async o=>{a(o);try{await r}catch{}},t=async o=>{n(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}const he=await oe("react"),B=await oe("react");async function ai(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(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function fu(e,t,r){let a=e.map(o=>{let i=t[o.route.id],l=r.routes[o.route.id];return[l&&l.css?l.css.map(s=>({rel:"stylesheet",href:s})):[],i?.links?.()||[]]}).flat(2),n=Wa(e,r);return li(a,n)}function ni(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function hu(e){if(!e.css)return;let t=ni(e);await Promise.all(t.map(ii))}async function oi(e,t){if(!e.css&&!t.links||!wu())return;let r=[];if(e.css&&r.push(...ni(e)),t.links&&r.push(...t.links()),r.length===0)return;let a=[];for(let n of r)!Ba(n)&&n.rel==="stylesheet"&&a.push({...n,rel:"preload",as:"style"});await Promise.all(a.map(ii))}async function ii(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");Object.assign(r,e);function a(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{a(),t()},r.onerror=()=>{a(),t()},document.head.appendChild(r)})}function Ba(e){return e!=null&&typeof e.page=="string"}function mu(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function pu(e,t,r){let a=await Promise.all(e.map(async n=>{let o=t.routes[n.route.id];if(o){let i=await ai(o,r);return i.links?i.links():[]}return[]}));return li(a.flat(1).filter(mu).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="stylesheet"?{...n,rel:"prefetch",as:"style"}:{...n,rel:"prefetch"}))}function An(e,t,r,a,n,o){let i=(s,u)=>r[u]?s.route.id!==r[u].route.id:!0,l=(s,u)=>r[u].pathname!==s.pathname||r[u].route.path?.endsWith("*")&&r[u].params["*"]!==s.params["*"];return o==="assets"?t.filter((s,u)=>i(s,u)||l(s,u)):o==="data"?t.filter((s,u)=>{let c=a.routes[s.route.id];if(!c||!c.hasLoader)return!1;if(i(s,u)||l(s,u))return!0;if(s.route.shouldRevalidate){let d=s.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:s.params,defaultShouldRevalidate:!0});if(typeof d=="boolean")return d}return!0}):[]}function Wa(e,t,{includeHydrateFallback:r}={}){return yu(e.map(a=>{let n=t.routes[a.route.id];if(!n)return[];let o=[n.module];return n.clientActionModule&&(o=o.concat(n.clientActionModule)),n.clientLoaderModule&&(o=o.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(o=o.concat(n.hydrateFallbackModule)),n.imports&&(o=o.concat(n.imports)),o}).flat(1))}function yu(e){return[...new Set(e)]}function vu(e){let t={},r=Object.keys(e).sort();for(let a of r)t[a]=e[a];return t}function li(e,t){let r=new Set,a=new Set(t);return e.reduce((n,o)=>{if(t&&!Ba(o)&&o.as==="script"&&o.href&&a.has(o.href))return n;let l=JSON.stringify(vu(o));return r.has(l)||(r.add(l),n.push({key:l,link:o})),n},[])}var ar;function wu(){if(ar!==void 0)return ar;let e=document.createElement("link");return ar=e.relList.supports("preload"),e=null,ar}const gu=await oe("react"),ht=await oe("react"),Fn=await oe("react");function Ru(){return Fn.createElement(ca,{title:"Loading...",renderScripts:!0},Fn.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
23
|
+
console.log(
|
|
24
|
+
"💿 Hey developer 👋. You can provide a way better UX than this " +
|
|
25
|
+
"when your app is loading JS modules and/or running \`clientLoader\` " +
|
|
26
|
+
"functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
|
|
27
|
+
"for more information."
|
|
28
|
+
);
|
|
29
|
+
`}}))}function Va(e){let t={};return Object.values(e).forEach(r=>{if(r){let a=r.parentId||"";t[a]||(t[a]=[]),t[a].push(r)}}),t}function si(e,t,r){let a=ci(t),n=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Ru:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>ht.createElement(yi,{error:Tr()}):void 0;return e.id==="root"&&t.Layout?{...a?{element:ht.createElement(t.Layout,null,ht.createElement(a,null))}:{Component:a},...o?{errorElement:ht.createElement(t.Layout,null,ht.createElement(o,null))}:{ErrorBoundary:o},...n?{hydrateFallbackElement:ht.createElement(t.Layout,null,ht.createElement(n,null))}:{HydrateFallback:n}}:{Component:a,ErrorBoundary:o,HydrateFallback:n}}function ui(e,t,r,a,n="",o=Va(e),i=Promise.resolve({Component:()=>null})){return(o[n]||[]).map(l=>{let s=t[l.id];ye(s,"No `routeModule` available to create server routes");let u={...si(l,s,a),caseSensitive:l.caseSensitive,id:l.id,index:l.index,path:l.path,handle:s.handle,lazy:a?()=>i:void 0,loader:l.hasLoader||l.hasClientLoader?()=>null:void 0},c=ui(e,t,r,a,l.id,o,i);return c.length>0&&(u.children=c),u})}function Eu(e,t,r,a,n,o){return Fr(t,r,a,n,o,"",Va(t),e)}function nr(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let a=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(a),new ce(400,"Bad Request",new Error(a),!0)}}function fr(e,t){let r=e==="clientAction"?"a":"an",a=`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(a),new ce(405,"Method Not Allowed",new Error(a),!0)}function Fr(e,t,r,a,n,o="",i=Va(e),l){return(i[o]||[]).map(s=>{let u=t[s.id];function c(R){return ye(typeof R=="function","No single fetch function available for route handler"),R()}function d(R){return s.hasLoader?c(R):Promise.resolve(null)}function f(R){if(!s.hasAction)throw fr("action",s.id);return c(R)}function m(R){import(R)}function h(R){R.clientActionModule&&m(R.clientActionModule),R.clientLoaderModule&&m(R.clientLoaderModule)}async function g(R){let x=t[s.id],S=x?oi(s,x):Promise.resolve();try{return R()}finally{await S}}let p={id:s.id,index:s.index,path:s.path};if(u){Object.assign(p,{...p,...si(s,u,n),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:On(p.path,u,s,a,l)});let R=r&&r.loaderData&&s.id in r.loaderData,x=R?r?.loaderData?.[s.id]:void 0,S=r&&r.errors&&s.id in r.errors,b=S?r?.errors?.[s.id]:void 0,w=l==null&&(u.clientLoader?.hydrate===!0||!s.hasLoader);p.loader=async({request:M,params:P,context:T},$)=>{try{return await g(async()=>(ye(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:M,params:P,context:T,async serverLoader(){if(nr("loader",s),w){if(R)return x;if(S)throw b}return d($)}}):d($)))}finally{w=!1}},p.loader.hydrate=Jt(s.id,u.clientLoader,s.hasLoader,n),p.action=({request:M,params:P,context:T},$)=>g(async()=>{if(ye(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(n)throw fr("clientAction",s.id);return f($)}return u.clientAction({request:M,params:P,context:T,async serverAction(){return nr("action",s),f($)}})})}else{s.hasClientLoader||(p.loader=(S,b)=>g(()=>d(b))),s.hasClientAction||(p.action=(S,b)=>g(()=>{if(n)throw fr("clientAction",s.id);return f(b)}));let R;async function x(){return R?await R:(R=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(b=>setTimeout(b,0));let S=Su(s,t);return h(s),await S})(),await R)}p.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:S}=s.clientLoaderModule?await import(s.clientLoaderModule):await x();return ye(S,"No `clientLoader` export found"),(b,w)=>S({...b,async serverLoader(){return nr("loader",s),d(w)}})}:void 0,action:s.hasClientAction?async()=>{let S=s.clientActionModule?import(s.clientActionModule):x();h(s);let{clientAction:b}=await S;return ye(b,"No `clientAction` export found"),(w,M)=>b({...w,async serverAction(){return nr("action",s),f(M)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:S}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await x();return ye(S,"No `clientMiddleware` export found"),S}:void 0,shouldRevalidate:async()=>{let S=await x();return On(p.path,S,s,a,l)},handle:async()=>(await x()).handle,Component:async()=>(await x()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await x()).ErrorBoundary:void 0}}let v=Fr(e,t,r,a,n,s.id,i,l);return v.length>0&&(p.children=v),p})}function On(e,t,r,a,n){if(n)return bu(r.id,t.shouldRevalidate,n);if(!a&&r.hasLoader&&!r.hasClientLoader){let o=e?no(e)[1].map(l=>l.paramName):[];const i=l=>o.some(s=>l.currentParams[s]!==l.nextParams[s]);if(t.shouldRevalidate){let l=t.shouldRevalidate;return s=>l({...s,defaultShouldRevalidate:i(s)})}else return l=>i(l)}if(a&&t.shouldRevalidate){let o=t.shouldRevalidate;return i=>o({...i,defaultShouldRevalidate:!0})}return t.shouldRevalidate}function bu(e,t,r){let a=!1;return n=>a?t?t(n):n.defaultShouldRevalidate:(a=!0,r.has(e))}async function Su(e,t){let r=ai(e,t),a=hu(e),n=await r;return await Promise.all([a,oi(e,n)]),{Component:ci(n),ErrorBoundary:n.ErrorBoundary,clientMiddleware:n.clientMiddleware,clientAction:n.clientAction,clientLoader:n.clientLoader,handle:n.handle,links:n.links,meta:n.meta,shouldRevalidate:n.shouldRevalidate}}function ci(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function Jt(e,t,r,a){return a&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var hr=new Set,Cu=1e3,gr=new Set,xu=7680;function Ya(e,t){return e.mode==="lazy"&&t===!0}function Du({sri:e,...t},r){let a=new Set(r.state.matches.map(l=>l.route.id)),n=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(n.pop();n.length>0;)o.push(`/${n.join("/")}`),n.pop();o.forEach(l=>{let s=Se(r.routes,l,r.basename);s&&s.forEach(u=>a.add(u.route.id))});let i=[...a].reduce((l,s)=>Object.assign(l,{[s]:t.routes[s]}),{});return{...t,routes:i,sri:e?!0:void 0}}function Pu(e,t,r,a,n,o){if(Ya(a,r))return async({path:i,patch:l,signal:s,fetcherKey:u})=>{gr.has(i)||await fi([i],u?window.location.href:i,e,t,r,n,o,a.manifestPath,l,s)}}function Lu(e,t,r,a,n,o){gu.useEffect(()=>{if(!Ya(n,a)||window.navigator?.connection?.saveData===!0)return;function i(c){let d=c.tagName==="FORM"?c.getAttribute("action"):c.getAttribute("href");if(!d)return;let f=c.tagName==="A"?c.pathname:new URL(d,window.location.origin).pathname;gr.has(f)||hr.add(f)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let c=Array.from(hr.keys()).filter(d=>gr.has(d)?(hr.delete(d),!1):!0);if(c.length!==0)try{await fi(c,null,t,r,a,o,e.basename,n.manifestPath,e.patchRoutes)}catch(d){console.error("Failed to fetch manifest patches",d)}}let s=Mu(l,100);l();let u=new MutationObserver(()=>s());return u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>u.disconnect()},[a,o,t,r,e,n])}function di(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var Xr="react-router-manifest-version";async function fi(e,t,r,a,n,o,i,l,s,u){const c=new URLSearchParams;c.set("paths",e.sort().join(",")),c.set("version",r.version);let d=new URL(di(l,i),window.location.origin);if(d.search=c.toString(),d.toString().length>xu){hr.clear();return}let f;try{let p=await fetch(d,{signal:u});if(p.ok){if(p.status===204&&p.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}try{if(sessionStorage.getItem(Xr)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(Xr,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(p.status>=400)throw new Error(await p.text())}else throw new Error(`${p.status} ${p.statusText}`);try{sessionStorage.removeItem(Xr)}catch{}f=await p.json()}catch(p){if(u?.aborted)return;throw p}let m=new Set(Object.keys(r.routes)),h=Object.values(f).reduce((p,v)=>(v&&!m.has(v.id)&&(p[v.id]=v),p),{});Object.assign(r.routes,h),e.forEach(p=>_u(p,gr));let g=new Set;Object.values(h).forEach(p=>{p&&(!p.parentId||!h[p.parentId])&&g.add(p.parentId)}),g.forEach(p=>s(p||null,Fr(h,a,null,n,o,p)))}function _u(e,t){if(t.size>=Cu){let r=t.values().next().value;t.delete(r)}t.add(e)}function Mu(e,t){let r;return(...a)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...a),t)}}function Ja(){let e=B.useContext(Ue);return ye(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Or(){let e=B.useContext(ot);return ye(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Xe=B.createContext(void 0);Xe.displayName="FrameworkContext";function _t(){let e=B.useContext(Xe);return ye(e,"You must render this element inside a <HydratedRouter> element"),e}function Tu(e,t){let r=B.useContext(Xe),[a,n]=B.useState(!1),[o,i]=B.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:c,onTouchStart:d}=t,f=B.useRef(null);B.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let g=v=>{v.forEach(R=>{i(R.isIntersecting)})},p=new IntersectionObserver(g,{threshold:.5});return f.current&&p.observe(f.current),()=>{p.disconnect()}}},[e]),B.useEffect(()=>{if(a){let g=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(g)}}},[a]);let m=()=>{n(!0)},h=()=>{n(!1),i(!1)};return r?e!=="intent"?[o,f,{}]:[o,f,{onFocus:Ot(l,m),onBlur:Ot(s,h),onMouseEnter:Ot(u,m),onMouseLeave:Ot(c,h),onTouchStart:Ot(d,m)}]:[!1,f,{}]}function Ot(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Ka(e,t,r){if(r&&!Rr)return[e[0]];if(t){let a=e.findIndex(n=>t[n.route.id]!==void 0);return e.slice(0,a+1)}return e}var Nn="data-react-router-critical-css";function Pd({nonce:e}){let{isSpaMode:t,manifest:r,routeModules:a,criticalCss:n}=_t(),{errors:o,matches:i}=Or(),l=Ka(i,o,t),s=B.useMemo(()=>fu(l,a,r),[l,a,r]);return B.createElement(B.Fragment,null,typeof n=="string"?B.createElement("style",{[Nn]:"",dangerouslySetInnerHTML:{__html:n}}):null,typeof n=="object"?B.createElement("link",{[Nn]:"",rel:"stylesheet",href:n.href,nonce:e}):null,s.map(({key:u,link:c})=>Ba(c)?B.createElement(hi,{key:u,nonce:e,...c}):B.createElement("link",{key:u,nonce:e,...c})))}function hi({page:e,...t}){let{router:r}=Ja(),a=B.useMemo(()=>Se(r.routes,e,r.basename),[r.routes,e,r.basename]);return a?B.createElement(Au,{page:e,matches:a,...t}):null}function ku(e){let{manifest:t,routeModules:r}=_t(),[a,n]=B.useState([]);return B.useEffect(()=>{let o=!1;return pu(e,t,r).then(i=>{o||n(i)}),()=>{o=!0}},[e,t,r]),a}function Au({page:e,matches:t,...r}){let a=De(),{manifest:n,routeModules:o}=_t(),{basename:i}=Ja(),{loaderData:l,matches:s}=Or(),u=B.useMemo(()=>An(e,t,s,n,a,"data"),[e,t,s,n,a]),c=B.useMemo(()=>An(e,t,s,n,a,"assets"),[e,t,s,n,a]),d=B.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let h=new Set,g=!1;if(t.forEach(v=>{let R=n.routes[v.route.id];!R||!R.hasLoader||(!u.some(x=>x.route.id===v.route.id)&&v.route.id in l&&o[v.route.id]?.shouldRevalidate||R.hasClientLoader?g=!0:h.add(v.route.id))}),h.size===0)return[];let p=ja(e,i,"data");return g&&h.size>0&&p.searchParams.set("_routes",t.filter(v=>h.has(v.route.id)).map(v=>v.route.id).join(",")),[p.pathname+p.search]},[i,l,a,n,u,t,e,o]),f=B.useMemo(()=>Wa(c,n),[c,n]),m=ku(c);return B.createElement(B.Fragment,null,d.map(h=>B.createElement("link",{key:h,rel:"prefetch",as:"fetch",href:h,...r})),f.map(h=>B.createElement("link",{key:h,rel:"modulepreload",href:h,...r})),m.map(({key:h,link:g})=>B.createElement("link",{key:h,nonce:r.nonce,...g})))}function Ld(){let{isSpaMode:e,routeModules:t}=_t(),{errors:r,matches:a,loaderData:n}=Or(),o=De(),i=Ka(a,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let s=[],u=null,c=[];for(let d=0;d<i.length;d++){let f=i[d],m=f.route.id,h=n[m],g=f.params,p=t[m],v=[],R={id:m,data:h,loaderData:h,meta:[],params:f.params,pathname:f.pathname,handle:f.route.handle,error:l};if(c[d]=R,p?.meta?v=typeof p.meta=="function"?p.meta({data:h,loaderData:h,params:g,location:o,matches:c,error:l}):Array.isArray(p.meta)?[...p.meta]:p.meta:u&&(v=[...u]),v=v||[],!Array.isArray(v))throw new Error("The route at "+f.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
|
|
30
|
+
|
|
31
|
+
To reference the meta function API, see https://remix.run/route/meta`);R.meta=v,c[d]=R,s=[...v],u=s}return B.createElement(B.Fragment,null,s.flat().map(d=>{if(!d)return null;if("tagName"in d){let{tagName:f,...m}=d;if(!Fu(f))return console.warn(`A meta object uses an invalid tagName: ${f}. Expected either 'link' or 'meta'`),null;let h=f;return B.createElement(h,{key:JSON.stringify(m),...m})}if("title"in d)return B.createElement("title",{key:"title"},String(d.title));if("charset"in d&&(d.charSet??(d.charSet=d.charset),delete d.charset),"charSet"in d&&d.charSet!=null)return typeof d.charSet=="string"?B.createElement("meta",{key:"charSet",charSet:d.charSet}):null;if("script:ld+json"in d)try{let f=JSON.stringify(d["script:ld+json"]);return B.createElement("script",{key:`script:ld+json:${f}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:Ha(f)}})}catch{return null}return B.createElement("meta",{key:JSON.stringify(d),...d})}))}function Fu(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var Rr=!1;function mi(){Rr=!0}function Ou(e){let{manifest:t,serverHandoffString:r,isSpaMode:a,renderMeta:n,routeDiscovery:o,ssr:i}=_t(),{router:l,static:s,staticContext:u}=Ja(),{matches:c}=Or(),d=fs(),f=Ya(o,i);n&&(n.didRenderScripts=!0);let m=Ka(c,null,a);B.useEffect(()=>{mi()},[]);let h=B.useMemo(()=>{if(d)return null;let R=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",x=s?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${f?"":`import ${JSON.stringify(t.url)}`};
|
|
32
|
+
${m.map((S,b)=>{let w=`route${b}`,M=t.routes[S.route.id];ye(M,`Route ${S.route.id} not found in manifest`);let{clientActionModule:P,clientLoaderModule:T,clientMiddlewareModule:$,hydrateFallbackModule:V,module:Z}=M,Y=[...P?[{module:P,varName:`${w}_clientAction`}]:[],...T?[{module:T,varName:`${w}_clientLoader`}]:[],...$?[{module:$,varName:`${w}_clientMiddleware`}]:[],...V?[{module:V,varName:`${w}_HydrateFallback`}]:[],{module:Z,varName:`${w}_main`}];if(Y.length===1)return`import * as ${w} from ${JSON.stringify(Z)};`;let G=Y.map(J=>`import * as ${J.varName} from "${J.module}";`).join(`
|
|
33
|
+
`),we=`const ${w} = {${Y.map(J=>`...${J.varName}`).join(",")}};`;return[G,we].join(`
|
|
34
|
+
`)}).join(`
|
|
35
|
+
`)}
|
|
36
|
+
${f?`window.__reactRouterManifest = ${JSON.stringify(Du(t,l),null,2)};`:""}
|
|
37
|
+
window.__reactRouterRouteModules = {${m.map((S,b)=>`${JSON.stringify(S.route.id)}:route${b}`).join(",")}};
|
|
38
|
+
|
|
39
|
+
import(${JSON.stringify(t.entry.module)});`:" ";return B.createElement(B.Fragment,null,B.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:R},type:void 0}),B.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:x},type:"module",async:!0}))},[]),g=Rr||d?[]:Nu(t.entry.imports.concat(Wa(m,t,{includeHydrateFallback:!0}))),p=typeof t.sri=="object"?t.sri:{};return jt(!d,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),Rr||d?null:B.createElement(B.Fragment,null,typeof t.sri=="object"?B.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:p})}}):null,f?null:B.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:p[t.url],suppressHydrationWarning:!0}),B.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:p[t.entry.module],suppressHydrationWarning:!0}),g.map(v=>B.createElement("link",{key:v,rel:"modulepreload",href:v,crossOrigin:e.crossOrigin,integrity:p[v],suppressHydrationWarning:!0})),h)}function Nu(e){return[...new Set(e)]}function $u(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var pi=class extends he.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?he.createElement(yi,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function yi({error:e,isOutsideRemixApp:t}){console.error(e);let r=he.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
40
|
+
console.log(
|
|
41
|
+
"💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
|
|
42
|
+
);
|
|
43
|
+
`}});if(ne(e))return he.createElement(ca,{title:"Unhandled Thrown Response!"},he.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let a;if(e instanceof Error)a=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);a=new Error(n)}return he.createElement(ca,{title:"Application Error!",isOutsideRemixApp:t},he.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),he.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},a.stack),r)}function ca({title:e,renderScripts:t,isOutsideRemixApp:r,children:a}){let{routeModules:n}=_t();return n.root?.Layout&&!r?a:he.createElement("html",{lang:"en"},he.createElement("head",null,he.createElement("meta",{charSet:"utf-8"}),he.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),he.createElement("title",null,e)),he.createElement("body",null,he.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},a,t?he.createElement(Ou,null):null)))}const k=await oe("react");var vi=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{vi&&(window.__reactRouterVersion="7.9.4")}catch{}function _d(e,t){return Wt({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:xr({window:t?.window}),hydrationData:t?.hydrationData||wi(),routes:e,mapRouteProperties:Lt,hydrationRouteProperties:kr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window}).initialize()}function Md(e,t){return Wt({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:Zn({window:t?.window}),hydrationData:t?.hydrationData||wi(),routes:e,mapRouteProperties:Lt,hydrationRouteProperties:kr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window}).initialize()}function wi(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:Iu(e.errors)}),e}function Iu(e){if(!e)return null;let t=Object.entries(e),r={};for(let[a,n]of t)if(n&&n.__type==="RouteErrorResponse")r[a]=new ce(n.status,n.statusText,n.data,n.internal===!0);else if(n&&n.__type==="Error"){if(n.__subType){let o=window[n.__subType];if(typeof o=="function")try{let i=new o(n.message);i.stack="",r[a]=i}catch{}}if(r[a]==null){let o=new Error(n.message);o.stack="",r[a]=o}}else r[a]=n;return r}function Td({basename:e,children:t,window:r}){let a=k.useRef();a.current==null&&(a.current=xr({window:r,v5Compat:!0}));let n=a.current,[o,i]=k.useState({action:n.action,location:n.location}),l=k.useCallback(s=>{k.startTransition(()=>i(s))},[i]);return k.useLayoutEffect(()=>n.listen(l),[n,l]),k.createElement(it,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:n})}function kd({basename:e,children:t,window:r}){let a=k.useRef();a.current==null&&(a.current=Zn({window:r,v5Compat:!0}));let n=a.current,[o,i]=k.useState({action:n.action,location:n.location}),l=k.useCallback(s=>{k.startTransition(()=>i(s))},[i]);return k.useLayoutEffect(()=>n.listen(l),[n,l]),k.createElement(it,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:n})}function Hu({basename:e,children:t,history:r}){let[a,n]=k.useState({action:r.action,location:r.location}),o=k.useCallback(i=>{k.startTransition(()=>n(i))},[n]);return k.useLayoutEffect(()=>r.listen(o),[r,o]),k.createElement(it,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:r})}Hu.displayName="unstable_HistoryRouter";var gi=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ri=k.forwardRef(function({onClick:t,discover:r="render",prefetch:a="none",relative:n,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:c,viewTransition:d,...f},m){let{basename:h}=k.useContext(Ce),g=typeof u=="string"&&gi.test(u),p,v=!1;if(typeof u=="string"&&g&&(p=u,vi))try{let T=new URL(window.location.href),$=u.startsWith("//")?new URL(T.protocol+u):new URL(u),V=le($.pathname,h);$.origin===T.origin&&V!=null?u=V+$.search+$.hash:v=!0}catch{Q(!1,`<Link to="${u}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let R=hs(u,{relative:n}),[x,S,b]=Tu(a,f),w=zu(u,{replace:i,state:l,target:s,preventScrollReset:c,relative:n,viewTransition:d});function M(T){t&&t(T),T.defaultPrevented||w(T)}let P=k.createElement("a",{...f,...b,href:p||R,onClick:v||o?t:M,ref:$u(m,S),target:s,"data-discover":!g&&r==="render"?"true":void 0});return x&&!g?k.createElement(k.Fragment,null,P,k.createElement(hi,{page:R})):P});Ri.displayName="Link";var Uu=k.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:a="",end:n=!1,style:o,to:i,viewTransition:l,children:s,...u},c){let d=Yt(i,{relative:u.relative}),f=De(),m=k.useContext(ot),{navigator:h,basename:g}=k.useContext(Ce),p=m!=null&&Ku(d)&&l===!0,v=h.encodeLocation?h.encodeLocation(d).pathname:d.pathname,R=f.pathname,x=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;r||(R=R.toLowerCase(),x=x?x.toLowerCase():null,v=v.toLowerCase()),x&&g&&(x=le(x,g)||x);const S=v!=="/"&&v.endsWith("/")?v.length-1:v.length;let b=R===v||!n&&R.startsWith(v)&&R.charAt(S)==="/",w=x!=null&&(x===v||!n&&x.startsWith(v)&&x.charAt(v.length)==="/"),M={isActive:b,isPending:w,isTransitioning:p},P=b?t:void 0,T;typeof a=="function"?T=a(M):T=[a,b?"active":null,w?"pending":null,p?"transitioning":null].filter(Boolean).join(" ");let $=typeof o=="function"?o(M):o;return k.createElement(Ri,{...u,"aria-current":P,className:T,ref:c,style:$,to:i,viewTransition:l},typeof s=="function"?s(M):s)});Uu.displayName="NavLink";var Ei=k.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:a,replace:n,state:o,method:i=cr,action:l,onSubmit:s,relative:u,preventScrollReset:c,viewTransition:d,...f},m)=>{let h=Si(),g=Vu(l,{relative:u}),p=i.toLowerCase()==="get"?"get":"post",v=typeof l=="string"&&gi.test(l),R=x=>{if(s&&s(x),x.defaultPrevented)return;x.preventDefault();let S=x.nativeEvent.submitter,b=S?.getAttribute("formmethod")||i;h(S||x.currentTarget,{fetcherKey:t,method:b,navigate:r,replace:n,state:o,relative:u,preventScrollReset:c,viewTransition:d})};return k.createElement("form",{ref:m,method:p,action:g,onSubmit:a?s:R,...f,"data-discover":!v&&e==="render"?"true":void 0})});Ei.displayName="Form";function ju({getKey:e,storageKey:t,...r}){let a=k.useContext(Xe),{basename:n}=k.useContext(Ce),o=De(),i=Oa();Yu({getKey:e,storageKey:t});let l=k.useMemo(()=>{if(!a||!e)return null;let u=fa(o,i,n,e);return u!==o.key?u:null},[]);if(!a||a.isSpaMode)return null;let s=((u,c)=>{if(!window.history.state||!window.history.state.key){let d=Math.random().toString(32).slice(2);window.history.replaceState({key:d},"")}try{let f=JSON.parse(sessionStorage.getItem(u)||"{}")[c||window.history.state.key];typeof f=="number"&&window.scrollTo(0,f)}catch(d){console.error(d),sessionStorage.removeItem(u)}}).toString();return k.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(t||da)}, ${JSON.stringify(l)})`}})}ju.displayName="ScrollRestoration";function bi(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Nr(e){let t=k.useContext(Ue);return A(t,bi(e)),t}function Xa(e){let t=k.useContext(ot);return A(t,bi(e)),t}function zu(e,{target:t,replace:r,state:a,preventScrollReset:n,relative:o,viewTransition:i}={}){let l=Ma(),s=De(),u=Yt(e,{relative:o});return k.useCallback(c=>{if(Ws(c,t)){c.preventDefault();let d=r!==void 0?r:Ee(s)===Ee(u);l(e,{replace:d,state:a,preventScrollReset:n,relative:o,viewTransition:i})}},[s,l,u,r,a,t,e,n,o,i])}function Ad(e){Q(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=k.useRef(oa(e)),r=k.useRef(!1),a=De(),n=k.useMemo(()=>Vs(a.search,r.current?null:t.current),[a.search]),o=Ma(),i=k.useCallback((l,s)=>{const u=oa(typeof l=="function"?l(new URLSearchParams(n)):l);r.current=!0,o("?"+u,s)},[o,n]);return[n,i]}var Bu=0,Wu=()=>`__${String(++Bu)}__`;function Si(){let{router:e}=Nr("useSubmit"),{basename:t}=k.useContext(Ce),r=bs();return k.useCallback(async(a,n={})=>{let{action:o,method:i,encType:l,formData:s,body:u}=Ks(a,t);if(n.navigate===!1){let c=n.fetcherKey||Wu();await e.fetch(c,r,n.action||o,{preventScrollReset:n.preventScrollReset,formData:s,body:u,formMethod:n.method||i,formEncType:n.encType||l,flushSync:n.flushSync})}else await e.navigate(n.action||o,{preventScrollReset:n.preventScrollReset,formData:s,body:u,formMethod:n.method||i,formEncType:n.encType||l,replace:n.replace,state:n.state,fromRouteId:r,flushSync:n.flushSync,viewTransition:n.viewTransition})},[e,t,r])}function Vu(e,{relative:t}={}){let{basename:r}=k.useContext(Ce),a=k.useContext(xe);A(a,"useFormAction must be used inside a RouteContext");let[n]=a.matches.slice(-1),o={...Yt(e||".",{relative:t})},i=De();if(e==null){o.search=i.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(c=>c==="")){l.delete("index"),s.filter(d=>d).forEach(d=>l.append("index",d));let c=l.toString();o.search=c?`?${c}`:""}}return(!e||e===".")&&n.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:He([r,o.pathname])),Ee(o)}function Fd({key:e}={}){let{router:t}=Nr("useFetcher"),r=Xa("useFetcher"),a=k.useContext(Vt),n=k.useContext(xe),o=n.matches[n.matches.length-1]?.route.id;A(a,"useFetcher must be used inside a FetchersContext"),A(n,"useFetcher must be used inside a RouteContext"),A(o!=null,'useFetcher can only be used on routes that contain a unique "id"');let i=k.useId(),[l,s]=k.useState(e||i);e&&e!==l&&s(e),k.useEffect(()=>(t.getFetcher(l),()=>t.deleteFetcher(l)),[t,l]);let u=k.useCallback(async(v,R)=>{A(o,"No routeId available for fetcher.load()"),await t.fetch(l,o,v,R)},[l,o,t]),c=Si(),d=k.useCallback(async(v,R)=>{await c(v,{...R,navigate:!1,fetcherKey:l})},[l,c]),f=k.useCallback(v=>t.resetFetcher(l,v),[t,l]),m=k.useMemo(()=>{let v=k.forwardRef((R,x)=>k.createElement(Ei,{...R,navigate:!1,fetcherKey:l,ref:x}));return v.displayName="fetcher.Form",v},[l]),h=r.fetchers.get(l)||Sa,g=a.get(l);return k.useMemo(()=>({Form:m,submit:d,load:u,unstable_reset:f,...h,data:g}),[m,d,u,f,h,g])}function Od(){let e=Xa("useFetchers");return Array.from(e.fetchers.entries()).map(([t,r])=>({...r,key:t}))}var da="react-router-scroll-positions",or={};function fa(e,t,r,a){let n=null;return a&&(r!=="/"?n=a({...e,pathname:le(e.pathname,r)||e.pathname},t):n=a(e,t)),n==null&&(n=e.key),n}function Yu({getKey:e,storageKey:t}={}){let{router:r}=Nr("useScrollRestoration"),{restoreScrollPosition:a,preventScrollReset:n}=Xa("useScrollRestoration"),{basename:o}=k.useContext(Ce),i=De(),l=Oa(),s=Ss();k.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Ju(k.useCallback(()=>{if(s.state==="idle"){let u=fa(i,l,o,e);or[u]=window.scrollY}try{sessionStorage.setItem(t||da,JSON.stringify(or))}catch(u){Q(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[s.state,e,o,i,l,t])),typeof document<"u"&&(k.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||da);u&&(or=JSON.parse(u))}catch{}},[t]),k.useLayoutEffect(()=>{let u=r?.enableScrollRestoration(or,()=>window.scrollY,e?(c,d)=>fa(c,d,o,e):void 0);return()=>u&&u()},[r,o,e]),k.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{Q(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}n!==!0&&window.scrollTo(0,0)}},[i,a,n]))}function Nd(e,t){let{capture:r}=t||{};k.useEffect(()=>{let a=r!=null?{capture:r}:void 0;return window.addEventListener("beforeunload",e,a),()=>{window.removeEventListener("beforeunload",e,a)}},[e,r])}function Ju(e,t){let{capture:r}={};k.useEffect(()=>{let a=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,a),()=>{window.removeEventListener("pagehide",e,a)}},[e,r])}function $d({when:e,message:t}){let r=Ds(e);k.useEffect(()=>{r.state==="blocked"&&(window.confirm(t)?setTimeout(r.proceed,0):r.reset())},[r,t]),k.useEffect(()=>{r.state==="blocked"&&!e&&r.reset()},[r,e])}function Ku(e,{relative:t}={}){let r=k.useContext(Mr);A(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=Nr("useViewTransitionState"),n=Yt(e,{relative:t});if(!r.isTransitioning)return!1;let o=le(r.currentLocation.pathname,a)||r.currentLocation.pathname,i=le(r.nextLocation.pathname,a)||r.nextLocation.pathname;return Ht(n.pathname,i)!=null||Ht(n.pathname,o)!=null}const Ie=await oe("react");function Id({basename:e,children:t,location:r="/"}){typeof r=="string"&&(r=Te(r));let a="POP",n={pathname:r.pathname||"/",search:r.search||"",hash:r.hash||"",state:r.state!=null?r.state:null,key:r.key||"default"},o=xi();return Ie.createElement(it,{basename:e,children:t,location:n,navigationType:a,navigator:o,static:!0})}function Ci({context:e,router:t,hydrate:r=!0,nonce:a}){A(t&&e,"You must provide `router` and `context` to <StaticRouterProvider>");let n={router:t,navigator:xi(),static:!0,staticContext:e,basename:e.basename||"/"},o=new Map,i="";if(r!==!1){let s={loaderData:e.loaderData,actionData:e.actionData,errors:Gu(e.errors)};i=`window.__staticRouterHydrationData = JSON.parse(${ec(JSON.stringify(JSON.stringify(s)))});`}let{state:l}=n.router;return Ie.createElement(Ie.Fragment,null,Ie.createElement(Ue.Provider,{value:n},Ie.createElement(ot.Provider,{value:l},Ie.createElement(Vt.Provider,{value:o},Ie.createElement(Mr.Provider,{value:{isTransitioning:!1}},Ie.createElement(it,{basename:n.basename,location:l.location,navigationType:l.historyAction,navigator:n.navigator,static:n.static},Ie.createElement(Xu,{routes:t.routes,future:t.future,state:l})))))),i?Ie.createElement("script",{suppressHydrationWarning:!0,nonce:a,dangerouslySetInnerHTML:{__html:i}}):null)}function Xu({routes:e,future:t,state:r}){return ka(e,void 0,r,void 0,t)}function Gu(e){if(!e)return null;let t=Object.entries(e),r={};for(let[a,n]of t)ne(n)?r[a]={...n,__type:"RouteErrorResponse"}:n instanceof Error?r[a]={message:n.message,__type:"Error",...n.name!=="Error"?{__subType:n.name}:{}}:r[a]=n;return r}function xi(){return{createHref:Pi,encodeLocation:Li,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 Hd(e,t){return ho(e,{...t,mapRouteProperties:Lt})}function Di(e,t,r={}){let a={},n=at(e,Lt,void 0,a),o=t.matches.map(l=>{let s=a[l.route.id]||l.route;return{...l,route:s}}),i=l=>`You cannot use router.${l}() on the server because it is a stateless environment`;return{get basename(){return t.basename},get future(){return{v8_middleware:!1,...r?.future}},get state(){return{historyAction:"POP",location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,navigation:ur,restoreScrollPosition:null,preventScrollReset:!1,revalidation:"idle",fetchers:new Map,blockers:new Map}},get routes(){return n},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:Pi,encodeLocation:Li,getFetcher(){return Sa},deleteFetcher(){throw i("deleteFetcher")},resetFetcher(){throw i("resetFetcher")},dispose(){throw i("dispose")},getBlocker(){return pt},deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")},_internalSetStateDoNotUseOrYouWillBreakYourApp(){throw i("_internalSetStateDoNotUseOrYouWillBreakYourApp")}}}function Pi(e){return typeof e=="string"?e:Ee(e)}function Li(e){let t=typeof e=="string"?e:Ee(e);t=t.replace(/ $/,"%20");let r=Qu.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:r.pathname,search:r.search,hash:r.hash}}var Qu=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Zu={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},qu=/[&><\u2028\u2029]/g;function ec(e){return e.replace(qu,t=>Zu[t])}var Ge={};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.parseCookie=ki;var tc=Ge.parse=ki;Ge.stringifyCookie=lc;Ge.stringifySetCookie=$r;var _i=Ge.serialize=$r;Ge.parseSetCookie=sc;Ge.stringifySetCookie=$r;_i=Ge.serialize=$r;const Mi=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Ti=/^[\u0021-\u003A\u003C-\u007E]*$/,rc=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,ac=/^[\u0020-\u003A\u003D-\u007E]*$/,nc=/^-?\d+$/,oc=Object.prototype.toString,ic=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function ki(e,t){const r=new ic,a=e.length;if(a<2)return r;const n=t?.decode||Ai;let o=0;do{const i=ma(e,o,a);if(i===-1)break;const l=ha(e,o,a);if(i>l){o=e.lastIndexOf(";",i-1)+1;continue}const s=qe(e,o,i);r[s]===void 0&&(r[s]=n(qe(e,i+1,l))),o=l+1}while(o<a);return r}function lc(e,t){const r=t?.encode||encodeURIComponent,a=[];for(const n of Object.keys(e)){const o=e[n];if(o===void 0)continue;if(!Mi.test(n))throw new TypeError(`cookie name is invalid: ${n}`);const i=r(o);if(!Ti.test(i))throw new TypeError(`cookie val is invalid: ${o}`);a.push(`${n}=${i}`)}return a.join("; ")}function $r(e,t,r){const a=typeof e=="object"?e:{...r,name:e,value:String(t)},o=(typeof t=="object"?t:r)?.encode||encodeURIComponent;if(!Mi.test(a.name))throw new TypeError(`argument name is invalid: ${a.name}`);const i=a.value?o(a.value):"";if(!Ti.test(i))throw new TypeError(`argument val is invalid: ${a.value}`);let l=a.name+"="+i;if(a.maxAge!==void 0){if(!Number.isInteger(a.maxAge))throw new TypeError(`option maxAge is invalid: ${a.maxAge}`);l+="; Max-Age="+a.maxAge}if(a.domain){if(!rc.test(a.domain))throw new TypeError(`option domain is invalid: ${a.domain}`);l+="; Domain="+a.domain}if(a.path){if(!ac.test(a.path))throw new TypeError(`option path is invalid: ${a.path}`);l+="; Path="+a.path}if(a.expires){if(!uc(a.expires)||!Number.isFinite(a.expires.valueOf()))throw new TypeError(`option expires is invalid: ${a.expires}`);l+="; Expires="+a.expires.toUTCString()}if(a.httpOnly&&(l+="; HttpOnly"),a.secure&&(l+="; Secure"),a.partitioned&&(l+="; Partitioned"),a.priority)switch(typeof a.priority=="string"?a.priority.toLowerCase():void 0){case"low":l+="; Priority=Low";break;case"medium":l+="; Priority=Medium";break;case"high":l+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${a.priority}`)}if(a.sameSite)switch(typeof a.sameSite=="string"?a.sameSite.toLowerCase():a.sameSite){case!0:case"strict":l+="; SameSite=Strict";break;case"lax":l+="; SameSite=Lax";break;case"none":l+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${a.sameSite}`)}return l}function sc(e,t){const r=t?.decode||Ai,a=e.length,n=ha(e,0,a),o=ma(e,0,n),i=o===-1?{name:"",value:r(qe(e,0,n))}:{name:qe(e,0,o),value:r(qe(e,o+1,n))};let l=n+1;for(;l<a;){const s=ha(e,l,a),u=ma(e,l,s),c=u===-1?qe(e,l,s):qe(e,l,u),d=u===-1?void 0:qe(e,u+1,s);switch(c.toLowerCase()){case"httponly":i.httpOnly=!0;break;case"secure":i.secure=!0;break;case"partitioned":i.partitioned=!0;break;case"domain":i.domain=d;break;case"path":i.path=d;break;case"max-age":d&&nc.test(d)&&(i.maxAge=Number(d));break;case"expires":if(!d)break;const f=new Date(d);Number.isFinite(f.valueOf())&&(i.expires=f);break;case"priority":if(!d)break;const m=d.toLowerCase();(m==="low"||m==="medium"||m==="high")&&(i.priority=m);break;case"samesite":if(!d)break;const h=d.toLowerCase();(h==="lax"||h==="strict"||h==="none")&&(i.sameSite=h);break}l=s+1}return i}function ha(e,t,r){const a=e.indexOf(";",t);return a===-1?r:a}function ma(e,t,r){const a=e.indexOf("=",t);return a<r?a:-1}function qe(e,t,r){let a=t,n=r;do{const o=e.charCodeAt(a);if(o!==32&&o!==9)break}while(++a<n);for(;n>a;){const o=e.charCodeAt(n-1);if(o!==32&&o!==9)break;n--}return e.slice(a,n)}function Ai(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function uc(e){return oc.call(e)==="[object Date]"}var Ir={exports:{}},Er={decodeValues:!0,map:!1,silent:!1};function pa(e){return typeof e!="string"||e in{}}function ya(){return Object.create(null)}function va(e){return typeof e=="string"&&!!e.trim()}function wa(e,t){var r=e.split(";").filter(va),a=r.shift(),n=cc(a),o=n.name,i=n.value;if(t=t?Object.assign({},Er,t):Er,pa(o))return null;try{i=t.decodeValues?decodeURIComponent(i):i}catch(s){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",s)}var l=ya();return l.name=o,l.value=i,r.forEach(function(s){var u=s.split("="),c=u.shift().trimLeft().toLowerCase();if(!pa(c)){var d=u.join("=");if(c==="expires")l.expires=new Date(d);else if(c==="max-age"){var f=parseInt(d,10);Number.isNaN(f)||(l.maxAge=f)}else c==="secure"?l.secure=!0:c==="httponly"?l.httpOnly=!0:c==="samesite"?l.sameSite=d:c==="partitioned"?l.partitioned=!0:c&&(l[c]=d)}}),l}function cc(e){var t="",r="",a=e.split("=");return a.length>1?(t=a.shift(),r=a.join("=")):r=e,{name:t,value:r}}function Fi(e,t){if(t=t?Object.assign({},Er,t):Er,!e)return t.map?ya():[];if(e.headers)if(typeof e.headers.getSetCookie=="function")e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var r=e.headers[Object.keys(e.headers).find(function(n){return n.toLowerCase()==="set-cookie"})];!r&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=r}if(Array.isArray(e)||(e=[e]),t.map){var a=ya();return e.filter(va).reduce(function(n,o){var i=wa(o,t);return i&&!pa(i.name)&&(n[i.name]=i),n},a)}else return e.filter(va).map(function(n){return wa(n,t)}).filter(Boolean)}function dc(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],r=0,a,n,o,i,l;function s(){for(;r<e.length&&/\s/.test(e.charAt(r));)r+=1;return r<e.length}function u(){return n=e.charAt(r),n!=="="&&n!==";"&&n!==","}for(;r<e.length;){for(a=r,l=!1;s();)if(n=e.charAt(r),n===","){for(o=r,r+=1,s(),i=r;r<e.length&&u();)r+=1;r<e.length&&e.charAt(r)==="="?(l=!0,r=i,t.push(e.substring(a,o)),a=r):r=o+1}else r+=1;(!l||r>=e.length)&&t.push(e.substring(a,e.length))}return t}Ir.exports=Fi;Ir.exports.parse=Fi;Ir.exports.parseString=wa;var fc=Ir.exports.splitCookiesString=dc,hc={};const Ze=await oe("react");function Ud({context:e,url:t,nonce:r}){typeof t=="string"&&(t=new URL(t));let{manifest:a,routeModules:n,criticalCss:o,serverHandoffString:i}=e,l=ui(a.routes,n,e.future,e.isSpaMode);e.staticHandlerContext.loaderData={...e.staticHandlerContext.loaderData};for(let u of e.staticHandlerContext.matches){let c=u.route.id,d=n[c],f=e.manifest.routes[c];d&&f&&Jt(c,d.clientLoader,f.hasLoader,e.isSpaMode)&&(d.HydrateFallback||!f.hasLoader)&&delete e.staticHandlerContext.loaderData[c]}let s=Di(l,e.staticHandlerContext);return Ze.createElement(Ze.Fragment,null,Ze.createElement(Xe.Provider,{value:{manifest:a,routeModules:n,criticalCss:o,serverHandoffString:i,future:e.future,ssr:e.ssr,isSpaMode:e.isSpaMode,routeDiscovery:e.routeDiscovery,serializeError:e.serializeError,renderMeta:e.renderMeta}},Ze.createElement(pi,{location:s.state.location},Ze.createElement(Ci,{router:s,context:e.staticHandlerContext,hydrate:!1}))),e.serverHandoffStream?Ze.createElement(Ze.Suspense,null,Ze.createElement(ei,{context:e,identifier:0,reader:e.serverHandoffStream.getReader(),textDecoder:new TextDecoder,nonce:r})):null)}const ir=await oe("react");function jd(e,t){return function({initialEntries:a,initialIndex:n,hydrationData:o,future:i}){let l=ir.useRef(),s=ir.useRef();if(l.current==null){s.current={future:{unstable_subResourceIntegrity:i?.unstable_subResourceIntegrity===!0,v8_middleware:i?.v8_middleware===!0},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},ssr:!1,isSpaMode:!1,routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"}};let u=Oi(at(e,c=>c),t!==void 0?t:i?.v8_middleware?new Ye:{},s.current.manifest,s.current.routeModules);l.current=Ls(u,{initialEntries:a,initialIndex:n,hydrationData:o})}return ir.createElement(Xe.Provider,{value:s.current},ir.createElement(Ao,{router:l.current}))}}function Oi(e,t,r,a,n){return e.map(o=>{if(!o.id)throw new Error("Expected a route.id in react-router processRoutes() function");let i={id:o.id,path:o.path,index:o.index,Component:o.Component?$s(o.Component):void 0,HydrateFallback:o.HydrateFallback?Is(o.HydrateFallback):void 0,ErrorBoundary:o.ErrorBoundary?Hs(o.ErrorBoundary):void 0,action:o.action?s=>o.action({...s,context:t}):void 0,loader:o.loader?s=>o.loader({...s,context:t}):void 0,middleware:o.middleware?o.middleware.map(s=>(...u)=>s({...u[0],context:t},u[1])):void 0,handle:o.handle,shouldRevalidate:o.shouldRevalidate},l={id:o.id,path:o.path,index:o.index,parentId:n,hasAction:o.action!=null,hasLoader:o.loader!=null,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasErrorBoundary:o.ErrorBoundary!=null,module:"build/stub-path-to-module.js",clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0};return r.routes[i.id]=l,a[o.id]={default:i.Component||As,ErrorBoundary:i.ErrorBoundary||void 0,handle:o.handle,links:o.links,meta:o.meta,shouldRevalidate:o.shouldRevalidate},o.children&&(i.children=Oi(o.children,t,r,a,i.id)),i})}var Ga=new TextEncoder,mc=async(e,t)=>{let r=Ga.encode(e),a=await Ni(t,["sign"]),n=await crypto.subtle.sign("HMAC",a,r),o=btoa(String.fromCharCode(...new Uint8Array(n))).replace(/=+$/,"");return e+"."+o},pc=async(e,t)=>{let r=e.lastIndexOf("."),a=e.slice(0,r),n=e.slice(r+1),o=Ga.encode(a),i=await Ni(t,["verify"]);try{let l=yc(atob(n));return await crypto.subtle.verify("HMAC",i,l,o)?a:!1}catch{return!1}},Ni=async(e,t)=>crypto.subtle.importKey("raw",Ga.encode(e),{name:"HMAC",hash:"SHA-256"},!1,t);function yc(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}var $i=(e,t={})=>{let{secrets:r=[],...a}={path:"/",sameSite:"lax",...t};return bc(e,a.expires),{get name(){return e},get isSigned(){return r.length>0},get expires(){return typeof a.maxAge<"u"?new Date(Date.now()+a.maxAge*1e3):a.expires},async parse(n,o){if(!n)return null;let i=tc(n,{...a,...o});if(e in i){let l=i[e];return typeof l=="string"&&l!==""?await wc(l,r):""}else return null},async serialize(n,o){return _i(e,n===""?"":await vc(n,r),{...a,...o})}}},Ii=e=>e!=null&&typeof e.name=="string"&&typeof e.isSigned=="boolean"&&typeof e.parse=="function"&&typeof e.serialize=="function";async function vc(e,t){let r=gc(e);return t.length>0&&(r=await mc(r,t[0])),r}async function wc(e,t){if(t.length>0){for(let r of t){let a=await pc(e,r);if(a!==!1)return $n(a)}return null}return $n(e)}function gc(e){return btoa(Ec(encodeURIComponent(JSON.stringify(e))))}function $n(e){try{return JSON.parse(decodeURIComponent(Rc(atob(e))))}catch{return{}}}function Rc(e){let t=e.toString(),r="",a=0,n,o;for(;a<t.length;)n=t.charAt(a++),/[\w*+\-./@]/.exec(n)?r+=n:(o=n.charCodeAt(0),o<256?r+="%"+In(o,2):r+="%u"+In(o,4).toUpperCase());return r}function In(e,t){let r=e.toString(16);for(;r.length<t;)r="0"+r;return r}function Ec(e){let t=e.toString(),r="",a=0,n,o;for(;a<t.length;){if(n=t.charAt(a++),n==="%"){if(t.charAt(a)==="u"){if(o=t.slice(a+1,a+5),/^[\da-f]{4}$/i.exec(o)){r+=String.fromCharCode(parseInt(o,16)),a+=5;continue}}else if(o=t.slice(a,a+2),/^[\da-f]{2}$/i.exec(o)){r+=String.fromCharCode(parseInt(o,16)),a+=2;continue}}r+=n}return r}function bc(e,t){jt(!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.`)}function Sc(e){return Object.keys(e).reduce((t,r)=>{let a=e[r];return a&&(t[r]=a.module),t},{})}var Cc=(e=>(e.Development="development",e.Production="production",e.Test="test",e))(Cc||{});function xc(e){return e==="development"||e==="production"||e==="test"}function Hr(e,t){if(e instanceof Error&&t!=="development"){let r=new Error("Unexpected Server Error");return r.stack=void 0,r}return e}function br(e,t){return Object.entries(e).reduce((r,[a,n])=>Object.assign(r,{[a]:Hr(n,t)}),{})}function Hi(e,t){let r=Hr(e,t);return{message:r.message,stack:r.stack}}function Hn(e,t){if(!e)return null;let r=Object.entries(e),a={};for(let[n,o]of r)if(ne(o))a[n]={...o,__type:"RouteErrorResponse"};else if(o instanceof Error){let i=Hr(o,t);a[n]={message:i.message,stack:i.stack,__type:"Error",...i.name!=="Error"?{__subType:i.name}:{}}}else a[n]=o;return a}function ga(e,t,r){let a=Se(e,t,r);return a?a.map(n=>({params:n.params,pathname:n.pathname,route:n.route})):null}async function Un(e,t){let r=await e({request:Pc(Dc(t.request)),params:t.params,context:t.context});if(rt(r)&&r.init&&r.init.status&&_r(r.init.status))throw new Response(null,r.init);return r}function Dc(e){let t=new URL(e.url),r=t.searchParams.getAll("index");t.searchParams.delete("index");let a=[];for(let o of r)o&&a.push(o);for(let o of a)t.searchParams.append("index",o);let n={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return n.body&&(n.duplex="half"),new Request(t.href,n)}function Pc(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 mr(e,t){if(e===!1||e===null||typeof e>"u")throw console.error("The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose"),new Error(t)}var Ui="__reactRouterDevServerHooks";function zd(e){globalThis[Ui]=e}function Gr(){return globalThis[Ui]}function ji(e,t){if(typeof process<"u")try{if(hc?.IS_RR_BUILD_REQUEST==="yes")return e.headers.get(t)}catch{}return null}function zi(e){let t={};return Object.values(e).forEach(r=>{if(r){let a=r.parentId||"";t[a]||(t[a]=[]),t[a].push(r)}}),t}function Bi(e,t="",r=zi(e)){return(r[t]||[]).map(a=>({...a,children:Bi(e,a.id,r)}))}function Wi(e,t,r="",a=zi(e)){return(a[r]||[]).map(n=>{let o={hasErrorBoundary:n.id==="root"||n.module.ErrorBoundary!=null,id:n.id,path:n.path,middleware:n.module.middleware,loader:n.module.loader?async i=>{let l=ji(i.request,"X-React-Router-Prerender-Data");if(l!=null){let u=l&&decodeURI(l);mr(u,"Missing prerendered data for route");let c=new TextEncoder().encode(u),d=new ReadableStream({start(h){h.enqueue(c),h.close()}}),m=(await za(d,global)).value;if(m&&nt in m){let h=m[nt],g={status:h.status};throw h.reload?Wl(h.redirect,g):h.replace?Vl(h.redirect,g):Lr(h.redirect,g)}else{mr(m&&n.id in m,"Unable to decode prerendered data");let h=m[n.id];return mr("data"in h,"Unable to process prerendered data"),h.data}}return await Un(n.module.loader,i)}:void 0,action:n.module.action?i=>Un(n.module.action,i):void 0,handle:n.module.handle};return n.index?{index:!0,...o}:{caseSensitive:n.caseSensitive,children:Wi(e,t,n.id,a),...o}})}function jn(e){return Ha(JSON.stringify(e))}function Qa(e,t){return Lc(e,r=>{let a=t.routes[r.route.id];return mr(a,`Route with id "${r.route.id}" not found in build`),a.module.headers})}function Lc(e,t,r){let a=e.errors?e.matches.findIndex(l=>e.errors[l.route.id]):-1,n=a>=0?e.matches.slice(0,a+1):e.matches,o;if(a>=0){let{actionHeaders:l,actionData:s,loaderHeaders:u,loaderData:c}=e;e.matches.slice(a).some(d=>{let f=d.route.id;return l[f]&&(!s||!s.hasOwnProperty(f))?o=l[f]:u[f]&&!c.hasOwnProperty(f)&&(o=u[f]),o!=null})}const i=new Headers(r);return n.reduce((l,s,u)=>{let{id:c}=s.route,d=e.loaderHeaders[c]||new Headers,f=e.actionHeaders[c]||new Headers,m=o!=null&&u===n.length-1,h=m&&o!==d&&o!==f,g=t(s);if(g==null){let v=new Headers(l);return h&&mt(o,v),mt(f,v),mt(d,v),v}let p=new Headers(typeof g=="function"?g({loaderHeaders:d,parentHeaders:l,actionHeaders:f,errorHeaders:m?o:void 0}):g);return h&&mt(o,p),mt(f,p),mt(d,p),mt(l,p),p},new Headers(i))}function mt(e,t){let r=e.get("Set-Cookie");if(r){let a=fc(r),n=new Set(t.getSetCookie());a.forEach(o=>{n.has(o)||t.append("Set-Cookie",o)})}}var Vi=new Set([...qo,304]);async function _c(e,t,r,a,n,o,i){try{let c=new Request(n,{method:a.method,body:a.body,headers:a.headers,signal:a.signal,...a.body?{duplex:"half"}:void 0}),d=await r.query(c,{requestContext:o,skipLoaderErrorBubbling:!0,skipRevalidation:!0,generateMiddlewareResponse:e.future.v8_middleware?async f=>{try{let m=await f(c);return l(m)}catch(m){return s(m)}}:void 0});return l(d)}catch(c){return s(c)}function l(c){return re(c)?c:u(c)}function s(c){return i(c),Bt(a,e,t,{result:{error:c},headers:new Headers,status:500})}function u(c){let d=Qa(c,e);if(_r(c.statusCode)&&d.has("Location"))return new Response(null,{status:c.statusCode,headers:d});c.errors&&(Object.values(c.errors).forEach(m=>{(!ne(m)||m.error)&&i(m)}),c.errors=br(c.errors,t));let f;return c.errors?f={error:Object.values(c.errors)[0]}:f={data:Object.values(c.actionData||{})[0]},Bt(a,e,t,{result:f,headers:d,status:c.statusCode})}}async function Mc(e,t,r,a,n,o,i){let l=new URL(a.url).searchParams.get("_routes"),s=l?new Set(l.split(",")):null;try{let f=new Request(n,{headers:a.headers,signal:a.signal}),m=await r.query(f,{requestContext:o,filterMatchesToLoad:h=>!s||s.has(h.route.id),skipLoaderErrorBubbling:!0,generateMiddlewareResponse:e.future.v8_middleware?async h=>{try{let g=await h(f);return u(g)}catch(g){return c(g)}}:void 0});return u(m)}catch(f){return c(f)}function u(f){return re(f)?f:d(f)}function c(f){return i(f),Bt(a,e,t,{result:{error:f},headers:new Headers,status:500})}function d(f){let m=Qa(f,e);if(_r(f.statusCode)&&m.has("Location"))return new Response(null,{status:f.statusCode,headers:m});f.errors&&(Object.values(f.errors).forEach(p=>{(!ne(p)||p.error)&&i(p)}),f.errors=br(f.errors,t));let h={},g=new Set(f.matches.filter(p=>s?s.has(p.route.id):p.route.loader!=null).map(p=>p.route.id));if(f.errors)for(let[p,v]of Object.entries(f.errors))h[p]={error:v};for(let[p,v]of Object.entries(f.loaderData))!(p in h)&&g.has(p)&&(h[p]={data:v});return Bt(a,e,t,{result:h,headers:m,status:f.statusCode})}}function Bt(e,t,r,{result:a,headers:n,status:o}){let i=new Headers(n);return i.set("X-Remix-Response","yes"),Vi.has(o)?new Response(null,{status:o,headers:i}):(i.set("Content-Type","text/x-script"),i.delete("Content-Length"),new Response(Ra(a,e.signal,t.entry.module.streamTimeout,r),{status:o||200,headers:i}))}function zn(e,t,r,a){let n=Tc(e.status,e.headers,r.basename),o=new Headers(e.headers);return o.delete("Location"),o.set("Content-Type","text/x-script"),Bt(t,r,a,{result:t.method==="GET"?{[nt]:n}:n,headers:o,status:Ua})}function Tc(e,t,r){let a=t.get("Location");return r&&(a=le(a,r)||a),{redirect:a,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 Ra(e,t,r,a){let n=new AbortController,o=setTimeout(()=>n.abort(new Error("Server Timeout")),typeof r=="number"?r:4950);return t.addEventListener("abort",()=>clearTimeout(o)),ru(e,{signal:n.signal,plugins:[i=>{if(i instanceof Error){let{name:l,message:s,stack:u}=a==="production"?Hr(i,a):i;return["SanitizedError",l,s,u]}if(i instanceof ce){let{data:l,status:s,statusText:u}=i;return["ErrorResponse",l,s,u]}if(i&&typeof i=="object"&&nt in i)return["SingleFetchRedirect",i[nt]]}],postPlugins:[i=>{if(i&&typeof i=="object")return["SingleFetchClassInstance",Object.fromEntries(Object.entries(i))]},()=>["SingleFetchFallback"]]})}function Bn(e,t){let r=Bi(e.routes),a=Wi(e.routes,e.future),n=xc(t)?t:"production",o=ho(a,{basename:e.basename}),i=e.entry.module.handleError||((l,{request:s})=>{n!=="test"&&!s.signal.aborted&&console.error(ne(l)&&l.error?l.error:l)});return{routes:r,dataRoutes:a,serverMode:n,staticHandler:o,errorHandler:i}}var Bd=(e,t)=>{let r,a,n,o,i;return async function(s,u){if(r=typeof e=="function"?await e():e,typeof e=="function"){let S=Bn(r,t);a=S.routes,n=S.serverMode,o=S.staticHandler,i=S.errorHandler}else if(!a||!n||!o||!i){let S=Bn(r,t);a=S.routes,n=S.serverMode,o=S.staticHandler,i=S.errorHandler}let c={},d,f=S=>{t==="development"&&Gr()?.processRequestError?.(S),i(S,{context:d,params:c,request:s})};if(r.future.v8_middleware){if(u&&!(u instanceof Ye)){let S=new Error("Invalid `context` value provided to `handleRequest`. When middleware is enabled you must return an instance of `RouterContextProvider` from your `getLoadContext` function.");return f(S),Sr(S,n)}d=u||new Ye}else d=u||{};let m=new URL(s.url),h=r.basename||"/",g=m.pathname;le(g,h)==="/_root.data"?g=h:g.endsWith(".data")&&(g=g.replace(/\.data$/,"")),le(g,h)!=="/"&&g.endsWith("/")&&(g=g.slice(0,-1));let p=ji(s,"X-React-Router-SPA-Mode")==="yes";if(!r.ssr){let S=decodeURI(g);if(h!=="/"){let b=le(S,h);if(b==null)return i(new ce(404,"Not Found",`Refusing to prerender the \`${S}\` path because it does not start with the basename \`${h}\``),{context:d,params:c,request:s}),new Response("Not Found",{status:404,statusText:"Not Found"});S=b}if(r.prerender.length===0)p=!0;else if(!r.prerender.includes(S)&&!r.prerender.includes(S+"/")){if(m.pathname.endsWith(".data"))return i(new ce(404,"Not Found",`Refusing to SSR the path \`${S}\` because \`ssr:false\` is set and the path is not included in the \`prerender\` config, so in production the path will be a 404.`),{context:d,params:c,request:s}),new Response("Not Found",{status:404,statusText:"Not Found"});p=!0}}let v=di(r.routeDiscovery.manifestPath,h);if(m.pathname===v)try{return await kc(r,a,m)}catch(S){return f(S),new Response("Unknown Server Error",{status:500})}let R=ga(a,g,r.basename);R&&R.length>0&&Object.assign(c,R[0].params);let x;if(m.pathname.endsWith(".data")){let S=new URL(s.url);S.pathname=g;let b=ga(a,S.pathname,r.basename);x=await Ac(n,r,o,s,S,d,f),vr(x)&&(x=zn(x,s,r,n)),r.entry.module.handleDataRequest&&(x=await r.entry.module.handleDataRequest(x,{context:d,params:b?b[0].params:{},request:s}),vr(x)&&(x=zn(x,s,r,n)))}else if(!p&&R&&R[R.length-1].route.module.default==null&&R[R.length-1].route.module.ErrorBoundary==null)x=await Oc(n,r,o,R.slice(-1)[0].route.id,s,d,f);else{let{pathname:S}=m,b;r.unstable_getCriticalCss?b=await r.unstable_getCriticalCss({pathname:S}):t==="development"&&Gr()?.getCriticalCss&&(b=await Gr()?.getCriticalCss?.(S)),x=await Fc(n,r,o,s,d,f,p,b)}return s.method==="HEAD"?new Response(null,{headers:x.headers,status:x.status,statusText:x.statusText}):x}};async function kc(e,t,r){if(e.assets.version!==r.searchParams.get("version"))return new Response(null,{status:204,headers:{"X-Remix-Reload-Document":"true"}});let a={};if(r.searchParams.has("paths")){let n=new Set;(r.searchParams.get("paths")||"").split(",").filter(Boolean).forEach(l=>{l.startsWith("/")||(l=`/${l}`);let s=l.split("/").slice(1);s.forEach((u,c)=>{let d=s.slice(0,c+1).join("/");n.add(`/${d}`)})});for(let l of n){let s=ga(t,l,e.basename);if(s)for(let u of s){let c=u.route.id,d=e.assets.routes[c];d&&(a[c]=d)}}return Response.json(a,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}async function Ac(e,t,r,a,n,o,i){return a.method!=="GET"?await _c(t,e,r,a,n,o,i):await Mc(t,e,r,a,n,o,i)}async function Fc(e,t,r,a,n,o,i,l){try{let u=await r.query(a,{requestContext:n,generateMiddlewareResponse:t.future.v8_middleware?async c=>{try{let d=await c(a);return re(d)||(d=await s(d,i)),d}catch(d){return o(d),new Response(null,{status:500})}}:void 0});return re(u)||(u=await s(u,i)),u}catch(u){return o(u),new Response(null,{status:500})}async function s(u,c){let d=Qa(u,t);if(Vi.has(u.statusCode))return new Response(null,{status:u.statusCode,headers:d});u.errors&&(Object.values(u.errors).forEach(p=>{(!ne(p)||p.error)&&o(p)}),u.errors=br(u.errors,e));let f={loaderData:u.loaderData,actionData:u.actionData,errors:Hn(u.errors,e)},m={basename:t.basename,future:t.future,routeDiscovery:t.routeDiscovery,ssr:t.ssr,isSpaMode:c},h={manifest:t.assets,routeModules:Sc(t.routes),staticHandlerContext:u,criticalCss:l,serverHandoffString:jn({...m,criticalCss:l}),serverHandoffStream:Ra(f,a.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,ssr:t.ssr,routeDiscovery:t.routeDiscovery,isSpaMode:c,serializeError:p=>Hi(p,e)},g=t.entry.module.default;try{return await g(a,u.statusCode,d,h,n)}catch(p){o(p);let v=p;if(re(p))try{let x=await $c(p);v=new ce(p.status,p.statusText,x)}catch{}u=mo(r.dataRoutes,u,v),u.errors&&(u.errors=br(u.errors,e));let R={loaderData:u.loaderData,actionData:u.actionData,errors:Hn(u.errors,e)};h={...h,staticHandlerContext:u,serverHandoffString:jn(m),serverHandoffStream:Ra(R,a.signal,t.entry.module.streamTimeout,e),renderMeta:{}};try{return await g(a,u.statusCode,d,h,n)}catch(x){return o(x),Sr(x,e)}}}}async function Oc(e,t,r,a,n,o,i){try{let u=await r.queryRoute(n,{routeId:a,requestContext:o,generateMiddlewareResponse:t.future.v8_middleware?async c=>{try{let d=await c(n);return l(d)}catch(d){return s(d)}}:void 0});return l(u)}catch(u){return s(u)}function l(u){return re(u)?u:typeof u=="string"?new Response(u):Response.json(u)}function s(u){if(re(u))return u;if(ne(u))return i(u),Nc(u,e);if(u instanceof Error&&u.message==="Expected a response from queryRoute"){let c=new Error("Expected a Response to be returned from resource route handler");return i(c),Sr(c,e)}return i(u),Sr(u,e)}}function Nc(e,t){return Response.json(Hi(e.error||new Error("Unexpected Server Error"),t),{status:e.status,statusText:e.statusText})}function Sr(e,t){let r="Unexpected Server Error";return t!=="production"&&(r+=`
|
|
44
|
+
|
|
45
|
+
${String(e)}`),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function $c(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}function Qr(e){return`__flash_${e}__`}var Yi=(e={},t="")=>{let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has(a){return r.has(a)||r.has(Qr(a))},get(a){if(r.has(a))return r.get(a);let n=Qr(a);if(r.has(n)){let o=r.get(n);return r.delete(n),o}},set(a,n){r.set(a,n)},flash(a,n){r.set(Qr(a),n)},unset(a){r.delete(a)}}},Wd=e=>e!=null&&typeof e.id=="string"&&typeof e.data<"u"&&typeof e.has=="function"&&typeof e.get=="function"&&typeof e.set=="function"&&typeof e.flash=="function"&&typeof e.unset=="function";function Ic({cookie:e,createData:t,readData:r,updateData:a,deleteData:n}){let o=Ii(e)?e:$i(e?.name||"__session",e);return Ji(o),{async getSession(i,l){let s=i&&await o.parse(i,l),u=s&&await r(s);return Yi(u||{},s||"")},async commitSession(i,l){let{id:s,data:u}=i,c=l?.maxAge!=null?new Date(Date.now()+l.maxAge*1e3):l?.expires!=null?l.expires:o.expires;return s?await a(s,u,c):s=await t(u,c),o.serialize(s,l)},async destroySession(i,l){return await n(i.id),o.serialize("",{...l,maxAge:void 0,expires:new Date(0)})}}}function Ji(e){jt(e.isSigned,`The "${e.name}" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`)}function Vd({cookie:e}={}){let t=Ii(e)?e:$i(e?.name||"__session",e);return Ji(t),{async getSession(r,a){return Yi(r&&await t.parse(r,a)||{})},async commitSession(r,a){let n=await t.serialize(r.data,a);if(n.length>4096)throw new Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},async destroySession(r,a){return t.serialize("",{...a,maxAge:void 0,expires:new Date(0)})}}}function Yd({cookie:e}={}){let t=new Map;return Ic({cookie:e,async createData(r,a){let n=Math.random().toString(36).substring(2,10);return t.set(n,{data:r,expires:a}),n},async readData(r){if(t.has(r)){let{data:a,expires:n}=t.get(r);if(!n||n>new Date)return a;n&&t.delete(r)}return null},async updateData(r,a,n){t.set(r,{data:a,expires:n})},async deleteData(r){t.delete(r)}})}function Jd(e,...t){let r=t[0],a=e.replace(/\/*\*?$/,"").replace(/\/:([\w-]+)(\?)?/g,(n,o,i)=>{const l=i===void 0,s=r?r[o]:void 0;if(l&&s===void 0)throw new Error(`Path '${e}' requires param '${o}' but it was not provided`);return s===void 0?"":"/"+s});if(e.endsWith("*")){const n=r?r["*"]:void 0;n!==void 0&&(a+="/"+n)}return a||"/"}const $e=await oe("react"),Hc=await oe("react-dom");function Ki({state:e,routes:t,getRouteInfo:r,location:a,basename:n,isSpaMode:o}){let i={...e,loaderData:{...e.loaderData}},l=Se(t,a,n);if(l)for(let s of l){let u=s.route.id,c=r(u);Jt(u,c.clientLoader,c.hasLoader,o)&&(c.hasHydrateFallback||!c.hasLoader)?delete i.loaderData[u]:c.hasLoader||(i.loaderData[u]=null)}return i}const pe=await oe("react");var Xi=class extends pe.Component{constructor(e){super(e),this.state={error:null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:null,location:e.location}:{error:t.error,location:t.location}}render(){return this.state.error?pe.createElement(Gi,{error:this.state.error,renderAppShell:!0}):this.props.children}};function Wn({renderAppShell:e,title:t,children:r}){return e?pe.createElement("html",{lang:"en"},pe.createElement("head",null,pe.createElement("meta",{charSet:"utf-8"}),pe.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),pe.createElement("title",null,t)),pe.createElement("body",null,pe.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r))):r}function Gi({error:e,renderAppShell:t}){console.error(e);let r=pe.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
46
|
+
console.log(
|
|
47
|
+
"💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
|
|
48
|
+
);
|
|
49
|
+
`}});if(ne(e))return pe.createElement(Wn,{renderAppShell:t,title:"Unhandled Thrown Response!"},pe.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let a;if(e instanceof Error)a=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);a=new Error(n)}return pe.createElement(Wn,{renderAppShell:t,title:"Application Error!"},pe.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),pe.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},a.stack),r)}function Kd({hasRootLayout:e}){let t=Tr();if(e===void 0)throw new Error("Missing 'hasRootLayout' prop");return pe.createElement(Gi,{renderAppShell:!e,error:t})}function Uc(e){const t={};for(const r of e.matches)Za(t,r);return t}function Za(e,t){t=Array.isArray(t)?t:[t];for(const r of t)e[r.id]={links:r.links,meta:r.meta,default:jc}}var jc=()=>null;function Xd({createFromReadableStream:e,createTemporaryReferenceSet:t,encodeReply:r,fetch:a=fetch}){const n=window;let o=0;return async(i,l)=>{let s=n.__routerActionID=(n.__routerActionID??(n.__routerActionID=0))+1;const u=t(),c=a(new Request(location.href,{body:await r(l,{temporaryReferences:u}),method:"POST",headers:{Accept:"text/x-component","rsc-action-id":i}})).then(d=>{if(!d.body)throw new Error("No response body");return e(d.body,{temporaryReferences:u})});return n.__reactRouterDataRouter.__setPendingRerender(Promise.resolve(c).then(async d=>{if(d.type==="redirect")return d.reload||Yn(d.location)?(window.location.href=d.location,()=>{}):()=>{n.__reactRouterDataRouter.navigate(d.location,{replace:d.replace})};if(d.type!=="action")throw new Error("Unexpected payload type");const f=await d.rerender;if(f&&o<s&&n.__routerActionID<=s){if(f.type==="redirect"){if(f.reload||Yn(f.location)){window.location.href=f.location;return}return()=>{n.__reactRouterDataRouter.navigate(f.location,{replace:f.replace})}}return()=>{let m;for(const h of f.matches)n.__reactRouterDataRouter.patchRoutes(m?.id??null,[Ct(h)],!0),m=h;window.__reactRouterDataRouter._internalSetStateDoNotUseOrYouWillBreakYourApp({loaderData:Object.assign({},n.__reactRouterDataRouter.state.loaderData,f.loaderData),errors:f.errors?Object.assign({},n.__reactRouterDataRouter.state.errors,f.errors):null})}}return()=>{}}).catch(()=>{})),c.then(d=>{if(d.type!=="action"&&d.type!=="redirect")throw new Error("Unexpected payload type");return d.actionResult})}}function zc({fetchImplementation:e,createFromReadableStream:t,getContext:r,payload:a}){const n=window;if(n.__reactRouterDataRouter&&n.__reactRouterRouteModules)return{router:n.__reactRouterDataRouter,routeModules:n.__reactRouterRouteModules};if(a.type!=="render")throw new Error("Invalid payload type");n.__reactRouterRouteModules=n.__reactRouterRouteModules??{},Za(n.__reactRouterRouteModules,a.matches);let o=new Map;a.patches?.forEach(s=>{A(s.parentId,"Invalid patch parentId"),o.has(s.parentId)||o.set(s.parentId,[]),o.get(s.parentId)?.push(s)});let i=a.matches.reduceRight((s,u)=>{const c=Ct(u,a);if(s.length>0){c.children=s;let d=o.get(u.id);d&&c.children.push(...d.map(f=>Ct(f)))}return[c]},[]);n.__reactRouterDataRouter=Wt({routes:i,getContext:r,basename:a.basename,history:xr(),hydrationData:Ki({state:{loaderData:a.loaderData,actionData:a.actionData,errors:a.errors},routes:i,getRouteInfo:s=>{let u=a.matches.find(c=>c.id===s);return A(u,"Route not found in payload"),{clientLoader:u.clientLoader,hasLoader:u.hasLoader,hasHydrateFallback:u.hydrateFallbackElement!=null}},location:a.location,basename:a.basename,isSpaMode:!1}),async patchRoutesOnNavigation({path:s,signal:u}){Cr.has(s)||await Qi([s],t,e,u)},dataStrategy:Bc(()=>n.__reactRouterDataRouter,!0,a.basename,t,e)}),n.__reactRouterDataRouter.state.initialized?(n.__routerInitialized=!0,n.__reactRouterDataRouter.initialize()):n.__routerInitialized=!1;let l;return n.__reactRouterDataRouter.subscribe(({loaderData:s,actionData:u})=>{l!==s&&(n.__routerActionID=(n.__routerActionID??(n.__routerActionID=0))+1)}),n.__reactRouterDataRouter._updateRoutesForHMR=s=>{const u=window.__reactRouterDataRouter.routes,c=[];function d(f,m){return f.map(h=>{const g=s.get(h.id);if(g){const{routeModule:v,hasAction:R,hasComponent:x,hasErrorBoundary:S,hasLoader:b}=g,w=Ct({clientAction:v.clientAction,clientLoader:v.clientLoader,element:h.element,errorElement:h.errorElement,handle:h.handle,hasAction:R,hasComponent:x,hasErrorBoundary:S,hasLoader:b,hydrateFallbackElement:h.hydrateFallbackElement,id:h.id,index:h.index,links:v.links,meta:v.meta,parentId:m,path:h.path,shouldRevalidate:v.shouldRevalidate});return h.children&&(w.children=d(h.children,h.id)),w}const p={...h};return h.children&&(p.children=d(h.children,h.id)),p})}c.push(...d(u,void 0)),window.__reactRouterDataRouter._internalSetRoutes(c)},{router:n.__reactRouterDataRouter,routeModules:n.__reactRouterRouteModules}}var Ea=Rl();function Bc(e,t,r,a,n){let o=ti(e,i=>{let l=i;return{hasLoader:l.route.hasLoader,hasClientLoader:l.route.hasClientLoader,hasComponent:l.route.hasComponent,hasAction:l.route.hasAction,hasClientAction:l.route.hasClientAction,hasShouldRevalidate:l.route.hasShouldRevalidate}},Wc(a,n),t,r,i=>{let l=i;return l.route.hasComponent&&!l.route.element});return async i=>i.runClientMiddleware(async()=>{let l=i.context;l.set(Ea,[]);let s=await o(i);const u=new Map;for(const c of l.get(Ea))u.has(c.id)||u.set(c.id,[]),u.get(c.id).push(c);for(const c of i.matches){const d=u.get(c.route.id);if(d)for(const f of d)window.__reactRouterDataRouter.patchRoutes(f.parentId??null,[Ct(f)],!0)}return s})}function Wc(e,t){return async(r,a,n)=>{let{request:o,context:i}=r,l=ja(o.url,a,"rsc");o.method==="GET"&&(l=ri(l),n&&l.searchParams.set("_routes",n.join(",")));let s=await t(new Request(l,await Qo(o)));if(s.status>=400&&!s.headers.has("X-Remix-Response"))throw new ce(s.status,s.statusText,await s.text());A(s.body,"No response body to decode");try{const u=await e(s.body,{temporaryReferences:void 0});if(u.type==="redirect")return{status:s.status,data:{redirect:{redirect:u.location,reload:u.reload,replace:u.replace,revalidate:!1,status:u.status}}};if(u.type!=="render")throw new Error("Unexpected payload type");i.get(Ea).push(...u.matches);let c={routes:{}};const d=me(o.method)?"actionData":"loaderData";for(let[f,m]of Object.entries(u[d]||{}))c.routes[f]={data:m};if(u.errors)for(let[f,m]of Object.entries(u.errors))c.routes[f]={error:m};return{status:s.status,data:c}}catch{throw new Error("Unable to decode RSC response")}}}function Gd({createFromReadableStream:e,fetch:t=fetch,payload:r,routeDiscovery:a="eager",getContext:n}){if(r.type!=="render")throw new Error("Invalid payload type");let{router:o,routeModules:i}=$e.useMemo(()=>zc({payload:r,fetchImplementation:t,getContext:n,createFromReadableStream:e}),[e,r,t,n]);$e.useEffect(()=>{mi()},[]),$e.useLayoutEffect(()=>{const c=window;c.__routerInitialized||(c.__routerInitialized=!0,c.__reactRouterDataRouter.initialize())},[]);let[l,s]=$e.useState(o.state.location);$e.useLayoutEffect(()=>o.subscribe(c=>{c.location!==l&&s(c.location)}),[o,l]),$e.useEffect(()=>{if(a==="lazy"||window.navigator?.connection?.saveData===!0)return;function c(h){let g=h.tagName==="FORM"?h.getAttribute("action"):h.getAttribute("href");if(!g)return;let p=h.tagName==="A"?h.pathname:new URL(g,window.location.origin).pathname;Cr.has(p)||pr.add(p)}async function d(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(c);let h=Array.from(pr.keys()).filter(g=>Cr.has(g)?(pr.delete(g),!1):!0);if(h.length!==0)try{await Qi(h,e,t)}catch(g){console.error("Failed to fetch manifest patches",g)}}let f=Xc(d,100);d(),new MutationObserver(()=>f()).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]})},[a,e,t]);const u={future:{v8_middleware:!1,unstable_subResourceIntegrity:!1},isSpaMode:!1,ssr:!0,criticalCss:"",manifest:{routes:{},version:"1",url:"",entry:{module:"",imports:[]}},routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"},routeModules:i};return $e.createElement(La.Provider,{value:!0},$e.createElement(Xi,{location:l},$e.createElement(Xe.Provider,{value:u},$e.createElement(Ts,{router:o,flushSync:Hc.flushSync}))))}function Ct(e,t){let r=t&&e.id in t.loaderData,a=t?.loaderData[e.id],n=t?.errors&&e.id in t.errors,o=t?.errors?.[e.id],i=e.clientLoader?.hydrate===!0||!e.hasLoader||e.hasComponent&&!e.element;A(window.__reactRouterRouteModules),Za(window.__reactRouterRouteModules,e);let l={id:e.id,element:e.element,errorElement:e.errorElement,handle:e.handle,hasErrorBoundary:e.hasErrorBoundary,hydrateFallbackElement:e.hydrateFallbackElement,index:e.index,loader:e.clientLoader?async(s,u)=>{try{return await e.clientLoader({...s,serverLoader:()=>{if(Vn("loader",e.id,e.hasLoader),i){if(r)return a;if(n)throw o}return lr(u)}})}finally{i=!1}}:(s,u)=>lr(u),action:e.clientAction?(s,u)=>e.clientAction({...s,serverAction:async()=>(Vn("action",e.id,e.hasLoader),await lr(u))}):e.hasAction?(s,u)=>lr(u):()=>{throw fr("action",e.id)},path:e.path,shouldRevalidate:e.shouldRevalidate,hasLoader:!0,hasClientLoader:e.clientLoader!=null,hasAction:e.hasAction,hasClientAction:e.clientAction!=null,hasShouldRevalidate:e.shouldRevalidate!=null};return typeof l.loader=="function"&&(l.loader.hydrate=Jt(e.id,e.clientLoader,e.hasLoader,!1)),l}function lr(e){return A(typeof e=="function","Invalid singleFetch parameter"),e()}function Vn(e,t,r){if(!r){let n=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t}")`;throw console.error(n),new ce(400,"Bad Request",new Error(n),!0)}}var pr=new Set,Vc=1e3,Cr=new Set,Yc=7680;function Jc(e){if(e.length===0)return null;if(e.length===1)return new URL(`${e[0]}.manifest`,window.location.origin);let r=(window.__reactRouterDataRouter.basename??"").replace(/^\/|\/$/g,""),a=new URL(`${r}/.manifest`,window.location.origin);return a.searchParams.set("paths",e.sort().join(",")),a}async function Qi(e,t,r,a){let n=Jc(e);if(n==null)return;if(n.toString().length>Yc){pr.clear();return}let o=await r(new Request(n,{signal:a}));if(!o.body||o.status<200||o.status>=300)throw new Error("Unable to fetch new route matches from the server");let i=await t(o.body,{temporaryReferences:void 0});if(i.type!=="manifest")throw new Error("Failed to patch routes");e.forEach(l=>Kc(l,Cr)),i.patches.forEach(l=>{window.__reactRouterDataRouter.patchRoutes(l.parentId??null,[Ct(l)])})}function Kc(e,t){if(t.size>=Vc){let r=t.values().next().value;t.delete(r)}t.add(e)}function Xc(e,t){let r;return(...a)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...a),t)}}function Yn(e){return new URL(e,window.location.href).origin!==window.location.origin}const It=await oe("react");var ba=new TextEncoder,Jn="</body></html>";function Kn(e){let t=new TextDecoder,r,a=new Promise(s=>r=s),n=!1,o=[],i=null;function l(s){for(let u of o){let c=t.decode(u,{stream:!0});c.endsWith(Jn)&&(c=c.slice(0,-Jn.length)),s.enqueue(ba.encode(c))}o.length=0,i=null}return new TransformStream({transform(s,u){o.push(s),!i&&(i=setTimeout(async()=>{l(u),n||(n=!0,Gc(e,u).catch(c=>u.error(c)).then(r))},0))},async flush(s){await a,i&&(clearTimeout(i),l(s)),s.enqueue(ba.encode("</body></html>"))}})}async function Gc(e,t){let r=new TextDecoder("utf-8",{fatal:!0});const a=e.getReader();try{let o;for(;(o=await a.read())&&!o.done;){const i=o.value;try{Zr(JSON.stringify(r.decode(i,{stream:!0})),t)}catch{let s=JSON.stringify(btoa(String.fromCodePoint(...i)));Zr(`Uint8Array.from(atob(${s}), m => m.codePointAt(0))`,t)}}}finally{a.releaseLock()}let n=r.decode();n.length&&Zr(JSON.stringify(n),t)}function Zr(e,t){t.enqueue(ba.encode(`<script>${Qc(`(self.__FLIGHT_DATA||=[]).push(${e})`)}<\/script>`))}function Qc(e){return e.replace(/<!--/g,"<\\!--").replace(/<\/(script)/gi,"</\\$1")}var Zc="use",Xn=It[Zc];function qc(e){if(Xn)return Xn(e);throw new Error("React Router v7 requires React 19+ for RSC features.")}async function Qd({request:e,fetchServer:t,createFromReadableStream:r,renderHTML:a,hydrate:n=!0}){const o=new URL(e.url),l=ed(o)||td(o)||e.headers.has("rsc-action-id"),s=await t(e);if(l||s.headers.get("React-Router-Resource")==="true")return s;if(!s.body)throw new Error("Missing body in server response");const u=s.clone();let c=null;n&&(c=s.clone());const d=s.body;let f,m=[];const h=()=>f?new ReadableStream({start(v){f.forEach(R=>v.enqueue(R)),m.push(v)}}):(f=[],d.pipeThrough(new TransformStream({transform(v,R){f.push(v),R.enqueue(v),m.forEach(x=>x.enqueue(v))},flush(){m.forEach(v=>v.close()),m=[]}})));let g=null;const p=()=>{const v=Promise.resolve(r(h()));return Object.defineProperties(v,{_deepestRenderedBoundaryId:{get(){return g},set(R){g=R}},formState:{get(){return v.then(R=>R.type==="render"?R.formState:void 0)}}})};try{if(!u.body)throw new Error("Failed to clone server response");const v=await r(u.body);if(s.status===Ua&&v.type==="redirect"){const b=new Headers(s.headers);return b.delete("Content-Encoding"),b.delete("Content-Length"),b.delete("Content-Type"),b.delete("X-Remix-Response"),b.set("Location",v.location),new Response(c?.body||"",{headers:b,status:v.status,statusText:s.statusText})}const R=await a(p),x=new Headers(s.headers);if(x.set("Content-Type","text/html; charset=utf-8"),!n)return new Response(R,{status:s.status,headers:x});if(!c?.body)throw new Error("Failed to clone server response");const S=R.pipeThrough(Kn(c.body));return new Response(S,{status:s.status,headers:x})}catch(v){if(v instanceof Response)return v;try{const R=ne(v)?v.status:500,x=await a(()=>{const M=Promise.resolve(r(h())).then(P=>Object.assign(P,{status:R,errors:g?{[g]:v}:{}}));return Object.defineProperties(M,{_deepestRenderedBoundaryId:{get(){return g},set(P){g=P}},formState:{get(){return M.then(P=>P.type==="render"?P.formState:void 0)}}})}),S=new Headers(s.headers);if(S.set("Content-Type","text/html"),!n)return new Response(x,{status:R,headers:S});if(!c?.body)throw new Error("Failed to clone server response");const b=x.pipeThrough(Kn(c.body));return new Response(b,{status:R,headers:S})}catch{}throw v}}function Zd({getPayload:e}){const t=e(),r=qc(t);if(r.type==="redirect")throw new Response(null,{status:r.status,headers:{Location:r.location}});if(r.type!=="render")return null;let a={...r.loaderData};for(const l of r.matches)Jt(l.id,l.clientLoader,l.hasLoader,!1)&&(l.hydrateFallbackElement||!l.hasLoader)&&delete a[l.id];const n={get _deepestRenderedBoundaryId(){return t._deepestRenderedBoundaryId??null},set _deepestRenderedBoundaryId(l){t._deepestRenderedBoundaryId=l},actionData:r.actionData,actionHeaders:{},basename:r.basename,errors:r.errors,loaderData:a,loaderHeaders:{},location:r.location,statusCode:200,matches:r.matches.map(l=>({params:l.params,pathname:l.pathname,pathnameBase:l.pathnameBase,route:{id:l.id,action:l.hasAction||!!l.clientAction,handle:l.handle,hasErrorBoundary:l.hasErrorBoundary,loader:l.hasLoader||!!l.clientLoader,index:l.index,path:l.path,shouldRevalidate:l.shouldRevalidate}}))},o=Di(r.matches.reduceRight((l,s)=>{const u={id:s.id,action:s.hasAction||!!s.clientAction,element:s.element,errorElement:s.errorElement,handle:s.handle,hasErrorBoundary:!!s.errorElement,hydrateFallbackElement:s.hydrateFallbackElement,index:s.index,loader:s.hasLoader||!!s.clientLoader,path:s.path,shouldRevalidate:s.shouldRevalidate};return l.length>0&&(u.children=l),[u]},[]),n),i={future:{v8_middleware:!1,unstable_subResourceIntegrity:!1},isSpaMode:!1,ssr:!0,criticalCss:"",manifest:{routes:{},version:"1",url:"",entry:{module:"",imports:[]}},routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"},routeModules:Uc(r)};return It.createElement(La.Provider,{value:!0},It.createElement(Xi,{location:r.location},It.createElement(Xe.Provider,{value:i},It.createElement(Ci,{context:n,router:o,hydrate:!1,nonce:r.nonce}))))}function ed(e){return e.pathname.endsWith(".rsc")}function td(e){return e.pathname.endsWith(".manifest")}function qd(){let e=new TextEncoder,t=null,r=new ReadableStream({start(a){if(typeof window>"u")return;let n=o=>{typeof o=="string"?a.enqueue(e.encode(o)):a.enqueue(o)};window.__FLIGHT_DATA||(window.__FLIGHT_DATA=[]),window.__FLIGHT_DATA.forEach(n),window.__FLIGHT_DATA.push=o=>(n(o),0),t=a}});return typeof document<"u"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{t?.close()}):t?.close(),r}function rd(e){if(!e)return null;let t=Object.entries(e),r={};for(let[a,n]of t)if(n&&n.__type==="RouteErrorResponse")r[a]=new ce(n.status,n.statusText,n.data,n.internal===!0);else if(n&&n.__type==="Error"){if(n.__subType){let o=window[n.__subType];if(typeof o=="function")try{let i=new o(n.message);i.stack=n.stack,r[a]=i}catch{}}if(r[a]==null){let o=new Error(n.message);o.stack=n.stack,r[a]=o}}else r[a]=n;return r}const ad=await oe("react"),nd=await oe("react-dom");function od(e){return ad.createElement(Ao,{flushSync:nd.flushSync,...e})}const be=await oe("react");var F=null,Nt=null;function id(){if(!F&&window.__reactRouterContext&&window.__reactRouterManifest&&window.__reactRouterRouteModules){if(window.__reactRouterManifest.sri===!0){const e=document.querySelector("script[rr-importmap]");if(e?.textContent)try{window.__reactRouterManifest.sri=JSON.parse(e.textContent).integrity}catch(t){console.error("Failed to parse import map",t)}}F={context:window.__reactRouterContext,manifest:window.__reactRouterManifest,routeModules:window.__reactRouterRouteModules,stateDecodingPromise:void 0,router:void 0,routerInitialized:!1}}}function ld({getContext:e}){if(id(),!F)throw new Error("You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`");let t=F;if(!F.stateDecodingPromise){let o=F.context.stream;A(o,"No stream found for single fetch decoding"),F.context.stream=void 0,F.stateDecodingPromise=za(o,window).then(i=>{F.context.state=i.value,t.stateDecodingPromise.value=!0}).catch(i=>{t.stateDecodingPromise.error=i})}if(F.stateDecodingPromise.error)throw F.stateDecodingPromise.error;if(!F.stateDecodingPromise.value)throw F.stateDecodingPromise;let r=Fr(F.manifest.routes,F.routeModules,F.context.state,F.context.ssr,F.context.isSpaMode),a;if(F.context.isSpaMode){let{loaderData:o}=F.context.state;F.manifest.routes.root?.hasLoader&&o&&"root"in o&&(a={loaderData:{root:o.root}})}else a=Ki({state:F.context.state,routes:r,getRouteInfo:o=>({clientLoader:F.routeModules[o]?.clientLoader,hasLoader:F.manifest.routes[o]?.hasLoader===!0,hasHydrateFallback:F.routeModules[o]?.HydrateFallback!=null}),location:window.location,basename:window.__reactRouterContext?.basename,isSpaMode:F.context.isSpaMode}),a&&a.errors&&(a.errors=rd(a.errors));let n=Wt({routes:r,history:xr(),basename:F.context.basename,getContext:e,hydrationData:a,hydrationRouteProperties:kr,mapRouteProperties:Lt,future:{middleware:F.context.future.v8_middleware},dataStrategy:ou(()=>n,F.manifest,F.routeModules,F.context.ssr,F.context.basename),patchRoutesOnNavigation:Pu(F.manifest,F.routeModules,F.context.ssr,F.context.routeDiscovery,F.context.isSpaMode,F.context.basename)});return F.router=n,n.state.initialized&&(F.routerInitialized=!0,n.initialize()),n.createRoutesForHMR=Eu,window.__reactRouterDataRouter=n,n}function ef(e){Nt||(Nt=ld({getContext:e.getContext}));let[t,r]=be.useState(void 0);be.useEffect(()=>{},[]),be.useEffect(()=>{},[t]);let[a,n]=be.useState(Nt.state.location);return be.useLayoutEffect(()=>{F&&F.router&&!F.routerInitialized&&(F.routerInitialized=!0,F.router.initialize())},[]),be.useLayoutEffect(()=>{if(F&&F.router)return F.router.subscribe(o=>{o.location!==a&&n(o.location)})},[a]),A(F,"ssrInfo unavailable for HydratedRouter"),Lu(Nt,F.manifest,F.routeModules,F.context.ssr,F.context.routeDiscovery,F.context.isSpaMode),be.createElement(be.Fragment,null,be.createElement(Xe.Provider,{value:{manifest:F.manifest,routeModules:F.routeModules,future:F.context.future,criticalCss:t,ssr:F.context.ssr,isSpaMode:F.context.isSpaMode,routeDiscovery:F.context.routeDiscovery}},be.createElement(pi,{location:a},be.createElement(od,{router:Nt,unstable_onError:e.unstable_onError}))),be.createElement(be.Fragment,null))}export{Ed as Await,Td as BrowserRouter,Ei as Form,kd as HashRouter,ef as HydratedRouter,pt as IDLE_BLOCKER,Sa as IDLE_FETCHER,ur as IDLE_NAVIGATION,Ri as Link,Pd as Links,wd as MemoryRouter,Ld as Meta,Uu as NavLink,gd as Navigate,wl as NavigationType,As as Outlet,hi as PrefetchPageLinks,Fs as Route,it as Router,Ye as RouterContextProvider,od as RouterProvider,Rd as Routes,Ou as Scripts,ju as ScrollRestoration,Ud as ServerRouter,Id as StaticRouter,Ci as StaticRouterProvider,cd as UNSAFE_AwaitContextProvider,Ue as UNSAFE_DataRouterContext,ot as UNSAFE_DataRouterStateContext,ce as UNSAFE_ErrorResponseImpl,Vt as UNSAFE_FetchersContext,Xe as UNSAFE_FrameworkContext,Dt as UNSAFE_LocationContext,Ce as UNSAFE_NavigationContext,Kd as UNSAFE_RSCDefaultRootErrorBoundary,pi as UNSAFE_RemixErrorBoundary,xe as UNSAFE_RouteContext,Cc as UNSAFE_ServerMode,nt as UNSAFE_SingleFetchRedirectSymbol,Mr as UNSAFE_ViewTransitionContext,Cd as UNSAFE_WithComponentProps,Dd as UNSAFE_WithErrorBoundaryProps,xd as UNSAFE_WithHydrateFallbackProps,xr as UNSAFE_createBrowserHistory,Fr as UNSAFE_createClientRoutes,Eu as UNSAFE_createClientRoutesWithHMRRevalidationOptOut,Wt as UNSAFE_createRouter,za as UNSAFE_decodeViaTurboStream,rd as UNSAFE_deserializeErrors,Ki as UNSAFE_getHydrationData,Pu as UNSAFE_getPatchRoutesOnNavigationFunction,ou as UNSAFE_getTurboStreamSingleFetchDataStrategy,kr as UNSAFE_hydrationRouteProperties,A as UNSAFE_invariant,Lt as UNSAFE_mapRouteProperties,Jt as UNSAFE_shouldHydrateRouteLoader,Lu as UNSAFE_useFogOFWarDiscovery,Yu as UNSAFE_useScrollRestoration,$s as UNSAFE_withComponentProps,Hs as UNSAFE_withErrorBoundaryProps,Is as UNSAFE_withHydrateFallbackProps,_d as createBrowserRouter,Rl as createContext,$i as createCookie,Vd as createCookieSessionStorage,Md as createHashRouter,Ls as createMemoryRouter,Yd as createMemorySessionStorage,Ee as createPath,Bd as createRequestHandler,wr as createRoutesFromChildren,bd as createRoutesFromElements,jd as createRoutesStub,oa as createSearchParams,Yi as createSession,Ic as createSessionStorage,Hd as createStaticHandler,Di as createStaticRouter,Bl as data,ud as generatePath,Jd as href,Ii as isCookie,ne as isRouteErrorResponse,Wd as isSession,Ht as matchPath,Se as matchRoutes,Te as parsePath,Lr as redirect,Wl as redirectDocument,Sd as renderMatches,Vl as replace,$l as resolvePath,Hu as unstable_HistoryRouter,Gd as unstable_RSCHydratedRouter,Zd as unstable_RSCStaticRouter,Xd as unstable_createCallServer,qd as unstable_getRSCStream,Qd as unstable_routeRSCServerRequest,zd as unstable_setDevServerHooks,$d as unstable_usePrompt,vd as unstable_useRoute,$a as useActionData,yd as useAsyncError,Cs as useAsyncValue,Nd as useBeforeUnload,Ds as useBlocker,Fd as useFetcher,Od as useFetchers,Vu as useFormAction,hs as useHref,yt as useInRouterContext,zu as useLinkClickHandler,Na as useLoaderData,De as useLocation,fd as useMatch,Oa as useMatches,Ma as useNavigate,Ss as useNavigation,dd as useNavigationType,ps as useOutlet,hd as useOutletContext,Ta as useParams,Yt as useResolvedPath,md as useRevalidator,Tr as useRouteError,pd as useRouteLoaderData,ys as useRoutes,Ad as useSearchParams,Si as useSubmit,Ku as useViewTransitionState};
|