{"version":3,"mappings":"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","names":["window","AbortSignal","timeout","duration","controller","AbortController","setTimeout","abort","signal","URL","parse","url","base","n","l","u","t","i","o","r","f","e","c","s","a","h","p","v","y","d","w","_","g","m","k","b","x","C","M","P","O","j","S","$","N","I","L","V","H","T","A","F","q","z","B","D","E","G","R","U","W","Z","Y","J","K","Q","X","nn","tn","en","rn","un","on","bn","gn","Cn","Sn","cn","ln","fn","an","sn","hn","vn","dn","pn","mn","yn","_n","En","xn","Rn","_extends","target","source","key","Action","PopStateEventType","createHashHistory","options","createHashLocation","globalHistory","pathname","search","hash","parsePath","createLocation","createHashHref","to","href","hashIndex","createPath","validateHashLocation","location","warning$1","getUrlBasedHistory","invariant","value","message","cond","createKey","getHistoryState","current","state","_ref","path","parsedPath","searchIndex","createClientSideURL","getLocation","createHref","validateLocation","v5Compat","action","listener","handlePop","history","push","historyState","replace","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","index","relativePath","meta","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","rest","isOptional","required","restExploded","result","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","score","segment","branch","matchedParams","matchedPathname","end","remainingPathname","match","matchPath","normalizePathname","pattern","matcher","paramNames","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","safelyDecodeURIComponent","caseSensitive","warning","regexpSource","error","startIndex","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","field","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","ErrorResponse","status","statusText","data","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","isBrowser","isPolyfill","is","useState","useEffect","useLayoutEffect","useDebugValue","React","useSyncExternalStore$2","subscribe","getSnapshot","getServerSnapshot","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","prevValue","nextValue","useSyncExternalStore$1","canUseDOM","isServerEnvironment","shim","useSyncExternalStore","module","DataRouterContext","React.createContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useInRouterContext","React.useContext","useLocation","useNavigate","navigator","routePathnamesJson","UNSAFE_getPathContributingMatches","activeRef","React.useRef","React.useEffect","React.useCallback","useParams","routeMatch","useRoutes","dataRouterStateContext","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","React.createElement","DefaultErrorElement","useRouteError","stack","lightgrey","preStyles","codeStyles","React.Fragment","RenderErrorBoundary","React.Component","props","errorInfo","RenderedRoute","routeContext","children","dataRouterContext","dataRouterState","errors","errorIndex","outlet","errorElement","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterState","hookName","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","routeId","Route","_props","Router","_ref4","basenameProp","locationProp","navigationType","staticProp","navigationContext","React.useMemo","trailingPathname","Routes","_ref5","createRoutesFromChildren","AwaitRenderStatus","neverSettledPromise","React.Children","element","React.isValidElement","treePath","createSearchParams","init","getSearchParamsForLocation","locationSearch","defaultSearchParams","searchParams","HashRouter","_ref2","historyRef","setState","React.useState","React.useLayoutEffect","useSearchParams","defaultInit","defaultSearchParamsRef","navigate","setSearchParams","nextInit","navigateOptions","newSearchParams","isObject","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","handler","canProxy","defaultHandlePromise","promise","snapCache","createSnapshot","version","handlePromise","cache","snap","markToTrack","enumerable","desc","target2","ensureVersion","proxyCache","versionHolder","proxyFunction","initialObject","found","listeners","notifyUpdate","op","nextVersion","checkVersion","nextCheckVersion","propProxyStates","propProxyState","propVersion","createPropListener","prop","newOp","addPropListener","define_import_meta_env_default","remove","removePropListener","_a","entry","addListener","prevRemove","baseObject","proxyObject","deleted","receiver","hasPrevValue","getUntracked","childProxyState","proxyState","defaultProxyFunction","proxy","callback","notifyInSync","ops","isListenerActive","removeListener","snapshot","require$$0","useSyncExternalStoreShim_production_min","shimModule","use","ReactExports","useSyncExternalStoreExports","useAffectedDebugValue","affected","pathList","useRef","affectedToPathList","targetCache","useSnapshot","lastSnapshot","lastAffected","inRender","currSnapshot","useCallback","unsub","nextSnapshot","isChanged","currAffected","useMemo","createProxy","fixProto","prototype","setPrototypeOf","fixStack","captureStackTrace","__extends","_extendStatics","__","CustomError","_super","_newTarget","_this","ws","WebSocket$1","createDeferred","resolve","reject","args","onHandler","comEvents","unconsumedDeferred","unHandle","deferred","abortSignal","finished","onAbort","offListener","lastEvent","thrownError","extendStatics","__assign","__rest","__decorate","decorators","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","step","rejected","__generator","body","verb","__createBinding","k2","__exportStar","__values","__read","ar","__spread","__spreadArrays","il","jl","__spreadArray","pack","__await","__asyncGenerator","resume","settle","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__importDefault","__classPrivateFieldGet","kind","__classPrivateFieldSet","__classPrivateFieldIn","lowerCase","str","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","noCase","input","splitRegexp","_b","stripRegexp","_c","transform","_d","delimiter","start","re","pascalCaseTransform","firstChar","lowerChars","pascalCase","camelCaseTransform","camelCase","dotCase","snakeCase","MastoUnexpectedError","MastoDeserializeError","contentType","MastoHttpError","errorOptions","MastoTimeoutError","MastoWebSocketError","sleep","ms","isRecord","noop","ExponentialBackoffError","attempts","ExponentialBackoff","createPromiseWithResolvers","res","rej","parseLinkHeader","linkHeader","links","link","PaginatorHttp","http","nextPath","nextParams","direction","response","nextUrl","onfulfilled","onrejected","parsed","HttpActionDispatcher","hook","waitForOpen","WebSocket","handleError","handleClose","handleOpen","waitForClose","WebSocketConnectorImpl","logger","promiseWithResolvers","_e","_f","ctor","toAsyncIterable","e_1","events","events_1","events_1_1","event","e_1_1","WebSocketSubscription","connector","serializer","stream","params","messages","_g","messages_1","messages_1_1","extra","rawEvent","payload","WebSocketActionDispatcher","createActionProxy","actionDispatcher","context","applicable","get","apply","SPECIAL_PROPERTIES","property","_1","_2","isHttpActionType","actionType","toHttpActionType","inferEncoding","waitForMediaAttachment","id","media","processing","HttpActionDispatcherHookMastodon","mediaTimeout","type","encoding","mergeAbortSignals","signals","abortController","mergeHeadersInit","head","tail","headers","HttpConfigImpl","override","requestInit","headersInit","WebSocketConfigImpl","protocols","BaseHttp","getEncoding","HttpNativeImpl","config","request","text","method","errorDescription","details","additionalProperties","LoggerConsoleImpl","level","LOG_TYPES","LogLevel","createLogger","ObjectFlattener","keyMapper","flatten","object","parent","flattenForFormData","flattenForRailsQueryString","_transformKeys","transformKeys","SerializerNativeImpl","rawData","formData","createRestAPIClient","createStreamingAPIClient","getAccount","accounts","store","local","getJSON","find","info","getAccountByAccessToken","accessToken","getAccountByInstance","instance","instanceURL","standaloneMQ","matchMedia","getCurrentAccountID","session","setCurrentAccountID","set","getCurrentAccount","__IGNORE_GET_ACCOUNT_ERROR__","currentAccount","account","getCurrentAccountNS","saveAccount","acc","updateAccount","accountInfo","displayName","currentInstance","getCurrentInstance","instances","console","getInstanceConfiguration","configuration","maxMediaAttachments","maxTootChars","pleroma","pollLimits","statuses","polls","maxCharactersPerOption","maxExpiration","getCurrentInstanceConfiguration","localStorage","getItem","JSON","setJSON","warn","sessionStorage","setItem","del","DEFAULT_INSTANCE","apis","accountApis","__ACCOUNT_APIS__","currentAccountApi","initClient","test","toLowerCase","client","masto","initInstance","uri","streamingApi","urls","domain","streaming","streamClient","implementation","initAccount","vapidKey","mastoAccount","initPreferences","preferences","accountID","authenticated","instanceAccount","getOwnPropertyNames","getOwnPropertySymbols","hasOwnProperty","combineComparators","comparatorA","comparatorB","createIsCircular","areItemsEqual","cachedA","cachedB","getStrictProperties","hasOwn","sameValueZeroEqual","OWNER","getOwnPropertyDescriptor","keys","areArraysEqual","areDatesEqual","areMapsEqual","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","aKey","aValue","bKey","bValue","areObjectsEqual","properties","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areTypedArraysEqual","ARGUMENTS_TAG","BOOLEAN_TAG","DATE_TAG","MAP_TAG","NUMBER_TAG","OBJECT_TAG","REG_EXP_TAG","SET_TAG","STRING_TAG","isArray","isTypedArray","assign","getTag","createEqualityComparator","constructor","tag","createEqualityComparatorConfig","circular","createCustomConfig","strict","areArraysEqual$1","areMapsEqual$1","areObjectsEqual$1","areSetsEqual$1","createInternalEqualityComparator","compare","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","comparator","createState","equals","deepEqual","createCustomEqual","strictDeepEqual","circularDeepEqual","strictCircularDeepEqual","shallowEqual","strictShallowEqual","circularShallowEqual","strictCircularShallowEqual","createCustomInternalComparator","subscribeKey","DEVTOOLS","DUMMY_SYMBOL","isMastodonLinkMaybe","hostname","startsWith","global","factory","this","DEFAULT_OPTIONS_KEYS","slice","cloneArray","arrayLike","length","getCustomOptions","customOptions","isMemoized","isSameValueZero","object1","object2","mergeOptions","existingOptions","newOptions","Cache","isMatchingKeyFunction","keyToMatch","isMatchingKey","maxSize","keysLength","isEqual","keyLength","existingKey","argIndex","startingIndex","values","currentLength","memoized","onCacheChange","onCacheHit","firstKey","firstValue","keyIndex","createMemoizedFunction","isPromise","onCacheAdd","transformKey","normalizedOptions","canTransformKey","shouldCloneArguments","shouldUpdateOnAdd","shouldUpdateOnChange","shouldUpdateOnHit","newValue","newKey","exports","HAS_WEAK_MAP_SUPPORT","isPlainObject","isPromiseLike","isReactElement","getNewCacheFallback","entries","getNewCache","canUseWeakMap","createCircularEqualCreator","_comparator","indexOrKeyA","indexOrKeyB","parentA","parentB","isCacheableA","isCacheableB","isValueEqual","matchedIndices_1","indexA_1","hasMatch_1","matchIndexB_1","keysA","reactElementA","reactElementB","matchedIndices_2","hasMatch_2","matchIndex_1","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","valueOf","createComparator","aShape","bShape","require$$1","memoize","fastEquals","_objectWithoutPropertiesLoose","excluded","sourceKeys","DEFAULT_OPTIONS","combine","_len","functions","_key","compose","_len2","_key2","findExpirationIndex","expirations","createFindKeyIndex","areKeysEqual","cacheKey","keysIndex","originalOptions","isMoized","setName","originalFunctionName","profileName","name","clearExpiration","shouldRemove","expirationIndex","createTimeout","expirationMethod","maxAge","timeoutId","createOnCacheAddSetExpiration","moizedOptions","moized","findKeyIndex","createOnCacheHitResetExpiration","getMaxAgeOptions","statsCache","hasWarningDisplayed","clearStats","collectStats","isCollectingStats","createOnCacheAddIncrementCalls","createOnCacheHitIncrementCallsAndHits","profiles","getDefaultProfileName","getUsagePercentage","calls","hits","getStats","profile","completeStats","completeProfiles","computedProfiles","getStatsOptions","ALWAYS_SKIPPED_PROPERTIES","copyStaticProperties","originalFn","newFn","skippedProperties","descriptor","addInstanceMethods","_moized$_microMemoize","_microMemoizeOptions","cutoff","addInstanceProperties","moizeOptions","originalFunction","microMemoizeOptions","currentCache","createMoizeInstance","REACT_ELEMENT_TYPE","createMoizedComponent","moizer","reactMoizer","Moized","updater","createGetInitialArgs","size","clone","getCutoff","array","createDefaultReplacer","thisCutoff","valueCutoff","getStringifiedArgument","arg","typeOfArg","defaultArgumentSerializer","getSerializerFunction","getIsSerializedKeyEqual","createOnCacheOperation","_cacheIgnored","_microMemoizeOptionsIgnored","getIsEqual","getIsMatchingKey","getTransformKey","createRefreshableMoized","updateCacheForKey","refreshableMoized","_excluded","moize","passedOptions","moizeable","mergedOptions","curriedFn","curriedOptions","_mergedOptions","coalescedOptions","maxAgeOptions","statsOptions","argMatcher","keyMatcher","expireOptions","onExpire","updateExpire","maxArgs","transformArgs","_moize","mem","opts","isDeepEqual","pmem","rateLimit","interval","queue","isRunning","executeNext","shift","callFn","AbortError","pThrottle","limit","onDelay","currentTick","activeCount","windowedDelay","now","strictTicks","strictDelay","nextExecutionTime","getDelay","function_","throttled","arguments_","execute","delay","throttle","STATUS_ID_REGEXES","getStatusID","statusMatchID","denylistDomains","failedUnfurls","_unfurlMastodonLink","snapStates","states","RegExp","unfurledLinks","Promise","debug","remoteInstanceFetch","theURL","urlAfterHash","urlObj","masto2","mastoSearchFetch","results","then","theStatuses","handleFulfill","selfURL","instance2","saveStatus","handleCatch","finalPromise","unfurlMastodonLink","appVersion","prevLocation","currentLocation","statusThreadNumber","home","homeNew","homeLast","homeLastFetchTime","notifications","notificationsLast","notificationsNew","notificationsShowNew","notificationsLastFetchTime","reloadStatusPage","reloadGenericAccounts","counter","spoilers","spoilersMedia","scrollPositions","statusQuotes","statusFollowedTags","statusReply","routeNotification","composerState","showCompose","showSettings","showAccount","showAccounts","showDrafts","showMediaModal","showShortcutsSettings","showKeyboardShortcutsHelp","showGenericAccounts","showMediaAlt","showEmbedModal","showReportModal","shortcuts","settings","autoRefresh","shortcutsViewMode","shortcutsColumnsMode","boostsCarousel","contentTranslation","contentTranslationTargetLanguage","contentTranslationHideLanguages","contentTranslationAutoInline","shortcutSettingsCloudImportExport","mediaAltGenerator","composerGIFPicker","cloakMode","groupedNotificationsAlpha","states$1","initStates","changes","join","statusKey","getStatus","statusID","skipThreading","skipUnfurling","oldStatus","_pinned","srKey","sKey","threadifyStatus","unfurlStatus","_threadifyStatus","propInstance","api","traverse","fetchIndex","inReplyToAccountId","inReplyToId","prevStatus","fetchStatus","fauxDiv","content","document","isPostItself","splice","Loader","abrupt","hidden","_jsx","class","shouldPolyfill_1","shouldPolyfill_2","shouldPolyfill","supportsIntlSegmenter","importIntlSegmenter","__vitePreload","catch","importCompose","preload","ComposeSuspense","Compose","setCompose","component","PHANPY_CLIENT_NAME","CLIENT_NAME","import","useTitle","title","setTitle","hasPaths","Array","matched","some"],"ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,27,28,29,31,32,33,37,41],"sources":["../../src/polyfills.js","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../node_modules/proxy-compare/dist/index.modern.js","../../node_modules/valtio/esm/vanilla.mjs","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/valtio/esm/react.mjs","../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../node_modules/ts-custom-error/dist/custom-error.mjs","../../node_modules/isomorphic-ws/browser.js","../../node_modules/events-to-async/module/events-to-async.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/lower-case/dist.es2015/index.js","../../node_modules/no-case/dist.es2015/index.js","../../node_modules/pascal-case/dist.es2015/index.js","../../node_modules/camel-case/dist.es2015/index.js","../../node_modules/dot-case/dist.es2015/index.js","../../node_modules/snake-case/dist.es2015/index.js","../../node_modules/masto/dist/index.js","../../src/utils/store-utils.js","../../src/utils/store.js","../../src/utils/api.js","../../node_modules/fast-equals/dist/esm/index.mjs","../../node_modules/valtio/esm/vanilla/utils.mjs","../../node_modules/valtio/esm/react/utils.mjs","../../src/utils/isMastodonLinkMaybe.jsx","../../node_modules/micro-memoize/dist/micro-memoize.js","../../node_modules/moize/node_modules/fast-equals/dist/fast-equals.js","../../node_modules/moize/dist/moize.js","../../src/utils/mem.js","../../src/utils/pmem.js","../../src/utils/ratelimit.js","../../node_modules/p-throttle/index.js","../../src/utils/unfurl-link.jsx","../../src/utils/states.js","../../src/components/loader.jsx","../../node_modules/@formatjs/intl-segmenter/should-polyfill.js","../../src/components/compose-suspense.jsx","../../src/utils/useTitle.js"],"sourcesContent":["// AbortSignal.timeout polyfill\n// Temporary fix from https://github.com/mo/abortcontroller-polyfill/issues/73#issuecomment-1541180943\n// Incorrect implementation, but should be good enough for now\nif ('AbortSignal' in window) {\n AbortSignal.timeout =\n AbortSignal.timeout ||\n ((duration) => {\n const controller = new AbortController();\n setTimeout(() => controller.abort(), duration);\n return controller.signal;\n });\n}\n\n// URL.parse() polyfill\nif ('URL' in window && typeof URL.parse !== 'function') {\n URL.parse = function (url, base) {\n if (!url) return null;\n try {\n return base ? new URL(url, base) : new URL(url);\n } catch (e) {\n return null;\n }\n };\n}\n","var n,l,u,t,i,o,r,f,e,c,s,a,h={},p=[],v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){var l=n.parentNode;l&&l.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function k(n){return n.children}function b(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,v,y,d,w,_=t&&t.__k||p,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=L(i,u,r,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a=f-r:f==r+1?a++:f>r?s>e-r?a+=f-r:a--:f(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=p.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},b.prototype.render=k,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{b as Component,k as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function d(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function h(n){return o=1,p(D,n)}function p(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=d(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function _(n,u){var i=d(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function T(n,r){var u=d(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,p as useReducer,A as useRef,h as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as c,createRef as l,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useCallback as a,useContext as s,useDebugValue as h,useEffect as v,useId as d,useImperativeHandle as p,useLayoutEffect as m,useMemo as y,useReducer as _,useRef as b,useState as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){this.props=n,this.context=t}function x(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(C.prototype=new n).isPureReactComponent=!0,C.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var R=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var w=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=w,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var I=function(n,t){return null==n?null:r(r(n).map(t))},N={map:I,forEach:I,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},M=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);M(n,t,e,r)};var T=e.unmount;function A(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return A(n,t,e)})),n}function D(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return D(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function L(){this.__u=0,this.t=null,this.__b=null}function O(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function F(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function U(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),T&&T(n)},(L.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=O(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=D(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=A(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),o(t(W,{context:e.context},n.__v),e.l)}function j(n,e){var r=t(P,{__v:n,i:e});return r.containerInfo=e,r}(U.prototype=new n).__a=function(n){var t=this,e=O(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},U.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},U.prototype.componentDidUpdate=U.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y=\"undefined\"!=typeof document,$=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function q(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function G(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=e.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}e.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={};for(var o in t){var i=t[o];if(!(\"value\"===o&&\"defaultValue\"in t&&null==i||Y&&\"children\"===o&&\"noscript\"===e||\"class\"===o||\"className\"===o)){var c=o.toLowerCase();\"defaultValue\"===o&&\"value\"in t&&null==t.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":\"translate\"===c&&\"no\"===i?i=!1:\"ondoubleclick\"===c?o=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||$(t.type)?\"onfocus\"===c?o=\"onfocusin\":\"onblur\"===c?o=\"onfocusout\":H.test(o)?o=c:-1===e.indexOf(\"-\")&&B.test(o)?o=o.replace(Z,\"-$&\").toLowerCase():null===i&&(i=void 0):c=o=\"oninput\",\"oninput\"===c&&u[o=c]&&(o=\"oninputCapture\"),u[o]=i}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=z,en&&en(n)};var rn=e.__r;e.__r=function(n){rn&&rn(n),nn=n.__c};var un=e.diffed;e.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value},useCallback:a,useContext:s,useDebugValue:h,useDeferredValue:bn,useEffect:v,useId:d,useImperativeHandle:p,useInsertionEffect:gn,useLayoutEffect:m,useMemo:y,useReducer:_,useRef:b,useState:S,useSyncExternalStore:Cn,useTransition:Sn}}},cn=\"17.0.2\";function ln(n){return t.bind(null,n)}function fn(n){return!!n&&n.$$typeof===z}function an(n){return fn(n)&&n.type===u}function sn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function hn(n){return fn(n)?f.apply(null,arguments):n}function vn(n){return!!n.__k&&(o(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=u;function _n(n){n()}function bn(n){return n}function Sn(){return[!1,_n]}var gn=m,En=fn;function Cn(n,t){var e=t(),r=S({h:{__:e,v:t}}),u=r[0].h,o=r[1];return m(function(){u.__=e,u.v=t,xn(u)&&o({h:u})},[n,e,t]),v(function(){return xn(u)&&o({h:u}),n(function(){xn(u)&&o({h:u})})},[n]),e}function xn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var Rn={useState:S,useId:d,useReducer:_,useEffect:v,useLayoutEffect:m,useInsertionEffect:gn,useTransition:Sn,useDeferredValue:bn,useSyncExternalStore:Cn,startTransition:_n,useRef:b,useImperativeHandle:p,useMemo:y,useCallback:a,useContext:s,useDebugValue:h,version:\"17.0.2\",Children:N,render:q,hydrate:G,unmountComponentAtNode:vn,createPortal:j,createElement:t,createContext:c,createFactory:ln,cloneElement:hn,createRef:l,Fragment:u,isValidElement:fn,isElement:En,isFragment:an,isMemo:sn,findDOMNode:dn,Component:n,PureComponent:C,memo:x,forwardRef:k,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:L,SuspenseList:U,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};export{N as Children,C as PureComponent,yn as StrictMode,L as Suspense,U as SuspenseList,on as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,hn as cloneElement,ln as createFactory,j as createPortal,Rn as default,dn as findDOMNode,mn as flushSync,k as forwardRef,G as hydrate,En as isElement,an as isFragment,sn as isMemo,fn as isValidElement,F as lazy,x as memo,q as render,_n as startTransition,vn as unmountComponentAtNode,pn as unstable_batchedUpdates,bn as useDeferredValue,gn as useInsertionEffect,Cn as useSyncExternalStore,Sn as useTransition,cn as version};\n//# sourceMappingURL=compat.module.js.map\n","/**\n * @remix-run/router v1.2.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n\n(function (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 Action[\"Pop\"] = \"POP\";\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\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nconst PopStateEventType = \"popstate\";\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 */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n\n function getCurrentLocation() {\n return entries[index];\n }\n\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning$1(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n\n let history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return getCurrentLocation();\n },\n\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n\n encodeLocation(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\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\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation\n });\n }\n },\n\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation\n });\n }\n },\n\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n\n if (listener) {\n listener({\n action,\n location: getCurrentLocation()\n });\n }\n },\n\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n\n };\n return history;\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 */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\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 */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createHashHref(window, 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, to) {\n warning$1(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning$1(cond, message) {\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); // 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 * For browser-based histories, we combine the state and key into an object\n */\n\n\nfunction getHistoryState(location) {\n return {\n usr: location.state,\n key: location.key\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\n\n\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = _extends({\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.key || key || createKey()\n });\n\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\n\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\n\nfunction parsePath(path) {\n let parsedPath = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n\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}\nfunction createClientSideURL(location) {\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 = typeof window !== \"undefined\" && typeof window.location !== \"undefined\" && window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof location === \"string\" ? location : createPath(location);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n}\n\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n\n function handlePop() {\n action = Action.Pop;\n\n if (listener) {\n listener({\n action,\n location: history.location\n });\n }\n }\n\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n let historyState = getHistoryState(location);\n let url = history.createHref(location); // try...catch because iOS limits us to 100 pushState calls :/\n\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\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({\n action,\n location: history.location\n });\n }\n }\n\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location\n });\n }\n }\n\n let history = {\n get action() {\n return action;\n },\n\n get location() {\n return getLocation(window, globalHistory);\n },\n\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n\n createHref(to) {\n return createHref(window, to);\n },\n\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createClientSideURL(typeof to === \"string\" ? to : createPath(to));\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n\n push,\n replace,\n\n go(n) {\n return globalHistory.go(n);\n }\n\n };\n return history;\n} //#endregion\n\nvar ResultType;\n\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\n\nfunction isIndexRoute(route) {\n return route.index === true;\n} // Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\n\n\nfunction convertRoutesToDataRoutes(routes, parentPath, allIds) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n\n if (allIds === void 0) {\n allIds = new Set();\n }\n\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!allIds.has(id), \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, {\n id\n });\n\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, {\n id,\n children: route.children ? convertRoutesToDataRoutes(route.children, treePath, allIds) : undefined\n });\n\n return pathOrLayoutRoute;\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 */\n\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\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 let matches = null;\n\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], // 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 safelyDecodeURI(pathname));\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta); // 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\n if (route.children && route.children.length > 0) {\n invariant( // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\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\n\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\n routes.forEach((route, index) => {\n var _route$path;\n\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _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 return branches;\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 */\n\n\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments; // Optional path segments are denoted by a trailing `?`\n\n let isOptional = first.endsWith(\"?\"); // Compute the corresponding required segment: `foo?` -> `foo`\n\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 let result = []; // 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 explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\"))); // Then if this is an optional value, add all child versions without\n\n if (isOptional) {\n result.push(...restExploded);\n } // for absolute paths, ensure `/` instead of empty segment\n\n\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\n\nconst isSplat = s => s === \"*\";\n\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\n\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? // 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] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\n\n\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n\n let path = originalPath;\n\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n\n return path.replace(/^:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, \"Missing \\\":\" + key + \"\\\" param\");\n return params[key];\n }).replace(/\\/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, \"Missing \\\":\" + key + \"\\\" param\");\n return \"/\" + params[key];\n }).replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\";\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n } // Apply the splat\n\n\n return \"\" + prefix + params[star];\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 */\n\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = paramNames.reduce((memo, paramName, 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.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let paramNames = [];\n let regexpSource = \"^\" + path.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(/\\/:(\\w+)/g, (_, paramName) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // 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\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\n\n\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\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\n\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * @private\n */\n\nfunction warning(cond, message) {\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 React Router!\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); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\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 return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\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 */\n\n\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n/**\n * @private\n */\n\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n\n let to;\n\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from; // 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\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original \"to\" had one\n\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\"); // Or if this was a link to the current path which has a trailing slash\n\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n/**\n * @private\n */\n\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\n\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\n\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\n\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\n\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\n\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n\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), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data) {\n this.pendingKeys = new Set();\n this.subscriber = undefined;\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\"); // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref) => {\n let [key, value] = _ref;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n }\n\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key); // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, null, data), error => this.onSettle(promise, key, error)); // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n\n if (error) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(true);\n }\n\n async resolveData(signal) {\n let aborted = false;\n\n if (!this.done) {\n let onAbort = () => this.cancel();\n\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n\n}\n\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\n\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n\n return value._data;\n}\n\nfunction defer(data) {\n return new DeferredData(data);\n}\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\n\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n\n let responseInit = init;\n\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\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 return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\n\nclass ErrorResponse {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n\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 throw from an action/loader\n */\n\nfunction isRouteErrorResponse(e) {\n return e instanceof ErrorResponse;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser; //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\n\nfunction createRouter(init) {\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let dataRoutes = convertRoutesToDataRoutes(init.routes); // Cleanup function for history\n\n let unlistenHistory = null; // Externally-provided functions to call on all state changes\n\n let subscribers = new Set(); // Externally-provided object to hold scroll restoration locations during routing\n\n let savedScrollPositions = null; // Externally-provided function to get scroll restoration keys\n\n let getScrollRestorationKey = null; // Externally-provided function to get current scroll position\n\n let getScrollPosition = null; // 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\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, init.basename);\n let initialErrors = null;\n\n if (initialMatches == null) {\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 {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n\n let initialized = !initialMatches.some(m => m.route.loader) || init.hydrationData != null;\n let router;\n let state = {\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 }; // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n\n let pendingAction = Action.Pop; // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n\n let pendingPreventScrollReset = false; // AbortController for the active navigation\n\n let pendingNavigationController; // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n\n let isUninterruptedRevalidation = false; // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n\n let isRevalidationRequired = false; // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n\n let cancelledDeferredRoutes = []; // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n\n let cancelledFetcherLoads = []; // AbortControllers for any in-flight fetchers\n\n let fetchControllers = new Map(); // Track loads based on the order in which they started\n\n let incrementingLoadId = 0; // 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\n let pendingNavigationLoadId = -1; // Fetchers that triggered data reloads as a result of their actions\n\n let fetchReloadIds = new Map(); // Fetchers that triggered redirect navigations from their actions\n\n let fetchRedirectIds = new Set(); // Most recent href/match for fetcher.load calls for fetchers\n\n let fetchLoadMatches = new Map(); // 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\n let activeDeferreds = new Map(); // 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\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(_ref => {\n let {\n action: historyAction,\n location\n } = _ref;\n return startNavigation(historyAction, location);\n }); // Kick off initial data load if needed. Use Pop to avoid modifying history\n\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location);\n }\n\n return router;\n } // Clean up a router and it's side effects\n\n\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n } // Subscribe to state updates for the router\n\n\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n } // Update our state and notify the calling context of the change\n\n\n function updateState(newState) {\n state = _extends({}, state, newState);\n subscribers.forEach(subscriber => subscriber(state));\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\n\n function completeNavigation(location, newState) {\n var _location$state;\n\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 = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n\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 } // Always preserve any existing loaderData from re-used routes\n\n\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData ? false : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset\n }));\n\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n } // Reset stateful navigation vars\n\n\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n } // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n\n\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(to, opts);\n let location = createLocation(state.location, path, opts && opts.state); // 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\n location = _extends({}, location, init.history.encodeLocation(location));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\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 = Action.Replace;\n }\n\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n return await startNavigation(historyAction, location, {\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 });\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\n\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\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\n if (state.navigation.state === \"submitting\") {\n return;\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\n\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\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\n\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\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\n\n async function startNavigation(historyAction, location, opts) {\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 = (opts && opts.startUninterruptedRevalidation) === true; // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename); // Short circuit with a 404 on the root error boundary if we match nothing\n\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes); // Cancel all pending deferred on 404s since we don't keep any routes\n\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n });\n return;\n } // Short circuit if it's only a hash change\n\n\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, {\n matches\n });\n return;\n } // Create a controller/Request for this navigation\n\n\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\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 pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace\n });\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation = _extends({\n state: \"loading\",\n location\n }, opts.submission);\n\n loadingNavigation = navigation; // Create a GET request for the loaders\n\n request = new Request(request.url, {\n signal: request.signal\n });\n } // Call loaders\n\n\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.replace, pendingActionData, pendingError);\n\n if (shortCircuited) {\n return;\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\n\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n } // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n\n\n async function handleAction(request, location, submission, matches, opts) {\n interruptActiveLoads(); // Put us in a submitting state\n\n let navigation = _extends({\n state: \"submitting\",\n location\n }, submission);\n\n updateState({\n navigation\n }); // Call our action and get the result\n\n let result;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\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 result = await callLoaderOrAction(\"action\", request, actionMatch, matches, router.basename);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace;\n\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 replace = result.location === state.location.pathname + state.location.search;\n }\n\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\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); // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n } // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n\n\n async function handleLoaders(request, location, matches, overrideNavigation, submission, replace, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n\n if (!loadingNavigation) {\n let navigation = _extends({\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission);\n\n loadingNavigation = navigation;\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\n\n let activeSubmission = submission ? submission : loadingNavigation.formMethod && loadingNavigation.formAction && loadingNavigation.formData && loadingNavigation.formEncType ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType\n } : undefined;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(state, matches, activeSubmission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches); // 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\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId)); // Short circuit if we have no loaders to run\n\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}));\n return {\n shortCircuited: true\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\n\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(_ref2 => {\n let [key] = _ref2;\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(_ref3 => {\n let [key] = _ref3;\n return fetchControllers.set(key, pendingNavigationController);\n });\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\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\n\n revalidatingFetchers.forEach(_ref4 => {\n let [key] = _ref4;\n return fetchControllers.delete(key);\n }); // If any loaders returned a redirect Response, start a new REPLACE navigation\n\n let redirect = findRedirect(results);\n\n if (redirect) {\n await startRedirectNavigation(state, redirect, {\n replace\n });\n return {\n shortCircuited: true\n };\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds); // Wire up subscribers to update loaderData as promises settle\n\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 markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n return _extends({\n loaderData,\n errors\n }, didAbortFetchLoads || revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n\n function getFetcher(key) {\n return state.fetchers.get(key) || IDLE_FETCHER;\n } // Trigger a fetcher load/submit for the given fetcher key\n\n\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let matches = matchRoutes(dataRoutes, href, init.basename);\n\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: href\n }));\n return;\n }\n\n let {\n path,\n submission\n } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n } // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n\n\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n } // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n\n\n async function handleFetcherAction(key, routeId, path, match, requestMatches, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error);\n return;\n } // Put this fetcher into it's submitting state\n\n\n let existingFetcher = state.fetchers.get(key);\n\n let fetcher = _extends({\n state: \"submitting\"\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the action for the fetcher\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, router.basename);\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou 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\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n\n let loadingFetcher = _extends({\n state: \"loading\"\n }, submission, {\n data: undefined,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true\n });\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\n } // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n\n\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(nextLocation, abortController.signal);\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(dataRoutes, state.navigation.location, init.basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = _extends({\n state: \"loading\",\n data: actionResult.data\n }, submission, {\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(state, matches, submission, nextLocation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, {\n [match.route.id]: actionResult.data\n }, undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches); // 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\n revalidatingFetchers.filter(_ref5 => {\n let [staleKey] = _ref5;\n return staleKey !== key;\n }).forEach(_ref6 => {\n let [staleKey] = _ref6;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(_ref7 => {\n let [staleKey] = _ref7;\n return fetchControllers.delete(staleKey);\n });\n let redirect = findRedirect(results);\n\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n let doneFetcher = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n let didAbortFetchLoads = abortStaleFetchLoads(loadId); // 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\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\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(_extends({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors)\n }, didAbortFetchLoads ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n isRevalidationRequired = false;\n }\n } // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n\n\n async function handleFetcherLoader(key, routeId, path, match, matches, submission) {\n let existingFetcher = state.fetchers.get(key); // Put this fetcher into it's loading state\n\n let loadingFetcher = _extends({\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the loader for this fetcher route match\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, router.basename); // Deferred isn't supported or 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\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n } // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n\n\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n } // If the loader threw a redirect Response, start a new REPLACE navigation\n\n\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key); // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error\n }\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\"); // Put the fetcher back into an idle state\n\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\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\n\n async function startRedirectNavigation(state, redirect, _temp) {\n var _window;\n\n let {\n submission,\n replace,\n isFetchActionRedirect\n } = _temp === void 0 ? {} : _temp;\n\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, // TODO: This can be removed once we get rid of useTransition in Remix v2\n _extends({\n _isRedirect: true\n }, isFetchActionRedirect ? {\n _isFetchActionRedirect: true\n } : {}));\n invariant(redirectLocation, \"Expected a location on the redirect navigation\"); // Check if this an external redirect that goes to a new origin\n\n if (typeof ((_window = window) == null ? void 0 : _window.location) !== \"undefined\") {\n let newOrigin = createClientSideURL(redirect.location).origin;\n\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n\n return;\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\n\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push; // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n\n let {\n formMethod,\n formAction,\n formEncType,\n formData\n } = state.navigation;\n\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData\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\n\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && submission && isMutationMethod(submission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, submission, {\n formAction: redirect.location\n })\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined\n }\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, router.basename)), ...fetchersToLoad.map(_ref8 => {\n let [, href, match, fetchMatches] = _ref8;\n return callLoaderOrAction(\"loader\", createClientSideRequest(href, request.signal), match, fetchMatches, router.basename);\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, request.signal, false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(_ref9 => {\n let [,, match] = _ref9;\n return match;\n }), fetcherResults, request.signal, true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true; // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n\n cancelledDeferredRoutes.push(...cancelActiveDeferreds()); // Abort in-flight fetcher loads\n\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key, routeId, error) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n });\n }\n\n function deleteFetcher(key) {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key) {\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) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone() {\n let doneKeys = [];\n\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n\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\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\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 } // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n\n\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n\n getScrollRestorationKey = getKey || (location => location.key); // 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\n\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n\n if (typeof y === \"number\") {\n return y;\n }\n }\n\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n\n get state() {\n return state;\n },\n\n get routes() {\n return dataRoutes;\n },\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 => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds\n };\n return router;\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\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\n async function query(request, _temp2) {\n let {\n requestContext\n } = _temp2 === void 0 ? {} : _temp2;\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n 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 };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n 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 };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n\n if (isResponse(result)) {\n return result;\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\n\n return _extends({\n location,\n basename\n }, result);\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\n\n async function queryRoute(request, _temp3) {\n let {\n routeId,\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"head\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let match = routeId ? matches.find(m => m.route.id === routeId) : 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, {\n pathname: location.pathname\n });\n }\n\n let result = await queryImpl(request, location, matches, requestContext, match);\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n\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 } // Pick off the right state value to return\n\n\n let routeData = [result.actionData, result.loaderData].find(v => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n\n return e.response;\n } // Redirects are always returned since they don't propagate to catch\n // boundaries\n\n\n if (isRedirectResponse(e)) {\n return e;\n }\n\n throw e;\n }\n }\n\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n\n if (isRouteRequest) {\n throw error;\n }\n\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, basename, true, isRouteRequest, requestContext);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\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.status,\n headers: {\n Location: result.location\n }\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\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: {\n [actionMatch.route.id]: result.data\n },\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 };\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 let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n }); // action status codes take precedence over loader status codes\n\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n } // Create a GET request for the loaders\n\n\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null; // Short circuit if we have no loaders to run (queryRoute())\n\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader); // Short circuit if we have no loaders to run (query())\n\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((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {}\n };\n }\n\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, basename, true, isRouteRequest, requestContext))]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n }\n\n let executedLoaders = new Set();\n results.forEach((result, i) => {\n executedLoaders.add(matchesToLoad[i].route.id); // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n }); // Process and commit output from loaders\n\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError); // Add a null for any non-loader matches for proper revalidation on the client\n\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches\n });\n }\n\n return {\n dataRoutes,\n query,\n queryRoute\n };\n} //#endregion\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 */\n\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n\n return newContext;\n}\n\nfunction isSubmissionNavigation(opts) {\n return opts != null && \"formData\" in opts;\n} // Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\n\n\nfunction normalizeNavigateOptions(to, opts, isFetcher) {\n if (isFetcher === void 0) {\n isFetcher = false;\n }\n\n let path = typeof to === \"string\" ? to : createPath(to); // Return location verbatim on non-submission navigations\n\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n } // Create a Submission on non-GET navigations\n\n\n let submission;\n\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData: opts.formData\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n } // Flatten submission onto URLSearchParams for GET submissions\n\n\n let parsedPath = parsePath(path);\n\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData); // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n\n parsedPath.search = \"?\" + searchParams;\n } catch (e) {\n return {\n path,\n error: getInternalRouterError(400)\n };\n }\n\n return {\n path: createPath(parsedPath),\n submission\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\n\n\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined; // Pick navigation matches that are net-new or qualify for revalidation\n\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => match.route.loader != null && (isNewLoader(state.loaderData, state.matches[index], match) || // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some(id => id === match.route.id) || shouldRevalidateLoader(state.location, state.matches[index], submission, location, match, isRevalidationRequired, actionResult))); // Pick fetcher.loads that need to be revalidated\n\n let revalidatingFetchers = [];\n fetchLoadMatches && fetchLoadMatches.forEach((_ref10, key) => {\n let [href, match, fetchMatches] = _ref10;\n\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(href, match, submission, href, match, isRevalidationRequired, actionResult);\n\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew = // [a] -> [a, b]\n !currentMatch || // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id; // 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\n let isMissingData = currentLoaderData[match.route.id] === undefined; // Always load if this is a net-new route or we don't yet have data\n\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (// param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\n\nfunction shouldRevalidateLoader(currentLocation, currentMatch, submission, location, match, isRevalidationRequired, actionResult) {\n let currentUrl = createClientSideURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createClientSideURL(location);\n let nextParams = match.params; // This is the default implementation as to 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 // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n\n let defaultShouldRevalidate = isNewRouteInstance(currentMatch, match) || // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() || // Search params affect all loaders\n currentUrl.search !== nextUrl.search || // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate(_extends({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams\n }, submission, {\n actionResult,\n defaultShouldRevalidate\n }));\n\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(type, request, match, matches, basename, isStaticRequest, isRouteRequest, requestContext) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n if (isStaticRequest === void 0) {\n isStaticRequest = false;\n }\n\n if (isRouteRequest === void 0) {\n isRouteRequest = false;\n }\n\n let resultType;\n let result; // Setup a promise we can race against so that abort signals short circuit\n\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n\n let onReject = () => reject();\n\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(handler, \"Could not find the \" + type + \" to run on the \\\"\" + match.route.id + \"\\\" route\");\n result = await Promise.race([handler({\n request,\n params: match.params,\n context: requestContext\n }), abortPromise]);\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status; // Process redirects\n\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n let isAbsolute = /^[a-z+]+:\\/\\//i.test(location) || location.startsWith(\"//\"); // Support relative routing in internal redirects\n\n if (!isAbsolute) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(match => match.pathnameBase);\n let resolvedLocation = resolveTo(location, routePathnames, new URL(request.url).pathname);\n invariant(createPath(resolvedLocation), \"Unable to resolve redirect location: \" + location); // Prepend the basename to the redirect location if we have one\n\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname = path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n\n\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null\n };\n } // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n\n\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result\n };\n }\n\n let data;\n let contentType = result.headers.get(\"Content-Type\"); // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\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 (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result\n };\n }\n\n return {\n type: ResultType.data,\n data: result\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)\n\n\nfunction createClientSideRequest(location, signal, submission) {\n let url = createClientSideURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType,\n formData\n } = submission;\n init.method = formMethod.toUpperCase();\n init.body = formEncType === \"application/x-www-form-urlencoded\" ? convertFormDataToSearchParams(formData) : formData;\n } // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(typeof value === \"string\", 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' + 'please use \"multipart/form-data\" instead.');\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {}; // Process loader results into state.loaderData/state.errors\n\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error; // 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\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {}; // Prefer higher error values if lower errors bubble to the same boundary\n\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n } // Clear our any prior loaderData for the throwing route\n\n\n loaderData[id] = undefined; // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data; // TODO: Add statusCode/headers once we wire up streaming in Remix\n } else {\n loaderData[id] = result.data; // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\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\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\n\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds); // Process results from our revalidating fetchers\n\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key,, match] = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index]; // Process fetcher non-redirect errors\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\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 throw new Error(\"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 throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return {\n loaderData,\n errors\n };\n}\n\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n\n for (let match of matches) {\n let id = match.route.id;\n\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined) {\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\n return mergedLoaderData;\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\n\n\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\n\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\n\nfunction getInternalRouterError(status, _temp4) {\n let {\n pathname,\n routeId,\n method\n } = _temp4 === void 0 ? {} : _temp4;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else {\n errorMessage = \"Cannot submit binary form data using GET\";\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\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"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 ErrorResponse(status || 500, statusText, new Error(errorMessage), true);\n} // Find any returned redirect errors, starting from the lowest match\n\n\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\n\nfunction isHashChangeOnly(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash;\n}\n\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\n\nfunction isRedirectResponse(result) {\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 isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || ResultType.error);\n}\n\nfunction isValidMethod(method) {\n return validRequestMethods.has(method);\n}\n\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method);\n}\n\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signal, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || 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, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n\n let aborted = await result.deferredData.resolveData(signal);\n\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) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n} // Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\n\n\nfunction createUseMatchesMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\n\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n } // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n\n\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n} //#endregion\n\nexport { AbortedDeferredError, Action, ErrorResponse, IDLE_FETCHER, IDLE_NAVIGATION, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getPathContributingMatches as UNSAFE_getPathContributingMatches, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, invariant, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, resolvePath, resolveTo, stripBasename, warning };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.6.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { invariant, joinPaths, matchPath, UNSAFE_getPathContributingMatches, warning, resolveTo, parsePath, matchRoutes, Action, isRouteErrorResponse, createMemoryHistory, stripBasename, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, resolvePath } from '@remix-run/router';\nimport * as React from 'react';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\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 * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction isPolyfill(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nconst is = typeof Object.is === \"function\" ? Object.is : isPolyfill; // Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\n\nconst {\n useState,\n useEffect,\n useLayoutEffect,\n useDebugValue\n} = React;\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore$2(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\"You are using an outdated, pre-release alpha of React 18 that \" + \"does not support useSyncExternalStore. The \" + \"use-sync-external-store shim will not work correctly. Upgrade \" + \"to a newer pre-release.\");\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n const value = getSnapshot();\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n\n if (!is(value, cachedValue)) {\n console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\");\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n const [{\n inst\n }, forceUpdate] = useState({\n inst: {\n value,\n getSnapshot\n }\n }); // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [subscribe, value, getSnapshot]);\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\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 * @flow\n */\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\n/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\nconst canUseDOM = !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore$2;\nconst useSyncExternalStore = \"useSyncExternalStore\" in React ? (module => module.useSyncExternalStore)(React) : shim;\n\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nconst LocationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\n\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname; // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\n\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\n\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\"); // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\n\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\n\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\n\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\n\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n let locationFromContext = useLocation();\n let location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(matches == null || matches[matches.length - 1].route.element !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" does not have an element. \" + \"This means it will render an with a null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterStateContext || undefined); // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n\n\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unhandled Thrown Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" props on\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"\")));\n}\n\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error\n };\n }\n\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location\n };\n } // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n\n\n return {\n error: props.error || state.error,\n location: state.location\n };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n\n render() {\n return this.state.error ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n\n}\n\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext); // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && match.route.errorElement) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\n\nfunction _renderMatches(matches, parentMatches, dataRouterState) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) {\n if (dataRouterState != null && dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches; // If we have data errors, trim matches to the highest error boundary\n\n let errors = dataRouterState == null ? void 0 : dataRouterState.errors;\n\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find a matching route for the current errors: \" + errors) : invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null; // Only data routers handle errors\n\n let errorElement = dataRouterState ? match.route.errorElement || /*#__PURE__*/React.createElement(DefaultErrorElement, null) : null;\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n\n let getChildren = () => /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches\n }\n }, error ? errorElement : match.route.element !== undefined ? match.route.element : outlet); // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n\n\n return dataRouterState && (match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook;\n\n(function (DataRouterHook) {\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterHook || (DataRouterHook = {}));\n\nvar DataRouterStateHook;\n\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\n\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return ctx;\n}\n\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return state;\n}\n\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return route;\n}\n\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : invariant(false) : void 0;\n return thisRoute.route.id;\n}\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\n\n\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\n\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n };\n}\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\n\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(match => {\n let {\n pathname,\n params\n } = match; // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id],\n handle: match.route.handle\n };\n }), [matches, loaderData]);\n}\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\n\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n\n return state.loaderData[routeId];\n}\n/**\n * Returns the loaderData for the given routeId\n */\n\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n/**\n * Returns the action data for the nearest ancestor Route action\n */\n\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"useActionData must be used inside a RouteContext\") : invariant(false) : void 0;\n return Object.values((state == null ? void 0 : state.actionData) || {})[0];\n}\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\n\nfunction useRouteError() {\n var _state$errors;\n\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError); // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n\n if (error) {\n return error;\n } // Otherwise look for errors from our data router state\n\n\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\n\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n/**\n * Returns the error from the nearest ancestor value\n */\n\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nconst alreadyWarned = {};\n\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? warning(false, message) : void 0;\n }\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router\n } = _ref;\n // Sync router state to our component state to force re-renders\n let state = useSyncExternalStore(router.subscribe, () => router.state, // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\"; // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a