{"version":3,"file":"static/js/main.35566cf3.js","mappings":"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","sources":["../node_modules/react-idle-timer/dist/index.esm.js","components/IdleSession/IdleSession.tsx","components/Loader/OvalLoader.tsx","models/path.model.ts","services/storage.service.ts","store/context/siteContext.tsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/void-elements/index.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/html-parse-stringify/src/parse-tag.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/html-parse-stringify/src/index.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/TransWithoutContext.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-i18next/dist/es/useTranslation.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","translations/i18n.ts","utils/urlUtils.ts","routing/PrivateRoute.tsx","services/external-params.service.ts","App.tsx","index.tsx"],"sourcesContent":["var Et=Object.create;var Ye=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var Lt=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var Pt=(n,e,r,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of gt(e))!wt.call(n,o)&&o!==r&&Ye(n,o,{get:()=>e[o],enumerable:!(i=bt(e,o))||i.enumerable});return n};var St=(n,e,r)=>(r=n!=null?Et(yt(n)):{},Pt(e||!n||!n.__esModule?Ye(r,\"default\",{value:n,enumerable:!0}):r,n));var je=Lt((he,Je)=>{(function(n,e){typeof he==\"object\"&&typeof Je<\"u\"?e(he):typeof define==\"function\"&&define.amd?define([\"exports\"],e):(n=typeof globalThis<\"u\"?globalThis:n||self,e(n.fastUniqueNumbers={}))})(he,function(n){\"use strict\";var e=function(l){return function(p){var f=l(p);return p.add(f),f}},r=function(l){return function(p,f){return l.set(p,f),f}},i=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=o*2,g=function(l,p){return function(f){var B=p.get(f),y=B===void 0?f.size:Bi)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;f.has(y);)y=Math.floor(Math.random()*i);return l(f,y)}},O=new WeakMap,W=r(O),m=g(W,O),a=e(m);n.addUniqueNumber=a,n.generateUniqueNumber=m})});import{Component as Mt,forwardRef as Rt}from\"react\";import{jsx as At}from\"react/jsx-runtime\";function kt(n){return Rt(function(r,i){let o={...r},u=se(o);return typeof i==\"function\"?i(u):i&&(i.current=u),At(n,{...r,...u})})}var Re=class extends Mt{},ke=class extends Re{constructor(e){super(e),this.onPresenceChange&&e.setOnPresenceChange(this.onPresenceChange.bind(this)),this.onPrompt&&e.setOnPrompt(this.onPrompt.bind(this)),this.onIdle&&e.setOnIdle(this.onIdle.bind(this)),this.onActive&&e.setOnActive(this.onActive.bind(this)),this.onAction&&e.setOnAction(this.onAction.bind(this)),this.onMessage&&e.setOnMessage(this.onMessage.bind(this))}};import{useEffect as b,useRef as c,useCallback as T,useMemo as Dt}from\"react\";var oe=St(je());var Xe=n=>n.method!==void 0&&n.method===\"call\";var ze=n=>n.error===null&&typeof n.id==\"number\";var Ke=n=>{let e=new Map([[0,()=>{}]]),r=new Map([[0,()=>{}]]),i=new Map,o=new Worker(n);return o.addEventListener(\"message\",({data:m})=>{if(Xe(m)){let{params:{timerId:a,timerType:d}}=m;if(d===\"interval\"){let l=e.get(a);if(typeof l==\"number\"){let p=i.get(l);if(p===void 0||p.timerId!==a||p.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof l<\"u\")l();else throw new Error(\"The timer is in an undefined state.\")}else if(d===\"timeout\"){let l=r.get(a);if(typeof l==\"number\"){let p=i.get(l);if(p===void 0||p.timerId!==a||p.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof l<\"u\")l(),r.delete(a);else throw new Error(\"The timer is in an undefined state.\")}}else if(ze(m)){let{id:a}=m,d=i.get(a);if(d===void 0)throw new Error(\"The timer is in an undefined state.\");let{timerId:l,timerType:p}=d;i.delete(a),p===\"interval\"?e.delete(l):r.delete(l)}else{let{error:{message:a}}=m;throw new Error(a)}}),{clearInterval:m=>{let a=(0,oe.generateUniqueNumber)(i);i.set(a,{timerId:m,timerType:\"interval\"}),e.set(m,a),o.postMessage({id:a,method:\"clear\",params:{timerId:m,timerType:\"interval\"}})},clearTimeout:m=>{let a=(0,oe.generateUniqueNumber)(i);i.set(a,{timerId:m,timerType:\"timeout\"}),r.set(m,a),o.postMessage({id:a,method:\"clear\",params:{timerId:m,timerType:\"timeout\"}})},setInterval:(m,a)=>{let d=(0,oe.generateUniqueNumber)(e);return e.set(d,()=>{m(),typeof e.get(d)==\"function\"&&o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"interval\"}})}),o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"interval\"}}),d},setTimeout:(m,a)=>{let d=(0,oe.generateUniqueNumber)(r);return r.set(d,m),o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"timeout\"}}),d}}};var Qe=(n,e)=>{let r=null;return()=>{if(r!==null)return r;let i=new Blob([e],{type:\"application/javascript; charset=utf-8\"}),o=URL.createObjectURL(i);return r=n(o),setTimeout(()=>URL.revokeObjectURL(o)),r}};var Ze=`(()=>{\"use strict\";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:\"call\",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener(\"message\",(i=>{let{data:s}=i;try{if(\"clear\"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if(\"interval\"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id \"'.concat(t,'\".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if(\"timeout\"!==i)throw new Error('The given type \"'.concat(i,'\" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id \"'.concat(e,'\".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if(\"set\"!==s.method)throw new Error('The given method \"'.concat(s.method,'\" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if(\"interval\"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,\"interval\"))})(i,a,n);else{if(\"timeout\"!==d)throw new Error('The given type \"'.concat(d,'\" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,\"timeout\"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`;var ve=Qe(Ke,Ze),et=n=>ve().clearInterval(n),tt=n=>ve().clearTimeout(n),rt=(n,e)=>ve().setInterval(n,e),nt=(n,e)=>ve().setTimeout(n,e);var M=(typeof window>\"u\"?\"undefined\":typeof window)==\"object\";var I={setTimeout:M?setTimeout.bind(window):setTimeout,clearTimeout:M?clearTimeout.bind(window):clearTimeout,setInterval:M?setInterval.bind(window):setInterval,clearInterval:M?clearInterval.bind(window):clearInterval},ae={setTimeout:nt,clearTimeout:tt,setInterval:rt,clearInterval:et};function Ot(){I.setTimeout=setTimeout,I.clearTimeout=clearTimeout,I.setInterval=setInterval,I.clearInterval=clearInterval,ae.setTimeout=setTimeout,ae.clearTimeout=clearTimeout,ae.setInterval=setInterval,ae.clearInterval=clearInterval}function it(n){I.setTimeout=n.setTimeout,I.clearTimeout=n.clearTimeout,I.setInterval=n.setInterval,I.clearInterval=n.clearInterval}var Q={},Ae=class{name;closed=!1;mc=new MessageChannel;constructor(e){this.name=e,Q[e]=Q[e]||[],Q[e].push(this),this.mc.port1.start(),this.mc.port2.start(),this.onStorage=this.onStorage.bind(this),window.addEventListener(\"storage\",this.onStorage)}onStorage(e){if(e.storageArea!==window.localStorage||e.key.substring(0,this.name.length)!==this.name||e.newValue===null)return;let r=JSON.parse(e.newValue);this.mc.port2.postMessage(r)}postMessage(e){if(this.closed)throw new Error(\"InvalidStateError\");let r=JSON.stringify(e),i=`${this.name}:${String(Date.now())}${String(Math.random())}`;window.localStorage.setItem(i,r),I.setTimeout(()=>{window.localStorage.removeItem(i)},500),Q[this.name].forEach(o=>{o!==this&&o.mc.port2.postMessage(JSON.parse(r))})}close(){if(this.closed)return;this.closed=!0,this.mc.port1.close(),this.mc.port2.close(),window.removeEventListener(\"storage\",this.onStorage);let e=Q[this.name].indexOf(this);Q[this.name].splice(e,1)}get onmessage(){return this.mc.port1.onmessage}set onmessage(e){this.mc.port1.onmessage=e}get onmessageerror(){return this.mc.port1.onmessageerror}set onmessageerror(e){this.mc.port1.onmessageerror=e}addEventListener(e,r){return this.mc.port1.addEventListener(e,r)}removeEventListener(e,r){return this.mc.port1.removeEventListener(e,r)}dispatchEvent(e){return this.mc.port1.dispatchEvent(e)}},st=typeof window>\"u\"?void 0:typeof window.BroadcastChannel==\"function\"?window.BroadcastChannel:Ae;function ot(n=0){return new Promise(e=>I.setTimeout(e,n))}function Te(){return Math.random().toString(36).substring(2)}var Ie=class{options;channel;token=Te();isLeader=!1;isDead=!1;isApplying=!1;reApply=!1;intervals=[];listeners=[];deferred;constructor(e,r){this.channel=e,this.options=r,this.apply=this.apply.bind(this),this.awaitLeadership=this.awaitLeadership.bind(this),this.sendAction=this.sendAction.bind(this)}async apply(){if(this.isLeader||this.isDead)return!1;if(this.isApplying)return this.reApply=!0,!1;this.isApplying=!0;let e=!1,r=i=>{let{token:o,action:u}=i.data;o!==this.token&&(u===0&&o>this.token&&(e=!0),u===1&&(e=!0))};this.channel.addEventListener(\"message\",r);try{return this.sendAction(0),await ot(this.options.responseTime),this.channel.removeEventListener(\"message\",r),this.isApplying=!1,e?this.reApply?this.apply():!1:(this.assumeLead(),!0)}catch{return!1}}awaitLeadership(){if(this.isLeader)return Promise.resolve();let e=!1,r=null;return new Promise(i=>{let o=()=>{if(e)return;e=!0;try{I.clearInterval(r)}catch{}let g=this.intervals.indexOf(r);g>=0&&this.intervals.splice(g,1),this.channel.removeEventListener(\"message\",u),i()};r=I.setInterval(()=>{this.apply().then(()=>{this.isLeader&&o()})},this.options.fallbackInterval),this.intervals.push(r);let u=g=>{let{action:O}=g.data;O===2&&this.apply().then(()=>{this.isLeader&&o()})};this.channel.addEventListener(\"message\",u)})}sendAction(e){this.channel.postMessage({action:e,token:this.token})}assumeLead(){this.isLeader=!0;let e=r=>{let{action:i}=r.data;i===0&&this.sendAction(1)};return this.channel.addEventListener(\"message\",e),this.listeners.push(e),this.sendAction(1)}waitForLeadership(){return this.deferred?this.deferred:(this.deferred=this.awaitLeadership(),this.deferred)}close(){if(!this.isDead){this.isDead=!0,this.isLeader=!1,this.sendAction(2);try{this.listeners.forEach(e=>this.channel.removeEventListener(\"message\",e)),this.intervals.forEach(e=>I.clearInterval(e))}catch{}}}};var Ee=class{channel;options;elector;token=Te();registry=new Map;allIdle=!1;isLastActive=!1;constructor(e){let{channelName:r}=e;if(this.options=e,this.channel=new st(r),this.registry.set(this.token,1),e.leaderElection){let i={fallbackInterval:2e3,responseTime:100};this.elector=new Ie(this.channel,i),this.elector.waitForLeadership()}this.channel.addEventListener(\"message\",i=>{let{action:o,token:u,data:g}=i.data;switch(o){case 3:this.registry.set(u,2);break;case 4:this.registry.delete(u);break;case 5:this.idle(u);break;case 6:this.active(u);break;case 7:this.prompt(u);break;case 8:this.start(u);break;case 9:this.reset(u);break;case 10:this.activate(u);break;case 11:this.pause(u);break;case 12:this.resume(u);break;case 13:this.options.onMessage(g);break}}),this.send(3)}get isLeader(){if(!this.elector)throw new Error('\\u274C Leader election is not enabled. To Enable it set the \"leaderElection\" property to true.');return this.elector.isLeader}prompt(e=this.token){this.registry.set(e,0);let r=[...this.registry.values()].every(i=>i===0);e===this.token&&this.send(7),r&&this.options.onPrompt()}idle(e=this.token){this.registry.set(e,2);let r=[...this.registry.values()].every(i=>i===2);e===this.token&&this.send(5),!this.allIdle&&r&&(this.allIdle=!0,this.options.onIdle())}active(e=this.token){this.allIdle=!1,this.registry.set(e,1);let r=[...this.registry.values()].some(i=>i===1);e===this.token&&this.send(6),r&&this.options.onActive(),this.isLastActive=e===this.token}start(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(8):this.options.start(!0),this.isLastActive=e===this.token}reset(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(9):this.options.reset(!0),this.isLastActive=e===this.token}activate(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(10):this.options.activate(!0),this.isLastActive=e===this.token}pause(e=this.token){e===this.token?this.send(11):this.options.pause(!0)}resume(e=this.token){e===this.token?this.send(12):this.options.resume(!0)}message(e){try{this.channel.postMessage({action:13,token:this.token,data:e})}catch{}}send(e){try{this.channel.postMessage({action:e,token:this.token})}catch{}}close(){this.options.leaderElection&&this.elector.close(),this.send(4),this.channel.close()}};var at=M?document:null,xe=[\"mousemove\",\"keydown\",\"wheel\",\"DOMMouseScroll\",\"mousewheel\",\"mousedown\",\"touchstart\",\"touchmove\",\"MSPointerDown\",\"MSPointerMove\",\"visibilitychange\",\"focus\"];function ct(n,e){let r;function i(...o){r&&clearTimeout(r),r=setTimeout(()=>{n(...o),r=null},e)}return i.cancel=function(){clearTimeout(r)},i}function be(n,e){let r=0;return function(...i){let o=new Date().getTime();if(!(o-rDate.now();var Z=2147483647;function se({timeout:n=1e3*60*20,promptTimeout:e=0,promptBeforeIdle:r=0,element:i=at,events:o=xe,timers:u=void 0,immediateEvents:g=[],onPresenceChange:O=()=>{},onPrompt:W=()=>{},onIdle:m=()=>{},onActive:a=()=>{},onAction:d=()=>{},onMessage:l=()=>{},debounce:p=0,throttle:f=0,eventsThrottle:B=200,startOnMount:y=!0,startManually:D=!1,stopOnIdle:ce=!1,crossTab:j=!1,name:Oe=\"idle-timer\",syncTimers:ee=0,leaderElection:Ce=!1,disabled:C=!1}={}){let De=c(v()),ue=c(v()),w=c(null),R=c(null),F=c(0),te=c(0),N=c(0),S=c(0),h=c(!1),E=c(!1),H=c(!1),_=c(!0),re=c(!1),U=c(null),s=c(null),k=c(n),G=c(0);b(()=>{if(e&&console.warn(\"\\u26A0\\uFE0F IdleTimer -- The `promptTimeout` property has been deprecated in favor of `promptBeforeIdle`. It will be removed in the next major release.\"),r&&e)throw new Error(\"\\u274C Both promptTimeout and promptBeforeIdle can not be set. The promptTimeout property will be deprecated in a future version.\");if(n>=Z)throw new Error(`\\u274C The value for the timeout property must fit in a 32 bit signed integer, ${Z}.`);if(e>=Z)throw new Error(`\\u274C The value for the promptTimeout property must fit in a 32 bit signed integer, ${Z}.`);if(r>=Z)throw new Error(`\\u274C The value for the promptBeforeIdle property must fit in a 32 bit signed integer, ${Z}.`);if(r>=n)throw new Error(`\\u274C The value for the promptBeforeIdle property must be less than the timeout property, ${n}.`);if(r?(k.current=n-r,G.current=r):(k.current=n,G.current=e),!_.current){if(D||C)return;h.current&&(X.current(null,L),s.current&&s.current.active()),J()}},[n,e,r,D,C]);let Ne=c(ce);b(()=>{Ne.current=ce},[ce]);let He=c(g),ne=c(i),ye=c([...new Set([...o,...g]).values()]),A=c(C);b(()=>{A.current=C,!_.current&&(C?fe():D||J())},[C]);let ie=c(O);b(()=>{ie.current=O},[O]);let le=c(W);b(()=>{le.current=W},[W]);let me=c(m);b(()=>{me.current=m},[m]);let X=c(a);b(()=>{X.current=a},[a]);let de=c(d);b(()=>{de.current=d},[d]);let z=c(l);b(()=>{z.current=l},[l]);let q=Dt(()=>{let t=(P,K)=>de.current(P,K);return p>0?ct(t,p):f>0?be(t,f):t},[f,p]),_e=c();b(()=>{j&&ee&&(_e.current=be(()=>{s.current.active()},ee))},[j,ee]);let x=()=>{U.current!==null&&(I.clearTimeout(U.current),U.current=null)},$=(t,P=!0)=>{x(),U.current=I.setTimeout(Le,t||k.current),P&&(R.current=v())},Ue=t=>{!E.current&&!h.current&&(le.current(t,L),ie.current({type:\"active\",prompted:!0},L)),S.current=0,N.current=v(),E.current=!0,$(G.current,!1)},Fe=()=>{x(),h.current||(me.current(null,L),ie.current({type:\"idle\"},L)),h.current=!0,w.current=v(),Ne.current?Y():E.current&&(N.current=0,E.current=!1)},we=t=>{x(),(h.current||E.current)&&(X.current(t,L),ie.current({type:\"active\",prompted:!1},L)),E.current=!1,N.current=0,h.current=!1,F.current+=v()-w.current,te.current+=v()-w.current,V(),$()},Le=t=>{if(!h.current){q.cancel&&q.cancel();let K=v()-R.current;if(!(k.current+G.current0&&!E.current){s.current?s.current.prompt():Ue(t);return}s.current?s.current.idle():Fe();return}s.current?s.current.active():we(t)},Pe=t=>{if(!y&&!R.current&&(R.current=v(),X.current(null,L)),q(t,L),E.current)return;if(x(),!h.current&&He.current.includes(t.type)){Le(t);return}let P=v()-R.current;if(h.current&&!ce||!h.current&&P>=k.current){Le(t);return}H.current=!1,S.current=0,N.current=0,$(),j&&ee&&_e.current()},pe=c(Pe);b(()=>{let t=re.current;t&&Y(),B>0?pe.current=be(Pe,B):pe.current=Pe,t&&V()},[B,f,p,de,j,ee]);let V=()=>{M&&ne.current&&(re.current||(ye.current.forEach(t=>{ne.current.addEventListener(t,pe.current,{capture:!0,passive:!0})}),re.current=!0))},Y=(t=!1)=>{M&&ne.current&&(re.current||t)&&(ye.current.forEach(P=>{ne.current.removeEventListener(P,pe.current,{capture:!0})}),re.current=!1)},J=T(t=>A.current?!1:(x(),V(),h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,s.current&&!t&&s.current.start(),$(),!0),[U,h,A,k,s]),Se=T(t=>A.current?!1:(x(),V(),ue.current=v(),F.current+=v()-w.current,te.current+=v()-w.current,F.current=0,h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,s.current&&!t&&s.current.reset(),D||$(),!0),[U,h,k,D,A,s]),Ve=T(t=>A.current?!1:(x(),V(),(h.current||E.current)&&we(),h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,ue.current=v(),s.current&&!t&&s.current.activate(),$(),!0),[U,h,E,A,k,s]),fe=T((t=!1)=>A.current||H.current?!1:(S.current=We(),H.current=!0,Y(),x(),s.current&&!t&&s.current.pause(),!0),[U,A,s]),Me=T((t=!1)=>A.current||!H.current?!1:(H.current=!1,E.current||V(),h.current||$(S.current),N.current&&(N.current=v()),s.current&&!t&&s.current.resume(),!0),[U,k,A,S,s]),ut=T((t,P)=>(s.current?(P&&z.current(t,L),s.current.message(t)):P&&z.current(t,L),!0),[l]),lt=T(()=>h.current,[h]),mt=T(()=>E.current,[E]),dt=T(()=>s.current?s.current.isLeader:null,[s]),pt=T(()=>s.current?s.current.isLastActive:null,[s]),ft=T(()=>s.current?s.current.token:null,[s]),We=T(()=>{if(H.current)return S.current;let t=S.current?S.current:G.current+k.current,P=R.current?v()-R.current:0,K=Math.floor(t-P);return K<0?0:Math.abs(K)},[k,G,E,S,R]),Be=T(()=>Math.round(v()-ue.current),[ue]),Ge=T(()=>Math.round(v()-De.current),[De]),ht=T(()=>w.current?new Date(w.current):null,[w]),vt=T(()=>R.current?new Date(R.current):null,[R]),qe=T(()=>h.current?Math.round(v()-w.current+F.current):Math.round(F.current),[w,F]),$e=T(()=>h.current?Math.round(v()-w.current+te.current):Math.round(te.current),[w,te]),Tt=T(()=>{let t=Math.round(Be()-qe());return t>=0?t:0},[w,F]),It=T(()=>{let t=Math.round(Ge()-$e());return t>=0?t:0},[w,F]);b(()=>{if(p>0&&f>0)throw new Error(\"\\u274C onAction can either be throttled or debounced, not both.\");u&&it(u);let t=()=>{s.current&&s.current.close(),q.cancel&&q.cancel(),x(),Y(!0)};return M&&window.addEventListener(\"beforeunload\",t),()=>{M&&window.removeEventListener(\"beforeunload\",t),s.current&&s.current.close(),q.cancel&&q.cancel(),x(),Y(!0)}},[]),b(()=>{s.current&&s.current.close(),j?s.current=new Ee({channelName:Oe,leaderElection:Ce,onPrompt:()=>{Ue()},onIdle:()=>{Fe()},onActive:()=>{we()},onMessage:t=>{z.current(t,L)},start:J,reset:Se,activate:Ve,pause:fe,resume:Me}):s.current=null},[j,Oe,Ce,le,me,X,z,J,Se,fe,Me]),b(()=>{_.current||(x(),Y(!0)),!(D||C)&&(y?J():V())},[D,y,C,_]),b(()=>{if(!_.current){let t=[...new Set([...o,...g]).values()];if(Y(),ye.current=t,ne.current=i,He.current=g,D||C)return;y?J():V()}},[i,JSON.stringify(o),JSON.stringify(g),_,C,D,y]),b(()=>{_.current&&(_.current=!1)},[_]);let L={message:ut,start:J,reset:Se,activate:Ve,pause:fe,resume:Me,isIdle:lt,isPrompted:mt,isLeader:dt,isLastActiveTab:pt,getTabId:ft,getRemainingTime:We,getElapsedTime:Be,getTotalElapsedTime:Ge,getLastIdleTime:ht,getLastActiveTime:vt,getIdleTime:qe,getTotalIdleTime:$e,getActiveTime:Tt,getTotalActiveTime:It,setOnPresenceChange:t=>{O=t,ie.current=t},setOnPrompt:t=>{W=t,le.current=t},setOnIdle:t=>{m=t,me.current=t},setOnActive:t=>{a=t,X.current=t},setOnAction:t=>{d=t,de.current=t},setOnMessage:t=>{l=t,z.current=t}};return L}import{createContext as Nt,useContext as Ht}from\"react\";import{jsx as Vt}from\"react/jsx-runtime\";var ge=Nt(null);function _t(n){let e=se(n);return Vt(ge.Provider,{value:e,children:n.children})}var Ut=ge.Consumer;function Ft(){return Ht(ge)}export{xe as DEFAULT_EVENTS,ke as IdleTimerComponent,Ut as IdleTimerConsumer,ge as IdleTimerContext,_t as IdleTimerProvider,Ot as createMocks,se as useIdleTimer,Ft as useIdleTimerContext,kt as withIdleTimer,ae as workerTimers};\n","import React, { useEffect, useContext } from 'react';\r\nimport { useIdleTimer } from 'react-idle-timer';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Path } from '../../models/path.model';\r\nimport { SiteContext } from '../../store/context/siteContext';\r\nimport type { SiteSettings } from '../../store/context/siteContext';\r\n\r\nconst defaultTimeout = 1000 * 60 * 3;\r\nconst promptBeforeIdle = 1000 * 30;\r\n\r\nexport const IdleSession: React.FC = () => {\r\n const { idleTimeout, isActivate, onLogout, onActivate } = useContext(SiteContext) as SiteSettings;\r\n const navigate = useNavigate();\r\n\r\n const timeout = idleTimeout ?? defaultTimeout;\r\n\r\n const { activate } = useIdleTimer({\r\n onIdle,\r\n startOnMount: !!idleTimeout,\r\n disabled: !idleTimeout,\r\n timeout: timeout,\r\n promptBeforeIdle: promptBeforeIdle,\r\n debounce: 500\r\n });\r\n\r\n useEffect(() => {\r\n if (isActivate) {\r\n activate();\r\n onActivate(false);\r\n }\r\n }, [isActivate]);\r\n\r\n function onIdle() {\r\n onLogout();\r\n navigate(Path.LOGIN);\r\n }\r\n\r\n return <>;\r\n};","import React from 'react';\r\nimport './OvalLoader.scss';\r\n\r\ninterface Props {\r\n className?: string;\r\n isLoading?: boolean;\r\n}\r\n\r\nconst OvalLoader: React.FC = ({ className, isLoading }) => {\r\n const html = document.getElementsByTagName('html')[0];\r\n\r\n if (isLoading) {\r\n html.classList.add('lock-scroll');\r\n } else {\r\n html.classList.remove('lock-scroll');\r\n }\r\n\r\n return (\r\n <>\r\n {isLoading && (\r\n
\r\n
\r\n loading...\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default OvalLoader;\r\n","export enum Path {\r\n HOME = '/',\r\n LOGIN = '/login',\r\n LOCATE_TICKETS = '/locate_tickets',\r\n TICKETS_LIST = '/tickets_list',\r\n ACCESSIBILITY = '/accessibility',\r\n FAQ = '/questions',\r\n LEGAL = '/legal',\r\n TERMS = '/terms',\r\n ERROR500 = '/500',\r\n ERROR404 = '*',\r\n}","enum StorageKeys {\r\n RefreshToken = 'refresh_token',\r\n MemberToken = 'member_token',\r\n ExternalMemberToken = 'external_member_token',\r\n ExternalToken = 'token',\r\n AppId = 'app_id',\r\n LanguageId = 'language_id',\r\n SidParam = 'sid',\r\n LoggedinUser = 'loggedinUser',\r\n QueryParams = 'queryParams'\r\n}\r\n\r\nfunction getRefreshToken() {\r\n return getFromSessionStorage(StorageKeys.RefreshToken);\r\n}\r\n\r\nfunction setRefreshToken(value: string) {\r\n return setToSessionStorage(StorageKeys.RefreshToken, value);\r\n}\r\n\r\nfunction removeRefreshToken() {\r\n return removeFromSessionStorage(StorageKeys.RefreshToken);\r\n}\r\n\r\nfunction getMemberToken() {\r\n return getFromLocalStorage(StorageKeys.MemberToken);\r\n}\r\n\r\nfunction setMemberToken(value: string) {\r\n return setToLocalStorage(StorageKeys.MemberToken, value);\r\n}\r\n\r\nfunction getExternalMemberToken() {\r\n return getFromLocalStorage(StorageKeys.ExternalMemberToken);\r\n}\r\n\r\nfunction setExternalMemberToken(value: string) {\r\n return setToLocalStorage(StorageKeys.ExternalMemberToken, value);\r\n}\r\n\r\nfunction getAppId() {\r\n return getFromLocalStorage(StorageKeys.AppId);\r\n}\r\n\r\nfunction setAppId(value: string) {\r\n setToLocalStorage(StorageKeys.AppId, value);\r\n}\r\n\r\nfunction getUser() {\r\n return getFromSessionStorage(StorageKeys.LoggedinUser);\r\n}\r\n\r\nfunction setUser(value: T) {\r\n setToSessionStorage(StorageKeys.LoggedinUser, value);\r\n}\r\n\r\nfunction removeUser() {\r\n removeFromSessionStorage(StorageKeys.LoggedinUser);\r\n}\r\n\r\nfunction getQueryParams() {\r\n return getFromSessionStorage(StorageKeys.QueryParams);\r\n}\r\n\r\nfunction setQueryParams(value: T) {\r\n setToSessionStorage(StorageKeys.QueryParams, value);\r\n}\r\n\r\nfunction removeQueryParams() {\r\n removeFromSessionStorage(StorageKeys.QueryParams);\r\n}\r\n\r\nfunction getLanguageId() {\r\n return getFromSessionStorage(StorageKeys.LanguageId);\r\n}\r\n\r\nfunction setLanguageId(value: string) {\r\n setToSessionStorage(StorageKeys.LanguageId, value);\r\n}\r\n\r\nfunction removeLanguageId() {\r\n removeFromSessionStorage(StorageKeys.LanguageId);\r\n}\r\n\r\nfunction getSidParam() {\r\n return getFromSessionStorage(StorageKeys.SidParam);\r\n}\r\n\r\nfunction setSidParam(value: string) {\r\n return setToSessionStorage(StorageKeys.SidParam, value);\r\n}\r\n\r\nfunction removeSidParam() {\r\n return removeFromSessionStorage(StorageKeys.SidParam);\r\n}\r\n\r\nfunction getFromLocalStorage(path: string) {\r\n return JSON.parse(localStorage.getItem(path) || 'null');\r\n}\r\n\r\nfunction removeFromLocalStorage(path: string) {\r\n localStorage.removeItem(path);\r\n return true;\r\n}\r\n\r\nfunction setToLocalStorage(path: string, value: string) {\r\n return localStorage.setItem(path, JSON.stringify(value));\r\n}\r\n\r\nfunction getExternalToken() {\r\n return getFromSessionStorage(StorageKeys.ExternalToken);\r\n}\r\n\r\nfunction setExternalToken(value: string) {\r\n return setToSessionStorage(StorageKeys.ExternalToken, value);\r\n}\r\n\r\nfunction removeExternalToken() {\r\n return removeFromSessionStorage(StorageKeys.ExternalToken);\r\n}\r\n\r\nfunction setToSessionStorage(path: string, value: T) {\r\n return sessionStorage.setItem(path, JSON.stringify(value));\r\n}\r\n\r\nfunction getFromSessionStorage(path: string) {\r\n return JSON.parse(sessionStorage.getItem(path) || \"null\");\r\n}\r\n\r\nfunction removeFromSessionStorage(path: string) {\r\n sessionStorage.removeItem(path);\r\n return true;\r\n}\r\n\r\nexport const storageService = {\r\n getRefreshToken,\r\n setRefreshToken,\r\n removeRefreshToken,\r\n setToLocalStorage,\r\n removeFromLocalStorage,\r\n getFromLocalStorage,\r\n setToSessionStorage,\r\n getFromSessionStorage,\r\n removeFromSessionStorage,\r\n getExternalToken,\r\n setExternalToken,\r\n removeExternalToken,\r\n getMemberToken,\r\n setMemberToken,\r\n setExternalMemberToken,\r\n getExternalMemberToken,\r\n setAppId,\r\n getAppId,\r\n getUser,\r\n setUser,\r\n removeUser,\r\n getQueryParams,\r\n setQueryParams,\r\n removeQueryParams,\r\n setLanguageId,\r\n getLanguageId,\r\n removeLanguageId,\r\n getSidParam,\r\n setSidParam,\r\n removeSidParam,\r\n}","import React, { useEffect } from 'react';\r\nimport { storageService } from '../../services/storage.service';\r\n\r\ninterface AuthState {\r\n isAuthenticated: boolean;\r\n idNumber: string;\r\n}\r\n\r\nexport type SiteSettings = {\r\n isRtl: boolean;\r\n languageId: string;\r\n authState: AuthState;\r\n idleTimeout: number | null;\r\n isActivate: boolean;\r\n showDestinationPicker: boolean;\r\n onChangeLanguage(languageId: string): void;\r\n onLogin(authData: AuthState): void;\r\n onLogout(): void;\r\n onIdleTimeout: (timeout: number | null) => void;\r\n onActivate: (activate: boolean) => void;\r\n onHomePageBackground(data: boolean): void;\r\n};\r\n\r\nconst initialAuthState: AuthState = {\r\n isAuthenticated: false,\r\n idNumber: '',\r\n};\r\n\r\nexport const SiteContext = React.createContext(null);\r\n\r\nconst SiteProvider: React.FC>> = (props) => {\r\n const [isRtl, setIsRtl] = React.useState(true);\r\n const [languageId, setLanguageId] = React.useState('he');\r\n const [authState, setAuthState] = React.useState(initialAuthState);\r\n const [idleTimeout, setIdleTimeout] = React.useState(null);\r\n const [isActivate, setIsActivate] = React.useState(false);\r\n const [showDestinationPicker, setShowDestinationPicker] = React.useState(false);\r\n\r\n useEffect(() => {\r\n const storedUser = storageService.getUser();\r\n if (storedUser?.id_number && storedUser?.block_user !== 'Y') {\r\n setAuthState({ isAuthenticated: true, idNumber: storedUser.id_number });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const storedUser = storageService.getUser();\r\n if (storedUser?.expiration_time) {\r\n const timeout = 1000 * 60 * storedUser.expiration_time;\r\n setIdleTimeout(timeout);\r\n }\r\n }, []);\r\n\r\n const handleChangeLanguage = React.useCallback(\r\n (langId: string): void => {\r\n setLanguageId(langId);\r\n setIsRtl(languageId === 'he');\r\n },\r\n [languageId],\r\n );\r\n\r\n const login = (authData: AuthState): void => {\r\n setAuthState(authData);\r\n };\r\n\r\n const logout = (): void => {\r\n storageService.removeUser();\r\n storageService.removeRefreshToken();\r\n setAuthState(initialAuthState);\r\n setIdleTimeout(null);\r\n };\r\n\r\n const handleIdleTimeout = (timeoutValue: number | null) => {\r\n const timeout = typeof timeoutValue === 'number' \r\n ? 1000 * 60 * timeoutValue \r\n : timeoutValue;\r\n setIdleTimeout(timeout);\r\n };\r\n\r\n const handleActivate = (activate: boolean) => setIsActivate(activate);\r\n\r\n const handleHomePageBackground = (data: boolean): void => {\r\n setShowDestinationPicker(data);\r\n };\r\n\r\n const contextValue = {\r\n isRtl,\r\n languageId,\r\n authState,\r\n idleTimeout,\r\n isActivate,\r\n showDestinationPicker,\r\n onChangeLanguage: handleChangeLanguage,\r\n onLogin: login,\r\n onLogout: logout,\r\n onIdleTimeout: handleIdleTimeout,\r\n onActivate: handleActivate,\r\n onHomePageBackground: handleHomePageBackground,\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default SiteProvider;\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n unstable_flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a